Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ExtUtils::Command::MM not installing files in vendor arch-specific directories #16014

Closed
p5pRT opened this issue Jun 12, 2017 · 21 comments
Closed

Comments

@p5pRT
Copy link

p5pRT commented Jun 12, 2017

Migrated from rt.perl.org#131559 (status was 'resolved')

Searchable as RT131559$

@p5pRT
Copy link
Author

p5pRT commented Jun 12, 2017

From al.dunsmuir@sympatico.ca

Created by al.dunsmuir@sympatico.ca

Perl Info

Flags:
    category=core
    severity=medium

Site configuration information for perl 5.26.0:

Configured by Al Dunsmuir at Mon Jun 12 09:35:43  2017.

Summary of my perl5 (revision 5 version 26 subversion 0) configuration:
   
  Platform:
    osname=aix
    osvers=5.3.0.0
    archname=ppc-thread-multi
    uname='aix beast53 3 5 000fe17f4c00 powerpc aix '
    config_args='-desr -Darchname=ppc -Dmyhostname=aix53 -Dcf_by=Al Dunsmuir -Dcf_email=al.dunsmuir@sympatico.ca -Dperladmin=al.dunsmuir@sympatico.ca -Dcc=xlc_r -Dccflags=-q32 -brtl -bdynamic -Dldflags=-q32 -s -Wl,-bmaxdata:0x80000000 -L/opt/freeware/lib -L/usr/lib -Duselargefiles -Duseshrplib -Dusethreads -Dprefix=/opt/freeware -Dvendorprefix=/opt/freeware -Dinstallprefix=/opt/freeware -Dinstallusrbinperl=n -Dman3ext=3 -Dscriptdir=/opt/freeware/bin -Dpager=/usr/bin/more -Dinc_version_list=5.26.0 -Uversiononly -A define:ld=xlc_r -A define:ccdlflags=-q32 -brtl -bdynamic -A define:lddlflags=-q32 -bexpall -G -L/opt/freeware/lib -L/usr/lib'
    hint=recommended
    useposix=true
    d_sigaction=define
    useithreads=define
    usemultiplicity=define
    use64bitint=undef
    use64bitall=undef
    uselongdouble=undef
    usemymalloc=n
    default_inc_excludes_dot=define
    bincompat5005=undef
  Compiler:
    cc='xlc_r -q32'
    ccflags ='-q32 -brtl -bdynamic -D_ALL_SOURCE -D_ANSI_C_SOURCE -D_POSIX_SOURCE -qmaxmem=-1 -qnoansialias -qlanglvl=extc99 -DUSE_NATIVE_DLOPEN -DNEED_PTHREAD_INIT -q32 -D_LARGE_FILES'
    optimize='-O'
    cppflags='-D_ALL_SOURCE -D_ANSI_C_SOURCE -D_POSIX_SOURCE -DUSE_NATIVE_DLOPEN -DNEED_PTHREAD_INIT'
    ccversion='11.1.0.22'
    gccversion=''
    gccosandvers=''
    intsize=4
    longsize=4
    ptrsize=4
    doublesize=8
    byteorder=4321
    doublekind=4
    d_longlong=define
    longlongsize=8
    d_longdbl=define
    longdblsize=8
    longdblkind=0
    ivtype='long'
    ivsize=4
    nvtype='double'
    nvsize=8
    Off_t='off_t'
    lseeksize=8
    alignbytes=8
    prototype=define
  Linker and Libraries:
    ld='xlc_r'
    ldflags ='-q32 -s -Wl,-bmaxdata:0x80000000 -L/opt/freeware/lib -L/usr/lib -brtl -bdynamic -b32 -bmaxdata:0x80000000'
    libpth=/lib /usr/lib /usr/ccs/lib /usr/lib64
    libs=-lpthread -lbind -lnsl -lgdbm -ldbm -ldb -ldl -lld -lm -lcrypt -lpthreads -lc
    perllibs=-lpthread -lbind -lnsl -ldl -lld -lm -lcrypt -lpthreads -lc
    libc=
    so=a
    useshrplib=true
    libperl=libperl.a
    gnulibc_version=''
  Dynamic Linking:
    dlsrc=dl_aix.xs
    dlext=so
    d_dlsymun=undef
    ccdlflags='-q32 -brtl -bdynamic -bE:/opt/freeware/lib/perl5/5.26.0/ppc-thread-multi/CORE/perl.exp'
    cccdlflags=' '
    lddlflags='-q32 -bexpall -G -L/opt/freeware/lib -L/usr/lib'



