-
-
Notifications
You must be signed in to change notification settings - Fork 930
Open
Labels
enhancementguide-new contentAdditions; New content or section neededAdditions; New content or section neededtopic-building python
Description
Describe the enhancement or feature you would like
I've stopped using brew on my macOS and I'm instead using pixi whenever I need system-level dependencies. This works very well in practice even for building CPython and I can do things like pixi run configure and it automatically sets up all of the system dependencies and runs configure. Doing that requires setting some environment variables here and there, but I've done that in a pixi.toml and it's all automated. It looks somewhat like this:
[project]
name = "cpython-dev"
channels = ["conda-forge"]
platforms = ["osx-arm64"]
[dependencies]
gdbm = "*"
libmpdec-devel = "*"
openssl = "3.*"
pkg-config = "*"
tk = "*"
xz = "*"
zstd = "*"
zlib = "*"
[tasks.configure]
cmd = "./configure --with-openssl=$CONDA_PREFIX"
[tasks.configure.env]
PKG_CONFIG_PATH = "$CONDA_PREFIX/lib/pkgconfig"
GDBM_CFLAGS = "-I$CONDA_PREFIX/include"
GDBM_LIBS = "-L$CONDA_PREFIX/lib -lgdbm"
TCLTK_CFLAGS = "$(pkg-config --cflags tcl tk)"
# tcl.pc and tk.pc files contain stub libraries, but those do not extist
# in the conda package
TCLTK_LIBS = "$(pkg-config --libs tcl tk | sed 's/-l[^ ]*stub[^ ]*//g')"
LDFLAGS = "-Wl,-rpath,$CONDA_PREFIX/lib"It's a bit too much to propose adding this to the CPython repo, at least for now. However, pointing to this as a way to install system-level dependencies in the devguide doesn't sounds like a bad idea to me.
Thoughts? Is there an appetite for this? If so, I can start drafting a PR.
Describe alternatives you have considered
No response
Additional context
No response
StanFromIreland, hugovk and rgommers
Metadata
Metadata
Assignees
Labels
enhancementguide-new contentAdditions; New content or section neededAdditions; New content or section neededtopic-building python