LICENSE_EXPRESSION= LICENSE_NAMES= MODULE_LICENSES_RESTRICTIONS= MODULE_LICENSES_RESTRICTION_EXCEPTIONS= MODULE_LICENSES_RESTRICTION_TYPES= MODULEWISE_LICENSES_RESTRICTIONS= MODULEWISE_LICENSES_RESTRICTION_TYPES= DEFAULT_MODULE_LICENSE=Service-Default-License EXPLICIT_LICENSE_PREFIXES= EXPLICIT_LICENSE_EXCEPTIONS= # List of license properties which can be used to restrict transitive dependencies. There are three variables checked for each # property: # * LICENSES__STATIC: list of licenses which propagates this property when linking with code published by one of # them statically. # * LICENSES__DYNAMIC: list of licenses which propagates this property when linking with code published by one of # them dyamically. # * LICENSES_: list of licenses which propagates this property regrdless of type of linking with code published by # one of them. Putting some license into this list is equivalent to putting it into both # LICENSES__STATIC and LICENSES__DYNAMIC lists. LICENSE_PROPERTIES= \ FORBIDDEN \ NDA \ REQUIRE_CITATION \ REQUIRE_DERIVATIVE_DISCLOSURE \ REQUIRE_MODIFICATIONS_DISCLOSURE \ SERVICE \ UNATTRIBUTED \ # NB: Licenses lists below are sorted case-insensitively. Please, keep the list sorted. LICENSES_UNATTRIBUTED= \ AFL-2.0 \ Amazon-SL \ APSL-1.0 \ Artistic-1.0-Perl \ Artistic-2.0 \ ASM-BSD-3-Clause \ BCL \ Bison-Exception \ Bison-exception-2.2 \ BouncyCastle-MIT \ BSD-3-Clause-Clear \ BSD-3-Clause-Open-MPI \ BSD-4-Clause-Shortened \ Bsd-New-Tcpdump \ Carnegie-Mellon \ Carnegie-Mellon-Contributors \ CC-BY-NC-1.0 \ CC-BY-NC-2.0 \ CC-BY-NC-2.5 \ CC-BY-NC-3.0 \ CC-BY-NC-ND-1.0 \ CC-BY-NC-ND-2.0 \ CC-BY-NC-ND-2.5 \ CC-BY-NC-ND-3.0 \ CC-BY-NC-SA-1.0 \ CC-BY-NC-SA-2.0 \ CC-BY-NC-SA-2.5 \ CC-BY-NC-SA-3.0 \ CC-BY-ND-1.0 \ CC-BY-ND-2.0 \ CC-BY-ND-2.5 \ CC-BY-ND-3.0 \ CC-BY-SA-1.0 \ CC-BY-SA-2.0 \ CC-BY-SA-2.5 \ CC-BY-SA-3.0 \ CC-BY-SA-4.0 \ CDDL \ CECILL-B \ ClArtistic \ DSO-1.1 \ Elastic-License-2.0 \ FSFUL \ FSFULLR \ GCC-exception-3.1 \ GDAL \ GFDL-1.1-or-later \ Go-License \ Google-Patent-License-Webm \ Google-Patent-License-Webrtc \ GPL-2.0-only WITH freertos-exception-2.0 \ GPL-2.0-only WITH Mysql-Linking-Exception-2018 \ GPL-2.0-only WITH Universal-FOSS-exception-1.0 \ GPL-2.0-or-later WITH Avisynth-C-Interface-Exception \ GPL-2.0-or-later WITH Bison-Exception-2.0 \ GPL-2.0-or-later WITH Bison-exception-2.2 \ GPL-2.0-or-later WITH C-Interface-Exception \ GPL-2.0-or-later WITH freertos-exception-2.0 \ GPL-2.0-or-later WITH Libtool-exception \ GPL-2.0-or-later WITH mif-exception \ GWT-Terms \ Hdf5 \ HPND-sell-variant \ HSQLDB-BSD-3-Clause \ Ibm-Dhcp \ Ietf-trust \ ImageMagick \ Intel-Material \ IPL-1.0 \ JAMon-BSD-3-Clause \ jQuery-MIT \ LGPL-3.0-or-later WITH ZeroMQ-Exception \ LicenseRef-scancode-afpl-9.0 \ LicenseRef-scancode-amd-historical \ LicenseRef-scancode-anu-license \ LicenseRef-scancode-autoconf-simple-exception \ LicenseRef-scancode-autoconf-simple-exception-2.0 \ LicenseRef-scancode-bsd-3-clause-jtag \ LicenseRef-scancode-bsd-axis-nomod \ LicenseRef-scancode-bsd-new-nomod \ LicenseRef-scancode-bsd-no-disclaimer \ LicenseRef-scancode-bsd-x11 \ LicenseRef-scancode-bsla-no-advert \ LicenseRef-scancode-cavium-malloc \ LicenseRef-scancode-cc-by-2.0-uk \ LicenseRef-scancode-cc-devnations-2.0 \ LicenseRef-scancode-cc-sampling-1.0 \ LicenseRef-scancode-cmu-simple \ LicenseRef-scancode-commercial-license \ LicenseRef-scancode-commons-clause \ LicenseRef-scancode-delorie-historical \ LicenseRef-scancode-flex-2.5 \ LicenseRef-scancode-free-unknown \ LicenseRef-scancode-gary-s-brown \ LicenseRef-scancode-generic-cla \ LicenseRef-scancode-generic-exception \ LicenseRef-scancode-intel-osl-1993 \ LicenseRef-scancode-jdom \ LicenseRef-scancode-mit-xfig \ LicenseRef-scancode-newlib-historical \ LicenseRef-scancode-nilsson-historical \ LicenseRef-scancode-openssl \ LicenseRef-scancode-openssl-exception-lgpl-3.0-plus \ LicenseRef-scancode-openssl-nokia-psk-contribution \ LicenseRef-scancode-osf-1990 \ LicenseRef-scancode-other-copyleft \ LicenseRef-scancode-other-permissive \ LicenseRef-scancode-paul-mackerras \ LicenseRef-scancode-paul-mackerras-new \ LicenseRef-scancode-pcre \ LicenseRef-scancode-ppp \ LicenseRef-scancode-proprietary-license \ LicenseRef-scancode-secret-labs-2011 \ LicenseRef-scancode-ssleay-windows \ LicenseRef-scancode-sun-source \ LicenseRef-scancode-unknown \ LicenseRef-scancode-unknown-license-reference \ LicenseRef-scancode-unknown-spdx \ LicenseRef-scancode-warranty-disclaimer \ LicenseRef-scancode-xfree86-1.0 \ LPL-1.02 \ MirOS \ Mit-Xfig \ NAIST-2003 \ NOSL \ NPL-1.1 \ Nvidia-Gov \ OFL-1.1 \ Oracle \ Oracle-technology \ PSF-3.7.2 \ Quicklz \ Ruby \ Sendmail \ Spencer-99 \ SSPL-1.0 \ Stlport-4.5 \ SZIP \ TCL \ TU-Berlin-1.0 \ Unicode-TOU \ Universal-FOSS-exception-1.0 \ Unknown \ Vcalendar \ Vim \ X11-Adobe-Dec \ X11-Hanson \ Xfree86-1.0 \ Xnet LICENSES_FORBIDDEN= \ AGPL-3.0-only \ AGPL-3.0-or-later \ Artistic-1.0 \ confluent-community-1.0 \ # Group for proprietary code licenses LICENSES_NDA= \ Intel-NDA \ mimepp \ OracleOebs # These licenses allow use with opensource code only LICENSES_REQUIRE_MODIFICATIONS_DISCLOSURE= \ CDDL-1.0 \ CDDL-1.1 \ LICENSES_REQUIRE_MODIFICATIONS_DISCLOSURE_DYNAMIC= \ EPL-1.0 \ EPL-2.0 \ LICENSES_REQUIRE_DERIVATIVE_DISCLOSURE= \ CECILL-2.0 \ CPL-1.0 \ GPL \ GPL-1.0-only \ GPL-1.0-or-later \ GPL-1.1 \ GPL-2.0 \ GPL-2.0-only \ GPL-2.0-only WITH OpenJDK-assembly-exception-1.0 \ GPL-2.0-or-later \ GPL-2.0-or-later WITH GCC-exception-2.0 \ GPL-3.0-only \ GPL-3.0-or-later \ GPLv2+ \ TMate \ LICENSES_REQUIRE_DERIVATIVE_DISCLOSURE_STATIC= \ EPL-1.0 \ EPL-2.0 \ LGPL \ LGPL-1.0-or-later \ LGPL-2.0-only \ LGPL-2.0-or-later \ LGPL-2.0-or-later WITH Libtool-exception \ LGPL-2.0-or-later WITH Qt-LGPL-exception-1.1 \ LGPL-2.1-only \ LGPL-2.1-or-later \ LGPL-3.0-only \ LGPL-3.0-or-later # These licenses allows any kind of linkage with proprietary code LICENSES_REQUIRE_CITATION= \ 0BSD \ AML \ Apache-1.0 \ Apache-1.1 \ Apache-2.0 \ Apache-2.0 WITH LLVM-exception \ APSL-2.0 \ Beerware \ blessing \ Brian-Gladman-3-Clause \ BSD \ BSD-1-Clause \ BSD-2-Clause \ BSD-2-Clause-Patent \ BSD-2-Clause-Views \ BSD-3-Clause \ BSD-3-Clause WITH Google-Patent-License-Webm \ BSD-3-Clause WITH Google-Patent-License-Webrtc \ BSD-4-Clause \ BSD-4-Clause-UC \ BSD-derived \ Bsd-Original-Uc-1986 \ Bsd-Simplified-Darwin \ BSD-Source-Code \ Bsd-Unchanged \ Bsd-Unmodified \ BSL-1.0 \ BSLA \ bzip2-1.0.6 \ CC-BY-1.0 \ CC-BY-2.0 \ CC-BY-2.5 \ CC-BY-3.0 \ CC-BY-4.0 \ CC-PDDC \ CC0-1.0 \ Cmu-Computing-Services \ CUP-Parser \ curl \ Custom-eigen \ Custom-fft2d \ Custom-fft4g \ Custom-Oasis-Pkcs11 \ Custom-openldap \ Custom-punycode \ Custom-punycode-libpsl \ Custom-swig \ Custom-wcwidth \ DOC \ EDL-1.0 \ Facebook-SDK \ FDK \ Fftpack-2004 \ FSFAP \ FTL \ GPL-1.0-or-later WITH Linux-syscall-note \ GPL-2.0-only WITH Classpath-exception-2.0 \ GPL-2.0-only WITH GCC-exception-2.0 \ GPL-2.0-only WITH Linux-syscall-note \ GPL-2.0-or-later WITH Linux-syscall-note \ GPL-3.0-only WITH Bison-exception-2.2 \ GPL-3.0-or-later WITH Bison-exception-2.2 \ H2 \ HPND \ IBM-pibs \ ICU \ Ietf \ IJG \ Info-Zip \ Intel-LLVM-SGA \ Intel-Simplified \ ISC \ JSON \ Khronos \ LGPL-2.0-or-later WITH Linux-syscall-note \ LGPL-2.1-only WITH Linux-syscall-note \ LGPL-2.1-or-later WITH Linux-syscall-note \ Libpbm \ Libpng \ libpng-2.0 \ libtiff \ LicenseRef-scancode-ams-fonts \ LicenseRef-scancode-bitstream \ LicenseRef-scancode-mit-no-advert-export-control \ LicenseRef-scancode-oasis-ws-security-spec \ LicenseRef-scancode-paul-mackerras-binary \ LicenseRef-scancode-swig \ LicenseRef-scancode-ws-policy-specification \ Linux-OpenIB \ Martin-Birgmeier \ Minpack \ MIT \ MIT WITH Musl-Exception \ MIT-0 \ MIT-CMU \ MIT-Modern-Variant \ MIT-Nagy \ Mit-Old-Style \ MIT-open-group \ Mit-Veillard-Variant \ Mozilla-GC \ MPL-1.0 \ MPL-1.1 \ MPL-2.0 \ NCSA \ NetCDF \ Not-Applicable \ NTP \ Nvidia \ OGC-1.0 \ OLDAP-2.8 \ OML \ OpenSSL \ PayPal-SDK \ PCRE \ PD \ PHP-3.01 \ PIL \ Plexus \ PostgreSQL \ Protobuf-License \ PSF \ PSF-2.0 \ Public-Domain \ Public-Domain-US-Govt \ Python-2.0 \ Qhull \ Red-Hat-Attribution \ Repoze-public \ RSA-1990 \ RSA-MD \ RSA-MD4 \ SAX-PD \ SGI-B-2.0 \ Sleepycat \ SMLNJ \ Snprintf \ Softsurfer \ Spencer-94 \ SSH-short \ SSLeay \ Sunpro \ Unicode \ Unicode-DFS-2016 \ Unicode-Icu-58 \ Unicode-Mappings \ Unittest-Permissive-License \ Unlicense \ Unrar \ UPL-1.0 \ Vertica \ W3C \ W3C-19980720 \ WTFPL \ X11 \ X11-Lucent \ X11-XConsortium-Veillard \ YandexOpen \ Zlib \ zlib-acknowledgement \ ZPL-2.1 \ LICENSES_REQUIRE_CITATION_DYNAMIC= \ LGPL \ LGPL-2.0-only \ LGPL-2.0-or-later \ LGPL-2.1-only \ LGPL-2.1-or-later \ LGPL-3.0-only \ LGPL-3.0-or-later LICENSES_SERVICE= \ Service-Default-License \ Service-Dll-Harness \ Service-Prebuilt-Tool \ Service-Py23-Proxy \ Service-Unknown-License-Java \ macro _DONT_REQUIRE_LICENSE() { SET(EXPLICIT_LICENSE_PREFIXES "") } ### @usage: LICENSE(licenses...) ### ### Specify the licenses of the module, separated by spaces. Specifying multiple licenses interpreted as permission to use this ### library satisfying all conditions of any of the listed licenses. ### ### A license must be prescribed for contribs macro LICENSE(Flags...) { SET(LICENSE_EXPRESSION $Flags) SET(LICENSE_NAMES $Flags) # TODO(YMAKE-1136) avoid abusing LICENSE # NOTICE: final value of MODVER might not be set yet if VERSION macro is called after LICENSE. Var expansion is # escaped here to prevent eager value substitution by SET but allow delayed value substitution when # adding linking SBOM data command to graph. SET_APPEND(_SBOM_INFO_GLOBAL "path=${MODDIR};ver=\${join=.:MODVER};lang=${MODULE_LANG}") } ### @usage LICENSE_RESTRICTION(ALLOW_ONLY|DENY LicenseProperty...) ### ### Restrict licenses of direct and indirect module dependencies. ### ### ALLOW_ONLY restriction type requires dependent module to have at least one license without properties not listed in restrictions list. ### ### DENY restriction type forbids dependency on module with no license without any listed property from the list. ### ### Note: Can be used multiple times on the same module all specified constraints will be checked. ### All macro invocation for the same module must use same constraints type (DENY or ALLOW_ONLY) macro LICENSE_RESTRICTION(TYPE, RESTRICTIONS...) { SET_APPEND(MODULE_LICENSES_RESTRICTION_TYPES $TYPE) SET_APPEND(MODULE_LICENSES_RESTRICTIONS $RESTRICTIONS) } ### @usage MODULEWISE_LICENSE_RESTRICTION(ALLOW_ONLY|DENY LicenseProperty...) ### ### Restrict licenses per module only, without it peers. ### ### ALLOW_ONLY restriction type requires module to have at least one license without properties not listed in restrictions list. ### ### DENY restriction type forbids module with no license without any listed property from the list. ### ### Note: Can be used multiple times on the same module all specified constraints will be checked. ### All macro invocation for the same module must use same constraints type (DENY or ALLOW_ONLY) macro MODULEWISE_LICENSE_RESTRICTION(TYPE, RESTRICTIONS...) { SET_APPEND(MODULEWISE_LICENSES_RESTRICTION_TYPES $TYPE) SET_APPEND(MODULEWISE_LICENSES_RESTRICTIONS $RESTRICTIONS) } ### @usage LICENSE_RESTRICTION_EXCEPTIONS(Module...) ### ### List of modules for exception from LICENSE_RESTRICTION and MODULEWISE_LICENSE_RESTRICTION logic. macro LICENSE_RESTRICTION_EXCEPTIONS(EXCEPT...) { SET_APPEND(MODULE_LICENSES_RESTRICTION_EXCEPTIONS $EXCEPT) }