makerepropkg - Rebuild a package to see if it is reproducible

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

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 Reproducible Builds project.


If packages are not reproducible, compare them using diffoscope.


Set the pacman cache directory.

-M <file>

Location of a makepkg config file.

-l <chroot>

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


Show this usage message

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