From owner-freebsd-ports-bugs@FreeBSD.ORG Tue Apr 22 06:10:14 2003 Return-Path: Delivered-To: freebsd-ports-bugs@hub.freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 3BC8A37B401 for ; Tue, 22 Apr 2003 06:10:14 -0700 (PDT) Received: from freefall.freebsd.org (freefall.freebsd.org [216.136.204.21]) by mx1.FreeBSD.org (Postfix) with ESMTP id 4837A43FBF for ; Tue, 22 Apr 2003 06:10:13 -0700 (PDT) (envelope-from gnats@FreeBSD.org) Received: from freefall.freebsd.org (gnats@localhost [127.0.0.1]) by freefall.freebsd.org (8.12.9/8.12.9) with ESMTP id h3MDADUp089487 for ; Tue, 22 Apr 2003 06:10:13 -0700 (PDT) (envelope-from gnats@freefall.freebsd.org) Received: (from gnats@localhost) by freefall.freebsd.org (8.12.9/8.12.9/Submit) id h3MDADJU089486; Tue, 22 Apr 2003 06:10:13 -0700 (PDT) Resent-Date: Tue, 22 Apr 2003 06:10:13 -0700 (PDT) Resent-Message-Id: <200304221310.h3MDADJU089486@freefall.freebsd.org> Resent-From: FreeBSD-gnats-submit@FreeBSD.org (GNATS Filer) Resent-To: freebsd-ports-bugs@FreeBSD.org Resent-Reply-To: FreeBSD-gnats-submit@FreeBSD.org, "Jos I.Boumans" Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id E5AF137B401 for ; Tue, 22 Apr 2003 06:07:25 -0700 (PDT) Received: from perl.xs4all.nl (perl.xs4all.nl [194.109.237.195]) by mx1.FreeBSD.org (Postfix) with SMTP id AC8DD43FD7 for ; Tue, 22 Apr 2003 06:07:24 -0700 (PDT) (envelope-from kane@perl.xs4all.nl) Received: (qmail 72859 invoked by uid 0); 22 Apr 2003 13:12:04 -0000 Message-Id: <20030422131204.72858.qmail@perl.xs4all.nl> Date: 22 Apr 2003 13:12:04 -0000 From: "Jos I.Boumans" To: FreeBSD-gnats-submit@FreeBSD.org X-Send-Pr-Version: 3.113 cc: kane@dwim.org Subject: ports/51281: broken way of upgrading perl5.6.x to 5.8 via /usr/ports X-BeenThere: freebsd-ports-bugs@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list Reply-To: "Jos I.Boumans" List-Id: Ports bug reports List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 22 Apr 2003 13:10:14 -0000 >Number: 51281 >Category: ports >Synopsis: broken way of upgrading perl5.6.x to 5.8 via /usr/ports >Confidential: no >Severity: serious >Priority: high >Responsible: freebsd-ports-bugs >State: open >Quarter: >Keywords: >Date-Required: >Class: sw-bug >Submitter-Id: current-users >Arrival-Date: Tue Apr 22 06:10:12 PDT 2003 >Closed-Date: >Last-Modified: >Originator: Jos I. Boumans >Release: FreeBSD 5.0-RELEASE i386 >Organization: >Environment: System: FreeBSD fs.domaintje.com 5.0-RELEASE FreeBSD 5.0-RELEASE #0: Thu Jan 16 22:16:53 GMT 2003 root@hollin.btc.adaptec.com:/usr/obj/usr/src/sys/GENERIC i386 >Description: when trying to install perl5.8 /alongside/ perl5.6.1 (freebsd 5.0 default), the ports version tries to (and does) overwrite the 5.6.1 install. This in itself is bad enough. However, problems just start. It DOES leave the perl5.6.1 binary in place. Oh, no, wait, it's a symlink to /usr/local/bin/perl. which after the upgrade, is ACTUALLY perl5.8. so you get this situation: [root@fs ...local/bin]$ ./perl5.6.1 -v This is perl, v5.8.0 built for i386-freebsd from the ls -alg, it's clear why this happens: -rwxr-xr-x 1 root wheel 856592 perl* lrwxr-xr-x 1 root wheel 19 perl5@ -> /usr/local/bin/perl lrwxr-xr-x 1 root wheel 19 perl5.6.1@ -> /usr/local/bin/perl lrwxr-xr-x 1 root wheel 19 perl5.8.0@ -> /usr/local/bin/perl This is a bad thing! now, when trying to install a module, say Curses via /usr/ports, the following fun happens: ===> Installing for p5-Curses-1.05 ===> p5-Curses-1.05 depends on file: /usr/local/bin/perl5.6.1 - found Installing /usr/local/lib/perl5/site_perl/5.8.0/mach/auto/Curses/Curses.so Installing /usr/local/lib/perl5/site_perl/5.8.0/mach/auto/Curses/Curses.bs Files found in blib/arch: installing files in blib/lib into architecture depende nt library tree Installing /usr/local/lib/perl5/site_perl/5.8.0/mach/Curses.pm Installing /usr/local/lib/perl5/5.8.0/man/man3/Curses.3 Writing /usr/local/lib/perl5/site_perl/5.8.0/mach/auto/Curses/.packlist Appending installation info to /usr/local/lib/perl5/5.8.0/mach/perllocal.pod ===> Generating temporary packing list ===> Compressing manual pages for p5-Curses-1.05 /usr/local/lib/perl5/5.6.1/man//man3/Curses.3: No such file or directory ===> Registering installation for p5-Curses-1.05 note how it just installed itself under the 5.8 tree. my first reactions was: 'f*ck, don't do that!' and hit 'make deinstall' - which barfes even worse: [root@fs ...devel/p5-Curses]$ make deinstall ===> Deinstalling for p5-Curses-1.05 pkg_delete: file '/usr/local/lib/perl5/5.6.1/man/man3/Curses.3.gz' doesn't really exist pkg_delete: file '/usr/local/lib/perl5/site_perl/5.6.1/mach/Curses.pm' doesn't r eally exist pkg_delete: file '/usr/local/lib/perl5/site_perl/5.6.1/mach/auto/Curses/Curses.b s' doesn't really exist pkg_delete: file '/usr/local/lib/perl5/site_perl/5.6.1/mach/auto/Curses/Curses.s o' doesn't really exist pkg_delete: file '/usr/local/lib/perl5/site_perl/5.6.1/mach/auto/Curses/.packlis t' doesn't really exist pkg_delete: file '/usr/local/lib/perl5/site_perl/5.6.1/mach/auto/Curses' doesn't really exist pkg_delete: unable to completely remove directory '/usr/local/lib/perl5/site_per l/5.6.1/mach/auto/Curses' pkg_delete: couldn't entirely delete package (perhaps the packing list is incorrectly specified?) >How-To-Repeat: vanilla freebsd5.0 install portinstall perl5.8 portinstall p5-Curses >Fix: The true problem here is the fact that 5.8 overwrites 5.6.1 in a very sloppy manner. Ideally, 5.8 lives in /usr/local/bin and 5.6.1 in /usr/bin (rather than symlinking /usr/bin/perl to /usr/local/bin/perl). However, one should never symlink '/usr/local/bin/perl5.6.1' to 'perl', but rather the other way around. This ensures that even if you overwrite your perl binary, you really only changed the symlink, and a perl5.6.1 still EXISTS on your system. (problems /will/ occurs with supporting program such as perldoc and perlcc~) If these changes are too 'drastic', the LEAST the portinstall for 5.8 should do is REMOVE the 5.6.1 symlink, since then people (and programs!) at least wouldn't think there /is/ a 5.6.1 still on the system >Release-Note: >Audit-Trail: >Unformatted: