Build problem - help wanted

b. f. bf1783 at googlemail.com
Sun Oct 23 02:18:05 UTC 2011


> > > As I understand it, portinstall and portupgrade are just two faces of the
> > >> same coin, the only difference being that portinstall does nothing if the
> > >> specified port is already installed whereas portupgrade does nothing if
> > >> the specifioed port is NOT already installed.
> > >
> > >Ah, I wasn't aware that portinstall was part of portupgrade. In any case
> > >I think your assumption about what portupgrade does is wrong. My
> > >understanding is that by default it will upgrade ports that are
> > >dependencies of the ports that you are upgrading or installing.
> >
> > If by that you mean that portupgrade normally unpgades things that depend
> > upon the port mentioned in the command line when portupgrade is invoked,
> > then all I can say is that in my experience this is not correct, and that
> > although portupgrade _can_ be made to do that, one has to use the special
> > -r option to make it do that (which I have not used).

I think Doug is talking about updates in the other direction along the
dependency tree, which corresponds to "portupgrade -R".  The
portinstall manpage states that portinstall is simply "portupgrade
-N", and the portupgrade manpage suggests that "-N" implies "-R":

"Prior to the installation [sic] a new port/package, all the required
packages are upgraded."

I haven't checked the code to see if this true.  If it isn't then
either the manpages or portupgrade/portinstall need to be fixed.

> >
> > >> In short, the problem isn't with the specific port maintenance tools I'm
> > >> using.  Rather, the problem is, as I've been saying, an imperfection in
> > >> the actual dependencies list for the x11-toolkits/gtk20 port.  (The de-
> > >> pendencies need to force a build & install of some specific version of
> > >> gobject-introspection which is more recent than 0.9.12... probably 0.10.x.
> > >> Otherwise, cryptic build failure of gtk may ensue, and has, apparently,
> > >> for myself and numerous other people.)

Well, there may be problems with both, if portinstall isn't behaving
as announced, and you had an up-to-date ports tree, index, pkgdb, and
portsdb.  But with regard to the dependency list, I think that Doug is
saying that, although there is a mechanism to specify the version(s)
of a required port, the maintainers will not often go to the trouble
of using the mechanism, unless multiple versions of the required port
coexist in the ports tree (this is because the dependency information
is one more thing that needs to be checked and updated later, and
causes more churn in the VCS used for the ports tree).  Instead the
maintainers will update the ports tree in such a way that if you have
a complete and up-to-date ports tree, and you update your installed
ports in dependency order, then you should not encounter problems.
However, if you do not update your installed ports in dependency
order, intentionally or otherwise, you are breaking this implicit
assumption.  Hence Doug's statement that "partial updates" are not
supported.

> > >
> > >I'm not sure you're right about that. I think that if you had used
> > >portupgrade you probably would have seen the result we're looking for
> > >(upgrading gobject-introspection first).
> > >
> > >In any case, I'm *certain* that you would have seen the proper results
> > >if you had used portmaster, so perhaps you should consider giving it a try.
> >
> > I'm sorry, but I have neither the time nor the inclination to not de-install
> > all fo the ports that I've so tediously built & installed, overe several days,
> > just to perform this experiment.
>

I think Doug was talking about using portmaster for future updates.
But if you want to conduct experiments without spending the same
amount of time, you can always back up your installed ports by using
the "-b" switch with portupgrade, portmaster, or pkg_create -- then it
is only a matter of a few minutes to restore them after the
experiments.  While doing the experiments, you can avoid rebuilding
packages by using -P, -PP, or -n with portupgrade or portmaster.
These switches can also be helpful during normal updates.

b.


More information about the freebsd-gnome mailing list