GNU bug report logs -
#23776
Perl's .pod files include timestamps, making Perl package builds non-deterministic
Previous Next
Reported by: ludo <at> gnu.org (Ludovic Courtès)
Date: Thu, 16 Jun 2016 11:35:01 UTC
Severity: normal
Done: ludo <at> gnu.org (Ludovic Courtès)
Bug is archived. No further changes may be made.
To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 23776 in the body.
You can then email your comments to 23776 AT debbugs.gnu.org in the normal way.
Toggle the display of automated, internal messages from the tracker.
Report forwarded
to
bug-guix <at> gnu.org
:
bug#23776
; Package
guix
.
(Thu, 16 Jun 2016 11:35:01 GMT)
Full text and
rfc822 format available.
Acknowledgement sent
to
ludo <at> gnu.org (Ludovic Courtès)
:
New bug report received and forwarded. Copy sent to
bug-guix <at> gnu.org
.
(Thu, 16 Jun 2016 11:35:02 GMT)
Full text and
rfc822 format available.
Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):
Here’s an example:
--8<---------------cut here---------------start------------->8---
$ diff -ru /gnu/store/fmib129w05hbwbikd7x48s37hvr8nrdf-perl-io-stringy-2.110 /gnu/store/fmib129w05hbwbikd7x48s37hvr8nrdf-perl-io-stringy-2.110-check
diff -ru /gnu/store/fmib129w05hbwbikd7x48s37hvr8nrdf-perl-io-stringy-2.110/lib/perl5/5.22.1/x86_64-linux/perllocal.pod /gnu/store/fmib129w05hbwbikd7x48s37hvr8nrdf-perl-io-stringy-2.110-check/lib/perl5/5.22.1/x86_64-linux/perllocal.pod
--- /gnu/store/fmib129w05hbwbikd7x48s37hvr8nrdf-perl-io-stringy-2.110/lib/perl5/5.22.1/x86_64-linux/perllocal.pod 1970-01-01 01:00:01.000000000 +0100
+++ /gnu/store/fmib129w05hbwbikd7x48s37hvr8nrdf-perl-io-stringy-2.110-check/lib/perl5/5.22.1/x86_64-linux/perllocal.pod 1970-01-01 01:00:01.000000000 +0100
@@ -1,4 +1,4 @@
-=head2 Thu Jun 16 11:29:36 2016: C<Module> L<IO::Stringy|IO::Stringy>
+=head2 Thu Jun 16 11:29:34 2016: C<Module> L<IO::Stringy|IO::Stringy>
=over 4
--8<---------------cut here---------------end--------------->8---
The problem is described in <git://git.debian.org/git/reproducible/notes.git>:
--8<---------------cut here---------------start------------->8---
timestamps_in_documentation_generated_by_podman:
description: |
The module Pod::Man includes timestamps in its embedded manpages:
http://sources.debian.net/src/perl/latest/cpan/podlators/lib/Pod/Man.pm/?hl=1700#L977
They should be based on the mtime of the original file.
url: https://wiki.debian.org/ReproducibleBuilds/TimestampsInManpagesGeneratedByPodMan
deterministic: True
--8<---------------cut here---------------end--------------->8---
Ludo’.
Information forwarded
to
bug-guix <at> gnu.org
:
bug#23776
; Package
guix
.
(Thu, 16 Jun 2016 15:40:01 GMT)
Full text and
rfc822 format available.
Message #8 received at 23776 <at> debbugs.gnu.org (full text, mbox):
On Thu, Jun 16, 2016 at 01:33:46PM +0200, Ludovic Courtès wrote:
> The problem is described in <git://git.debian.org/git/reproducible/notes.git>:
>
> --8<---------------cut here---------------start------------->8---
> timestamps_in_documentation_generated_by_podman:
> description: |
> The module Pod::Man includes timestamps in its embedded manpages:
> http://sources.debian.net/src/perl/latest/cpan/podlators/lib/Pod/Man.pm/?hl=1700#L977
> They should be based on the mtime of the original file.
> url: https://wiki.debian.org/ReproducibleBuilds/TimestampsInManpagesGeneratedByPodMan
According to the information on this page, we should set POD_MAN_DATE
while building. Should we make the perl-build-system export this
variable? Set to SOURCE_DATE_EPOCH?
Information forwarded
to
bug-guix <at> gnu.org
:
bug#23776
; Package
guix
.
(Fri, 17 Jun 2016 08:12:02 GMT)
Full text and
rfc822 format available.
Message #11 received at 23776 <at> debbugs.gnu.org (full text, mbox):
Leo Famulari <leo <at> famulari.name> skribis:
> On Thu, Jun 16, 2016 at 01:33:46PM +0200, Ludovic Courtès wrote:
>> The problem is described in <git://git.debian.org/git/reproducible/notes.git>:
>>
>> --8<---------------cut here---------------start------------->8---
>> timestamps_in_documentation_generated_by_podman:
>> description: |
>> The module Pod::Man includes timestamps in its embedded manpages:
>> http://sources.debian.net/src/perl/latest/cpan/podlators/lib/Pod/Man.pm/?hl=1700#L977
>> They should be based on the mtime of the original file.
>> url: https://wiki.debian.org/ReproducibleBuilds/TimestampsInManpagesGeneratedByPodMan
>
> According to the information on this page, we should set POD_MAN_DATE
> while building. Should we make the perl-build-system export this
> variable? Set to SOURCE_DATE_EPOCH?
Yes, that sounds like a good idea.
Thanks,
Ludo’.
Information forwarded
to
bug-guix <at> gnu.org
:
bug#23776
; Package
guix
.
(Fri, 17 Jun 2016 18:51:01 GMT)
Full text and
rfc822 format available.
Message #14 received at 23776 <at> debbugs.gnu.org (full text, mbox):
On Fri, Jun 17, 2016 at 10:11:21AM +0200, Ludovic Courtès wrote:
> Leo Famulari <leo <at> famulari.name> skribis:
>
> > On Thu, Jun 16, 2016 at 01:33:46PM +0200, Ludovic Courtès wrote:
> >> The problem is described in <git://git.debian.org/git/reproducible/notes.git>:
> >>
> >> --8<---------------cut here---------------start------------->8---
> >> timestamps_in_documentation_generated_by_podman:
> >> description: |
> >> The module Pod::Man includes timestamps in its embedded manpages:
> >> http://sources.debian.net/src/perl/latest/cpan/podlators/lib/Pod/Man.pm/?hl=1700#L977
> >> They should be based on the mtime of the original file.
> >> url: https://wiki.debian.org/ReproducibleBuilds/TimestampsInManpagesGeneratedByPodMan
> >
> > According to the information on this page, we should set POD_MAN_DATE
> > while building. Should we make the perl-build-system export this
> > variable? Set to SOURCE_DATE_EPOCH?
>
> Yes, that sounds like a good idea.
Should I add a phase to %standard-phases in perl-build-system.scm [0]?
Should I define a new procedure set-POD_MAN_DATE [1] and add that
perl-build-system.scm's %standard-phases?
[0]
http://git.savannah.gnu.org/cgit/guix.git/tree/guix/build/perl-build-system.scm#n71
[1] As in...
http://git.savannah.gnu.org/cgit/guix.git/tree/guix/build/gnu-build-system.scm#n42
Information forwarded
to
bug-guix <at> gnu.org
:
bug#23776
; Package
guix
.
(Sat, 18 Jun 2016 20:36:02 GMT)
Full text and
rfc822 format available.
Message #17 received at 23776 <at> debbugs.gnu.org (full text, mbox):
Leo Famulari <leo <at> famulari.name> skribis:
> On Fri, Jun 17, 2016 at 10:11:21AM +0200, Ludovic Courtès wrote:
>> Leo Famulari <leo <at> famulari.name> skribis:
>>
>> > On Thu, Jun 16, 2016 at 01:33:46PM +0200, Ludovic Courtès wrote:
>> >> The problem is described in <git://git.debian.org/git/reproducible/notes.git>:
>> >>
>> >> --8<---------------cut here---------------start------------->8---
>> >> timestamps_in_documentation_generated_by_podman:
>> >> description: |
>> >> The module Pod::Man includes timestamps in its embedded manpages:
>> >> http://sources.debian.net/src/perl/latest/cpan/podlators/lib/Pod/Man.pm/?hl=1700#L977
>> >> They should be based on the mtime of the original file.
>> >> url: https://wiki.debian.org/ReproducibleBuilds/TimestampsInManpagesGeneratedByPodMan
>> >
>> > According to the information on this page, we should set POD_MAN_DATE
>> > while building. Should we make the perl-build-system export this
>> > variable? Set to SOURCE_DATE_EPOCH?
>>
>> Yes, that sounds like a good idea.
>
> Should I add a phase to %standard-phases in perl-build-system.scm [0]?
>
> Should I define a new procedure set-POD_MAN_DATE [1] and add that
> perl-build-system.scm's %standard-phases?
Yes, sounds like the right approach to me.
Thank you.
Ludo’.
Information forwarded
to
bug-guix <at> gnu.org
:
bug#23776
; Package
guix
.
(Sun, 19 Jun 2016 17:32:02 GMT)
Full text and
rfc822 format available.
Message #20 received at 23776 <at> debbugs.gnu.org (full text, mbox):
On Thu, Jun 16, 2016 at 11:39:27AM -0400, Leo Famulari wrote:
> On Thu, Jun 16, 2016 at 01:33:46PM +0200, Ludovic Courtès wrote:
> > The problem is described in <git://git.debian.org/git/reproducible/notes.git>:
> >
> > --8<---------------cut here---------------start------------->8---
> > timestamps_in_documentation_generated_by_podman:
> > description: |
> > The module Pod::Man includes timestamps in its embedded manpages:
> > http://sources.debian.net/src/perl/latest/cpan/podlators/lib/Pod/Man.pm/?hl=1700#L977
> > They should be based on the mtime of the original file.
> > url: https://wiki.debian.org/ReproducibleBuilds/TimestampsInManpagesGeneratedByPodMan
>
> According to the information on this page, we should set POD_MAN_DATE
> while building. Should we make the perl-build-system export this
> variable? Set to SOURCE_DATE_EPOCH?
I noticed that Pod::Man is supposed to respect SOURCE_DATE_EPOCH, as of
the upstream module version 4.03 (released 2015-12-06). Does anyone know
how to check the version of the module bundled into perl?
[0]
https://metacpan.org/pod/Pod::Man#date
[1]
https://www.eyrie.org/~eagle/software/podlators/news.html
Information forwarded
to
bug-guix <at> gnu.org
:
bug#23776
; Package
guix
.
(Sat, 25 Jun 2016 18:24:02 GMT)
Full text and
rfc822 format available.
Message #23 received at 23776 <at> debbugs.gnu.org (full text, mbox):
On Sun, Jun 19, 2016 at 01:31:54PM -0400, Leo Famulari wrote:
> I noticed that Pod::Man is supposed to respect SOURCE_DATE_EPOCH, as of
> the upstream module version 4.03 (released 2015-12-06). Does anyone know
> how to check the version of the module bundled into perl?
In Perl 5.24.0, the integrated podlators module was upgraded from 2.28
from 4.0.7 [0].
AIUI, changing perl-build-system will require rebuilding all Perl
packages. If so, how about updating Perl to 5.24.0 instead of changing
the build system?
Do Perl updates tend to break a lot of Perl packages? If so, changing
the build system and rebuilding might be done sooner than a Perl update,
since this change seems unlikely to break any packages.
Your advice requested :)
[0]
https://metacpan.org/pod/distribution/perl/pod/perldelta.pod#Updated-Modules-and-Pragmata
Information forwarded
to
bug-guix <at> gnu.org
:
bug#23776
; Package
guix
.
(Sat, 30 Jul 2016 09:29:01 GMT)
Full text and
rfc822 format available.
Message #26 received at 23776 <at> debbugs.gnu.org (full text, mbox):
Leo Famulari <leo <at> famulari.name> skribis:
> On Sun, Jun 19, 2016 at 01:31:54PM -0400, Leo Famulari wrote:
>> I noticed that Pod::Man is supposed to respect SOURCE_DATE_EPOCH, as of
>> the upstream module version 4.03 (released 2015-12-06). Does anyone know
>> how to check the version of the module bundled into perl?
>
> In Perl 5.24.0, the integrated podlators module was upgraded from 2.28
> from 4.0.7 [0].
>
> AIUI, changing perl-build-system will require rebuilding all Perl
> packages. If so, how about updating Perl to 5.24.0 instead of changing
> the build system?
>
> Do Perl updates tend to break a lot of Perl packages? If so, changing
> the build system and rebuilding might be done sooner than a Perl update,
> since this change seems unlikely to break any packages.
Sorry for the super late reply. I think we’ll have to update at some
point, so what about doing that in core-updates-next?
Thanks,
Ludo’.
Information forwarded
to
bug-guix <at> gnu.org
:
bug#23776
; Package
guix
.
(Wed, 11 Jan 2017 22:28:02 GMT)
Full text and
rfc822 format available.
Message #29 received at 23776 <at> debbugs.gnu.org (full text, mbox):
Leo Famulari <leo <at> famulari.name> skribis:
> On Thu, Jun 16, 2016 at 11:39:27AM -0400, Leo Famulari wrote:
>> On Thu, Jun 16, 2016 at 01:33:46PM +0200, Ludovic Courtès wrote:
>> > The problem is described in <git://git.debian.org/git/reproducible/notes.git>:
>> >
>> > --8<---------------cut here---------------start------------->8---
>> > timestamps_in_documentation_generated_by_podman:
>> > description: |
>> > The module Pod::Man includes timestamps in its embedded manpages:
>> > http://sources.debian.net/src/perl/latest/cpan/podlators/lib/Pod/Man.pm/?hl=1700#L977
>> > They should be based on the mtime of the original file.
>> > url: https://wiki.debian.org/ReproducibleBuilds/TimestampsInManpagesGeneratedByPodMan
>>
>> According to the information on this page, we should set POD_MAN_DATE
>> while building. Should we make the perl-build-system export this
>> variable? Set to SOURCE_DATE_EPOCH?
>
> I noticed that Pod::Man is supposed to respect SOURCE_DATE_EPOCH, as of
> the upstream module version 4.03 (released 2015-12-06). Does anyone know
> how to check the version of the module bundled into perl?
For the record, even though Pod::Man supposedly honors SOURCE_DATE_EPOCH
as of Perl 5.24, we still have this problem:
--8<---------------cut here---------------start------------->8---
$ diff -r /gnu/store/hczskszmhm2l65vy8nv990lzc5dk3ln9-perl-algorithm-c3-0.10{,-check}
diff -r /gnu/store/hczskszmhm2l65vy8nv990lzc5dk3ln9-perl-algorithm-c3-0.10/lib/perl5/5.24.0/x86_64-linux-thread-multi/perllocal.pod /gnu/store/hczskszmhm2l65vy8nv990lzc5dk3ln9-perl-algorithm-c3-0.10-check/lib/perl5/5.24.0/x86_64-linux-thread-multi/perllocal.pod
1c1
< =head2 Wed Jan 11 22:20:36 2017: C<Module> L<Algorithm::C3|Algorithm::C3>
---
> =head2 Wed Jan 11 22:20:34 2017: C<Module> L<Algorithm::C3|Algorithm::C3>
--8<---------------cut here---------------end--------------->8---
Ludo’.
Information forwarded
to
bug-guix <at> gnu.org
:
bug#23776
; Package
guix
.
(Thu, 12 Jan 2017 17:25:02 GMT)
Full text and
rfc822 format available.
Message #32 received at 23776 <at> debbugs.gnu.org (full text, mbox):
[Message part 1 (text/plain, inline)]
Ludovic Courtès <ludo <at> gnu.org> writes:
> Leo Famulari <leo <at> famulari.name> skribis:
>
>> On Thu, Jun 16, 2016 at 11:39:27AM -0400, Leo Famulari wrote:
>>> On Thu, Jun 16, 2016 at 01:33:46PM +0200, Ludovic Courtès wrote:
>>> > The problem is described in <git://git.debian.org/git/reproducible/notes.git>:
>>> >
>>> > --8<---------------cut here---------------start------------->8---
>>> > timestamps_in_documentation_generated_by_podman:
>>> > description: |
>>> > The module Pod::Man includes timestamps in its embedded manpages:
>>> > http://sources.debian.net/src/perl/latest/cpan/podlators/lib/Pod/Man.pm/?hl=1700#L977
>>> > They should be based on the mtime of the original file.
>>> > url: https://wiki.debian.org/ReproducibleBuilds/TimestampsInManpagesGeneratedByPodMan
>>>
>>> According to the information on this page, we should set POD_MAN_DATE
>>> while building. Should we make the perl-build-system export this
>>> variable? Set to SOURCE_DATE_EPOCH?
>>
>> I noticed that Pod::Man is supposed to respect SOURCE_DATE_EPOCH, as of
>> the upstream module version 4.03 (released 2015-12-06). Does anyone know
>> how to check the version of the module bundled into perl?
>
> For the record, even though Pod::Man supposedly honors SOURCE_DATE_EPOCH
> as of Perl 5.24, we still have this problem:
>
> --8<---------------cut here---------------start------------->8---
> $ diff -r /gnu/store/hczskszmhm2l65vy8nv990lzc5dk3ln9-perl-algorithm-c3-0.10{,-check}
> diff -r /gnu/store/hczskszmhm2l65vy8nv990lzc5dk3ln9-perl-algorithm-c3-0.10/lib/perl5/5.24.0/x86_64-linux-thread-multi/perllocal.pod /gnu/store/hczskszmhm2l65vy8nv990lzc5dk3ln9-perl-algorithm-c3-0.10-check/lib/perl5/5.24.0/x86_64-linux-thread-multi/perllocal.pod
> 1c1
> < =head2 Wed Jan 11 22:20:36 2017: C<Module> L<Algorithm::C3|Algorithm::C3>
> ---
>> =head2 Wed Jan 11 22:20:34 2017: C<Module> L<Algorithm::C3|Algorithm::C3>
> --8<---------------cut here---------------end--------------->8---
Isn't this fixed by be12f4e27505edd87c4aa457fec43dd0fee23b79 from
'core-updates'?
[signature.asc (application/pgp-signature, inline)]
Information forwarded
to
bug-guix <at> gnu.org
:
bug#23776
; Package
guix
.
(Fri, 13 Jan 2017 08:03:02 GMT)
Full text and
rfc822 format available.
Message #35 received at 23776 <at> debbugs.gnu.org (full text, mbox):
Marius Bakke <mbakke <at> fastmail.com> skribis:
> Ludovic Courtès <ludo <at> gnu.org> writes:
>
>> Leo Famulari <leo <at> famulari.name> skribis:
>>
>>> On Thu, Jun 16, 2016 at 11:39:27AM -0400, Leo Famulari wrote:
>>>> On Thu, Jun 16, 2016 at 01:33:46PM +0200, Ludovic Courtès wrote:
>>>> > The problem is described in <git://git.debian.org/git/reproducible/notes.git>:
>>>> >
>>>> > --8<---------------cut here---------------start------------->8---
>>>> > timestamps_in_documentation_generated_by_podman:
>>>> > description: |
>>>> > The module Pod::Man includes timestamps in its embedded manpages:
>>>> > http://sources.debian.net/src/perl/latest/cpan/podlators/lib/Pod/Man.pm/?hl=1700#L977
>>>> > They should be based on the mtime of the original file.
>>>> > url: https://wiki.debian.org/ReproducibleBuilds/TimestampsInManpagesGeneratedByPodMan
>>>>
>>>> According to the information on this page, we should set POD_MAN_DATE
>>>> while building. Should we make the perl-build-system export this
>>>> variable? Set to SOURCE_DATE_EPOCH?
>>>
>>> I noticed that Pod::Man is supposed to respect SOURCE_DATE_EPOCH, as of
>>> the upstream module version 4.03 (released 2015-12-06). Does anyone know
>>> how to check the version of the module bundled into perl?
>>
>> For the record, even though Pod::Man supposedly honors SOURCE_DATE_EPOCH
>> as of Perl 5.24, we still have this problem:
>>
>> --8<---------------cut here---------------start------------->8---
>> $ diff -r /gnu/store/hczskszmhm2l65vy8nv990lzc5dk3ln9-perl-algorithm-c3-0.10{,-check}
>> diff -r /gnu/store/hczskszmhm2l65vy8nv990lzc5dk3ln9-perl-algorithm-c3-0.10/lib/perl5/5.24.0/x86_64-linux-thread-multi/perllocal.pod /gnu/store/hczskszmhm2l65vy8nv990lzc5dk3ln9-perl-algorithm-c3-0.10-check/lib/perl5/5.24.0/x86_64-linux-thread-multi/perllocal.pod
>> 1c1
>> < =head2 Wed Jan 11 22:20:36 2017: C<Module> L<Algorithm::C3|Algorithm::C3>
>> ---
>>> =head2 Wed Jan 11 22:20:34 2017: C<Module> L<Algorithm::C3|Algorithm::C3>
>> --8<---------------cut here---------------end--------------->8---
>
> Isn't this fixed by be12f4e27505edd87c4aa457fec43dd0fee23b79 from
> 'core-updates'?
Oh, probably! I had forgotten about it, thanks for the heads-up.
Ludo’.
Reply sent
to
ludo <at> gnu.org (Ludovic Courtès)
:
You have taken responsibility.
(Tue, 31 Oct 2017 15:18:02 GMT)
Full text and
rfc822 format available.
Notification sent
to
ludo <at> gnu.org (Ludovic Courtès)
:
bug acknowledged by developer.
(Tue, 31 Oct 2017 15:18:02 GMT)
Full text and
rfc822 format available.
Message #40 received at 23776-done <at> debbugs.gnu.org (full text, mbox):
ludo <at> gnu.org (Ludovic Courtès) skribis:
> Marius Bakke <mbakke <at> fastmail.com> skribis:
>
>> Ludovic Courtès <ludo <at> gnu.org> writes:
[...]
>>> For the record, even though Pod::Man supposedly honors SOURCE_DATE_EPOCH
>>> as of Perl 5.24, we still have this problem:
>>>
>>> --8<---------------cut here---------------start------------->8---
>>> $ diff -r /gnu/store/hczskszmhm2l65vy8nv990lzc5dk3ln9-perl-algorithm-c3-0.10{,-check}
>>> diff -r /gnu/store/hczskszmhm2l65vy8nv990lzc5dk3ln9-perl-algorithm-c3-0.10/lib/perl5/5.24.0/x86_64-linux-thread-multi/perllocal.pod /gnu/store/hczskszmhm2l65vy8nv990lzc5dk3ln9-perl-algorithm-c3-0.10-check/lib/perl5/5.24.0/x86_64-linux-thread-multi/perllocal.pod
>>> 1c1
>>> < =head2 Wed Jan 11 22:20:36 2017: C<Module> L<Algorithm::C3|Algorithm::C3>
>>> ---
>>>> =head2 Wed Jan 11 22:20:34 2017: C<Module> L<Algorithm::C3|Algorithm::C3>
>>> --8<---------------cut here---------------end--------------->8---
>>
>> Isn't this fixed by be12f4e27505edd87c4aa457fec43dd0fee23b79 from
>> 'core-updates'?
>
> Oh, probably! I had forgotten about it, thanks for the heads-up.
Closing this bug!
Ludo’.
bug archived.
Request was from
Debbugs Internal Request <help-debbugs <at> gnu.org>
to
internal_control <at> debbugs.gnu.org
.
(Wed, 29 Nov 2017 12:24:05 GMT)
Full text and
rfc822 format available.
This bug report was last modified 7 years and 262 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.