Slight problem with make actual-package-depends with ports

Alexander Leidinger Alexander at Leidinger.net
Thu Jul 19 07:18:24 UTC 2007


Quoting Stephen Montgomery-Smith <stephen at math.missouri.edu> (Wed, 18 Jul 2007 10:11:47 -0500):

> Alexander Leidinger wrote:
> > Quoting Stephen Montgomery-Smith <stephen at math.missouri.edu> (Tue, 17 Jul 2007 19:46:11 -0500):
> > 
> >> I appreciate that most people won't have this problem, but it has bitten me.
> >>
> >> After you have made and installed a port, but don't clean it, and then 
> >> made a bunch of other ports, if you go back to the original port and 
> >> then do "make package", then +CONTENTS can be a bit messed up for the 
> >> package.  This is because the creation of other ports might disturb 
> > 
> > Can you please give an example what "messed up" means in this context,
> > e.g. post a diff between a good an a bad contents file? And what
> > actions you did to get this difference?
> > 
> >> _LIB_RUN_DEPENDS and might put in some extra entries in +CONTENTS.
> > 
> > You mean that if you create a leaf package and then rebuild a package
> > which is in the middle of the dependency tree with options which change
> > the dependency graph of the leaf package you get problems?
> > 
> > If yes: this has to be expected. You need to rebuild the packages in
> > the right order.
> 
> In other words, you have to perform the "make package" right after the 
> "make install" before you install any other ports.  Otherwise you have 
> to use "pkg_create -b" (which I have recently started doing).

I think the old version of getting the package dependency should fail
in a similar way if you don't issue "make package" before installing
other ports (where you change the options in a way that the dependency
list changes).

> >> This happens to me because I make all my ports on one machine and then 
> >> copy them as packages to other machines.  Then on the other machines, 
> >> the structure of /var/db/pkg gets a bit messed up and pkg_delete -r 
> >> malfunctions.
> > 
> > I have a lot of jails where I use the packages build in other jails. I
> > haven't seen a problem there. The package install doesn't change the
> > +CONTENTS files, so /var/db/pkg should be messed up on the build
> > machine too...
> > 
> >> It seems to me that the cure is to slightly change "make 
> >> actual-package-depends" so that if the port is already installed, it 
> >> just uses +CONTENTS.
> > 
> > This is wrong. What if you have a port installed and you want to
> > rebuild the same version with other OPTIONS which changes the +CONTENTS
> > file? If I read your patch right, it will use the wrong contents...
> 
> The other option (to allow the users to do "make package" much later 
> than "make install") would be to have two different 
> actual-package-depends, one for "make install", and the other for "make 
> package."

It may be good to compare the way you do the package creation by hand
with the way bsd.port.mk is doing it. Maybe something can be improved...

Bye,
Alexander.

-- 
You can search for documentation on a keyword by typing

	apropos keyword
http://www.Leidinger.net  Alexander @ Leidinger.net: PGP ID = B0063FE7
http://www.FreeBSD.org     netchild @ FreeBSD.org  : PGP ID = 72077137


More information about the freebsd-ports mailing list