unofficial mirror of guix-devel@gnu.org 
 help / color / mirror / code / Atom feed
* [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).