tech-pkg archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: First pkg_dry milestone



On Tue, Apr 14, 2009 at 10:21 AM, iMil <imil%home.imil.net@localhost> wrote:
>
> Hi Thomas,
>
>> I have a set of binary packages installed. I want to install a new
>> (previously not installed) package, let's call it foo, without
>> disturbing my installation. foo depends on bar. bar-1.0 with
>> libbar.so.1 is installed. The latest version of bar in pkgsrc is
>> bar-2.0 with libbar.so.2.
>>
>> The server has binary packages for foo-4.0 (built against bar-1.0) and
>> foo-4.0nb1 (built against bar-2.0).
>>
>> pkg_dry -i should install foo-4.0, even though it's not the absolutely
>> latest version, but it works with the bar-1.0 that's installed.
>>
>> AFAIK, the pkg_summary file contains sufficient information for this
>> case.
>>
>> Alternatively, pkg_dry would have update bar and all its dependencies
>> to 2.0 first.
>
> Here's the way it works as of today :
>
> Assuming you want to install the package "foo", pkg_dry -i foo will query
> the database (previously fed by pkg_summary(5)) for a PKGPATH of this form:
> '*/foo-[0-9]*'. The package name is then given by PKGNAME. This exact name,
> followed by the ".tgz" extension, is the name of the archive to be dowloaded
> in ${PKG_PATH}.
>

Somewhat off-topic, but shouldn't the search on PKGPATH be more like
'*/foo' since PKGPATH is location/pkgname (no version) and a search on
PKGNAME would be more like foo-[a-zA-Z0-9] because of things like
PKGNAME=9menu-1.8nb1.

I've been using /(.+)-(.+)/ in perl to get pkgname=$1 and
pkgversion=$2.  Also, a binary repository includes FILE_NAME (pkg_info
-aX doesn't seem to have it) in pkg_summary.gz, which should match
PKGNAME.tgz, but I don't know if that's always true.

Matt


Home | Main Index | Thread Index | Old Index