From owner-freebsd-ports@FreeBSD.ORG Mon Nov 3 08:44:02 2003 Return-Path: Delivered-To: freebsd-ports@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id C072B16A4CE for ; Mon, 3 Nov 2003 08:44:02 -0800 (PST) Received: from yertle.kcilink.com (yertle.kcilink.com [216.194.193.105]) by mx1.FreeBSD.org (Postfix) with ESMTP id 1ADE043FDD for ; Mon, 3 Nov 2003 08:44:00 -0800 (PST) (envelope-from khera@kcilink.com) Received: by yertle.kcilink.com (Postfix, from userid 100) id 948C82178B; Mon, 3 Nov 2003 11:43:59 -0500 (EST) From: Vivek Khera MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Message-ID: <16294.34255.356451.725973@yertle.int.kciLink.com> Date: Mon, 3 Nov 2003 11:43:59 -0500 To: ports@freebsd.org X-Mailer: VM 7.14 under 21.4 (patch 14) "Reasonable Discussion" XEmacs Lucid Subject: ports containing perl modules go into /lib instead of /usr/local/lib X-BeenThere: freebsd-ports@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: Porting software to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 03 Nov 2003 16:44:02 -0000 For a while now, it seems that ports containing perl modules (such as ImageMagick, rrdtool, and net-snmp to name a few) install the perl components into /lib/perl5 instead of /usr/local/lib/perl5 like they should (and as the pkg-plist expects). Needless to say, this is bad. :-( Anyhow, has anyone else experienced this? I'm running a 4.8-STABLE from mid-July, but it also happens on my recently upgraded 4.9-RELEASE. Both boxes are running perl 5.6.1 from ports, with the appropriate settings in the /etc/make.conf file (ie, I ran "use.perl port"; /usr/bin/perl -v says "5.6.1") I tried tracking the problem for the rrdtool build. When the port is built, it goes something like this: cd perl-shared && /usr/bin/perl Makefile.PL Checking if your kit is complete... Looks good Writing Makefile for RRDs cd perl-shared && gmake .. then goes on to build the module and a bunch of other stuff. when we get around to the install phase ... cd perl-shared && gmake install gmake[3]: Entering directory `/var/tmp/u/sources/usr/ports/net/rrdtool/work/rrdt ool-1.0.45/perl-shared' Installing /lib/perl5/site_perl/5.6.1/mach/auto/RRDs/RRDs.so Installing /lib/perl5/site_perl/5.6.1/mach/auto/RRDs/RRDs.bs Files found in blib/arch: installing files in blib/lib into architecture depende nt library tree Installing /lib/perl5/site_perl/5.6.1/mach/ntmake.pl Installing /lib/perl5/site_perl/5.6.1/mach/RRDs.pm Writing /lib/perl5/site_perl/5.6.1/mach/auto/RRDs/.packlist Appending installation info to /usr/local/lib/perl5/5.6.1/mach/perllocal.pod If I go to that perl-shared directory and type "/usr/bin/perl Makefile.PL" the resulting Makefile is significanly different: 82c82 < INSTALLSITELIB = $(PREFIX)/lib/perl5/site_perl/5.6.1 --- > INSTALLSITELIB = $(SITEPREFIX)/lib/perl5/site_perl/5.6.1 88c88 < INSTALLSITEARCH = $(PREFIX)/lib/perl5/site_perl/5.6.1/mach --- > INSTALLSITEARCH = $(SITEPREFIX)/lib/perl5/site_perl/5.6.1/mach 92c92 < INSTALLBIN = $(PREFIX)/bin --- > INSTALLBIN = $(PERLPREFIX)/bin 98c98 < INSTALLSCRIPT = $(PREFIX)/bin --- > INSTALLSCRIPT = $(PERLPREFIX)/bin 100c100 < INSTALLMAN1DIR = $(PREFIX)/man/man1 --- > INSTALLMAN1DIR = $(PERLPREFIX)/man/man1 106c106 < INSTALLMAN3DIR = $(PREFIX)/lib/perl5/5.6.1/man/man3 --- > INSTALLMAN3DIR = $(PERLPREFIX)/lib/perl5/5.6.1/man/man3 Note also that "PREFIX" is *empty* in the resulting Makefiles, which is why the modules are installed in /lib rather than /usr/local/lib. What could cause this to generate such significantly different output? I don't really see anything in my environment that would cause perl to behave differently. Right now I just go back into those build directories and re-run the build + install to get the bits installed, but this is a painful workaround.