indygreg / indygreg/PyOxidizer

add pre-fetch/local dependency substitution feature

Open
#744 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
Rust
Stars
6.2k
Forks
256
PR merge metrics
No merged PRs in 30d

Description

I'm currently trying to package the https://github.com/seL4/microkit SDK for https://github.com/nixOS/nixpkgs/ . Builds in Nix are hermetically sealed, meaning during a build no internet connection is allowed. However, one can use a URL fetcher + a hash to fetch a pinpointed dependency. Alternatively, one can opt in to having internet connection during the compilation, but then all generated artifacts are hashed (and the hash has to be stable).

In order to package something which relies on PyOxidizer, it would be desirable to

- either be able to pre-fetch all dependencies for a build (like [`cargo vendor](https://doc.rust-lang.org/cargo/commands/cargo-vendor.html))
- or to allow substitution of all artifacts which are normally downloaded by PyOxidizer with local files (which then one can pre-fetch themselves)

Possibly related: https://github.com/indygreg/PyOxidizer/issues/204, https://github.com/indygreg/PyOxidizer/issues/589

Contributor guide

No contributing guide indexed for this repository

Research direction

Start by reviewing related issues #204 and #589, then trace how PyOxidizer currently downloads build dependencies. Define whether the feature should support pre-fetching, local artifact substitution, or both; done means hermetic builds can use locally supplied dependencies without network access.

Written by the indexing model from the issue text.

Assessment

Tech stack
rust
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.