[RFC] NO_INSTALL in meta-ports considered harmful

Alexey Shuvaev shuvaev at physik.uni-wuerzburg.de
Mon May 11 14:35:22 UTC 2009


On Mon, May 11, 2009 at 09:17:00AM -0400, Wesley Shields wrote:
> On Sun, May 10, 2009 at 09:28:34PM +0000, Marcin Wisnicki wrote:
> > On Sun, 10 May 2009 15:22:04 -0400, Glen Barber wrote:
> > 
> > > On Sun, May 10, 2009 at 2:51 PM, Marcin Wisnicki
> > > <mwisnicki+freebsd at gmail.com> wrote:
> > >> They will be installed since they are run dependencies.
> > >>
> > >>From what I can tell (from several metaports) -- they, themselves, are
> > > not installed.  The ports defined in the metaport are installed.
> > 
> > That's the point. The metaports should be installed as well (reasons given 
> > in my original mail).
> > 
> > > There is no source code for, using your example, CUPS[1].  CUPS (in the
> > > FreeBSD ports tree) is, for lack of a better explanation, a pointer to
> > > which specific ports you need to have in order to get a fully operation
> > > CUPS system running.  Looking at the Makefile for print/cups [2] you can
> > > see the dependencies and that CUPS is not actually built (which in
> > > definition is what makes this a metaport).
> > 
> > I know this.
> > 
> > The proper way to make a metaport is to:
> > 1. use only RUN_DEPENDS
> > 2. set NO_BUILD
> > 3. do *NOT* set NO_INSTALL
> > 4. provide empty do-install target
> > 
> > There are several metaports that get it right, like for example x11/gnome2:
> > 
> > http://www.freebsd.org/cgi/cvsweb.cgi/ports/x11/gnome2/Makefile?rev=1.155
> 
> Based upon your description I think this is a bug in the CUPS port. I'd
> suggest you file a PR so that it can be tracked and (hopefully)
> addressed.
> 
FWIW, the following gives not so many hits:

/usr/ports> grep -R NO_INSTALL * | grep -v NO_INSTALL_MANPAGES
Mk/bsd.port.mk:# NO_INSTALL     - Use a dummy (do-nothing) install target.
Mk/bsd.port.mk:.if defined(NO_INSTALL) && !target(install)
Tools/scripts/mkptools/mkpextr:                 $cap{"NO_INSTALL"} = "YES";
devel/gnustep/Makefile:NO_INSTALL=      yes
graphics/backfract/Makefile:NO_INSTALL_MANPAGE= yes
misc/posixtestsuite/Makefile:NO_INSTALL=        YES
misc/kde4-l10n/Makefile:NO_INSTALL=     yes
ports-mgmt/portmk/Mk/bsd.port.mk:# NO_INSTALL   - Use a dummy (do-nothing) install target.
ports-mgmt/portmk/Mk/bsd.port.mk:.if defined(NO_INSTALL) && !target(install)
print/cups/Makefile:NO_INSTALL= yes
x11/etoile/Makefile:NO_INSTALL= yes
x11/gnustep-app/Makefile:NO_INSTALL=    yes

Ruling out *.mk scipts there is only 1 port that uses NO_INTSTALL correctly:
misc/posixtestsuite

These should be fixed (well, I'm not 100% sure):
devel/gnustep
misc/kde4-l10n
print/cups
x11/etoile
x11/gnustep-app

Not so many too :)

My 0.02$,
Alexey.


More information about the freebsd-ports mailing list