cd /src && export SOURCE_DATE_EPOCH=$(git log --max-count=1 --pretty="%ct")
}
+create_package_checksum()
+{
+ local package=$(find . -maxdepth 1 -name '*.deb')
+ sha256sum *.deb > $package.sha256 || return $?
+}
+
+reproducible_package_checksum_check()
+{
+ local package=$(find . -maxdepth 1 -name '*.deb')
+ cp /src/build/$package.sha256 . || return $?
+ sha256sum -c $package.sha256
+}
+
run_tests()
{
mkdir --parents /app/tests && cd /app/tests
make --jobs=$(nproc) package || return $?
}
+build_reproducible_package()
+{
+ local soll_hour=${SOLL_HOUR:="8"}
+ local soll_minutes=${SOLL_MINUTES:="0"}
+
+ mkdir --parents /app/reproducible-build && cd /app/reproducible-build
+ cmake -DCMAKE_BUILD_TYPE=Release \
+ -DEXTRA_VERSION="-$ID-$VERSION_CODENAME" \
+ -DSOLL_HOUR="$soll_hour" \
+ -DSOLL_MINUTES="$soll_minutes" /src || return $?
+ make --jobs=$(nproc) package || return $?
+}
+
copy_package()
{
cp /app/build/*.deb /src/build/ || return $?
+ cp /app/build/*.sha256 /src/build/ || return $?
}
main()
{
source /etc/os-release
get_source_date || return $?
+
run_tests || return $?
build_package || return $?
+ create_package_checksum || return $?
copy_package || return $?
+
+ build_reproducible_package || return $?
+ reproducible_package_checksum_check || return $?
}
main