.\" Generated by scdoc 1.11.5 .\" Complete documentation for this program is not available as a GNU info page .ie \n(.g .ds Aq \(aq .el .ds Aq ' .nh .ad l .\" Begin generated content: .TH "REPRO\-ENV" "1" "2026\-08\-17" .PP .SH NAME .PP repro\-env \- Dependency lockfiles for reproducible build environments .PP .SH SYNOPSIS .PP \fBrepro\-env\fR update .PP \fBrepro\-env\fR build \-\- [\fICOMMAND\fR] .PP .SH DESCRIPTION .PP Tracks a description of a desired state in \fBrepro\-env.\&toml\fR, for example, the latest version of some official container image, with the latest patch level and the latest version of some additional packages.\& It also tracks a resolved variant in \fBrepro\-env.\&lock\fR that tracks the specific versions and checksums of the packages needed to set up the described environment (at the patch\-level available at the time of writing).\& .PP The purpose of \fBrepro\-env.\&toml\fR is to make it trivial to re\-resolve the specification if new patches become available.\& This file is read by \fBrepro\-env update\fR.\& .PP The purpose of \fBrepro\-env.\&lock\fR is to document which compiler versions have been used for the release binary associated with a given release.\& Recording this information is essential for reproducible builds and allows future forensic investigation of the build environment.\& It can be either committed into the source\-code repository or attached to a release as an artifact, along with the compiled binary.\& This file is read by \fBrepro\-env build\fR.\& .PP .SH GLOBAL OPTIONS .PP \fB\-v\fR, \fB\-\-verbose\fR .RS 4 Increase logging output (can be used multiple times) .PP .RE \fB\-C\fR \fIpath\fR, \fB\-\-context\fR \fIpath\fR .RS 4 Change the current directory to this path before executing the subcommand .PP .RE .SH UPDATE .PP This command resolves the environment described in \fBrepro\-env.\&toml\fR with the latest available updates and writes a \fBrepro\-env.\&lock\fR.\& You would use this command similar to how you would use \fBcargo update\fR.\& .PP \fB\-\-no\-pull\fR .RS 4 Do not attempt to pull the container tag from registry before resolving it .PP .RE \fB\-k\fR, \fB\-\-keep\fR .RS 4 Do not delete the build container, wait for ctrl\-c .PP .RE .SH BUILD .PP This command loads a \fBrepro\-env.\&lock\fR, sets up the environment it describes in a container and mounts the current directory to \fB/build\fR inside of the container.\& It then runs the given \fICOMMAND\fR inside of this container.\& .PP \fB\-f\fR \fIpath\fR, \-\-file \fIpath\fR .RS 4 The dependency lockfile to use .PP .RE \fB\-k\fR, \fB\-\-keep\fR .RS 4 Do not delete the build container, wait for ctrl\-c .PP .RE \fB\-e\fR \fIenv\fR, \fB\fR\-\-env\fB\fR \fIenv\fR .RS 4 Pass environment variables into the build container (FOO=bar or just FOO to lookup the value) .PP .RE .SH PACKAGES: ARCH LINUX .PP Arch Linux hosts a comprehensive collection of recent compilers at https://archive.\&archlinux.\&org.\& You can create a \fB[packages]\fR section in your \fBrepro\-env.\&toml\fR with \fBsystem = "archlinux"\fR to install additional packages with pacman.\& .PP .nf .RS 4 # repro\-env\&.toml [container] image = "docker\&.io/library/archlinux" [packages] system = "archlinux" dependencies = ["rust\-musl", "lua"] .fi .RE .PP .SH PACKAGES: DEBIAN .PP Debian is a widely accepted choice and hosts an archive of all their packages at https://snapshot.\&debian.\&org/.\& You can create a \fB[packages]\fR section in your \fBrepro\-env.\&toml\fR with \fBsystem = "debian"\fR to install additional packages with apt\-get.\& .PP .nf .RS 4 # repro\-env\&.toml [container] image = "debian:bookworm" [packages] system = "debian" dependencies = ["gcc", "libc6\-dev"] .fi .RE .PP .SH AUTHORS .PP repro\-env is developed on github at https://github.\&com/kpcyrd/repro\-env