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?



From my original post:

} How do I get pkgsrc to automatically update dependencies when a too-old 
version is already installed?

} FreeBSD ports would do this automatically, but my attempted build of 
links-gui was stopped when libpng-1.4.5 was already installed and links-gui 
needed 1.5.1.  I suppose I could do "make replace" on the offending package 
each time, but it is annoying and inefficient to be stopped every time a 
dependency needs updating.

} Am I too tired now and overlooking something?  Can I do something directly 
from /usr/pkgsrc/www/links-gui directory when package has not yet been 
installed?

} Tom

from Dave B <spam%y2011.dberg.net@localhost>:

>   I cope with dependencies (including conflicts related to
> out-of-date packages) this way:

>  a) building in a sandbox ( created by pkgsrc/mk/bulk/mksandbox )
>  b) using UPDATE_TARGET (i.e., "make update UPDATE_TARGET=bin-install)
>  c) ensuring--if I want to stick to just binaries I built myself--
>     the line below appears in /etc/mk.conf (in the sandbox, too):



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).

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.

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.

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?).

Tom



Home | Main Index | Thread Index | Old Index