https://bugzilla.redhat.com/show_bug.cgi?id=1517249

            Bug ID: 1517249
           Summary: perl-homedir is incompatible with rpmbuild -ba
                    perl-*.spec
           Product: Fedora
           Version: 26
         Component: perl-local-lib
          Severity: medium
          Assignee: jples...@redhat.com
          Reporter: mzale...@redhat.com
        QA Contact: extras...@fedoraproject.org
                CC: iarn...@gmail.com, jples...@redhat.com,
                    perl-devel@lists.fedoraproject.org



When perl-homedir is installed and enabled, `rpmbuild -ba` will fail for
majority (all?) of perl packages. The reason is that perl build will put files
in different locations than when RPM expects them (see below for all the
details).

That was found on one of machines that sanity-checks RPM packages (rebuilds
them and tries to install them). After perl-homedir was installed, subsequent
checks for other perl package failed. In this particular case perl-homedir
could be removed (or disabled for system user doing rebuilds), but I don't
think that users should have to decide between perl-homedir and rpmbuild
working as expected.

The root cause is INSTALL_BASE set to ~/perl5 in Makefile generated by perl. It
comes from $PERL_MB_OPT and/or $PERL_MM_OPT environmental variables set by
perl-homedir. Maybe perl RPM macro could filter/unset these variables on one of
early setup stages?

Version-Release number of selected component (if applicable):
perl-local-lib-2.000023-1.fc26.src.rpm


How reproducible:
100%

Steps to Reproduce:
1. Ensure that you have environment for building RPM packages (install
rpmdevtools and rpm-build, run rpmdev-setuptree) and that perl-homedir package
is installed and enabled (spawn new shell after installation)
2. Pick up noarch perl package for reproducing (e.g. perl-Getopt-Long)
3. Download source RPM of package (`dnf download --source perl-Getopt-Long`)
4. Install source RPM package (`rpm -i *.src.rpm`)
5. Install build-dependencies of source RPM package (`dnf builddep
perl-Getopt-Long`)
6. Try to build package (`rpmbuild -ba ~/rpmbuild/SPECS/perl-Getopt-Long.spec`)

Actual results:
Build fails with message about missing files:
RPM build errors:
    File not found:
/home/mzalewsk/rpmbuild/BUILDROOT/perl-Getopt-Long-2.40-3.fc26.x86_64/usr/share/perl5/vendor_perl/*
    File not found:
/home/mzalewsk/rpmbuild/BUILDROOT/perl-Getopt-Long-2.40-3.fc26.x86_64/usr/share/man/man3/*

Expected results:
Build succeeds.


Additional info:
As shown by directory trees, perl-homedir causes perl build system to put files
in home directory of user even inside build root:

tree -d ~/rpmbuild/BUILDROOT/perl-Getopt-Long-2.40-3.fc26.x86_64/
BUILDROOT/perl-Getopt-Long-2.40-3.fc26.x86_64/
├── home
│   └── mzalewsk
│       └── perl5
│           ├── lib
│           │   └── perl5
│           │       ├── Getopt
│           │       └── x86_64-linux-thread-multi
│           │           └── auto
│           │               └── Getopt
│           │                   └── Long
│           └── man
│               └── man3
└── usr
    └── share
        └── doc
            └── perl-Getopt-Long
                └── examples

Directory tree without perl-homedir, for comparison:
/home/mzalewsk/rpmbuild/BUILDROOT/perl-Getopt-Long-2.40-3.fc26.x86_64/
└── usr
    ├── lib64
    │   └── perl5
    │       └── vendor_perl
    │           └── auto
    │               └── Getopt
    │                   └── Long
    └── share
        ├── doc
        │   └── perl-Getopt-Long
        │       └── examples
        ├── man
        │   └── man3
        └── perl5
            └── vendor_perl
                └── Getopt

%{perl_vendorlib} and %{_mandir} RPM macros support only second directory
structure (and rightfully so), which causes them to resolve to non-existing
paths if first tree was created.

-- 
You are receiving this mail because:
You are on the CC list for the bug.
_______________________________________________
perl-devel mailing list -- perl-devel@lists.fedoraproject.org
To unsubscribe send an email to perl-devel-le...@lists.fedoraproject.org

Reply via email to