@INC for perl 5.26.0:
    /opt/freeware/lib/perl5/site_perl/5.26.0/ppc-thread-multi
    /opt/freeware/lib/perl5/site_perl/5.26.0
    /opt/freeware/lib/perl5/vendor_perl/5.26.0/ppc-thread-multi
    /opt/freeware/lib/perl5/vendor_perl/5.26.0
    /opt/freeware/lib/perl5/5.26.0/ppc-thread-multi
    /opt/freeware/lib/perl5/5.26.0
    /opt/freeware/lib/perl5/site_perl/5.26.0
    /opt/freeware/lib/perl5/site_perl
    /opt/freeware/lib/perl5/vendor_perl/5.26.0
    /opt/freeware/lib/perl5/vendor_perl


Environment for perl 5.26.0:
    HOME=/home/bob
    LANG=en_US
    LANGUAGE (unset)
    LC__FASTMSG=true
    LD_LIBRARY_PATH (unset)
    LIBPATH (unset)
    LOGDIR (unset)
    PATH=/opt/freeware/bin:/usr/bin:/bin:/etc:/usr/sbin:/usr/ucb:/usr/bin/X11:/sbin:/usr/vac/bin:/usr/vacpp/bin:/usr/ccs/bin:/usr/dt/bin:/usr/opt/perl5/bin:/opt/freeware/sbin:/usr/local/bin:/usr/lib/instl:/home/bob/bin:/apps/bin
    PERL_BADLANG (unset)
    SHELL=/usr/bin/ksh

@p5pRT
Copy link
Author

p5pRT commented Jun 12, 2017

From al.dunsmuir@sympatico.ca

Just noticed that ExtUtils​::MakeMaker 7.30 was reeleased today.
Rebuilding my perl 5.26.0 with that and will retry the externalpackage build.

--
Al Dunsmuir

@p5pRT
Copy link
Author

p5pRT commented Jun 12, 2017

From [Unknown Contact. See original ticket]

Just noticed that ExtUtils​::MakeMaker 7.30 was reeleased today.
Rebuilding my perl 5.26.0 with that and will retry the externalpackage build.

--
Al Dunsmuir

@p5pRT
Copy link
Author

p5pRT commented Jun 13, 2017

From al.dunsmuir@sympatico.ca

On Mon, 12 Jun 2017 14​:56​:30 -0700, al.dunsmuir@​sympatico.ca wrote​:

Just noticed that ExtUtils​::MakeMaker 7.30 was released today.
Rebuilding my perl 5.26.0 with that and will retry the external
package build.

Same problem persists after updating embedded EU​:MM to 7.30 release.
--
Al Dunsmuir

@p5pRT
Copy link
Author

p5pRT commented Jun 14, 2017

From al.dunsmuir@sympatico.ca

On Mon, 12 Jun 2017 18​:03​:59 -0700, al.dunsmuir@​sympatico.ca wrote​:

Same problem persists after updating embedded EU​:MM to 7.30
release.

Attached are the build logs from AIX 5.3 for 5.26.0 (with updated
EU​:MM) and 5.22.1.
--
Al Dunsmuir

@p5pRT
Copy link
Author

p5pRT commented Jun 14, 2017

@p5pRT
Copy link
Author

p5pRT commented Jun 14, 2017

@p5pRT
Copy link
Author

p5pRT commented Jun 21, 2017

From @tonycoz

On Wed, 14 Jun 2017 15​:29​:10 -0700, al.dunsmuir@​sympatico.ca wrote​:

On Mon, 12 Jun 2017 18​:03​:59 -0700, al.dunsmuir@​sympatico.ca wrote​:

Same problem persists after updating embedded EU​:MM to 7.30
release.

Attached are the build logs from AIX 5.3 for 5.26.0 (with updated
EU​:MM) and 5.22.1.

