ports/163640: bsd.licenses.mk: Add code to support standard licenses

Chris Rees crees at FreeBSD.org
Tue Dec 27 11:10:14 UTC 2011

>Number:         163640
>Category:       ports
>Synopsis:       bsd.licenses.mk: Add code to support standard licenses
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    freebsd-ports-bugs
>State:          open
>Class:          change-request
>Submitter-Id:   current-users
>Arrival-Date:   Tue Dec 27 11:10:13 UTC 2011
>Originator:     Chris Rees
>Release:        FreeBSD 8.2-STABLE i386
System: FreeBSD freefall.freebsd.org 8.2-STABLE FreeBSD 8.2-STABLE #5 r227907: Wed Nov 23 21:55:50 UTC 2011 simon at freefall.freebsd.org:/usr/obj/usr/src/sys/FREEFALL i386


	As described, LICENSE= 'some known license' leaves us with a dummy file in /usr/local/share/licenses/${PKGNAME} that suggests that we fetch the license ourselves from the Internet.

	This patch checks in _LICENSE_STORE for a matching license and uses that if it exists

	Try it out by applying, and drop some licenses into ${PORTSDIR}/Templates/licenses with the same filename as the LICENSE variable.

--- licenses.patch begins here ---
? Templates/licenses
Index: Mk/bsd.licenses.mk
RCS file: /home/pcvs/ports/Mk/bsd.licenses.mk,v
retrieving revision 1.8
diff -u -r1.8 bsd.licenses.mk
--- Mk/bsd.licenses.mk	31 Mar 2011 03:37:14 -0000	1.8
+++ Mk/bsd.licenses.mk	27 Dec 2011 11:03:29 -0000
@@ -141,6 +141,7 @@
 # _LICENSE_DIR		- Directory to install licenses
 # _LICENSE_DIR_REL	- Same as above, without ${PREFIX}
+# _LICENSE_STORE	- Store for known license files
 # _LICENSE_CATALOG	- License catalog (make include file) to be created (dst)
 # _LICENSE_CATALOG_TMP	- Same as above, but in WRKDIR (src)
 # _LICENSE_REPORT	- License summary, shows licenses and how they are combined (dst)
@@ -151,6 +152,7 @@
 _LICENSE_DIR?=		${PREFIX}/share/licenses/${PKGNAME}
 _LICENSE_DIR_REL?=	share/licenses/${PKGNAME}
+_LICENSE_STORE?=	${PORTSDIR}/Templates/licenses
 _LICENSE_CATALOG_TMP?=	${WRKDIR}/.license-catalog.mk
@@ -228,9 +230,13 @@
 # Check for LICENSE_FILE or at least LICENSE_TEXT (which simulates it)
 .			if !defined(LICENSE_FILE)
 .				if !defined(LICENSE_TEXT)
-# XXX Until we have a license pool under /usr/ports/Licenses use this
+.					if exists(${_LICENSE_STORE}/${lic})
+.					else
+# No license file in /usr/ports/Templates/licenses
 _LICENSE_TEXT=		The license: ${_LICENSE} (${_LICENSE_NAME}) is standard, please read from the web.
+.					endif
 .				else
 _LICENSE_ERROR?=	defining LICENSE_TEXT is not allowed for known licenses
 .				endif
--- licenses.patch ends here ---


More information about the freebsd-ports-bugs mailing list