openSUSE:Reproducible openSUSE/Part2

Jump to: navigation, search

This is documentation Part 2 of Bernhard's R-B-OS - about making enough packages reproducible for a small DVD with some graphical UI. It is sponsored by a grant from the nice people at the NLNet foundation.

package sources are collected in https://build.opensuse.org/project/show/home:bmwiedemann:reproducible:distribution:ring1 - They are also available at https://rb.zq1.de/RBOS/ along with the binaries

Note: building with pbuild is significantly slower here, because dependency resolution is implemented in pure perl and takes a minute to figure out what to build next.

How to build

Ensure you have enough disk space. The binaries need 460GB and the sources another 60GB. Plus builds need another 150GB in /var/tmp with the default build.sh setting of '--buildjobs 2' A full build needs 1-4 weeks.

zypper in osc qemu

Install the `build` tool from https://build.opensuse.org/package/show/home:bmwiedemann:reproducible:distribution:ring1/build (needed for emacs, colord and python-lxml) via

osc getbinaries home:bmwiedemann:reproducible:distribution:ring1 build standard x86_64
sudo rpm -U --force --oldpackage binaries/build-20241114-1.1.noarch.rpm
osc co home:bmwiedemann:reproducible:distribution:ring1 && cd $_
ln -s 000pbuildconf/_* .
sh 000pbuildconf/sha256sums.src
# => 6ac5cf0e1c129a15bf715312ac8c0598b9c655b414890b7d871621a7df4adff4
sh 000pbuildconf/build.sh
  pbuild is done:
  broken:    9
  succeeded: 3574
  failed:    17
  unresolvable: 8
  excluded:  193
# => f8ff03e17cfd9217db1756957794b791017f328ee8f0d35f7a38b37cbad283f1

How to run a VM

How to run a minimal VM built from this (login credentials are user=root pass=nots3cr3t ):

unrpm /path/to/altimagebuild-1*.rpm
qemu-kvm -drive format=raw,file=var/lib/altimagebuild-x86_64.img -m 1000 -serial stdio -vnc :9
# in VM:
# optional: recreate the dropped unreproducible rpm database
rpmkeys --import /usr/lib/rpm/gnupg/keys/*
zypper -n install --no-recommends $(grep -v gpg-pubkey- /.packages)

See also the guide about a graphical env in there.

Encountered issues/fixes

worked around

remaining issues