Date: Fri, 18 Jul 2008 02:46:37 GMT From: Alejandro Pulver <alepulver@FreeBSD.org> To: Perforce Change Reviews <perforce@freebsd.org> Subject: PERFORCE change 145401 for review Message-ID: <200807180246.m6I2kbL6078968@repoman.freebsd.org>
next in thread | raw e-mail | index | archive | help
http://perforce.freebsd.org/chv.cgi?CH=145401 Change 145401 by alepulver@alepulver_deimos on 2008/07/18 02:46:00 - Update README - Remove LICENSE_WRKSRC (a full path is more convenient) - Organize and rename internal variables, add comments - Improve configuration Affected files ... .. //depot/projects/soc2008/alepulver-portslicense/ports/Mk/README#2 edit .. //depot/projects/soc2008/alepulver-portslicense/ports/Mk/bsd.licenses.mk#2 edit .. //depot/projects/soc2008/alepulver-portslicense/ports/Mk/test-license-1/Makefile#2 edit Differences ... ==== //depot/projects/soc2008/alepulver-portslicense/ports/Mk/README#2 (text+ko) ==== @@ -57,7 +57,7 @@ ============================================================================== When asking the user to agree the license there are options to save the choice -to a configuration file in "${PORT_DBDIR}/license-config.mk". +to a configuration file in "${LICENSE_CFG}" (can be global or per port). ============================================================================== 6. Reports @@ -80,30 +80,33 @@ dual/multiple licenses (need parsing code), start with only one of them * implement LICENSE_COMPAT for packaging/linking (check *_DEPENDS appropiately), but should be allowed by default first (maybe should be - NOCOMPAT instead)? + INCOMPAT instead)? * Consider licenses that need manual agreement/manual fetching provide framework help for manual distfile placing, etc + maybe also add pkg-fetch-message or some variables to avoid manual IGNORE/printf? * how do you know if a license has changed? Save checksum? Maybe license revison number suffixed by a _n? Or not needed (this is only for changes of the same license type: e.g. BSD-based to BSD-based, but with no-pkg-sell). -* provide useful aliases like "no-sell" for a general no-pkg-sell no-dist-sell -* decide if LICENSE_* variables should inherit components from LICENSE if it - is a known one + only for license "variant" and "unknown", save checksum in port cfg and compare +* provide useful aliases like "no-sell" for a general no-pkg-sell no-dist-sell, + and groups for the same purpose General: * additional targets (show-license, show-license-report, show-known-licenses, etc) * add common licenses (check a web page or try FOSSology) * avoid whitespace in saved files (reports and cfg) +* add LICENSE_TEXT for when there is no LICENSE_FILE, and show instead (not + with a license but maybe for a URL to read it) Configuration: * provide target to assist cleaning LICENSES_ACCEPTED and LICENSES_REJECTED, and ports framework configuration -* port specific config should be next to ${OPTIONSFILE}, remove the - license:category/port notation * provide root credential switching like make-config * allow approving a previously rejected and saved license with a target like - license-config + license-config (or by defining a variable) +* separate groups into another variable (either internally and/or externally->better) +* make list of error messages (by component/type) and the like, so targets are more dynamic Reports: ==== //depot/projects/soc2008/alepulver-portslicense/ports/Mk/bsd.licenses.mk#2 (text+ko) ==== @@ -41,12 +41,10 @@ # The components of LICENSES_{ACCEPTED,REJECTED} can be one of: # - A license code (like "GPLv2"). # - A license group prefixed by '@' (like "@OSI"). -# - A license variant specific to a port as "license:port" (like -# GPLv2:devel/foo). # # Note that the framework configuration format is the same, but stored in -# ${LICENSE_CFG}. The user variables take precedence (anyways the other -# configuration is also made by the user). +# ${LICENSE_CFG} or ${LICENSE_CFG_PORT}. The user variables take precedence +# (anyways the other configuration is also made by the user). # # Variables provided to ports @@ -58,22 +56,23 @@ # LICENSE_NAME - Full license name (for the reports) # LICENSE_NOTES - A note about restrictions (not needed), to replace # RESTRICTED and ports/LEGAL. -# LICENSE_WRKSRC - Path to LICENSE_FILE (default: ${WRKSRC}) -# LICENSE_FILE - Path to license, relative to LICENSE_WRKSRC (or "none") +# LICENSE_FILE - Path to license (or "none") # LICENSE_DISTFILE - Name of licensed files (defaults to ${DISTFILES}) # -# The following cases are supported: +# The following cases are supported (see _LICENSE_TYPE): # -# Case 1: license defined in the framework. -# Define LICENSE; framework defines LICENSE_{PERMS,GROUPS,COMPAT,NAME}. -# By redefining any of them the port falls in Case 2. +# Case 1: license defined in the framework (aka "known"). +# Define LICENSE; framework defines license variables, by redefining any of +# them the port falls in Case 2. # -# Case 2: license is based on a defined one. -# Define LICENSE; and LICENSE_{PERMS,GROUPS,COMPAT,NAME} are defined only if -# the port does not. +# Case 2: license is based on a defined one (aka "variant"). +# All license variables must be defined by the port (but LICENSE is set to +# a known value). +# XXX This case is being considered, and if it has to inherit properties from +# its base license. Or just let it fall in Case 3. # -# Case 3: license only known by the port. -# LICENSE_{PERMS,GROUPS,COMPAT,NAME} are mandatory. +# Case 3: license only known by the port (aka "unknown"). +# All license variables must be defined by the port. # # Notes: # - Permissions use a default-deny policy (that's why groups are there). @@ -102,111 +101,98 @@ .if defined(LICENSE) -# Valid components +# Organization +# - Define common license properties +# - Define internal variables +# - Check for single or multiple port licenses +# - Check defined properties and compare with database +# - Check user and framework configuration +# - Define targets -_LICENSE_VARS_ALL= PERMS GROUPS NAME # COMPAT -_LICENSE_PERMS_ALL= dist-redist distsell pkg-redist pkg-sell auto-accept none -_LICENSE_SAVE_ALL= LICENSE ${_LICENSE_VARS_ALL:S/^/LICENSE_/} LICENSE_NOTES LICENSE_DISTFILE +# XXX Start of editable section -# Path variables - -LICENSE_WRKSRC?= ${WRKSRC} -LICENSE_DISTFILE?= ${DISTFILES} -LICENSE_DIR?= ${PREFIX}/share/licenses/${UNIQUENAME} -LICENSE_DIR_REL?= share/licenses/${UNIQUENAME} -LICENSE_CFG?= ${PORT_DBDIR}/license-config.mk -LICENSE_REPORT?= ${LICENSE_DIR}/report.mk - # License definitions # -# _LICENSES_ALL - List of defined licenses -# _LICENSE_GROUPS_ALL - List of defined license groups +# _LICENSE_LIST - List of defined licenses +# _LICENSE_LIST_GROUPS - List of defined license groups # -_LICENSES_ALL= GPLv2 -_LICENSE_GROUPS_ALL= FSF +_LICENSE_LIST= GPLv2 +_LICENSE_LIST_GROUPS= FSF # Properties of license/group "xxx" (similar to port's variables, but single) -# _LICENSE_xxx_NAME - Full name of license/group, for the reports -# _LICENSE_xxx_PERMS - Permissions -# _LICENSE_xxx_COMPAT - Compatibility +# _LICENSE_NAME_xxx - Full name/description of license/group +# _LICENSE_PERMS_xxx - Permissions +# _LICENSE_COMPAT_xxx - Compatibility # List of licenses -_LICENSE_GPLv2_NAME= GNU General Public License version 2 -_LICENSE_GPLv2_PERMS= dist-redist dist-sell pkg-redist pkg-sell auto-accept -#_LICENSE_GPLv2_COMPAT= # +_LICENSE_NAME_GPLv2= GNU General Public License version 2 +_LICENSE_PERMS_GPLv2= dist-redist dist-sell pkg-redist pkg-sell auto-accept +_LICENSE_COMPAT_GPLv2= # # List of groups -_LICENSE_FSF_NAME= Free Software Foundation approved -_LICENSE_FSF_PERMS= # -#_LICENSE_FSF_COMPAT= # +_LICENSE_NAME_FSF= Free Software Foundation approved +_LICENSE_PERMS_FSF= # +_LICENSE_COMPAT_FSF= # # Grouping +# # - Method 1: -# _LICENSE_GROUP_xxx - List of licenses under the "xxx" group +# _LICENSE_LIST_GROUP_xxx - List of licenses under the "xxx" group + +_LICENSE_LIST_GROUP_FSF= GPLv2 + # - Method 2: -# _LICENSE_xxx_GROUPS - Groups the license/group belongs to +# _LICENSE_GROUPS_xxx - Groups the license/group belongs to + +# empty -_LICENSE_GROUP_FSF= GPLv2 +# XXX End of editable section # Method 1 expands to method 2 -.for group in ${_LICENSE_GROUPS_ALL} -. for lic in ${_LICENSE_GROUP_${group}} -_LICENSE_${lic}_GROUPS?= # -. if ${_LICENSE_${lic}_GROUPS:M${group}} == "" -_LICENSE_${lic}_GROUPS+= ${group} +.for group in ${_LICENSE_LIST_GROUPS} +. for lic in ${_LICENSE_LIST_GROUP_${group}} +_LICENSE_GROUPS_${lic}?= # +. if ${_LICENSE_GROUPS_${lic}:M${group}} == "" +_LICENSE_GROUPS_${lic}+= ${group} . endif . endfor .endfor -# Check if the user agrees with the license +# Lists of variables and valid components # -# LICENSES_ACCEPTED - List of accepted licenses (user version) -# LICENSES_REJECTED - List of rejected licenses (user version) -# _LICENSES_ACCEPTED - List of accepted licenses (framework configuration) -# _LICENSES_REJECTED - List of rejected licenses (framework configuration) -# _LICENSES_YES - Merged list of accepted licenses -# _LICENSES_NO - Merged list of rejected licenses +# _LICENSE_LIST_PERMS - Valid permission components +# _LICENSE_LIST_PORT_VARS - License variables defined by the port +# _LICENSE_LIST_GROUP_VARS - License variables inherited from groups +# _LICENSE_LIST_SAVE_VARS - License variables present in the report -.if exists(${LICENSE_CFG}) -.include "${LICENSE_CFG}" -.endif +_LICENSE_LIST_PERMS= dist-redist distsell pkg-redist pkg-sell auto-accept none +_LICENSE_LIST_PORT_VARS= PERMS GROUPS NAME # COMPAT +_LICENSE_LIST_GROUP_VARS= PERMS # COMPAT +_LICENSE_LIST_SAVE_VARS= LICENSE ${_LICENSE_LIST_PORT_VARS:S/^/LICENSE_/} LICENSE_NOTES LICENSE_DISTFILE -# Make sure these are defined -_LICENSES_ACCEPTED?= # -_LICENSES_REJECTED?= # -LICENSES_ACCEPTED?= # -LICENSES_REJECTED?= # -_LICENSES_YES= # -_LICENSES_NO= # +# Path variables +# +# LICENSE_DIR - Directory to install licenses +# LICENSE_DIR_REL - Same as above, without ${PREFIX} +# LICENSE_CFG_GLOB - Global license configuration file +# LICENSE_CFG_PORT - Per port license configuration file +# LICENSE_REPORT - License report to be created (under ${LICENSE_DIR}) -# Manual user configuration (cmd-line or /etc/make.conf) -.for lic in ${LICENSES_ACCEPTED:C,\:,|,} -. if ${_LICENSES_YES:M${lic}} == "" -_LICENSES_YES+= ${lic} -. endif -.endfor -.for lic in ${LICENSES_REJECTED:C,\:,|,} -. if ${_LICENSES_NO:M${lic}} == "" -_LICENSES_NO+= ${lic} -. endif -.endfor +LICENSE_DISTFILE?= ${DISTFILES} +LICENSE_DIR?= ${PREFIX}/share/licenses/${UNIQUENAME} +LICENSE_DIR_REL?= share/licenses/${UNIQUENAME} +LICENSE_CFG_GLOB?= ${PORT_DBDIR}/license-config +LICENSE_CFG_PORT?= ${PORT_DBDIR}/${UNIQUENAME}/license +LICENSE_REPORT?= ${LICENSE_DIR}/report -# Framework configuration (load cfg file; respecting user vars) -.for lic in ${_LICENSES_ACCEPTED:C,\:,|,} -. if ${LICENSES_REJECTED:M${lic}} == "" && ${_LICENSES_YES:M${lic}} == "" -_LICENSES_YES+= ${lic} -. endif -.endfor -.for lic in ${_LICENSES_REJECTED:C,\:,|,} -. if ${LICENSES_ACCEPTED:M${lic}} == "" && ${_LICENSES_NO:M${lic}} == "" -_LICENSES_NO+= ${lic} -. endif -.endfor +# Check if single or dual/multiple license +# +# _LICENSE_SINGLE - Defined for a single license +# _LICENSE_MULTI - Set to "and"/"or"? (XXX Not implemented) -# Check if single or dual/multiple license .for lic in ${LICENSE} . if defined(_LICENSE_DEFINED) _LICENSE_MULTI= yes @@ -219,86 +205,167 @@ .endif .undef _LICENSE_DEFINED -# Evaluate final groups and permissions +# Evaluate port license groups and permissions +# +# Available values for _LICENSE_TYPE: +# Case 1: "known" (license info taken from internal database) +# Case 2: "variant" (LICENSE is known, but info taken from port) +# Case 3: "unknown" (LICENSE is not known, and info taken from port) +# +# Make sure required variables are defined, and remove conflicting (positive +# and negative) and duplicated components. .if defined(_LICENSE_SINGLE) . for lic in ${LICENSE} +. if ${_LICENSE_LIST:M${lic}} != "" +. for var in ${_LICENSE_LIST_PORT_VARS} +. if defined(LICENSE_${var}) +_LICENSE_TYPE= variant +. endif +. endfor +_LICENSE_TYPE?= known +. for var in ${_LICENSE_LIST_PORT_VARS} # Case 1: license defined in the framework. -. if ${_LICENSES_ALL:M${lic}} != "" -. for var in ${_LICENSE_VARS_ALL} +. if ${_LICENSE_TYPE} == "known" +_LICENSE_${var}= ${_LICENSE_${var}_${lic}} # Case 2: license is based on a defined one. -. if defined(LICENSE_${var}) -_LICENSE_TYPE?= variant +# XXX Should here be inheritance of non defined values? +. elif ${_LICENSE_TYPE} == "variant" _LICENSE_${var}= ${LICENSE_${var}} -. else -_LICENSE_TYPE?= known -_LICENSE_${var}?= ${_LICENSE_${lic}_${var}} . endif . endfor # Case 3: license only known by the port. . else _LICENSE_TYPE?= unknown -. for var in ${_LICENSE_VARS_ALL} -. if !defined(LICENSE_${var}) -_LICENSE_ERROR?= for a new (unknown) license, defining LICENSE_{PERMS,GROUPS,COMPAT,NAME} is mandatory -. else +. for var in ${_LICENSE_LIST_PORT_VARS} +. if defined(LICENSE_${var}) _LICENSE_${var}= ${LICENSE_${var}} . endif . endfor +# Check everything needed is defined. +. for var in ${_LICENSE_LIST_PORT_VARS} +. if !defined(_LICENSE_${var}) +. if ${_LICENSE_TYPE} == "variant" +_LICENSE_ERROR?= for a modified license, defining LICENSE_${var} is mandatory (otherwise define LICENSE alone) +. elif ${_LICENSE_TYPE} == "unknown" +_LICENSE_ERROR?= for a new/unknown license, defining LICENSE_${var} is mandatory (otherwise use a known LICENSE) +. endif +. endif +. endfor . endif # Groups are always inherited (and were expanded so no recursion) -. for group in ${_LICENSE_GROUPS} -_LICENSE_PERMS+= ${_LICENSE_${group}_PERMS} -#_LICENSE_COMPAT+= ${_LICENSE_${group}_COMPAT} +. for group in ${_LICENSE_LIST_GROUPS} +. for var in ${_LICENSE_LIST_GROUP_VARS} +_LICENSE_${var}+= ${_LICENSE_${var}_${group}} +. endfor . endfor # Remove ambiguous and duplicate components __LICENSE_PERMS:= ${_LICENSE_PERMS} _LICENSE_PERMS:= # -. for comp in ${_LICENSE_PERMS_ALL} +. for comp in ${_LICENSE_LIST_PERMS} . if ${__LICENSE_PERMS:M${comp}} != "" && ${__LICENSE_PERMS:Mno-${comp}} == "" && \ ${_LICENSE_PERMS:M${comp}} == "" _LICENSE_PERMS+= ${comp} . endif . endfor +# Check LICENSE_FILE (XXX Should be mandatory in all cases?) +. if !defined(LICENSE_FILE) +_LICENSE_ERROR?= LICENSE_FILE must be defined for unknown licenses +. endif . endfor .else # XXX dual/multiple licenses .endif +# Check if the user agrees with the license +# +# LICENSE_CFG - Path to cfg file (either global or per port) +# _LICENSE_CFG_TYPE - "global" or "port", according to the previous +# +# LICENSES_ACCEPTED - List of accepted licenses (user version) +# LICENSES_REJECTED - List of rejected licenses (user version) +# _LICENSES_ACCEPTED - List of accepted licenses (configuration file) +# _LICENSES_REJECTED - List of rejected licenses (configuration file) + +# If _LICENSE_TYPE is "known", configuration is global, otherwise per port. + +.if ${_LICENSE_TYPE} == "known" +LICENSE_CFG= ${LICENSE_CFG_GLOB} +_LICENSE_CFG_TYPE= global +.else +LICENSE_CFG= ${LICENSE_CFG_PORT} +_LICENSE_CFG_TYPE= port +.endif + +.if exists(${LICENSE_CFG}) +. include "${LICENSE_CFG}" +.endif + +# Make sure these are defined +LICENSES_ACCEPTED?= # +LICENSES_REJECTED?= # +_LICENSES_ACCEPTED?= # +_LICENSES_REJECTED?= # + # Evaluate status (accepted, rejected or ask) +# +# _LICENSE_STATUS - Status: "accepted", "rejected" or "ask" +# _LICENSE_STATUS_FROM - Status origin: "user", "config" or "default" +# _LICENSE_STATUS_REASON - Text reason of license status (XXX Required?) +_LICENSE_TYPE_PAIRS_known= LICENSES,user _LICENSES,config +_LICENSE_TYPE_PAIRS_variant= _LICENSES,config +_LICENSE_TYPE_PAIRS_unknown= _LICENSES,config + .if defined(_LICENSE_SINGLE) -# Check license +# User and saved configuration . for lic in ${LICENSE} -. if ${_LICENSES_NO:M${lic}} != "" +. for pair in ${_LICENSE_TYPE_PAIRS_${_LICENSE_TYPE}} +_LC_VAR:= ${pair:C/,.*//} +_LC_TYPE:= ${pair:C/.*,//} +. if ${${_LC_VAR}_REJECTED:M${lic}} != "" && !defined(_LICENSE_STATUS) +_LICENSE_STATUS= rejected +_LICENSE_STATUS_FROM:= ${_LC_TYPE} +. elif ${${_LC_VAR}_ACCEPTED:M${lic}} != "" && !defined(_LICENSE_STATUS) +_LICENSE_STATUS= accepted +_LICENSE_STATUS_FROM:= ${_LC_TYPE} +. endif +. endfor + +# Automatic configuration +. if !defined(_LICENSE_STATUS) +# Check groups (only available for user configuration) +. for group in ${_LICENSE_LIST_GROUPS} +. if ${LICENSES_REJECTED:M\@${group}} != "" _LICENSE_STATUS?= rejected -. elif (${_LICENSE_TYPE} == "known" && ${_LICENSES_YES:M${lic}} != "") || \ - (${_LICENSE_PERMS:Mauto-accept} != "" && !defined(LICENSES_ASK)) +_LICENSE_STATUS_FROM?= user +. endif +. if ${LICENSES_ACCEPTED:M\@${group}} != "" _LICENSE_STATUS?= accepted -. else -. if ${_LICENSE_TYPE} == "variant" -. for pair in ${_LICENSES_YES:M*\|*} -_LC_TEST:= ${pair} -. if ${_LC_TEST:C,.*\|,,} == ${PKGORIGIN} && ${_LC_TEST:C,\|.*,,} == ${lic} +_LICENSE_STATUS_FROM?= user +. endif +. endfor +# Auto-accept if LICENSE_PERMS has auto-accept, and !LICENSES_ASK +. if ${_LICENSE_PERMS:Mauto-accept} != "" +. if !defined(LICENSES_ASK) _LICENSE_STATUS?= accepted -. endif -. endfor -. undef _LC_TEST +_LICENSE_STATUS_FROM?= default +. else +_LICENSE_STATUS?= ask +_LICENSE_STATUS_FROM?= user +. endif +. endif +# If defined BATCH and need to ask, it fails +. if defined(BATCH) +_LICENSE_STATUS?= rejected +_LICENSE_STATUS_FROM?= user . endif +# Otherwise ask to the user _LICENSE_STATUS?= ask +_LICENSE_STATUS_FROM?= default . endif . endfor -# Check groups -. if ${_LICENSE_STATUS} == "ask" -. for group in ${_LICENSE_GROUPS} -. if ${_LICENSES_YES:M\@${group}} != "" -_LICENSE_STATUS= accepted -. endif -. if ${_LICENSES_NO:M\@${group}} != "" -_LICENSE_STATUS= rejected -. endif -. endfor -. endif + .else # XXX dual/multiple licenses .endif @@ -307,44 +374,29 @@ check-license: .if defined(_LICENSE_ERROR) - @${ECHO_MSG} "===> License not correctly defined: ${_LICENSE_ERROR}." + @${ECHO_MSG} "===> License not correctly defined: ${_LICENSE_ERROR}" @exit 1 .endif .if defined(_LICENSE_SINGLE) . if ${_LICENSE_STATUS} == "rejected" - @${ECHO_MSG} "===> License ${LICENSE} rejected by the user." + @${ECHO_MSG} "===> License ${LICENSE} rejected by the user (by ${_LICENSE_STATUS_FROM})" @exit 1 . elif ${_LICENSE_STATUS} == "accepted" - @${ECHO_MSG} "===> License ${LICENSE} accepted by the user." + @${ECHO_MSG} "===> License ${LICENSE} accepted by the user (by ${_LICENSE_STATUS_FROM})" . elif ${_LICENSE_STATUS} == "ask" -. if defined(BATCH) - @${ECHO_MSG} "===> License ${LICENSE} needs agreement but BATCH is defined." - @exit 1 -. else - @${ECHO_MSG} "===> License ${LICENSE} needs agreement, will ask later." -. endif + @${ECHO_MSG} "===> License ${LICENSE} needs agreement, will ask later (by ${_LICENSE_STATUS_FROM})" . endif .else # XXX dual/multiple licenses .endif -.if ${_LICENSE_STATUS} == "ask" -. if ${_LICENSE_TYPE} == "variant" -_LICENSES_ACCEPTED+= ${LICENSE}|${PKGORIGIN} -. elif ${_LICENSE_TYPE} == "known" -_LICENSES_ACCEPTED+= ${LICENSE} -. for lic in ${LICENSE} -_LICENSES_REJECTED:= ${_LICENSES_REJECTED:N${lic}} -. endfor -. endif -.endif - # Display, ask and save preference if requested ask-license: +# XXX verify checksum if accepted by port cfg file .if ${_LICENSE_STATUS} == "ask" - @if [ ! -f ${LICENSE_WRKSRC}/${LICENSE_FILE} ]; then \ - ${ECHO_CMD} "License not found in \"${LICENSE_WRKSRC}/${LICENSE_FILE}\", aborting."; \ + @if [ ! -f ${LICENSE_FILE} ]; then \ + ${ECHO_CMD} "License not found in \"${LICENSE_FILE}\", aborting."; \ exit 1; \ fi @until [ "$$status" = done ]; do \ @@ -357,14 +409,21 @@ exit 1;; \ [Ss]) ${ECHO_CMD} "License was accepted and saved."; \ ${MKDIR} ${LICENSE_CFG:H}; \ - (${ECHO_CMD} _LICENSES_ACCEPTED=${_LICENSES_ACCEPTED:C/\|/:/:Q}; \ - ${ECHO_CMD} _LICENSES_REJECTED=${_LICENSES_REJECTED:C/\|/:/:Q}) > ${LICENSE_CFG}; \ + ${ECHO_CMD} _LICENSES_ACCEPTED=${LICENSE} > ${LICENSE_CFG}; \ status=done;; \ - [Vv]) more ${LICENSE_WRKSRC}/${LICENSE_FILE}; \ + [Vv]) more ${LICENSE_FILE}; \ esac; \ done +.elif defined(LICENSES_CONFIG) +. if ${_LICENSE_STATUS_FROM} == "user" +# XXX fail here +. else +# XXX replace cfg +. endif .endif +# Package list entries, and installation + PLIST_FILES+= ${LICENSE_DIR_REL}/${LICENSE_REPORT:T} PLIST_DIRS+= ${LICENSE_DIR_REL} @@ -374,12 +433,11 @@ install-license: @${MKDIR} ${LICENSE_DIR} - @test -f ${LICENSE_WRKSRC}/${LICENSE_FILE} && \ - ${INSTALL_DATA} ${LICENSE_WRKSRC}/${LICENSE_FILE} ${LICENSE_DIR} + @test -f ${LICENSE_FILE} && ${INSTALL_DATA} ${LICENSE_FILE} ${LICENSE_DIR} @${TRUE} > ${LICENSE_REPORT} -. for var in ${_LICENSE_SAVE_ALL} +. for var in ${_LICENSE_LIST_SAVE_VARS} . if !empty(${var}) - @${ECHO_CMD} ${var}=${${var}} >> ${LICENSE_REPORT} + @${ECHO_CMD} '${var}=${${var}}' >> ${LICENSE_REPORT} . endif . endfor ==== //depot/projects/soc2008/alepulver-portslicense/ports/Mk/test-license-1/Makefile#2 (text+ko) ==== @@ -18,15 +18,15 @@ NO_WRKSUBDIR= yes LICENSE= GPLv2 -LICENSE_FILE= MyFile -LICENSE_PERMS= no-pkg-sell no-dist-sell +LICENSE_FILE= ${WRKSRC}/MyFile +#LICENSE_PERMS= no-pkg-sell no-dist-sell #LICENSE_NAME= Berkeley Software Distribution License #LICENSE_GROUPS= # #LICENSE_PERMS= dist-redist pkg-redist auto-accept do-extract: @${MKDIR} ${WRKDIR} - @${ECHO_CMD} "example" > ${WRKSRC}/${LICENSE_FILE} + @${ECHO_CMD} "example" > ${LICENSE_FILE} do-install:
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200807180246.m6I2kbL6078968>