pkgsrc-Users archive

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

Re: How to automatically update dependencies when building a package?



"Thomas Mueller" <mueller6724%bellsouth.net@localhost> writes:

> From Greg Troxel <gdt%ir.bbn.com@localhost>:
>
>> I think it's asking for trouble to do partial updates.  So, what I do is
>
>>   update pkgsrc
>>   run pkg_rolling-replace
>
>> prior to building new packages.
>
>> I think it would be useful to have a variable to set to make the default
>> target be "package replace" (in the DESTDIR world) when building a
>> dependency that is already installed.  The problem is that this will
>> replace that package out from under other depending packages, so unless
>> you run pkg_rr or equivalent you'll still have an inconsistent system.
>
> Wherever is it necessary to upgrade all packages just to install one
> new one?  Surely not in FreeBSD ports or any Linux I know of.  Only in
> NetBSD with pkgsrc?  However, in FreeBSD, one is advised to rebuild
> all ports (what are known as packages in NetBSD pkgsrc) when upgrading
> a major version (the number before the first decimal point) but not
> minor version (like for instance 8.1 to the upcoming 8.2).

It's not necessary to upgrade to install one new one.  But you changed
the version of pkgsrc.

Updates due to OS changes and updates due to pkgsrc/ports changes are
orthogonal reasons.

It would be helpful to explain what FreeBSD ports does in this
situation.  They too have to replace png with the new version, and then
to have a working system they have to rebuild all packages which depend
on png.  That's just how it is with an ABI change.  Now, perhaps
portupgrade does this automatically, and perhaps it only updates
packages that need to be updated, but it's basically similar
conceptually to pkg_rr.

> I don't have an awful lot installed yet, but when there are a lot of
> packages, it becomes horribly cumbersome.
>
> Slackware puts out security updates on those packages for which there
> is a security advisory, and upgrading with the official upgrade
> package does not require reinstalling other packages.  But then the
> Slackware package manager knows nothing about dependencies.

This is how pkgsrc stable branches work.  But you are fairly clearly not
using them.

> It really shouldn't be necessary to go into a sandbox just to install
> a new package, unless one is building multiple versions of the same
> package, like possibly building for NetBSD 4.0.1, 5.1_STABLE and
> -current, or building versions of the same package with different
> options.

Again, you aren't just building a new package.  Had you not touched your
pkgsrc copy, things would probably be fine.

> After booting back into Linux, I mounted the NetBSD 5.1_STABLE
> installation read-only and ran
>
> lynx /media/dvd0/usr/pkgsrc/doc/pkgsrc.html
>
> and found I could "make update".
>
> I don't know if this works when the package is not yet installed at
> all.  If not, then
>
> mkdir /var/db/pkg/links-gui-2.2
>
> which would be an empty directory that might serve as a placeholder.
>
> I don't know if this would work, but it's worth a stab (in the dark,
> or maybe twilight?).

Don't mess with /var/db/pkg.

Attachment: pgpsorExatrHL.pgp
Description: PGP signature



Home | Main Index | Thread Index | Old Index