I''d like to clarify some points about the ports/package system in FreeBSD. I apoligize ahead of time if this is Both packages and ports use the pkgdb system. This isn''t some lame cludge; it''s by design, and the reason is really quite simple. Packages are built from the ports collection. The only real difference between them is the mode of delivery. When you run ''make install'' from a port in the tree, it fetches the distfiles, applies whatever voodoo is necessary to get it to compile, and then installs using the program''s own makefile (sometimes other mechanisms depending on the port). It then registers the contents of the pkg-plist (which may be static or dynamically generated) with pkgdb. When you run ''make package'' it does the above but also tars together the files in the pkg-plist along with the pkg-plist and creates a "package". It''s this package that you use with pkg_add. So, as you can see, it really doesn''t matter which one you use. The reason using ports directly is desirable is that the official pre-built packages availabe on the project servers and mirrors lag behind CVS by a wide margin. Now the reason why I bring this up is because of how portupgrade is being executed in the ports provider: -p -N -P -M BATCH=yes The -p is unnecessary and only wastes time generating the package tarball when the port is installed just fine without it. It also will fill up the /usr partition as it populates /usr/ports/packages with every version of the port you build. As I said before, if you''re keeping your ports tree up-to-date like you should, trying to fetch a pre-built package is likely to be futile. They''ll always be older than what you''re trying to install from the port (unless you''re maintaining your own package repository which is really what -P is geared towards). In short, I recommend changing the portupgrade invocation to: portupgrade --new --batch --yes or possibly even just: portinstall --batch --yes --batch and -M BATCH=yes are equivalent, but guess which one is more readable ;-). --yes for same reason as for having --batch. Unless anyone disagrees with me... did anyone have a particular reason for using the -p|-P switches? -- Russell A. Jackson <raj@csub.edu> Network Analyst California State University, Bakersfield QOTD: "It''s been Monday all week today."
Russell Jackson wrote:> I''d like to clarify some points about the ports/package system in FreeBSD. I apoligize > ahead of time if this isgrrr. hit send a little too soon. I apologize for both this and ahead of time if I''m rehashing old info.> > Both packages and ports use the pkgdb system. This isn''t some lame cludge; it''s by design, > and the reason is really quite simple. Packages are built from the ports collection. The > only real difference between them is the mode of delivery. > > When you run ''make install'' from a port in the tree, it fetches the distfiles, applies > whatever voodoo is necessary to get it to compile, and then installs using the program''s > own makefile (sometimes other mechanisms depending on the port). It then registers the > contents of the pkg-plist (which may be static or dynamically generated) with pkgdb. When > you run ''make package'' it does the above but also tars together the files in the pkg-plist > along with the pkg-plist and creates a "package". It''s this package that you use with pkg_add. > > So, as you can see, it really doesn''t matter which one you use. The reason using ports > directly is desirable is that the official pre-built packages availabe on the project > servers and mirrors lag behind CVS by a wide margin. > > Now the reason why I bring this up is because of how portupgrade is being executed in the > ports provider: > > -p -N -P -M BATCH=yes > > The -p is unnecessary and only wastes time generating the package tarball when the port is > installed just fine without it. It also will fill up the /usr partition as it populates > /usr/ports/packages with every version of the port you build. > > As I said before, if you''re keeping your ports tree up-to-date like you should, trying to > fetch a pre-built package is likely to be futile. They''ll always be older than what you''re > trying to install from the port (unless you''re maintaining your own package repository > which is really what -P is geared towards). > > In short, I recommend changing the portupgrade invocation to: > > portupgrade --new --batch --yes > > or possibly even just: > > portinstall --batch --yes > > --batch and -M BATCH=yes are equivalent, but guess which one is more readable ;-). > --yes for same reason as for having --batch. > > Unless anyone disagrees with me... did anyone have a particular reason for using the -p|-P > switches? >-- Russell A. Jackson <raj@csub.edu> Network Analyst California State University, Bakersfield QOTD: "It''s been Monday all week today."
Russell Jackson wrote:> I''d like to clarify some points about the ports/package system in FreeBSD. I apoligize > ahead of time if this is > > Both packages and ports use the pkgdb system. This isn''t some lame cludge; it''s by design, > and the reason is really quite simple. Packages are built from the ports collection. The > only real difference between them is the mode of delivery. > > When you run ''make install'' from a port in the tree, it fetches the distfiles, applies > whatever voodoo is necessary to get it to compile, and then installs using the program''s > own makefile (sometimes other mechanisms depending on the port). It then registers the > contents of the pkg-plist (which may be static or dynamically generated) with pkgdb. When > you run ''make package'' it does the above but also tars together the files in the pkg-plist > along with the pkg-plist and creates a "package". It''s this package that you use with pkg_add. > > So, as you can see, it really doesn''t matter which one you use. The reason using ports > directly is desirable is that the official pre-built packages availabe on the project > servers and mirrors lag behind CVS by a wide margin. > > Now the reason why I bring this up is because of how portupgrade is being executed in the > ports provider: > > -p -N -P -M BATCH=yes > > The -p is unnecessary and only wastes time generating the package tarball when the port is > installed just fine without it. It also will fill up the /usr partition as it populates > /usr/ports/packages with every version of the port you build. > > As I said before, if you''re keeping your ports tree up-to-date like you should, trying to > fetch a pre-built package is likely to be futile. They''ll always be older than what you''re > trying to install from the port (unless you''re maintaining your own package repository > which is really what -P is geared towards). > > In short, I recommend changing the portupgrade invocation to: > > portupgrade --new --batch --yes > > or possibly even just: > > portinstall --batch --yes > > --batch and -M BATCH=yes are equivalent, but guess which one is more readable ;-). > --yes for same reason as for having --batch. > > Unless anyone disagrees with me... did anyone have a particular reason for using the -p|-P > switches? >Well Luke, I found a thread from 2006 on luke.hates-software.com with your not-so-impressed views on the ports system. So it looks like you''re already somewhat aware of how it works, and my didactic rambling wasn''t terribly enlightening. -- Russell A. Jackson <raj@csub.edu> Network Analyst California State University, Bakersfield QOTD: "It''s been Monday all week today."
On Aug 12, 2007, at 11:51 PM, Russell Jackson wrote:> Well Luke, I found a thread from 2006 on luke.hates-software.com > with your > not-so-impressed views on the ports system. So it looks like you''re > already somewhat aware > of how it works, and my didactic rambling wasn''t terribly > enlightening.Just for the record, I have no real opinion on how the ports provider works. I can''t seem to make it work in a way that makes sense to me, but if you''re willing to take responsibility for the functionality of the provider, I''m willing to give it to you. If you can provide a patch with the commands you want, then I''m fine accepting it, as long as other FreeBSD users (Ghislain?) aren''t bothered by your patch. -- A government big enough to give you everything you want is big enough to take from you everything you have. --Gerald R. Ford --------------------------------------------------------------------- Luke Kanies | http://reductivelabs.com | http://madstop.com
Luke Kanies wrote:> On Aug 12, 2007, at 11:51 PM, Russell Jackson wrote: > >> Well Luke, I found a thread from 2006 on luke.hates-software.com >> with your >> not-so-impressed views on the ports system. So it looks like you''re >> already somewhat aware >> of how it works, and my didactic rambling wasn''t terribly >> enlightening. > > Just for the record, I have no real opinion on how the ports provider > works. I can''t seem to make it work in a way that makes sense to me, > but if you''re willing to take responsibility for the functionality of > the provider, I''m willing to give it to you. If you can provide a > patch with the commands you want, then I''m fine accepting it, as long > as other FreeBSD users (Ghislain?) aren''t bothered by your patch. >Actually, I was just testing, and it looks like --yes isn''t doing what I thought it should do. portinstall is now prompting me again for disambiguation when there are multiple versions of a port. I could have sworn it was working yesterday! I''m actually starting to share some of your frustrations ;-). -- Russell A. Jackson <raj@csub.edu> Network Analyst California State University, Bakersfield QOTD: "It''s been Monday all week today."