sysutils/screen -- INFO issue

Cy Schubert Cy.Schubert at komquats.com
Mon Oct 29 14:20:53 PDT 2007


In message <47263BF4.3070305 at gahr.ch>, Pietro Cerutti writes:
> This is an OpenPGP/MIME signed message (RFC 2440 and 3156)
> --------------enigB8265C98D519CDAA1FC5B00B
> Content-Type: text/plain; charset=ISO-8859-1
> Content-Transfer-Encoding: quoted-printable
> 
> Cy Schubert wrote:
> > In message <472632D7.3 at gahr.ch>, Pietro Cerutti writes:
> >> This is an OpenPGP/MIME signed message (RFC 2440 and 3156)
> >> --------------enig25037A9EB2B21A45B2ACF21A
> >> Content-Type: text/plain; charset=3DUTF-8
> >> Content-Transfer-Encoding: quoted-printable
> >>
> >> Dear Cy, dear list
> >>
> >> here I am to talk about the INFO issue of sysutils/screen [screen].
> >>
> >> To summarize:
> >> screen has an option to [en|dis]able installation of an INFO page.
> >> If the option is set, WITH_INFO gets set accordingly, otherwise the
> >> port's Makefile sets the make argument NO_INFO.
> >> In turn, ${WRKSRC}/doc/Makefile checks for NO_INFO, and if it's not se=
> t,
> >> it prepares the INFO page for installation by running
> >> makeinfo --no-split ./screen.texinfo -o screen.info
> >>
> >> The problem is that make.conf(5) documents the variable NO_INFO under
> >> the section "BUILDING THE WORLD - The following list provides a name a=
> nd
> >> short description for variables that are used during the world build".=
> 
> >>
> >> I think here we have a namespace collision problem for the variable NO=
> _IN=3D
> >> FO.
> >>
> >> If NO_INFO is set in make.conf and the WITH_INFO option is enabled whi=
> le
> >> building screen, ${WRKSRC}/doc/Makefile won't prepare the info page bu=
> t
> >> the port's Makefile will try to install it anyway. This leads to a "fi=
> le
> >> not found" build error:
> >>
> >> install-info --quiet /usr/local/info/screen.info /usr/local/info/dir
> >> install-info: No such file or directory for /usr/local/info/screen.inf=
> o
> >> *** Error code 1
> >>
> >> I suggest that we change ${WRKSRC}/doc/Makefile to check for WITH_INFO=
> 
> >> (used within ports) instead of !NO_INFO (used while building the world=
> ).
> >> In addition, we should change the port's Makefile to set the make
> >> argument WITH_INFO if the option was chosen instead of setting NO_INFO=
> 
> >> it it wasn't.
> >>
> >> The same whole issue exists for the MAN page, for which I suggest the
> >> same modifications in the port's Makefile and in ${WRKSRC}/doc/Makefil=
> e.
> >>
> >> The following patches to the port's Makefile and for
> >> files/patch-doc_Makefile.in implement the changes discussed above.
> >>
> >> --- Makefile.orig	2007-10-29 19:18:41.000000000 +0100
> >> +++ Makefile	2007-10-29 20:15:20.000000000 +0100
> >> @@ -31,16 +31,14 @@
> >>  GNU_CONFIGURE=3D3D	yes
> >>  .if defined(WITH_MAN)
> >>  MAN1=3D3D		screen.1
> >> -.else
> >> -MAKE_ARGS+=3D3D	-DNO_MAN
> >> +MAKE_ARGS+=3D3D -DWITH_MAN
> >>  .endif
> >>  .if defined(WITH_INFO)
> >>  .if !exists(/usr/bin/install-info)
> >>  RUN_DEPENDS+=3D3D	install-info:${PORTSDIR}/print/texinfo
> >>  .endif
> >>  INFO=3D3D		screen
> >> -.else
> >> -MAKE_ARGS+=3D3D	-DNO_INFO
> >> +MAKE_ARGS+=3D3D -DWITH_INFO
> >>  .endif
> >>
> >>  .if ${ARCH} =3D3D=3D3D "alpha"
> >> --- files/patch-doc_Makefile.in.orig	2007-10-29 19:40:13.000000000 +
> 01=
> 00
> >> +++ files/patch-doc_Makefile.in	2007-10-29 20:11:43.000000000 +0100
> >> @@ -4,10 +4,10 @@
> >>   	$(MAKEINFO) $(srcdir)/screen.texinfo -o screen.info
> >>
> >>   install: installdirs
> >> -+.if !defined(NO_MAN)
> >> ++.if defined(WITH_MAN)
> >>   	$(INSTALL_DATA) $(srcdir)/screen.1 $(DESTDIR)$(mandir)/man1/screen.=
> 1
> >>  +.endif
> >> -+.if !defined(NO_INFO)
> >> ++.if defined(WITH_INFO)
> >>   	-$(MAKE) screen.info
> >>   	-if test -f screen.info; then d=3D3D.; else d=3D3D$(srcdir); fi; \
> >>   	if test -f $$d/screen.info; then \
> >> @@ -23,10 +23,10 @@
> >>
> >>   installdirs:
> >>  -	$(srcdir)/../etc/mkinstalldirs $(DESTDIR)$(mandir)/man1
> >> $(DESTDIR)$(infodir)
> >> -+.if !defined(NO_MAN)
> >> ++.if defined(WITH_MAN)
> >>  +	$(srcdir)/../etc/mkinstalldirs $(DESTDIR)$(mandir)/man1
> >>  +.endif
> >> -+.if !defined(NO_INFO)
> >> ++.if defined(WITH_INFO)
> >>  +	$(srcdir)/../etc/mkinstalldirs $(DESTDIR)$(infodir)
> >>  +.endif
> >>
> >>
> >> I would greatly appreciate input / clarification / feedback / ideas on=
> 
> >> the whole story before filling a PR.
> >=20
> > What you're discussing is renaming NO_INFO and NO_MAN to WITHOUT_INFO a=
> nd=20
> > WITHOUT_MAN (or comparing for non-definition of WITH_MAN and WITH_INFO)=
> =2E=20
> > Agreed something needs to be done about the namespace collision. There =
> has=20
> > been some discussion of make.conf files for src/ports/doc/etc, which I =
> 
> > believe didn't result in any decision being made.
> 
> This would also solve the problem. Do you have any argument supporting
> the use of WITHOUT_* when an option is not set and against the use
> WITH_* when the option is set?
> 
> My option would save a few lines of in the Makefile (you don't need an
> =2Eelse branch).

Probably. I'll update the port. A documentation change to the porters handbook should discuss this.


-- 
Cheers,
Cy Schubert <Cy.Schubert at komquats.com>
FreeBSD UNIX:  <cy at FreeBSD.org>   Web:  http://www.FreeBSD.org

			e**(i*pi)+1=0




More information about the freebsd-ports mailing list