Date: Fri, 1 Jul 2005 07:03:22 +0300 From: Abu Khaled <khaled.abu@gmail.com> To: "Michael C. Shultz" <ringworm01@gmail.com> Cc: Roman Neuhauser <neuhauser@sigpipe.cz>, freebsd-ports@freebsd.org Subject: Re: portmanager and perl threaded Message-ID: <a64c109e050630210348446b4c@mail.gmail.com> In-Reply-To: <200506300043.29761.ringworm01@gmail.com> References: <a64c109e0506281800a2634c8@mail.gmail.com> <200506290042.36512.ringworm01@gmail.com> <a64c109e0506292324251d16c5@mail.gmail.com> <200506300043.29761.ringworm01@gmail.com>
next in thread | previous in thread | raw e-mail | index | archive | help
On 6/30/05, Michael C. Shultz <ringworm01@gmail.com> wrote: > On Wednesday 29 June 2005 23:24, Abu Khaled wrote: > > On 6/29/05, Michael C. Shultz <ringworm01@gmail.com> wrote: > > > On Wednesday 29 June 2005 00:00, Abu Khaled wrote: > > > > On 6/29/05, Michael C. Shultz <ringworm01@gmail.com> wrote: > > > > > On Tuesday 28 June 2005 19:20, Abu Khaled wrote: > > > > > > On 6/29/05, Michael C. Shultz <ringworm01@gmail.com> wrote: > > > > > > > On Tuesday 28 June 2005 18:00, Abu Khaled wrote: > > > > > > > > I have a situation here where portmanager treats > > > > > > > > perl-threaded-5.8.7 as an old port and tries to update it. > > > > > > > > > > > > > > > > -snip > > > > > > > > have:perl-threaded-5.8.7 status: OLD available:perl-5.8.7 > > > > > > > > /lang/perl5.8 -snip > > > > > > > > > > > > > > > > Portmanager almost recompiled my entire ports tree and I wa= s > > > > > > > > lucky to stop it before it uninstalled perl-threaded-5.8.7 > > > > > > > > Portupgrade correctly reports that the port is up-to-date b= ut I > > > > > > > > wanted to test portmanager and see how it differs from > > > > > > > > portupgrade. Can someone give me a workaround for this prob= lem? > > > > > > > > What options do I need to add for portmanager configuration > > > > > > > > aside from IGNORE? > > > > > > > > > > > > > > Its covered in the man page. see the -ip option, or the conf = file > > > > > > > option. > > > > > > > > > > > > > > -Mike > > > > > > > > > > > > Thanks Mike, but I want to know if there is a way to make > > > > > > portmanager recognize the port as current. perl-threaded-5.8.7 = is > > > > > > the same port as perl-5.8.7 built with option "WITH_THREADS=3Dy= es". > > > > > > > > > > I'm not an expert on the perl port so may misunsterstand your > > > > > question, if so sorry. If your asking what I think your are thou= gh, > > > > > all you have to do is make an entry like this: > > > > > > > > > > lang/perl5|WITH_THREADS=3Dyes| > > > > > > > > > > in /usr/local/etc/portmanager/pm-020.conf then portmanager will > > > > > always build perl with that setting. > > > > > > > > > > > It's just seems strange why portupgrade considers the port curr= ent > > > > > > while portmanager refers to it as old. As I sait it is the same > > > > > > port but with a suffix and a build option. > > > > > > > > > > Is it possible you have the WITH_THREADS=3Dyes set in portupgrade= 's > > > > > config file but not portmanager's? Another option so you don't h= ave > > > > > to set this in two files is to put it in /etc/make.conf then it w= ill > > > > > apply no matter how the port is upgraded, the line would look lik= e > > > > > this: > > > > > > > > > > .if ${.CURDIR:M*/lang/perl5} > > > > > WITH_THREADS=3Dyes > > > > > .endif > > > > > > > > > > -Mike > > > > > > > > I added the compile option to pm-020.conf but still portmanager tre= ats > > > > the port as OLD and wants to update. So the problem is still there > > > > portmanager does not consider perl-threaded-5.8.7 and perl 5.8.7 to= be > > > > the same port. Portupgrade on the other hand sees it as the same po= rt > > > > and does not update it. > > > > > > > > Well I guess that all I have left is to IGNORE the port in pm-020.c= onf. > > > > > > I messed up in the above examples, they are not for perl5.8, they sho= uld > > > be as follows: > > > > > > .if ${.CURDIR:M*/lang/perl5.8} > > > WITH_THREADS=3Dyes > > > .endif > > > > > > lang/perl5.8|WITH_THREADS=3Dyes| > > > > > > > > > -Mike > > > > Michael and Roman I really appreciate the time you guys spent trying to > > help me. > > > > I changed the lines in pm-02.conf but got same results portmanager > > still thinks that perl-threaded-5.8.7 is OLD. It was not related to > > build options. I decided to check other ports that use 'PKGNAMESUFFIX' > > for different build options and looked at cvsup-without-gui. > > > > cvsup and cvsup-without-gui is the same port but with another build > > option 'WITHOUT_X11=3D yes' but you can see in the ports tree that ther= e > > is 2 directories one for each port. The Makefile under > > /usr/ports/net/cvsup-without-gui had only the build option defined and > > an include directive for the makefile in /usr/ports/net/cvsup. > > > > --- /usr/ports/net/cvsup-without-gui/Makefile > > MASTERDIR=3D ${.CURDIR}/../cvsup > > WITHOUT_X11=3D yes > > .include "${MASTERDIR}/Makefile" > > --- > > > > AFAIK portmanager checks /var/db/pkg/<pkgname>/+CONTENTS to decide if > > a port is old here is a snap > > > > --- /var/db/pkg/cvsup-without-gui/+CONTENTS has > > @name cvsup-without-gui-16.1h_2 > > @comment ORIGIN:net/cvsup-without-gui > > --- > > > > ---/var/db/pkg/perl-threaded-5.8.7/+CONTENTS has this > > @name perl-threaded-5.8.7 > > @comment ORIGIN:lang/perl5.8 > > --- > > > > My guess it is the word ORIGIN there is no specific port named > > perl-threaded as the port named cvsup-without-gui. so portmanager > > checks lang/perl5.8 and decides (not sure how) the port is old. > > > > On a test server I made a directory /usr/ports/lang/perl-threaded with > > a Makefile inside: > > > > --- /usr/ports/perl-threaded > > MASTERDIR=3D ${.CURDIR}/../perl5.8 > > WITH_THREADS=3D yes > > .include "${MASTERDIR}/Makefile" > > --- > > > > After building and installing this custom port, portmanager displayed > > the port as current !!! > > The only new problem that came up is the need to fix dependencies > > (pkgdb -F did the trick) but portmanager started to complain about > > missing dependencies for some ports like "Squid" that needed > > /lang/perl<threaded>5.8 (did not before!). > > > > Oh well I guess this issue is beyond my knowledge so I'll just leave > > the port IGNOREd on the production server. > > Thanks you guys (and please execuse my English) >=20 > Abu, I tried adding lang/perl5.8|WITH_THREADS=3Dyes| to my pm-020.conf > and now I have /var/db/pkg/perl-threaded-5.8.7, this causes every port th= at > depends on perl to be rebuilt, that is normal and desirable. I've let > portmanager run after adding WITH_THREADS=3Dyes and everything is > working good, I recommend you do the same. If you set perl to be ignored > no port that depends on perl will ever be upgraded, you won't be happy wi= th > that most likely. >=20 > My opinon is that you "fixing the dependencies" by running pkgdb -F may c= ause > you problems, what your doing is forcing ports that were compiled with no= n > threaded perl to work with threaded perl, you really should let portmanag= er > run its course and properly update the ports affected by the threaded per= l > option. >=20 > -Mike After allowing 'portmanager' to rebuild everything depending on 'perl' the problem was solved. I have been using 'portupgrade' for some time and wanted to solve things by taking a shortcut. This time it led me into a maze. Thanks again for showing me the way out. --=20 Kind regards Abu Khaled
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?a64c109e050630210348446b4c>