[CentOS-devel] Cannot recompile CentOS 7 perl srpms from Vault because built files end up in unexpected dirs

Lars Holowko

lars.holowko at gmail.com
Thu Jul 31 16:20:12 UTC 2014


Hi there,


I am trying to recompile
http://vault.centos.org/7.0.1406/os/Source/SPackages/rrdtool-1.4.8-8.el7.src.rpm
to also get the rrdtool-perl sub package for which there are no binaries
provided. But when it tries to build the perl sub module it fails with:


writing
/root/rpmbuild/BUILDROOT/rrdtool-1.4.8-8.el7.centos.x86_64/usr/lib64/python2.7/site-packages/py_rrdtool-0.2.2-py2.7.egg-info
make[3]: Leaving directory `/root/rpmbuild/BUILD/rrdtool-1.4.8/bindings'
make[2]: Leaving directory `/root/rpmbuild/BUILD/rrdtool-1.4.8/bindings'
make[1]: Leaving directory `/root/rpmbuild/BUILD/rrdtool-1.4.8/bindings'
make[1]: Entering directory `/root/rpmbuild/BUILD/rrdtool-1.4.8'
make[2]: Entering directory `/root/rpmbuild/BUILD/rrdtool-1.4.8'
make[2]: Nothing to be done for `install-exec-am'.
make[2]: Nothing to be done for `install-data-am'.
make[2]: Leaving directory `/root/rpmbuild/BUILD/rrdtool-1.4.8'
make[1]: Leaving directory `/root/rpmbuild/BUILD/rrdtool-1.4.8'
+ /usr/bin/install -D -m0755 php4/modules/rrdtool.so
/root/rpmbuild/BUILDROOT/rrdtool-1.4.8-8.el7.centos.x86_64/usr/lib64/php/modules/rrdtool.so
+ /usr/bin/rm -rf php4/examples/.svn
+ /usr/bin/mkdir -p
/root/rpmbuild/BUILDROOT/rrdtool-1.4.8-8.el7.centos.x86_64/etc/php.d
+ /usr/bin/cat
+ /usr/bin/mv
/root/rpmbuild/BUILDROOT/rrdtool-1.4.8-8.el7.centos.x86_64/usr/share/perl5/vendor_perl/RRDp.pm
/root/rpmbuild/BUILDROOT/rrdtool-1.4.8-8.el7.centos.x86_64/usr/lib64/perl5/vendor_perl/
/usr/bin/mv: cannot stat
‘/root/rpmbuild/BUILDROOT/rrdtool-1.4.8-8.el7.centos.x86_64/usr/share/perl5/vendor_perl/RRDp.pm’:
No such file or directory
error: Bad exit status from /var/tmp/rpm-tmp.t4Flhd (%install)


RPM build errors:
    Bad exit status from /var/tmp/rpm-tmp.t4Flhd (%install)
[root at larsbuild7 ~]#


I get the similar errors (files getting copied in the wrong directories
during build time) with other perl srpms.

e.g.
http://vault.centos.org/7.0.1406/os/Source/SPackages/perl-Data-Dumper-2.145-3.el7.src.rpm


rpmbuild -ba rpm/SPECS/perl-Data-Dumper.spec
Executing(%prep): /bin/sh -e /home/lars/rpm/tmp/rpm-tmp.pLTYSe
+ umask 022
+ cd /home/lars/rpm/BUILD
+ cd /home/lars/rpm/BUILD
+ rm -rf Data-Dumper-2.145
+ /usr/bin/gzip -dc /home/lars/rpm/SOURCES/Data-Dumper-2.145.tar.gz
+ /usr/bin/tar -xf -
+ STATUS=0
+ '[' 0 -ne 0 ']'
+ cd Data-Dumper-2.145
+ /usr/bin/chmod -Rf a+rX,u+w,g-w,o-w .
+ sed -i /MAN3PODS/d Makefile.PL
+ exit 0
Executing(%build): /bin/sh -e /home/lars/rpm/tmp/rpm-tmp.66tgMG
+ umask 022
+ cd /home/lars/rpm/BUILD
+ cd Data-Dumper-2.145
+ perl Makefile.PL INSTALLDIRS=vendor 'OPTIMIZE=-O2 -g -pipe -Wall
-Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong
--param=ssp-buffer-size=4 -grecord-gcc-switches   -m64 -mtune=generic'
Checking if your kit is complete...
Looks good
Writing Makefile for Data::Dumper
Writing MYMETA.yml and MYMETA.json
+ make -j12
/usr/bin/perl /usr/share/perl5/vendor_perl/ExtUtils/xsubpp  -typemap
/usr/share/perl5/ExtUtils/typemap  Dumper.xs > Dumper.xsc && mv Dumper.xsc
Dumper.c
Running Mkbootstrap for Data::Dumper ()
chmod 644 Dumper.bs
cp Dumper.bs blib/arch/auto/Data/Dumper/Dumper.bs
chmod 644 blib/arch/auto/Data/Dumper/Dumper.bs
cp Dumper.pm blib/lib/Data/Dumper.pm
gcc -c   -D_REENTRANT -D_GNU_SOURCE -fno-strict-aliasing -pipe
-fstack-protector -I/usr/local/include -D_LARGEFILE_SOURCE
-D_FILE_OFFSET_BITS=64 -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2
-fexceptions -fstack-protector-strong --param=ssp-buffer-size=4
-grecord-gcc-switches   -m64 -mtune=generic   -DVERSION=\"2.145\"
-DXS_VERSION=\"2.145\" -fPIC "-I/usr/lib64/perl5/CORE"  -DUSE_PPPORT_H
Dumper.c
rm -f blib/arch/auto/Data/Dumper/Dumper.so
gcc  -shared -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions
-fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches
-m64 -mtune=generic -Wl,-z,relro  Dumper.o  -o
blib/arch/auto/Data/Dumper/Dumper.so \
      \

chmod 755 blib/arch/auto/Data/Dumper/Dumper.so
Manifying blib/man3/Data::Dumper.3pm
+ exit 0
Executing(%install): /bin/sh -e /home/lars/rpm/tmp/rpm-tmp.Ltvukd
+ umask 022
+ cd /home/lars/rpm/BUILD
+ '[' /home/lars/rpm/BUILDROOT/perl-Data-Dumper-2.145-3.el7.centos.x86_64
'!=' / ']'
+ rm -rf /home/lars/rpm/BUILDROOT/perl-Data-Dumper-2.145-3.el7.centos.x86_64
++ dirname
/home/lars/rpm/BUILDROOT/perl-Data-Dumper-2.145-3.el7.centos.x86_64
+ mkdir -p /home/lars/rpm/BUILDROOT
+ mkdir /home/lars/rpm/BUILDROOT/perl-Data-Dumper-2.145-3.el7.centos.x86_64
+ cd Data-Dumper-2.145
+ make pure_install
DESTDIR=/home/lars/rpm/BUILDROOT/perl-Data-Dumper-2.145-3.el7.centos.x86_64
Files found in blib/arch: installing files in blib/lib into architecture
dependent library tree
Installing
/home/lars/rpm/BUILDROOT/perl-Data-Dumper-2.145-3.el7.centos.x86_64/home/lars/perl5/lib/perl5/x86_64-linux-thread-multi/auto/Data/Dumper/Dumper.bs
Installing
/home/lars/rpm/BUILDROOT/perl-Data-Dumper-2.145-3.el7.centos.x86_64/home/lars/perl5/lib/perl5/x86_64-linux-thread-multi/auto/Data/Dumper/Dumper.so
Installing
/home/lars/rpm/BUILDROOT/perl-Data-Dumper-2.145-3.el7.centos.x86_64/home/lars/perl5/lib/perl5/x86_64-linux-thread-multi/Data/Dumper.pm
Installing
/home/lars/rpm/BUILDROOT/perl-Data-Dumper-2.145-3.el7.centos.x86_64/home/lars/perl5/man/man3/Data::Dumper.3pm
+ find /home/lars/rpm/BUILDROOT/perl-Data-Dumper-2.145-3.el7.centos.x86_64
-type f -name .packlist -exec rm -f '{}' ';'
+ find /home/lars/rpm/BUILDROOT/perl-Data-Dumper-2.145-3.el7.centos.x86_64
-type f -name '*.bs' -size 0 -exec rm -f '{}' ';'
+ /usr/bin/chmod -Rf a+rX,u+w,g-w,o-w
/home/lars/rpm/BUILDROOT/perl-Data-Dumper-2.145-3.el7.centos.x86_64/home
+ /usr/lib/rpm/find-debuginfo.sh --strict-build-id -m --run-dwz
--dwz-low-mem-die-limit 10000000 --dwz-max-die-limit 110000000
/home/lars/rpm/BUILD/Data-Dumper-2.145
extracting debug info from
/home/lars/rpm/BUILDROOT/perl-Data-Dumper-2.145-3.el7.centos.x86_64/home/lars/perl5/lib/perl5/x86_64-linux-thread-multi/auto/Data/Dumper/Dumper.so
dwz: Too few files for multifile optimization
/usr/lib/rpm/sepdebugcrcfix: Updated 1 CRC32s, 0 CRC32s did match.
161 blocks
+ /usr/lib/rpm/check-buildroot
+ /usr/lib/rpm/redhat/brp-compress
+ /usr/lib/rpm/redhat/brp-strip-static-archive /usr/bin/strip
+ /usr/lib/rpm/brp-python-bytecompile /usr/bin/python 1
+ /usr/lib/rpm/redhat/brp-python-hardlink
+ /usr/lib/rpm/redhat/brp-java-repack-jars
Executing(%check): /bin/sh -e /home/lars/rpm/tmp/rpm-tmp.mwbkfM
+ umask 022
+ cd /home/lars/rpm/BUILD
+ cd Data-Dumper-2.145
+ make test
PERL_DL_NONLAZY=1 /usr/bin/perl "-MExtUtils::Command::MM" "-e"
"test_harness(0, 'blib/lib', 'blib/arch')" t/*.t
t/bless.t ..................... ok
t/bless_var_method.t .......... ok
t/bugs.t ...................... ok
t/deparse.t ................... ok
t/dumper.t .................... ok
t/dumpperl.t .................. ok
t/freezer.t ................... ok
t/freezer_useperl.t ........... ok
t/indent.t .................... ok
t/misc.t ...................... ok
t/names.t ..................... ok
t/overload.t .................. ok
t/pair.t ...................... ok
t/perl-74170.t ................ ok
t/purity_deepcopy_maxdepth.t .. ok
t/qr.t ........................ ok
t/quotekeys.t ................. ok
t/seen.t ...................... ok
t/sortkeys.t .................. ok
t/sparseseen.t ................ ok
t/terse.t ..................... ok
t/toaster.t ................... ok
t/values.t .................... ok
All tests successful.
Files=23, Tests=647,  1 wallclock secs ( 0.12 usr  0.02 sys +  0.76 cusr
 0.08 csys =  0.98 CPU)
Result: PASS
+ exit 0
Processing files: perl-Data-Dumper-2.145-3.el7.centos.x86_64
error: File not found by glob:
/home/lars/rpm/BUILDROOT/perl-Data-Dumper-2.145-3.el7.centos.x86_64/usr/lib64/perl5/vendor_perl/auto/*
error: File not found by glob:
/home/lars/rpm/BUILDROOT/perl-Data-Dumper-2.145-3.el7.centos.x86_64/usr/lib64/perl5/vendor_perl/Data*
error: File not found by glob:
/home/lars/rpm/BUILDROOT/perl-Data-Dumper-2.145-3.el7.centos.x86_64/usr/share/man/man3/*
Executing(%doc): /bin/sh -e /home/lars/rpm/tmp/rpm-tmp.TkASco
+ umask 022
+ cd /home/lars/rpm/BUILD
+ cd Data-Dumper-2.145
+
DOCDIR=/home/lars/rpm/BUILDROOT/perl-Data-Dumper-2.145-3.el7.centos.x86_64/usr/share/doc/perl-Data-Dumper-2.145
+ export DOCDIR
+ /usr/bin/mkdir -p
/home/lars/rpm/BUILDROOT/perl-Data-Dumper-2.145-3.el7.centos.x86_64/usr/share/doc/perl-Data-Dumper-2.145
+ cp -pr Changes
/home/lars/rpm/BUILDROOT/perl-Data-Dumper-2.145-3.el7.centos.x86_64/usr/share/doc/perl-Data-Dumper-2.145
+ cp -pr Todo
/home/lars/rpm/BUILDROOT/perl-Data-Dumper-2.145-3.el7.centos.x86_64/usr/share/doc/perl-Data-Dumper-2.145
+ exit 0


RPM build errors:
    File not found by glob:
/home/lars/rpm/BUILDROOT/perl-Data-Dumper-2.145-3.el7.centos.x86_64/usr/lib64/perl5/vendor_perl/auto/*
    File not found by glob:
/home/lars/rpm/BUILDROOT/perl-Data-Dumper-2.145-3.el7.centos.x86_64/usr/lib64/perl5/vendor_perl/Data*
    File not found by glob:
/home/lars/rpm/BUILDROOT/perl-Data-Dumper-2.145-3.el7.centos.x86_64/usr/share/man/man3/*
[lars at larsbuild7 ~]$


My root user has no .rpmmacros file at all, the lars user has a trivial one:

[lars at larsbuild7 ~]$ cat .rpmmacros
%_topdir /home/lars/rpm
%_tmppath /home/lars/rpm/tmp
%_rpmlock_path  /home/lars/rpm/locks/transaction
%_signature gpg
%define debug_package %{nil}
%define __os_install_post %{nil}
%_rpmlock_path /home/lars/.mk-externals.tmp/transaction
[lars at larsbuild7 ~]


I assume I have to set some rpm variables like %perlvendor%, %perlarch% or
so.

Any hint?

Thanks a lot,

Lars
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.centos.org/pipermail/centos-devel/attachments/20140731/497a1046/attachment-0002.html>


More information about the CentOS-devel mailing list