Re: [RFC] NO_INSTALL in meta-ports considered harmful

2009-05-11 Thread N. Raghavendra
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

2009-05-11 Thread Wesley Shields
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

2009-05-11 Thread Alexey Shuvaev
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

2009-05-10 Thread Marcin Wisnicki
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

2009-05-10 Thread Glen Barber
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

2009-05-10 Thread Marcin Wisnicki
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

2009-05-10 Thread Marcin Wisnicki
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