pgRouting / pgrouting

Repository contains pgRouting library. Development branch is "develop", stable branch is "master"
https://pgrouting.org
GNU General Public License v2.0
1.16k stars 366 forks source link

Reproducible builds #2414

Closed sebastic closed 1 year ago

sebastic commented 2 years ago

As reported in Debian Bug #1021799:

The build time is embedded in /usr/lib/postgresql/14/lib/libpgrouting-3.4.so:

https://tests.reproducible-builds.org/debian/rb-pkg/bookworm/amd64/diffoscope-results/pgrouting.html

2022/10/11 vs. 2022/10/12

The attached patch to CMakeLists.txt fixes this by passing the UTC argument to the TIMESTAMP function.

According to my local tests, with this patch applied, and another patch soon to be submitted for embedded kernel versions, pgrouting should build reproducibly on tests.reproducible-builds.org!

And Debian Bug #1021800:

The kernel version of the build environment is embedded in /usr/lib/postgresql/14/lib/libpgrouting-3.4.so:

https://tests.reproducible-builds.org/debian/rb-pkg/bookworm/amd64/diffoscope-results/pgrouting.html

Linux-5.18.0-0.deb11.4-amd64 vs. Linux-5.10.0-18-amd64

The attached patch to src/version/version.h.in fixes this by using CMAKE_SYSTEM_NAME instead of CMAKE_SYSTEM.

According to my local tests, with this patch applied, and the patch submitted in #102179 to fix timestamps, pgrouting should build reproducibly on tests.reproducible-builds.org!

@pgRouting/admins