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