pkgsrc-Bugs archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

pkg/42709: WRKOBJDIR with trailing / brokes DESTDIR perl modules install



>Number:         42709
>Category:       pkg
>Synopsis:       WRKOBJDIR with trailing / brokes DESTDIR perl modules install
>Confidential:   no
>Severity:       serious
>Priority:       high
>Responsible:    pkg-manager
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Sat Jan 30 22:55:00 +0000 2010
>Originator:     Daniel Horcki
>Release:        NetBSD 5.0_STABLE
>Organization:
Real Time Fine Management
>Environment:
NetBSD myrkr.stars 5.0_STABLE NetBSD 5.0_STABLE (MORR) #7: Thu Jan 14 00:51:43 
CET 2010  
sh%myrkr.stars@localhost:/home/sh/src/netbsd-5/obj/sys/arch/i386/compile/MORR 
i386
>Description:
When WRKOBJDIR is set that it has trailing slash I cannot install perl modules 
with USE_DESTDIR=yes. E.g.:

# > grep WRKOBJDIR /etc/mk.conf
WRKOBJDIR=/usr/work/pkgsrc/

# cd /usr/pkgsrc/time/p5-Time-HiRes/ && make install
[...]
=> Generating post-install file lists
pkg_create: can't stat 
`/usr/work/pkgsrc//time/p5-Time-HiRes/work/.destdir/usr/pkg//usr/work/pkgsrc/time/p5-Time-HiRes/work/.destdirlib/perl5/vendor_perl/5.10.0/i386-netbsd-thread-multi/Time/HiRes.pm'
pkg_create: can't stat 
`/usr/work/pkgsrc//time/p5-Time-HiRes/work/.destdir/usr/pkg//usr/work/pkgsrc/time/p5-Time-HiRes/work/.destdirlib/perl5/vendor_perl/5.10.0/i386-netbsd-thread-multi/auto/Time/HiRes/HiRes.bs'
pkg_create: can't stat 
`/usr/work/pkgsrc//time/p5-Time-HiRes/work/.destdir/usr/pkg//usr/work/pkgsrc/time/p5-Time-HiRes/work/.destdirlib/perl5/vendor_perl/5.10.0/i386-netbsd-thread-multi/auto/Time/HiRes/HiRes.so'
pkg_create: can't stat 
`/usr/work/pkgsrc//time/p5-Time-HiRes/work/.destdir/usr/pkg//usr/work/pkgsrc/time/p5-Time-HiRes/work/.destdirlib/perl5/vendor_perl/man/man3/Time::HiRes.3'

Problem is with converting .packlist file to .PLIST.
_PERL5_PACKLIST_AWK_STRIP_DESTDIR takes DESTDIR and compares with lines in 
.packlist. But since WRKOBJDIR has trailing /, DESTDIR is set to 
/usr/work/pkgsrc//time/p5-Time-HiRes/work/.destdir, where line in .packlist is 
e.g. 
/usr/work/pkgsrc/time/p5-Time-HiRes/work/.destdir/usr/pkg/lib/perl5/vendor_perl/5.10.0/i386-netbsd-thread-multi/Time/HiRes.pm.
 

When WRKOBJDIR is set to /usr/work/pkgsrc everything is fine.
Trailing / has no effect on installing non-perl packages.
>How-To-Repeat:
Add to /etc/mk.conf WRKOBJDIR=/usr/work/pkgsrc/ and try to install perl module, 
e.g. time/p5-Time-HiRes
>Fix:
There is problem with generating .PLIST file from .packlist. Probably  
_PERL5_PACKLIST_AWK_STRIP_DESTDIR should be changed to remove double slashes. 
Or better solution would be strip trailing slashes from WRKOBJDIR or every dir 
defined. Patch for first solution:

diff -u -r1.14 packlist.mk
--- lang/perl5/packlist.mk      18 Jun 2009 05:30:24 -0000      1.14
+++ lang/perl5/packlist.mk      30 Jan 2010 22:49:54 -0000
@@ -76,6 +76,7 @@
 .if !empty(PERL5_PACKLIST_DESTDIR:M[Yy][Ee][Ss])
 _PERL5_PACKLIST_AWK_STRIP_DESTDIR=                                    \
        BEGIN { destdir = "${DESTDIR}";                                \
+               gsub(/\/\//, "/", destdir);                            \
                len_destdir = length(destdir); }                       \
        { if (index($$1, destdir) == 1)                                \
                $$1 = substr($$1, len_destdir + 1) }



Home | Main Index | Thread Index | Old Index