[Feature Request] Build Environment Build Customization
Nobody has claimed this yet.
- Dominant language
- Python
- Stars
- 38
- Forks
- 23
- Avg merge
- 2h 48m
- Merged PRs (30d)
- 5
Description
Firstly, I've been watching relenv for a while - I think it's rad. Great work 😎
I would like to add support for customizing the build environment (e.g. what's created with relenv build). Specifically:
- Custom
[Cc]onfigureflags for CPython, OpenSSL, SQLite, etc. - Custom
CFLAGS/LDFLAGS/CXXFLAGS - Other Custom environment variables (e.g.
MACOSX_DEPLOYMENT_TARGET) - Make flags
- Customization of source tarballs (Download URL's, Versions, Checksums)
Although my primary focus is on macOS (as I support my Company's fleet of macOS devices, including its use of Salt), I think customization would be valuable for all platforms.
As a good example, take issue #114, where the default /usr/bin/python3 executable is hard-coded in relenv, and is actually immutable on macOS (due to System Integrity Protection), but can "point" to different Xcode environments (via xcode-select).
If I wanted to use zlib or libzmq from Homebrew (instead of building it myself), currently relenv doesn't allow me to do that.
I want to be able use a different Python version (e.g. a pre-release version, 3.9.x, or any other version not specifically hard-coded into relenv.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by tracing the relenv build entry point and how CPython, OpenSSL, SQLite, and source tarball settings are currently defined. Compare the requested flags, environment variables, make options, URLs, versions, and checksums with the existing build flow. Done means these inputs can be customized across platforms while preserving reproducible builds.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- build-system, tooling
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100