* [PATCH] Enable deterministic perl archives.
@ 2016-11-23 17:53 Marius Bakke
2016-11-25 23:19 ` Ludovic Courtès
0 siblings, 1 reply; 5+ messages in thread
From: Marius Bakke @ 2016-11-23 17:53 UTC (permalink / raw)
To: guix-devel
[-- Attachment #1: Type: text/plain, Size: 245 bytes --]
Hi Guix,
This patch disables installation of "perllocal.pod" files which records
build time and not much else in perl packages.
I haven't checked whether this is needed for packages using 'Build.PL',
if you know any such package let me know.
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: 0001-build-system-perl-Do-not-create-non-deterministic-.p.patch --]
[-- Type: text/x-patch, Size: 1132 bytes --]
From 34d0dd4e8a002d3768a55e8b28c60c1490b34d45 Mon Sep 17 00:00:00 2001
From: Marius Bakke <mbakke@fastmail.com>
Date: Wed, 23 Nov 2016 18:40:53 +0100
Subject: [PATCH] build-system/perl: Do not create non-deterministic
'.perllocal' files.
* guix/build/perl-build-system.scm (configure): Add "NO_PERLLOCAL=1"
to Makefile.PL arguments.
---
guix/build/perl-build-system.scm | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/guix/build/perl-build-system.scm b/guix/build/perl-build-system.scm
index 8f480ea..6d9092b 100644
--- a/guix/build/perl-build-system.scm
+++ b/guix/build/perl-build-system.scm
@@ -42,7 +42,7 @@
"--installdirs=site" ,@module-build-flags))
((file-exists? "Makefile.PL")
`("Makefile.PL" ,(string-append "PREFIX=" out)
- "INSTALLDIRS=site" ,@make-maker-flags))
+ "INSTALLDIRS=site" "NO_PERLLOCAL=1" ,@make-maker-flags))
(else (error "no Build.PL or Makefile.PL found")))))
(format #t "running `perl' with arguments ~s~%" args)
(zero? (apply system* "perl" args))))
--
2.10.2
^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: [PATCH] Enable deterministic perl archives.
2016-11-23 17:53 [PATCH] Enable deterministic perl archives Marius Bakke
@ 2016-11-25 23:19 ` Ludovic Courtès
2016-11-26 8:06 ` Marius Bakke
0 siblings, 1 reply; 5+ messages in thread
From: Ludovic Courtès @ 2016-11-25 23:19 UTC (permalink / raw)
To: Marius Bakke; +Cc: guix-devel
Hi,
Marius Bakke <mbakke@fastmail.com> skribis:
> Hi Guix,
>
> This patch disables installation of "perllocal.pod" files which records
> build time and not much else in perl packages.
>
> I haven't checked whether this is needed for packages using 'Build.PL',
> if you know any such package let me know.
Are these perllocal.pod files really useless?
In Debian this problem is filed as <https://bugs.debian.org/835815>.
Apparently upstream ended up using SOURCE_DATE_EPOCH:
https://github.com/Perl-Toolchain-Gang/ExtUtils-MakeMaker/pull/279
Should we do that instead? Or are perllocal.pod pointless anyway?
Thanks,
Ludo’.
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH] Enable deterministic perl archives.
2016-11-25 23:19 ` Ludovic Courtès
@ 2016-11-26 8:06 ` Marius Bakke
2016-11-28 13:42 ` Ludovic Courtès
0 siblings, 1 reply; 5+ messages in thread
From: Marius Bakke @ 2016-11-26 8:06 UTC (permalink / raw)
To: Ludovic Courtès; +Cc: guix-devel
[-- Attachment #1: Type: text/plain, Size: 2240 bytes --]
Ludovic Courtès <ludo@gnu.org> writes:
> Hi,
>
> Marius Bakke <mbakke@fastmail.com> skribis:
>
>> Hi Guix,
>>
>> This patch disables installation of "perllocal.pod" files which records
>> build time and not much else in perl packages.
>>
>> I haven't checked whether this is needed for packages using 'Build.PL',
>> if you know any such package let me know.
>
> Are these perllocal.pod files really useless?
>
> In Debian this problem is filed as <https://bugs.debian.org/835815>.
> Apparently upstream ended up using SOURCE_DATE_EPOCH:
>
> https://github.com/Perl-Toolchain-Gang/ExtUtils-MakeMaker/pull/279
>
> Should we do that instead? Or are perllocal.pod pointless anyway?
As far as I can tell, they really are pointless. Makefiles generated by
MakeMaker have a "pure_install" target that do not create them.
From http://www.perlmonks.org/?node=ExtUtils%3A%3AMakeMaker:
"make install per default writes some documentation of what has been
done into the file $(INSTALLARCHLIB)/perllocal.pod. This feature can be
bypassed by calling make pure_install."
Here is a typical perllocal.pod:
--8<---------------cut here---------------start------------->8---
=head2 Tue Oct 25 03:46:54 2016: C<Module> L<Eval::Closure|Eval::Closure>
=over 4
=item *
C<installed into: /gnu/store/8bqypkq60c72ndxfxi9g661r6rzby7iv-perl-eval-closure-0.14/lib/perl5/site_perl/5.24.0>
=item *
C<LINKTYPE: dynamic>
=item *
C<VERSION: 0.14>
=item *
C<EXE_FILES: >
=back
--8<---------------cut here---------------end--------------->8---
They contain build date, FFI language, link type, version and a list of
executables.
As far as I can tell, this is used by "traditional" package managers
such as CPAN, which appends information about all modules in a location
to a single perllocal.pod file [0]. Since our modules are
self-contained, they will not have any more utility than the above.
[0]: http://www.cpan.org/misc/cpan-faq.html#How_installed_modules
"Each time a module is installed on your system, it appends information
like the following to a file called perllocal.pod which can be found in
/usr/local/lib/perl5/version number/architecture/ or something akin to
that"
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 487 bytes --]
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH] Enable deterministic perl archives.
2016-11-26 8:06 ` Marius Bakke
@ 2016-11-28 13:42 ` Ludovic Courtès
2016-11-28 22:13 ` Marius Bakke
0 siblings, 1 reply; 5+ messages in thread
From: Ludovic Courtès @ 2016-11-28 13:42 UTC (permalink / raw)
To: Marius Bakke; +Cc: guix-devel
Hello!
Marius Bakke <mbakke@fastmail.com> skribis:
> As far as I can tell, they really are pointless. Makefiles generated by
> MakeMaker have a "pure_install" target that do not create them.
>
> From http://www.perlmonks.org/?node=ExtUtils%3A%3AMakeMaker:
>
> "make install per default writes some documentation of what has been
> done into the file $(INSTALLARCHLIB)/perllocal.pod. This feature can be
> bypassed by calling make pure_install."
>
> Here is a typical perllocal.pod:
>
> =head2 Tue Oct 25 03:46:54 2016: C<Module> L<Eval::Closure|Eval::Closure>
>
> =over 4
>
> =item *
>
> C<installed into: /gnu/store/8bqypkq60c72ndxfxi9g661r6rzby7iv-perl-eval-closure-0.14/lib/perl5/site_perl/5.24.0>
>
> =item *
>
> C<LINKTYPE: dynamic>
>
> =item *
>
> C<VERSION: 0.14>
>
> =item *
>
> C<EXE_FILES: >
>
> =back
>
> They contain build date, FFI language, link type, version and a list of
> executables.
>
> As far as I can tell, this is used by "traditional" package managers
> such as CPAN, which appends information about all modules in a location
> to a single perllocal.pod file [0]. Since our modules are
> self-contained, they will not have any more utility than the above.
>
> [0]: http://www.cpan.org/misc/cpan-faq.html#How_installed_modules
>
> "Each time a module is installed on your system, it appends information
> like the following to a file called perllocal.pod which can be found in
> /usr/local/lib/perl5/version number/architecture/ or something akin to
> that"
Oh so it seems similar to things like ld.so.cache.
Then OK for this patch in core-updates, with a comment explaining what
the flag does and why it’s OK (and/or a link to this thread).
Thank you!
Ludo’.
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH] Enable deterministic perl archives.
2016-11-28 13:42 ` Ludovic Courtès
@ 2016-11-28 22:13 ` Marius Bakke
0 siblings, 0 replies; 5+ messages in thread
From: Marius Bakke @ 2016-11-28 22:13 UTC (permalink / raw)
To: Ludovic Courtès; +Cc: guix-devel
[-- Attachment #1: Type: text/plain, Size: 1940 bytes --]
Ludovic Courtès <ludo@gnu.org> writes:
> Hello!
>
> Marius Bakke <mbakke@fastmail.com> skribis:
>
>> As far as I can tell, they really are pointless. Makefiles generated by
>> MakeMaker have a "pure_install" target that do not create them.
>>
>> From http://www.perlmonks.org/?node=ExtUtils%3A%3AMakeMaker:
>>
>> "make install per default writes some documentation of what has been
>> done into the file $(INSTALLARCHLIB)/perllocal.pod. This feature can be
>> bypassed by calling make pure_install."
>>
>> Here is a typical perllocal.pod:
>>
>> =head2 Tue Oct 25 03:46:54 2016: C<Module> L<Eval::Closure|Eval::Closure>
>>
>> =over 4
>>
>> =item *
>>
>> C<installed into: /gnu/store/8bqypkq60c72ndxfxi9g661r6rzby7iv-perl-eval-closure-0.14/lib/perl5/site_perl/5.24.0>
>>
>> =item *
>>
>> C<LINKTYPE: dynamic>
>>
>> =item *
>>
>> C<VERSION: 0.14>
>>
>> =item *
>>
>> C<EXE_FILES: >
>>
>> =back
>>
>> They contain build date, FFI language, link type, version and a list of
>> executables.
>>
>> As far as I can tell, this is used by "traditional" package managers
>> such as CPAN, which appends information about all modules in a location
>> to a single perllocal.pod file [0]. Since our modules are
>> self-contained, they will not have any more utility than the above.
>>
>> [0]: http://www.cpan.org/misc/cpan-faq.html#How_installed_modules
>>
>> "Each time a module is installed on your system, it appends information
>> like the following to a file called perllocal.pod which can be found in
>> /usr/local/lib/perl5/version number/architecture/ or something akin to
>> that"
>
> Oh so it seems similar to things like ld.so.cache.
>
> Then OK for this patch in core-updates, with a comment explaining what
> the flag does and why it’s OK (and/or a link to this thread).
OK. Pushed to core-updates as be12f4e27505edd87c4aa457fec43dd0fee23b79!
>
> Thank you!
>
> Ludo’.
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 487 bytes --]
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2016-11-28 22:13 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-11-23 17:53 [PATCH] Enable deterministic perl archives Marius Bakke
2016-11-25 23:19 ` Ludovic Courtès
2016-11-26 8:06 ` Marius Bakke
2016-11-28 13:42 ` Ludovic Courtès
2016-11-28 22:13 ` Marius Bakke
Code repositories for project(s) associated with this public inbox
https://git.savannah.gnu.org/cgit/guix.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).