Date: Tue, 6 Jan 2004 16:15:30 -0600 (CST) From: "Paul Seniura" <pdseniura@techie.com> To: "Brandon S. Allbery KF8NH" <allbery@ece.cmu.edu> Cc: Paul Seniura <pdseniura@techie.com> Subject: I need to clarify (Re: I'm having an awful time updating gdm2 and other ports) Message-ID: <20040106221530.CCACF5C29@techpc04.okladot.state.ok.us> In-Reply-To: <1073412562.32632.3.camel@pyanfar.ece.cmu.edu> References: <20031231234158.8EF1C5C29@techpc04.okladot.state.ok.us> <20031231234158.8EF1C5C29@techpc04.okladot.state.ok.us> <1073064581.779.10.camel@gyros> <20040106175238.4355C5C29@techpc04.okladot.state.ok.us> <1073412562.32632.3.camel@pyanfar.ece.cmu.edu> <20040106195108.D07EB5C29@techpc04.okladot.state.ok.us>
next in thread | previous in thread | raw e-mail | index | archive | help
Here is the scenario: You don't have any p5-* pieces installed. You've freshly switched to 'use.perl port' from 'system'. Then comes a CVS update for x11/gdm2. You need to upgrade x11/gdm2; it's already installed. This time you need its configure/make/install scripts to run under perl-5.8.x. You hope gdm2's Makefile properly specifies what it requires, like other ports do. So you run portupgrade. And it breaks during gdm2's 'install' phase. What do you do? Okay now allow me to expand on that scenario with some details, please. I did the switch from perl-5.6.x to perl-5.8.x last week without having any of the p5-* items installed beforehand. Never needed any p5-* before -- the only items needing perl at this stage are ports during their configure / make / install / run-time phases (I myself haven't needed perl). There's nothing _specifically_ telling you _what else_ to do when you do this 'use.perl port' switch. Specifically. I was 'assuming' that any port needing a perl module -- for whatever reason e.g. configure / make / install / run-time -- would have appropriate entries in that port's Makefile (some '.if's around BUILD_DEPENDS, LIB_DEPENDS, etc., as appropriate, based on PERL_VERSION or SITE_PERL (unsure?)). Then came along some CTM deltas for x11/gdm2. The next time I ran portupgrade is what got broke. x11/gdm2's Makefile does *not* have checks for perl-anything but it *did* require certain perl modules for it to be installed successfully, as shown in my previous msgs e.g. gdm2 clearly needs the XML::Parser module during its install phase so an appropriate item should've been added to gdm2's Makefile -- probably in this case to the RUN_DEPENDS string (is there such a thing as INSTALL_DEPENDS ?). Suitable mechanisms _are_ available in the Makefile and many other ports use them, but gdm2 didn't say what it needed so I never got the requisite p5-* pieces it needed e.g. gdm2's Makefile should've caused the textproc/p5-XML-Parser port to be installed before gdm2 itself was installed. So I needed a workaround. To get those p5-* pieces needed by gdm2, I was 'hoping' the p5-GnomePrint port would pull in those missing pieces if _it_ had a correct Makefile. There I go 'assuming' again... (you know what 'assume' means... ;) > Any time you run "use.perl", do "env FORCE_PKG_REGISTER=1 portupgrade -f > p5-\*". It ran very quickly. It only re-installed the p5-XML-Parser and p5-XML-Writer ports because those were the only p5-* pieces I've managed to figure out being required by gdm2 and/or other ports -- after my assumption p5-GnomePrint properly pull in those missing pieces as noted. I'm running this portupgrade 'force' again on a list of ports that failed when I tried to install p5-GnomePrint, hoping it'll eventually fix other glitches, too. I ought to open a PR for gdm2 to be fixed -- because other ports do check for "which perl" and adjust themselves accordingly. Probably a lot of other ports need to similarly check on other things besides "which perl", too. ;) -- Paul Seniura System Specialist State of Okla. D.O.T.
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20040106221530.CCACF5C29>