Date: Thu, 19 Jul 2007 09:19:52 +0200 From: Alexander Leidinger <Alexander@Leidinger.net> To: Stephen Montgomery-Smith <stephen@math.missouri.edu> Cc: ports@freebsd.org, freebsd-hackers@freebsd.org Subject: Re: Slight problem with make actual-package-depends with ports Message-ID: <20070719091952.71a9e26e@deskjail> In-Reply-To: <469E2DB3.8080605@math.missouri.edu> References: <469D62D3.70908@math.missouri.edu> <20070718111920.43c198e3@deskjail> <469E2DB3.8080605@math.missouri.edu>
next in thread | previous in thread | raw e-mail | index | archive | help
Quoting Stephen Montgomery-Smith <stephen@math.missouri.edu> (Wed, 18 Jul 2007 10:11:47 -0500): > Alexander Leidinger wrote: > > Quoting Stephen Montgomery-Smith <stephen@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
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20070719091952.71a9e26e>