Skip Menu |

This queue is for tickets about the Inline-CPP CPAN distribution.

Report information
The Basics
Id: 122557
Status: new
Priority: 0/
Queue: Inline-CPP

People
Owner: Nobody in particular
Requestors: ppisar [...] redhat.com
Cc:
AdminCc:

Bug Information
Severity: (no value)
Broken in: 0.74
Fixed in: (no value)



Subject: Inline/CPP/Config.pm installed into noarch specific path
Inline/CPP/Config.pm file contains compiler flags that are specific to a platform where Makefile.PL was executed. E.g. on my x86_64 machine it contains: # DO NOT MANUALLY ALTER THE FOLLOWING TWO LINES: Makefile.PL locates them by # matching their syntax and identifier names. our $compiler = 'g++ -D_REENTRANT -D_GNU_SOURCE -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -m64 -mtune=generic -fwrapv -fno-strict-aliasing -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -xc++'; That means the file is not portable across platforms and should be installed into architecture specific path (INST_ARCHLIB, not INST_LIB in ExtUtils::MakeMaker terminology). Again on machine it's installed into: /usr/share/perl5/vendor_perl/Inline/CPP/Config.pm But it should be installed into: /usr/lib64/perl5/vendor_perl/Inline/CPP/Config.pm This does not a big issue if a user installs Inline-CPP manually on his host. But when it comes to prebuilding software once and distributing it to many machines multiple times (like Linux distributions do or when sharing them via NFS in a large company), it reveals that the compiler command does not match the target host.
From: ppisar [...] redhat.com
Dne Pá 21.čec.2017 04:54:28, ppisar napsal(a): Show quoted text
> This does not a big issue if a user installs Inline-CPP manually on > his host. But when it comes to prebuilding software once and > distributing it to many machines multiple times (like Linux > distributions do or when sharing them via NFS in a large company), it > reveals that the compiler command does not match the target host.
Attached patch causes installation into architecture-specific path.
Subject: 0001-Install-into-architecture-specific-path.patch
From 6e5e2257a2fe454fd580c95756cf362fe4a1bf43 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Petr=20P=C3=ADsa=C5=99?= <ppisar@redhat.com> Date: Fri, 21 Jul 2017 11:16:23 +0200 Subject: [PATCH] Install into architecture specific path MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Inline/CPP/Config.pm stores C++ flags that are specific to architecture. CPAN RT#122557 Signed-off-by: Petr Písař <ppisar@redhat.com> --- Makefile.PL | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/Makefile.PL b/Makefile.PL index 0d5f4a5..6fad74d 100644 --- a/Makefile.PL +++ b/Makefile.PL @@ -57,6 +57,13 @@ WriteMakefile( 'FindBin' => '0', # Core. 'Config' => '0', # Core. }, + PM => { + 'lib/Inline/CPP.pod' => '$(INST_LIB)/Inline/CPP.pod', + 'lib/Inline/CPP.pm' => '$(INST_LIB)/Inline/CPP.pm', + 'lib/Inline/CPP/Config.pm' => '$(INST_ARCHLIB)/Inline/CPP/Config.pm', + 'lib/Inline/CPP/Parser/RecDescent.pm' => + '$(INST_LIB)/Inline/CPP/Parser/RecDescent.pm', + }, META_MERGE => { 'meta-spec' => { version => 2, -- 2.9.4