Subject: Re: pkgsrc installing binary packages
To: Hubert Feyrer <hubert.feyrer@informatik.fh-regensburg.de>
From: Jeremy C. Reed <reed@reedmedia.net>
List: tech-pkg
Date: 05/03/2001 08:20:16
Hubert,

Sorry if my last message came across as "so cynical". It was not my
intent; it was not meant to be sarcastic; in fact, I meant what I said:
"Thanks". Your patch and information is exactly what I needed (to get
started).

Some more notes below ...

On Thu, 3 May 2001, Hubert Feyrer wrote:

> On Wed, 2 May 2001, Jeremy C. Reed wrote:
> >  rainier:/usr/pkgsrc/games/pacman$ make
> >  ===> Validating dependencies for Pacman-0.3
> >  => Checksum OK for Pacman-0.3-CVS-00-11-17.tar.gz.
> >  ===> Extracting for Pacman-0.3
> >  ===> Required package ClanLib>=0.2.2: NOT found
> >  ===> Verifying bin-install for ../../graphics/clanlib
> >  Installing from binary pkg /usr/pkg/pkgsrc/packages/All/ClanLib-0.4.4.tgz
> >  pkg_add: pkg `MesaLib-3.4' required, but `MesaLib-3.2.1' found installed.
> >  pkg_add: Please resolve this conflict!
> >  *** Error code 1
> 
> This ias nothing to do with pkgsrc, please read the error message
> closely: the ClanLib pkg requires MesaLib 3.4, but you have MesaLib 3.2.1
> installed. Tough luck. (Maybe ClanLib should depend on some wildcard of
> MesaLib>=something(. 

I showed that example to show just show that "DEPENDS_TARGET=bin-install"
had worked. (And later in that message I mentioned that I knew about the
MesaLib conflict.) Sorry for the bad example.

> >  ===> Verifying bin-install for ../../graphics/clanlib
> > 
> >  ftp: The `CWD ' command (without a directory), which is required by
> >       RFC 1738 to support the empty directory in the URL pathname (`//'),
> >       conflicts with the server's conformance to RFC 959.
> >       Try the same URL without the `//' in the URL pathname.
> > 
> >  pkg_add: prompt failed - wrong dir?
> > 
> > Okay, logging shows:
> > ftp -detv ftp://ftp.netbsd.org/pub/NetBSD/packages/1.5/i386/All//usr/pkg/pkgsrc/packages/All/
> > 
> > Now I see:
> > PKGFILE?=               ${PKGREPOSITORY}/${PKGNAME}${PKG_SUFX}
> > 
> > So I changed your PKGFILE to ${PKGNAME}${PKG_SUFX} and that was fixed.
> 
> Um, in what place did you have to fix that - line numbers/context please.

Sorry for the lack of details. This was in your patch -- the line that
read:

               ${SETENV}
PKG_PATH="ftp://ftp.netbsd.org/pub/NetBSD/packages/$${rel}/$${arch}/All"
${PKG_ADD} ${PKGFILE} ;                      \

I changed to:

                ${SETENV}
PKG_PATH="ftp://ftp.netbsd.org/pub/NetBSD/packages/$${rel}/$${arch}/All"
${PKG_ADD} ${PKGNAME}${PKG_SUFX};             \

> It'd be nice to know what pkg_add gets called with as environment. Please
> put an "echo" in front of that line in the bin-install patch, and let me
> know. The above error suggests that you get a double '//' in a place in

/usr/bin/env
PKG_PATH=ftp://ftp.netbsd.org/pub/NetBSD/packages/1.5/i386/All
PKG_DBDIR=/var/db/pkg /usr/sbin/pkg_add
/usr/pkg/pkgsrc/packages/All/libao-0.6.0nb1.tgz

The ${PKGREPOSITORY} is part of the name. (I need to look to see why or
where this is set.)

> PKG_PATH where it shouldn't be. This does not happen for me...

...

> > Thanks for the patch. It does help.
> 
> Eh, not so cynical, please. We're all low on quality time. Appent a "||
> ${TRUE}" at then end of the "$SETENV ... $PKG_ADD" line (but before the
> ";"), and give it another try. 

The "|| {$TRUE}" worked for me. It couldn't find the sharity-light binary,
but instead of failing it started building from source. Thanks.

   Jeremy C. Reed
   http://www.reedmedia.net/