Subject: Re: rebuilding huge packages?
To: Andrew Brown <atatat@atatdot.net>
From: Ulrich Hobelmann <ulrich.hobelmann@HEH.Uni-Oldenburg.DE>
List: netbsd-users
Date: 03/21/2003 21:34:25
Andrew Brown wrote:
>>I want to install emacs21. But when I try, either from source or
>>the precompiled binary, it tells me that I need libungif>=4.1.0.1.
>>When I attempted to pkg_delete it, I was told that the following packages
>>relied on it:
>>
>> magicpoint-1.09anb1
>> gtk-engines-0.12nb1
>> xscreensaver-gnome-4.06nb1
>> control-center-1.4.0.4
>> galeon-1.2.7nb1
>> gabber-0.8.7nb4
>> gnumeric-1.0.12nb2
>> gal-0.22
>> gnome-vfs-1.0.3
>> GConf-1.0.9nb1
>> bonobo-1.0.18nb3
>> oaf-0.6.10
>> libglade-0.17nb2
>> glibwww-0.2nb2
>> gnome-media-1.2.3nb3
>> gnome-users-guide-1.2nb1
>> libgtop-1.0.13
>> gnome---1.2.2
>> gnome-print-0.36nb1
>> gdk-pixbuf-gnome-0.18.0
>> gbib-0.1.1b
>> gnome-libs-1.4.1.4nb1
>> imlib-1.9.14nb2
>> xplanet-0.93nb2
>>
>>That's a long list, and some of those packages are *very* large.
>>Worse yet, experience suggests that I'll find a pile of others
>>that need to rebuilt. Is there any sane way to do this? I haven't
>>had that much luck with 'make update'.
>
>
> pkgsrc/pkgtools/pkgdepgraph. :)
>
>
>>Note that I'm perfectly willing to do the compilations. But I'd like to
>>get an ordered list of exactly what to delete and what to compile. Is
>>there any way to get that?
>
>
> from pkgdepgraph(1):
>
> $ lintpkgsrc -i > pkgdepgraph.in
> $ audit-packages >> pkgdepgraph.in
> $ pkgdepgraph -D pkgdepgraph.in > delete_order
> $ pkgdepgraph -R pkgdepgraph.in > rebuild.sh
> $ pkg_delete `cat delete_order`
> $ sh rebuild.sh
>
> note that this will delete *all* out-of-date pkgs and anything that
> depends on them. if you *just* wanna attack libungif, replace steps
> 1-4 of the above with:
>
> $ pkgdepgraph -D -O libungif > delete_order
> $ pkgdepgraph -R -O libungif > rebuild.sh
>
Isn't make update supposed to do that?
Just cd /.../libungif; make update
I think it deletes all old stuff (and dependencies; though this might
temporarily make the system unusable for you) and then rebuilds it.
It might help if you have packages of the old stuff handy, so you don't
have to rebuild _everything_.
Ulrich