[Reproducible-commits] [dpkg] 50/54: Support SOURCE_DATE_EPOCH for ar headers
Mattia Rizzolo
mattia at debian.org
Fri Jan 15 18:54:04 UTC 2016
This is an automated email from the git hooks/post-receive script.
mattia pushed a commit to branch pu/reproducible_builds
in repository dpkg.
commit 75f634b0e4e6b0340c0f588e209052738c4dc296
Author: Jérémy Bobbio <lunar at debian.org>
Date: Thu Oct 8 15:02:12 2015 +0000
Support SOURCE_DATE_EPOCH for ar headers
In order to allow Debian packages to be built reproducibly, we need a way for
users to reproduce the dates captured in the ar headers of the .deb archives.
We now support the SOURCE_DATE_EPOCH environment variable. If set we will use
its value instead of the current time. SOURCE_DATE_EPOCH specification is
available at: https://reproducible-builds.org/specs/source-date-epoch/
---
dpkg-deb/build.c | 20 +++++++++++++++++++-
1 file changed, 19 insertions(+), 1 deletion(-)
diff --git a/dpkg-deb/build.c b/dpkg-deb/build.c
index 117e424..7112876 100644
--- a/dpkg-deb/build.c
+++ b/dpkg-deb/build.c
@@ -462,6 +462,24 @@ gen_dest_pathname_from_pkg(const char *dir, struct pkginfo *pkg)
arch_sep, pkg->available.arch->name, DEBEXT);
}
+static time_t
+get_build_timestamp(void)
+{
+ time_t timestamp;
+ const char *value;
+ char *end;
+
+ errno = 0;
+ value = getenv("SOURCE_DATE_EPOCH");
+ if (!value)
+ return time(NULL);
+
+ timestamp = strtol(value, &end, 10);
+ if (value == end || *end || errno != 0)
+ ohshite(_("unable to parse SOURCE_DATE_EPOCH"));
+ return timestamp;
+}
+
typedef void filenames_feed_func(const char *dir, int fd_out);
/**
@@ -561,7 +579,7 @@ do_build(const char *const *argv)
}
m_output(stdout, _("<standard output>"));
- build_timestamp = time(NULL);
+ build_timestamp = get_build_timestamp();
/* Now that we have verified everything its time to actually
* build something. Let's start by making the ar-wrapper. */
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/reproducible/dpkg.git
More information about the Reproducible-commits
mailing list