Provided by: repro-env_0.4.0-1build1_amd64 bug

NAME

       repro-env - Dependency lockfiles for reproducible build environments

SYNOPSIS

       repro-env update

       repro-env build -- [COMMAND]

DESCRIPTION

       Tracks  a  description  of  a  desired  state  in repro-env.toml, 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 repro-env.lock 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).

       The purpose of repro-env.toml is to make it trivial to re-resolve the specification if new patches become
       available. This file is read by repro-env update.

       The purpose of repro-env.lock 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 repro-env build.

GLOBAL OPTIONS

       -v, --verbose
           Increase logging output (can be used multiple times)

       -C path, --context path
           Change the current directory to this path before executing the subcommand

UPDATE

       This  command  resolves the environment described in repro-env.toml with the latest available updates and
       writes a repro-env.lock. You would use this command similar to how you would use cargo update.

       --no-pull
           Do not attempt to pull the container tag from registry before resolving it

       -k, --keep
           Do not delete the build container, wait for ctrl-c

BUILD

       This command loads a repro-env.lock, sets up the environment it describes in a container and  mounts  the
       current  directory  to  /build  inside  of  the  container. It then runs the given COMMAND inside of this
       container.

       -f path, --file path
           The dependency lockfile to use

       -k, --keep
           Do not delete the build container, wait for ctrl-c

       -e env, --env env
           Pass environment variables into the build container (FOO=bar or just FOO to lookup the value)

PACKAGES: ARCH LINUX

       Arch Linux hosts a comprehensive collection of recent compilers at https://archive.archlinux.org. You can
       create a [packages] section in your repro-env.toml  with  system  =  "archlinux"  to  install  additional
       packages with pacman.

           # repro-env.toml
           [container]
           image = "docker.io/library/archlinux"

           [packages]
           system = "archlinux"
           dependencies = ["rust-musl", "lua"]

PACKAGES: DEBIAN

       Debian   is   a   widely   accepted   choice   and   hosts   an   archive   of   all  their  packages  at
       https://snapshot.debian.org/. You can create a [packages] section in your repro-env.toml  with  system  =
       "debian" to install additional packages with apt-get.

           # repro-env.toml
           [container]
           image = "debian:bookworm"

           [packages]
           system = "debian"
           dependencies = ["gcc", "libc6-dev"]

AUTHORS

       repro-env is developed on github at https://github.com/kpcyrd/repro-env

                                                   2024-04-01                                       REPRO-ENV(1)