Re: git: ddd0e820c8eb - main - Mk/bsd.ports.mk: Add suppport for WWW in Makefiles

From: Craig Leres <leres_at_freebsd.org>
Date: Sat, 10 Sep 2022 17:44:30 UTC
On 9/9/22 12:17, Stefan Eßer wrote:
> Am 09.09.22 um 20:01 schrieb Craig Leres:
>> On 9/8/22 23:40, Antoine Brodin wrote:
>>> Another regression,  now some ports fail because the manifest is not 
>>> valid.
>>> For 
>>> instance:http://gohan03.nyi.freebsd.org/data/main-amd64-default-baseline/p3af3d0f1a1c9_s1494f4776a/logs/errors/linux_base-c7-7.9.2009.log 
>>>
>>
>> I'm seeing this as well since this change. I started a poudriere jail, 
>> built the port and the poked around in the work directory and noticed 
>> that line 11, column 55 of .metadir/+MANIFEST is a comma:
>>
>>      name: "linux_base-c7"
>>      version: "7.9.2009"
>>      origin: emulators/linux_base-c7
>>      comment: <<EOD
>>      Base set of packages needed in Linux mode (Linux CentOS 7.9.2009)
>>      EOD
>>      maintainer: emulation@FreeBSD.org
>>      prefix: /compat/linux
>>      categories: [ emulators, linux, ]
>>      licenselogic: single
>>      www: http://mirror.centos.org/%SUBDIR%/:DEFAULT,aarch64,amd64,i386
>>      deps: {
>>      }
>>      options: {
>>       DOCS: off,
>>       NLS: off,
>>      }
> 
> This was a side effect of the decision to use the first element of 
> MASTER_SITE
> as a default value for WWW.
> 
> I have committed two changes (0d7e17c121bb, 1c4cfbf076f6) to fix this 
> issue:
> 
> 1) The www field in the manifest is now set to a string in double quotes to
>     prevent commas in the URL from being treated as a field separator.
> 
> 2) There is no longer a default value in case of no explicit WWW parameter.
> 
>> I noticed that the port makefile does not define WWW. When I add one 
>> the port successfully packages.
>>
>>          Craig
>>
>> zinc 55 # pwd
>> /usr/ports/emulators/linux_base-c7
>> zinc 56 # git diff .
>> diff --git a/emulators/linux_base-c7/Makefile 
>> b/emulators/linux_base-c7/Makefile
>> index 142e4e9267..276453f1a1 100644
>> --- a/emulators/linux_base-c7/Makefile
>> +++ b/emulators/linux_base-c7/Makefile
>> @@ -6,6 +6,7 @@ EXTRACT_ONLY= 
>> ${DISTFILES:N*${SRC_SUFX}*:Nfilesystem-*:C/:[^:]+$//}
>>
>>   MAINTAINER=    emulation@FreeBSD.org
>>   COMMENT=       Base set of packages needed in Linux mode (Linux 
>> CentOS ${LINUX_DIST_VER})
>> +WWW=           http://127.0.0.1/
>>
>>   USES=          linux:c7
>>   USE_LINUX=     # empty
> 
> Yes, this issue did only affect ports that did not set WWW (i.e., which
> did not have a WWW: line in the pkg-descr file before).
> 
> The double quotes around URLs are not required for any current WWW value,
> since none contains a comma. But I think the quotes makes the code more r
> robust, since a comma could be contained in a valid URL assigned to WWW.

Thanks for the fix!

Something related I just noticed: portlint needs to be taught about WWW.

		Craig

zinc 34 # portlint -a
FATAL: Makefile: extra item "WWW" placed in the MAINTAINER section.
1 fatal error and 0 warnings found.