Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 29 Oct 2007 21:00:52 +0100
From:      Pietro Cerutti <gahr@gahr.ch>
To:        Cy Schubert <Cy.Schubert@komquats.com>
Cc:        freebsd-ports@freebsd.org
Subject:   Re: sysutils/screen -- INFO issue
Message-ID:  <47263BF4.3070305@gahr.ch>
In-Reply-To: <200710291955.l9TJtG2x075845@cwsys.cwsent.com>
References:  <200710291955.l9TJtG2x075845@cwsys.cwsent.com>

next in thread | previous in thread | raw e-mail | index | archive | help
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@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).

--=20
Pietro Cerutti

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


--------------enigB8265C98D519CDAA1FC5B00B
Content-Type: application/pgp-signature; name="signature.asc"
Content-Description: OpenPGP digital signature
Content-Disposition: attachment; filename="signature.asc"

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.7 (FreeBSD)

iD8DBQFHJjv5wMJqmJVx944RCh4fAKDFEIg8Isw5ZJgZUU4fuXL/RF3GnQCgrAq/
IUYn9dI8Vb3PMGA564SPmtM=
=r/U2
-----END PGP SIGNATURE-----

--------------enigB8265C98D519CDAA1FC5B00B--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?47263BF4.3070305>