MAKEREPROPKG(1)

NAME
makerepropkg - Rebuild a package to see if it is reproducible

SYNOPSIS

makerepropkg [OPTIONS] [<package_file|pkgname>...]

DESCRIPTION

Given the path to a built pacman package(s), attempt to rebuild it using the PKGBUILD in the current directory. The package will be built in an environment as closely matching the environment of the initial package as possible, by building up a chroot to match the information exposed in the package’s BUILDINFO(5) manifest. On success, the resulting package will be compared to the input package, and makerepropkg will report whether the artifacts are identical.

When given multiple packages, additional package files are assumed to be split packages and will be treated as additional artifacts to compare during the verification step.

A valid target(s) for pacman -S can be specified instead, and makerepropkg will download it to the cache if needed. This is mostly useful to specify which repository to retrieve from. If no positional arguments are specified, the targets will be sourced from the PKGBUILD.

In either case, the package name will be converted to a filename from the cache, and makerepropkg will proceed as though this filename was initially specified.

This implements a verifier for pacman/libalpm packages in accordance with the project.

OPTIONS

-d
    If packages are not reproducible, compare them using diffoscope.

-n
    Do not run the check() function in the PKGBUILD.

-c
    Set the pacman cache directory.

-M <file>
    Location of a makepkg config file. Specific additions (e.g. build flags for additional languages) can be placed in <file>.d/*.conf.

-l <chroot>
    The directory name to use as the chroot namespace Useful for maintaining multiple copies Default: $USER

-h
    Show this usage message

HOMEPAGE

Please report bugs and feature requests in the issue tracker. Please do your best to provide a reproducible test case for bugs.