Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 24 Dec 2004 17:31:13 -0800
From:      "Michael C. Shultz" <reso3w83@verizon.net>
To:        freebsd-questions@freebsd.org
Cc:        ringworm@inbox.lv
Subject:   Re: portupgrade vs. portmanager
Message-ID:  <200412241731.14458.reso3w83@verizon.net>
In-Reply-To: <20041224235211.GA25610@scode-whitestar.mine.nu>
References:  <41CBB0D6.6080807@att.net> <200412241125.04925.reso3w83@verizon.net> <20041224235211.GA25610@scode-whitestar.mine.nu>

next in thread | previous in thread | raw e-mail | index | archive | help
On Friday 24 December 2004 03:52 pm, Peter Schuller wrote:
> > That is indeed the case with portmanager. Sometimes it is a waste
> > of time to rebuild everthing when a dependency changes, and
> > sometimes it is the right thing to do, portmanager assumes it is
> > always the right thing to do. One way this has proved to be a
> > benefit is I've never had to run the special scripts when gnome is
> > updated because after running portmanager everything is already up
> > to date.
>
> Interesting. While I certainly don't mind a tool doing what's right,
> this issue which also exists with NetBSD's pkg_chk is the primary
> reason why I'm almost about to give up on it; it's just feasable to
> perform full system upgrades properly. Having your primary
> workstation half unusable for three days while the whole universe is
> rebuilding is not very nice...

Right now portmanager is upgrading kdelibs and I'm still using it. The 
only problem that might occur is between the deinstall/reinstall steps
I'll be missing the libraries for about a minute, when this happens I 
just wait untill its finished reinstalling then continue.  
Here is a recap of what happens:

original kdelibs is already installed
all of its dependencies have been updated by portmanager

make kdelibs target is run
installed kdelibs is backed up to a package for safety
kdelibs is deinstalled
      < now will I not be able to run something new that
      < is in the kdelibs
new kdelibs is reinstalled
	< now I can run a new kdelibrary item
backup package is deleted
new kdelibs package is built

I've been testing this for a year now and haven't had a problem yet
using a program while it is being updated.
>
> One possible solution I have considered for pkg_chk that may also
> work for portmanager is to set up a build environment in a chroot
> where everything is properly upgraded. Either for building packages
> for all upgraded ports such that the ports installed on the real
> system can then be upgraded quickly using the packages; or
> alternatively by perhaps maintaining two separate target directories
> such that one is being used by normal applications while the other
> one is being built. One could then make the switch atomically by
> re-mounting /usr/local (or /usr/pkg in NetBSDs case).

To do this would require two targets because building one port
requires its dependencies to being installed and up to date. It would be 
a bit of work to do this and I'm not sure it would really be that 
nessessary.  I will keep an opened mind on the idea however.

>
> Is this even feasable?
>
> Is portmanager intended to fully replace portupgrade in the long run?

No. portmanager can not do something like what portupgrade's portsclean 
-D -P can do for example.

Portupgrade has one serious flaw in my opinion and that is running 
something like pkgdb -F damages the port installation database as far 
as I'm concerned.  It causes the data base to say ports were built with 
dependency ports that they were  never really built with.  Portmanager 
only addresses that one issue and for the forseeable future that is 
where all the focus will be, only on correctly updating ports.

Maybe if some talanted programmer wants to help out some day we will try 
to do other things, but right now I'm afraid if I spend time on new 
features not directly related to updating ports I'll end up letting the 
core purpose get sloppy.

> If so I would, as a user, very much value being able to upgrade all
> ports without disabling the machine in question. As it stands now, I
> much prefer portupgrade to NetBSD's pkg_chk for exactly this reason,
> even if portupgrade requires manual tweaking sometimes.

I am not familiar with NetBSD's pkg_chk, so I can't comment on it, but
now that I know it exists I will learn what I can about it.

-Mike



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200412241731.14458.reso3w83>