sysutils/screen -- INFO issue

Pietro Cerutti gahr at gahr.ch
Mon Oct 29 14:46:30 PDT 2007


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=UTF-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 set,
>> 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 and
>> 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=
>> FO.
>>
>> If NO_INFO is set in make.conf and the WITH_INFO option is enabled while
>> building screen, ${WRKSRC}/doc/Makefile won't prepare the info page but
>> the port's Makefile will try to install it anyway. This leads to a "file
>> 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.info
>> *** 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/Makefile.
>>
>> 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=3D	yes
>>  .if defined(WITH_MAN)
>>  MAN1=3D		screen.1
>> -.else
>> -MAKE_ARGS+=3D	-DNO_MAN
>> +MAKE_ARGS+=3D -DWITH_MAN
>>  .endif
>>  .if defined(WITH_INFO)
>>  .if !exists(/usr/bin/install-info)
>>  RUN_DEPENDS+=3D	install-info:${PORTSDIR}/print/texinfo
>>  .endif
>>  INFO=3D		screen
>> -.else
>> -MAKE_ARGS+=3D	-DNO_INFO
>> +MAKE_ARGS+=3D -DWITH_INFO
>>  .endif
>>
>>  .if ${ARCH} =3D=3D "alpha"
>> --- files/patch-doc_Makefile.in.orig	2007-10-29 19:40:13.000000000 +0100
>> +++ 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=3D.; else d=3D$(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.
> 
> What you're discussing is renaming NO_INFO and NO_MAN to WITHOUT_INFO and 
> WITHOUT_MAN (or comparing for non-definition of WITH_MAN and WITH_INFO). 
> Agreed something needs to be done about the namespace collision. There has 
> 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
.else branch).

-- 
Pietro Cerutti

PGP Public Key:
http://gahr.ch/pgp

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 187 bytes
Desc: OpenPGP digital signature
Url : http://lists.freebsd.org/pipermail/freebsd-ports/attachments/20071029/030700e8/signature.pgp


More information about the freebsd-ports mailing list