Comments (6)
I understand from @Bodigrim that it is also not included with all Linux distributions 'by default' (EDIT: I think Alpine Linux is one example).
Prettty much no distro includes it by default. E. g., for Ubuntu
wget https://releases.ubuntu.com/jammy/ubuntu-22.04.4-desktop-amd64.manifest -q -O - | grep pkg-config
is empty
EDIT2: I think that macOS also does not include pkg-config by default.
Correct.
As a maintainer of zlib
, I recommend Stackage to disable its pkg-config
flag in build-constraints.yaml
.
from stackage.
it is also not included with all Linux distributions
Prettty much no distro includes it by default.
Why does it matter what Linux distributions include by default? They don't even ship a C compiler per default.
I would posit that pkg-config is effectively standard on Linux, since if you install headers for an arbitrary library, that package is likely to include a pkg-config configuration.
For example, on Debian 11 if I do dpkg -L zlib1g-dev
, I see that it contains /usr/lib/x86_64-linux-gnu/pkgconfig/zlib.pc
, but it doesn't include a cmake configuration file.
I do have many results for cmake configuration files, if I search using find /usr/lib -iname '*.cmake'
. But it's much less common. I see results for e.g. PulseAudio, harfbuzz, rocksdb, libavif, SDL2, expat and Qt6. Running dpkg -L libexpat1-dev
you can verify that this package provides both cmake and pkg-config configuration files.
from stackage.
@ysangkok, I think it (pkg-config on the PATH 'by default') matters in this sense: if Stackage assumes that pkg-config is on the PATH then the Stack project will want to do what it can to ensure that assumption is a good one. It is helpful to know what operating systems and Linux distributions are affected.
from stackage.
The proximate cause of my raising this issue (the zlib
package (a) specifying pkg-config
on the PATH 'by default' and (b) being included in a package set with that default) has fallen away:
However, I think the question asked is still relevant as a matter of principle.
from stackage.
Maybe I didn't understand the implications of the two ecosystems, but why should the default behaviour for stack be different? Can't that be confusing? I still not understand why using the system library makes sense for the pure package, but not if used in conjunction with stack.
from stackage.
Although I mention Windows/MSYS2 above, if pkg-config
were a prerequisite it seems to me that the most problematic operating system would be macOS. That is because it does not have a native package manager. If a macOS user tries to use a tool included in the Xcode Command Line Tools set and the tool is not available, macOS will suggest to the user that Xcode Command Line Tools are installed. However, that set of tools does not include pkg-config
.
from stackage.
Related Issues (20)
- text-builder-dev 0.3.4.3 HOT 1
- `Cabal`, a GHC boot package, has been included in `nightly` snapshots - in error? HOT 2
- tasty 1.5.1 HOT 1
- tasty-quickcheck 0.11 HOT 10
- hashable: disable new `arch-native` flag HOT 3
- Skipping the GHC 9.8 LTS / GHC 9.10 Nightly HOT 8
- hasql 1.8 HOT 1
- tls-2.1 is out of bounds for keter, mysql-haskell, and pandoc
- presumed related test suite failures
- cabal-install-3.12.1.0 wants too-new Cabal & related deps HOT 3
- build failures with crypton-connection-0.4 HOT 3
- file-embed-lzma-0.1
- unicode-data-0.6.0 HOT 1
- deprecating cryptonite HOT 5
- hashable-1.5 HOT 5
- brick-2.4 HOT 1
- tasty-bench-0.4 HOT 2
- network-run-0.4 HOT 1
- comfort-glpk-0.1 test failure HOT 1
- text-rope-0.3
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from stackage.