Could I see the generated Makefile from the 5.26 build please?

Tony

@p5pRT
Copy link
Author

p5pRT commented Jun 21, 2017

The RT System itself - Status changed from 'new' to 'open'

@p5pRT
Copy link
Author

p5pRT commented Jun 22, 2017

From al.dunsmuir@sympatico.ca

On Tue, 20 Jun 2017 22​:28​:52 -0700, tonyc wrote​:

On Wed, 14 Jun 2017 15​:29​:10 -0700,
Could I see the generated Makefile from the 5.26 build please?

Tony

Tony,

Attached are the Makefiles generated for the builds on both 5.22 and 5.26.

Please let me apologize for not noticing something important - the arch-specific builds with 5.22 are also failing the same way!

All of my 5.22 builds on my main system were completed by August of last year. I normally only use one system as a build environment, as my other 2 AIX boxes are tiny B50s (32-bit only). I rebuilt the 5.22 after getting the 5.26 failure (to get logs and verify the tests passed), and then used that 5.22 and a 32-bit subset of my main systems build setup to create the perl build environment on a B50. I guess in the rush to generate a log, I missed the glob failure messages on 5.22 entirely 8^(

The use of the wrong directory for arch builds is likely a result of an unintended change in my main perl build environment. Hopefully we can quickly track that down and correct it so that both the 5.22 and 5.26 arch builds work.

Thanks again for your assistance,
Al
I set up the

--
Al Dunsmuir

@p5pRT
Copy link
Author

p5pRT commented Jun 22, 2017

@p5pRT
Copy link
Author

p5pRT commented Jun 22, 2017

@p5pRT
Copy link
Author

p5pRT commented Jun 22, 2017

From al.dunsmuir@sympatico.ca

-On Thu, 22 Jun 2017 05​:01​:28 -0700, al.dunsmuir@​sympatico.ca wrote​:

On Tue, 20 Jun 2017 22​:28​:52 -0700, tonyc wrote​:

On Wed, 14 Jun 2017 15​:29​:10 -0700,
Could I see the generated Makefile from the 5.26 build please?

Tony

Tony,

Attached are the Makefiles generated for the builds on both 5.22 and
5.26.

Makefile.526 at line 93 has​:
INSTALLARCHLIB = /opt/freeware/lib/perl5/5.26.0/ppc-thread-multi
as expected.

Makefile.526 at line 97 has​:
INSTALLVENDORARCH = /opt/freeware/lib/perl5/vendor_perl/5.26.0
which is missing the final "ppc-thread-multi" arch directory.

Looks like the problem is caused during Makefile generation.

Attached is the build log for perl-Variable-Magic 5.26, with verbose testing turned on (in case it adds something useful).
--
Al Dunsmuir

@p5pRT
Copy link
Author

p5pRT commented Jun 22, 2017

@p5pRT
Copy link
Author

p5pRT commented Jun 22, 2017

From al.dunsmuir@sympatico.ca

On Thu, 22 Jun 2017 09​:33​:39 -0700, al.dunsmuir@​sympatico.ca wrote​:

Makefile.526 at line 97 has​:
INSTALLVENDORARCH = /opt/freeware/lib/perl5/vendor_perl/5.26.0
which is missing the final "ppc-thread-multi" arch directory.

As I understand it, EU​:MM gets the configuration from Config.pm
which in turn gets it from config.sh.

[bob​:/apps/rpmbuild/BUILD/perl-5.26.0/32bit]$grep -in vendorarch config.sh
652​:d_vendorarch='define'
894​:installvendorarch='/opt/freeware/lib/perl5/vendor_perl/5.26.0/ppc-thread-multi'
1218​:vendorarch='/opt/freeware/lib/perl5/vendor_perl/5.26.0/ppc-thread-multi'
1219​:vendorarchexp='/opt/freeware/lib/perl5/vendor_perl/5.26.0/ppc-thread-multi'

Somehow the value from config.sh is being altered.
--
Al Dunsmuir

@p5pRT
Copy link
Author

p5pRT commented Jun 22, 2017

From [Unknown Contact. See original ticket]

On Thu, 22 Jun 2017 09​:33​:39 -0700, al.dunsmuir@​sympatico.ca wrote​:

Makefile.526 at line 97 has​:
INSTALLVENDORARCH = /opt/freeware/lib/perl5/vendor_perl/5.26.0
which is missing the final "ppc-thread-multi" arch directory.

As I understand it, EU​:MM gets the configuration from Config.pm
which in turn gets it from config.sh.

[bob​:/apps/rpmbuild/BUILD/perl-5.26.0/32bit]$grep -in vendorarch config.sh
652​:d_vendorarch='define'
894​:installvendorarch='/opt/freeware/lib/perl5/vendor_perl/5.26.0/ppc-thread-multi'
1218​:vendorarch='/opt/freeware/lib/perl5/vendor_perl/5.26.0/ppc-thread-multi'
1219​:vendorarchexp='/opt/freeware/lib/perl5/vendor_perl/5.26.0/ppc-thread-multi'

Somehow the value from config.sh is being altered.
--
Al Dunsmuir

@p5pRT
Copy link
Author

p5pRT commented Jun 23, 2017

From al.dunsmuir@sympatico.ca

On Thu, 22 Jun 2017 13​:20​:05 -0700, al.dunsmuir@​sympatico.ca wrote​:

On Thu, 22 Jun 2017 09​:33​:39 -0700, al.dunsmuir@​sympatico.ca wrote​:

Makefile.526 at line 97 has​:
INSTALLVENDORARCH = /opt/freeware/lib/perl5/vendor_perl/5.26.0
which is missing the final "ppc-thread-multi" arch directory.

As I understand it, EU​:MM gets the configuration from Config.pm
which in turn gets it from config.sh.

[bob​:/apps/rpmbuild/BUILD/perl-5.26.0/32bit]$grep -in vendorarch
config.sh
652​:d_vendorarch='define'
894​:installvendorarch='/opt/freeware/lib/perl5/vendor_perl/5.26.0/ppc-
thread-multi'
1218​:vendorarch='/opt/freeware/lib/perl5/vendor_perl/5.26.0/ppc-
thread-multi'
1219​:vendorarchexp='/opt/freeware/lib/perl5/vendor_perl/5.26.0/ppc-
thread-multi'

Somehow the value from config.sh is being altered.

My original RPM .spec file recipe was​:
%{__perl} Makefile.PL INSTALLDIRS=vendor INSTALLVENDORLIB=%{perl_vendorlib} INSTALLVENDORMAN3DIR=%{_mandir}/man3 NO_PACKLIST=1 OPTIMIZE="%{optflags}"

I changed this to​:
%{__perl} Makefile.PL INSTALLDIRS=vendor INSTALLVENDORLIB=%{perl_vendorlib} INSTALLVENDORARCH=%{perl_vendorarch} INSTALLVENDORMAN3DIR=%{_mandir}/man3 NO_PACKLIST=1 OPTIMIZE="%{optflags}"
and the build was successful

It appears that overriding INSTALLVENDORLIB without overriding INSTALLVENDORARCH caused the INSTALLVENDORARCH value to be corrupted.

I tried the minimalistic version​:
%{__perl} Makefile.PL INSTALLDIRS=vendor NO_PACKLIST=1 OPTIMIZE="%{optflags}"
and that also worked.

So it appears that the EU​:MM handling of just INSTALLVENDORLIB results in an invalid INSTALLVENDORARCH value.

These overrides were from perl RPM builds back to 5.8.8 days, and appear to no longer be required. Since I'm doing a full rebase to 5.26.0 anyway, I will remove them from all my .spec file recipes. That solves my immediate problem, but EU​:MM should be corrected in this area.
--
Al Dunsmuir

@p5pRT
Copy link
Author

p5pRT commented Jun 23, 2017

From [Unknown Contact. See original ticket]

On Thu, 22 Jun 2017 13​:20​:05 -0700, al.dunsmuir@​sympatico.ca wrote​:

On Thu, 22 Jun 2017 09​:33​:39 -0700, al.dunsmuir@​sympatico.ca wrote​:

Makefile.526 at line 97 has​:
INSTALLVENDORARCH = /opt/freeware/lib/perl5/vendor_perl/5.26.0
which is missing the final "ppc-thread-multi" arch directory.

As I understand it, EU​:MM gets the configuration from Config.pm
which in turn gets it from config.sh.

[bob​:/apps/rpmbuild/BUILD/perl-5.26.0/32bit]$grep -in vendorarch
config.sh
652​:d_vendorarch='define'
894​:installvendorarch='/opt/freeware/lib/perl5/vendor_perl/5.26.0/ppc-
thread-multi'
1218​:vendorarch='/opt/freeware/lib/perl5/vendor_perl/5.26.0/ppc-
thread-multi'
1219​:vendorarchexp='/opt/freeware/lib/perl5/vendor_perl/5.26.0/ppc-
thread-multi'

Somehow the value from config.sh is being altered.

My original RPM .spec file recipe was​:
%{__perl} Makefile.PL INSTALLDIRS=vendor INSTALLVENDORLIB=%{perl_vendorlib} INSTALLVENDORMAN3DIR=%{_mandir}/man3 NO_PACKLIST=1 OPTIMIZE="%{optflags}"

I changed this to​:
%{__perl} Makefile.PL INSTALLDIRS=vendor INSTALLVENDORLIB=%{perl_vendorlib} INSTALLVENDORARCH=%{perl_vendorarch} INSTALLVENDORMAN3DIR=%{_mandir}/man3 NO_PACKLIST=1 OPTIMIZE="%{optflags}"
and the build was successful

It appears that overriding INSTALLVENDORLIB without overriding INSTALLVENDORARCH caused the INSTALLVENDORARCH value to be corrupted.

I tried the minimalistic version​:
%{__perl} Makefile.PL INSTALLDIRS=vendor NO_PACKLIST=1 OPTIMIZE="%{optflags}"
and that also worked.

So it appears that the EU​:MM handling of just INSTALLVENDORLIB results in an invalid INSTALLVENDORARCH value.

These overrides were from perl RPM builds back to 5.8.8 days, and appear to no longer be required. Since I'm doing a full rebase to 5.26.0 anyway, I will remove them from all my .spec file recipes. That solves my immediate problem, but EU​:MM should be corrected in this area.
--
Al Dunsmuir

@p5pRT
Copy link
Author

p5pRT commented Jun 26, 2017

From @tonycoz

On Fri, 23 Jun 2017 05​:51​:10 -0700, al.dunsmuir@​sympatico.ca wrote​:

These overrides were from perl RPM builds back to 5.8.8 days, and
appear to no longer be required. Since I'm doing a full rebase to
5.26.0 anyway, I will remove them from all my .spec file recipes.
That solves my immediate problem, but EU​:MM should be corrected in
this area.

Ok, it sounds like you've tracked this down yourself.

EU​::MM is maintained on CPAN, bug in it should be reported via the Extutils​::MakeMaker queue at​:

https://rt.cpan.org/Public/Dist/Display.html?Name=ExtUtils-MakeMaker

Tony

@p5pRT
Copy link
Author

p5pRT commented Jun 26, 2017

From al.dunsmuir@sympatico.ca

On Sun, 25 Jun 2017 17​:04​:53 -0700, tonyc wrote​:

On Fri, 23 Jun 2017 05​:51​:10 -0700, al.dunsmuir@​sympatico.ca wrote​:

These overrides were from perl RPM builds back to 5.8.8 days, and
appear to no longer be required. Since I'm doing a full rebase to
5.26.0 anyway, I will remove them from all my .spec file recipes.
That solves my immediate problem, but EU​:MM should be corrected in
this area.

Ok, it sounds like you've tracked this down yourself.

EU​::MM is maintained on CPAN, bug in it should be reported via the
Extutils​::MakeMaker queue at​:

https://rt.cpan.org/Public/Dist/Display.html?Name=ExtUtils-MakeMake

Tony,

Created​:
122236 EUMM​: Partial INSTALLVENDOR* override results in non-arch INSTALLVENDORARCH
https://rt.cpan.org/Public/Bug/Display.html?id=122236

--
Al Dunsmuir

@p5pRT p5pRT closed this as completed Jun 27, 2017
@p5pRT
Copy link
Author

p5pRT commented Jun 27, 2017

@iabyn - Status changed from 'open' to 'resolved'

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant