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
# => 62d6fb7d839972d478068b35cf69d8b9831015e3f96e4781051044dd77633a15
sh 000pbuildconf/build.sh
  pbuild is done:
  broken:    9
  succeeded: 3574
  failed:    17
  unresolvable: 8
  excluded:  193
# => 574790e3f69f29e70bcbd4b33158aac5d0b18c7d96b1504562f94b63d90dcd5f

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