saltstack / saltstack/relenv

[Feature Request] Build Environment Build Customization

Open
#118 1 comment 2 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

enhancement
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]onfigure flags 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

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.