Re: [RFC] NO_INSTALL in meta-ports considered harmful
At 2009-05-10T21:28:34Z, Marcin Wisnicki wrote: 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 In my personal metaports, I follow exactly the above prescription. For example, I have a port opt/metalisp with the following Makefile fragment: RUN_DEPENDS=\ ${OPTBASE}/share/lisp/asdf/alexandria.asd:${PORTSDIR}/opt/alexandria \ ${OPTBASE}/share/doc/cltl/cltl2.html:${PORTSDIR}/opt/cltl \ ${OPTBASE}/share/lisp/asdf/trivial-gray-streams.asd:${PORTSDIR}/opt/tgstreams NO_BUILD= yes do-install: @${DO_NADA} .include bsd.port.mk Raghavendra. -- N. Raghavendra ra...@mri.ernet.in | http://www.retrotexts.net/ Harish-Chandra Research Institute | http://www.mri.ernet.in/ See message headers for contact and OpenPGP information. ___ freebsd-ports@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-ports To unsubscribe, send any mail to freebsd-ports-unsubscr...@freebsd.org
Re: [RFC] NO_INSTALL in meta-ports considered harmful
On Sun, May 10, 2009 at 09:28:34PM +, 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+free...@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. -- WXS ___ freebsd-ports@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-ports To unsubscribe, send any mail to freebsd-ports-unsubscr...@freebsd.org
Re: [RFC] NO_INSTALL in meta-ports considered harmful
On Mon, May 11, 2009 at 09:17:00AM -0400, Wesley Shields wrote: On Sun, May 10, 2009 at 09:28:34PM +, 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+free...@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. ___ freebsd-ports@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-ports To unsubscribe, send any mail to freebsd-ports-unsubscr...@freebsd.org
[RFC] NO_INSTALL in meta-ports considered harmful
Some metaports (like print/cups) use NO_INSTALL. This will prevent such port from registering its installation in /var/db/ pkg, which is different behaviour from installing it from prebuilt package (where it registers just fine). IMHO not registering installation makes no sense and serves only to confuse users (I've installed cups yet pkg_info claims I didn't!) and causes unnecessary differences between software installed from ports vs pkgs, which may lead to other unexpected problems (like missing RUN_DEPENDS). Thus I advocate for more uniform handling of ports and packages by treating it as a bug and replacing any such use of NO_INSTALL with empty do-install target. Maybe even add a note to Porter's Handbook (though I see no reference to NO_INSTALL there). If anyone has some insightfull comments why NO_INSTALL is not evil then I'm all ears. ___ freebsd-ports@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-ports To unsubscribe, send any mail to freebsd-ports-unsubscr...@freebsd.org
Re: [RFC] NO_INSTALL in meta-ports considered harmful
On Sun, May 10, 2009 at 1:01 PM, Marcin Wisnicki mwisnicki+free...@gmail.com wrote: Some metaports (like print/cups) use NO_INSTALL. This will prevent such port from registering its installation in /var/db/ pkg, which is different behaviour from installing it from prebuilt package (where it registers just fine). IMHO not registering installation makes no sense and serves only to confuse users (I've installed cups yet pkg_info claims I didn't!) and causes unnecessary differences between software installed from ports vs pkgs, which may lead to other unexpected problems (like missing RUN_DEPENDS). Thus I advocate for more uniform handling of ports and packages by treating it as a bug and replacing any such use of NO_INSTALL with empty do-install target. Maybe even add a note to Porter's Handbook (though I see no reference to NO_INSTALL there). If anyone has some insightfull comments why NO_INSTALL is not evil then I'm all ears. I'm not sure if this is the 'right answer', but NO_INSTALL allows the proper installation of numerous ports from one location (the meta-port). An example of this is the misc/instant-server port (though unmaintained, IIRC). If you remove the NO_INSTALL line from the Makefile, 'make' thinks misc/instant-server should be installed, rather than the collection of ports it is intended to install. Again, this is my interpretation of it. If I'm wrong, I gladly accept corrections to my thinking. :) -- Glen Barber ___ freebsd-ports@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-ports To unsubscribe, send any mail to freebsd-ports-unsubscr...@freebsd.org
Re: [RFC] NO_INSTALL in meta-ports considered harmful
On Sun, 10 May 2009 13:08:56 -0400, Glen Barber wrote: I'm not sure if this is the 'right answer', but NO_INSTALL allows the proper installation of numerous ports from one location (the meta-port). An example of this is the misc/instant-server port (though unmaintained, IIRC). If you remove the NO_INSTALL line from the Makefile, 'make' thinks misc/instant-server should be installed, rather than the collection of ports it is intended to install. They will be installed since they are run dependencies. Again, this is my interpretation of it. If I'm wrong, I gladly accept corrections to my thinking. :) ___ freebsd-ports@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-ports To unsubscribe, send any mail to freebsd-ports-unsubscr...@freebsd.org
Re: [RFC] NO_INSTALL in meta-ports considered harmful
On Sun, 10 May 2009 15:22:04 -0400, Glen Barber wrote: On Sun, May 10, 2009 at 2:51 PM, Marcin Wisnicki mwisnicki+free...@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 ___ freebsd-ports@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-ports To unsubscribe, send any mail to freebsd-ports-unsubscr...@freebsd.org