summaryrefslogtreecommitdiff
path: root/doc/man/makerepropkg.1.asciidoc
blob: 4e694b3b1cebf2c3fbc6941cdb9150b7560ecf68 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
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
linkman: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
link:https://reproducible-builds.org/[Reproducible Builds] project.

Options
-------

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

*-c*::
	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

*-h*::
	Show this usage message

include::include/footer.asciidoc[]