Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 30 Jun 2005 09:24:43 +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:  <a64c109e0506292324251d16c5@mail.gmail.com>
In-Reply-To: <200506290042.36512.ringworm01@gmail.com>
References:  <a64c109e0506281800a2634c8@mail.gmail.com> <200506290033.11542.ringworm01@gmail.com> <20050629073844.GB59918@isis.sigpipe.cz> <200506290042.36512.ringworm01@gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help
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 was lu=
cky
> > > > > > to stop it before it uninstalled perl-threaded-5.8.7
> > > > > > Portupgrade correctly reports that the port is up-to-date but I
> > > > > > wanted to test portmanager and see how it differs from portupgr=
ade.
> > > > > > Can someone give me a workaround for this problem? 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 portmanag=
er
> > > > recognize the port as current. perl-threaded-5.8.7 is the same port=
 as
> > > > perl-5.8.7 built with option "WITH_THREADS=3Dyes".
> > >
> > > I'm not an expert on the perl port so may misunsterstand your questio=
n,
> > > if so sorry.  If your asking what I think your are though, all you ha=
ve
> > > to do is make an entry like this:
> > >
> > > lang/perl5|WITH_THREADS=3Dyes|
> > >
> > > in /usr/local/etc/portmanager/pm-020.conf then portmanager will alway=
s
> > > build perl with that setting.
> > >
> > > > It's just seems strange why portupgrade considers the port current
> > > > while portmanager refers to it as old. As I sait it is the same por=
t
> > > > 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 have =
to
> > > set this in two files is to put it in /etc/make.conf then it will app=
ly
> > > no matter how the port is upgraded, the line would look like this:
> > >
> > > .if ${.CURDIR:M*/lang/perl5}
> > > WITH_THREADS=3Dyes
> > > .endif
> > >
> > > -Mike
> >
> > I added the compile option to pm-020.conf but still portmanager treats
> > 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 port
> > and does not update it.
> >
> > Well I guess that all I have left is to IGNORE the port in pm-020.conf.
>=20
> I messed up in the above examples, they are not for perl5.8, they should =
be as
> follows:
>=20
>  .if ${.CURDIR:M*/lang/perl5.8}
>  WITH_THREADS=3Dyes
>  .endif
>=20
> lang/perl5.8|WITH_THREADS=3Dyes|
>=20
>=20
> -Mike
>=20

Michael and Roman I really appreciate the time you guys spent trying to hel=
p 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 there
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
Kind regards
Abu Khaled



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?a64c109e0506292324251d16c5>