license.conf 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481
  1. LICENSE_EXPRESSION=
  2. LICENSE_NAMES=
  3. MODULE_LICENSES_RESTRICTIONS=
  4. MODULE_LICENSES_RESTRICTION_EXCEPTIONS=
  5. MODULE_LICENSES_RESTRICTION_TYPES=
  6. MODULEWISE_LICENSES_RESTRICTIONS=
  7. MODULEWISE_LICENSES_RESTRICTION_TYPES=
  8. DEFAULT_MODULE_LICENSE=Service-Default-License
  9. EXPLICIT_LICENSE_PREFIXES=
  10. EXPLICIT_LICENSE_EXCEPTIONS=
  11. LICENSES=
  12. LICENSES+=build/conf/licenses.json
  13. # List of license properties which can be used to restrict transitive dependencies. There are three variables checked for each
  14. # property:
  15. # * LICENSES_<PROP_NAME>_STATIC: list of licenses which propagates this property when linking with code published by one of
  16. # them statically.
  17. # * LICENSES_<PROP_NAME>_DYNAMIC: list of licenses which propagates this property when linking with code published by one of
  18. # them dyamically.
  19. # * LICENSES_<PROP_NAME>: list of licenses which propagates this property regrdless of type of linking with code published by
  20. # one of them. Putting some license into this list is equivalent to putting it into both
  21. # LICENSES_<PROP_NAME>_STATIC and LICENSES_<PROP_NAME>_DYNAMIC lists.
  22. LICENSE_PROPERTIES= \
  23. FORBIDDEN \
  24. NDA \
  25. REQUIRE_CITATION \
  26. REQUIRE_DERIVATIVE_DISCLOSURE \
  27. REQUIRE_MODIFICATIONS_DISCLOSURE \
  28. SERVICE \
  29. UNATTRIBUTED \
  30. # NB: Licenses lists below are sorted case-insensitively. Please, keep the list sorted.
  31. LICENSES_UNATTRIBUTED= \
  32. AFL-2.0 \
  33. Amazon-SL \
  34. APSL-1.0 \
  35. Artistic-1.0-Perl \
  36. Artistic-2.0 \
  37. ASM-BSD-3-Clause \
  38. BCL \
  39. Bison-Exception \
  40. Bison-exception-2.2 \
  41. BouncyCastle-MIT \
  42. BSD-3-Clause-Clear \
  43. BSD-3-Clause-Open-MPI \
  44. BSD-4-Clause-Shortened \
  45. Bsd-New-Tcpdump \
  46. Carnegie-Mellon \
  47. Carnegie-Mellon-Contributors \
  48. CC-BY-NC-1.0 \
  49. CC-BY-NC-2.0 \
  50. CC-BY-NC-2.5 \
  51. CC-BY-NC-3.0 \
  52. CC-BY-NC-ND-1.0 \
  53. CC-BY-NC-ND-2.0 \
  54. CC-BY-NC-ND-2.5 \
  55. CC-BY-NC-ND-3.0 \
  56. CC-BY-NC-SA-1.0 \
  57. CC-BY-NC-SA-2.0 \
  58. CC-BY-NC-SA-2.5 \
  59. CC-BY-NC-SA-3.0 \
  60. CC-BY-ND-1.0 \
  61. CC-BY-ND-2.0 \
  62. CC-BY-ND-2.5 \
  63. CC-BY-ND-3.0 \
  64. CC-BY-SA-1.0 \
  65. CC-BY-SA-2.0 \
  66. CC-BY-SA-2.5 \
  67. CC-BY-SA-3.0 \
  68. CC-BY-SA-4.0 \
  69. CDDL \
  70. CECILL-B \
  71. ClArtistic \
  72. DSO-1.1 \
  73. Elastic-License-2.0 \
  74. FSFUL \
  75. FSFULLR \
  76. GCC-exception-3.1 \
  77. GDAL \
  78. GFDL-1.1-or-later \
  79. Go-License \
  80. Google-Patent-License-Webm \
  81. Google-Patent-License-Webrtc \
  82. GPL-2.0-only WITH freertos-exception-2.0 \
  83. GPL-2.0-only WITH Mysql-Linking-Exception-2018 \
  84. GPL-2.0-only WITH Universal-FOSS-exception-1.0 \
  85. GPL-2.0-or-later WITH Avisynth-C-Interface-Exception \
  86. GPL-2.0-or-later WITH Bison-Exception-2.0 \
  87. GPL-2.0-or-later WITH Bison-exception-2.2 \
  88. GPL-2.0-or-later WITH C-Interface-Exception \
  89. GPL-2.0-or-later WITH freertos-exception-2.0 \
  90. GPL-2.0-or-later WITH Libtool-exception \
  91. GPL-2.0-or-later WITH mif-exception \
  92. GWT-Terms \
  93. Hdf5 \
  94. HPND-sell-variant \
  95. HSQLDB-BSD-3-Clause \
  96. Ibm-Dhcp \
  97. Ietf-trust \
  98. ImageMagick \
  99. Intel-Material \
  100. IPL-1.0 \
  101. JAMon-BSD-3-Clause \
  102. jQuery-MIT \
  103. LGPL-3.0-or-later WITH ZeroMQ-Exception \
  104. LicenseRef-scancode-afpl-9.0 \
  105. LicenseRef-scancode-amd-historical \
  106. LicenseRef-scancode-anu-license \
  107. LicenseRef-scancode-autoconf-simple-exception \
  108. LicenseRef-scancode-autoconf-simple-exception-2.0 \
  109. LicenseRef-scancode-bsd-3-clause-jtag \
  110. LicenseRef-scancode-bsd-axis-nomod \
  111. LicenseRef-scancode-bsd-new-nomod \
  112. LicenseRef-scancode-bsd-no-disclaimer \
  113. LicenseRef-scancode-bsd-x11 \
  114. LicenseRef-scancode-bsla-no-advert \
  115. LicenseRef-scancode-cavium-malloc \
  116. LicenseRef-scancode-cc-by-2.0-uk \
  117. LicenseRef-scancode-cc-devnations-2.0 \
  118. LicenseRef-scancode-cc-sampling-1.0 \
  119. LicenseRef-scancode-cmu-simple \
  120. LicenseRef-scancode-commercial-license \
  121. LicenseRef-scancode-commons-clause \
  122. LicenseRef-scancode-delorie-historical \
  123. LicenseRef-scancode-flex-2.5 \
  124. LicenseRef-scancode-free-unknown \
  125. LicenseRef-scancode-gary-s-brown \
  126. LicenseRef-scancode-generic-cla \
  127. LicenseRef-scancode-generic-exception \
  128. LicenseRef-scancode-intel-osl-1993 \
  129. LicenseRef-scancode-jdom \
  130. LicenseRef-scancode-mit-xfig \
  131. LicenseRef-scancode-newlib-historical \
  132. LicenseRef-scancode-nilsson-historical \
  133. LicenseRef-scancode-openssl \
  134. LicenseRef-scancode-openssl-exception-lgpl-3.0-plus \
  135. LicenseRef-scancode-openssl-nokia-psk-contribution \
  136. LicenseRef-scancode-osf-1990 \
  137. LicenseRef-scancode-other-copyleft \
  138. LicenseRef-scancode-other-permissive \
  139. LicenseRef-scancode-paul-mackerras \
  140. LicenseRef-scancode-paul-mackerras-new \
  141. LicenseRef-scancode-pcre \
  142. LicenseRef-scancode-ppp \
  143. LicenseRef-scancode-proprietary-license \
  144. LicenseRef-scancode-secret-labs-2011 \
  145. LicenseRef-scancode-ssleay-windows \
  146. LicenseRef-scancode-sun-source \
  147. LicenseRef-scancode-unknown \
  148. LicenseRef-scancode-unknown-license-reference \
  149. LicenseRef-scancode-unknown-spdx \
  150. LicenseRef-scancode-warranty-disclaimer \
  151. LicenseRef-scancode-xfree86-1.0 \
  152. LPL-1.02 \
  153. MirOS \
  154. Mit-Xfig \
  155. NAIST-2003 \
  156. NOSL \
  157. NPL-1.1 \
  158. Nvidia-Gov \
  159. OFL-1.1 \
  160. Oracle \
  161. Oracle-technology \
  162. PSF-3.7.2 \
  163. Quicklz \
  164. Ruby \
  165. Sendmail \
  166. Spencer-99 \
  167. SSPL-1.0 \
  168. Stlport-4.5 \
  169. SZIP \
  170. TCL \
  171. TU-Berlin-1.0 \
  172. Unicode-TOU \
  173. Universal-FOSS-exception-1.0 \
  174. Unknown \
  175. Vcalendar \
  176. Vim \
  177. X11-Adobe-Dec \
  178. X11-Hanson \
  179. Xfree86-1.0 \
  180. Xnet
  181. LICENSES_FORBIDDEN= \
  182. AGPL-3.0-only \
  183. AGPL-3.0-or-later \
  184. Artistic-1.0 \
  185. confluent-community-1.0 \
  186. # Group for proprietary code licenses
  187. LICENSES_NDA= \
  188. Intel-NDA \
  189. mimepp \
  190. OracleOebs
  191. # These licenses allow use with opensource code only
  192. LICENSES_REQUIRE_MODIFICATIONS_DISCLOSURE= \
  193. CDDL-1.0 \
  194. CDDL-1.1 \
  195. LICENSES_REQUIRE_MODIFICATIONS_DISCLOSURE_DYNAMIC= \
  196. EPL-1.0 \
  197. EPL-2.0 \
  198. LICENSES_REQUIRE_DERIVATIVE_DISCLOSURE= \
  199. CECILL-2.0 \
  200. CPL-1.0 \
  201. GPL \
  202. GPL-1.0-only \
  203. GPL-1.0-or-later \
  204. GPL-1.1 \
  205. GPL-2.0 \
  206. GPL-2.0-only \
  207. GPL-2.0-only WITH OpenJDK-assembly-exception-1.0 \
  208. GPL-2.0-or-later \
  209. GPL-2.0-or-later WITH GCC-exception-2.0 \
  210. GPL-3.0-only \
  211. GPL-3.0-or-later \
  212. GPLv2+ \
  213. TMate \
  214. LICENSES_REQUIRE_DERIVATIVE_DISCLOSURE_STATIC= \
  215. EPL-1.0 \
  216. EPL-2.0 \
  217. LGPL \
  218. LGPL-1.0-or-later \
  219. LGPL-2.0-only \
  220. LGPL-2.0-or-later \
  221. LGPL-2.0-or-later WITH Libtool-exception \
  222. LGPL-2.0-or-later WITH Qt-LGPL-exception-1.1 \
  223. LGPL-2.1-only \
  224. LGPL-2.1-or-later \
  225. LGPL-3.0-only \
  226. LGPL-3.0-or-later
  227. # These licenses allows any kind of linkage with proprietary code
  228. LICENSES_REQUIRE_CITATION= \
  229. 0BSD \
  230. AML \
  231. Apache-1.0 \
  232. Apache-1.1 \
  233. Apache-2.0 \
  234. Apache-2.0 WITH LLVM-exception \
  235. APSL-2.0 \
  236. Beerware \
  237. blessing \
  238. Brian-Gladman-3-Clause \
  239. BSD \
  240. BSD-1-Clause \
  241. BSD-2-Clause \
  242. BSD-2-Clause-Patent \
  243. BSD-2-Clause-Views \
  244. BSD-3-Clause \
  245. BSD-3-Clause WITH Google-Patent-License-Webm \
  246. BSD-3-Clause WITH Google-Patent-License-Webrtc \
  247. BSD-3-Clause-LBNL \
  248. BSD-4-Clause \
  249. BSD-4-Clause-UC \
  250. BSD-derived \
  251. Bsd-Original-Uc-1986 \
  252. Bsd-Simplified-Darwin \
  253. BSD-Source-Code \
  254. Bsd-Unchanged \
  255. Bsd-Unmodified \
  256. BSL-1.0 \
  257. BSLA \
  258. bzip2-1.0.6 \
  259. CC-BY-1.0 \
  260. CC-BY-2.0 \
  261. CC-BY-2.5 \
  262. CC-BY-3.0 \
  263. CC-BY-4.0 \
  264. CC-PDDC \
  265. CC0-1.0 \
  266. Cmu-Computing-Services \
  267. CUP-Parser \
  268. curl \
  269. Custom-eigen \
  270. Custom-fft2d \
  271. Custom-fft4g \
  272. Custom-Oasis-Pkcs11 \
  273. Custom-openldap \
  274. Custom-punycode \
  275. Custom-punycode-libpsl \
  276. Custom-swig \
  277. Custom-wcwidth \
  278. DOC \
  279. EDL-1.0 \
  280. Facebook-SDK \
  281. FDK \
  282. Fftpack-2004 \
  283. FSFAP \
  284. FTL \
  285. GPL-1.0-or-later WITH Linux-syscall-note \
  286. GPL-2.0-only WITH Classpath-exception-2.0 \
  287. GPL-2.0-only WITH GCC-exception-2.0 \
  288. GPL-2.0-only WITH Linux-syscall-note \
  289. GPL-2.0-or-later WITH Linux-syscall-note \
  290. GPL-3.0-only WITH Bison-exception-2.2 \
  291. GPL-3.0-or-later WITH Bison-exception-2.2 \
  292. H2 \
  293. HPND \
  294. IBM-pibs \
  295. ICU \
  296. Ietf \
  297. IJG \
  298. Info-Zip \
  299. Intel-LLVM-SGA \
  300. Intel-Simplified \
  301. ISC \
  302. JSON \
  303. Khronos \
  304. LGPL-2.0-or-later WITH Linux-syscall-note \
  305. LGPL-2.1-only WITH Linux-syscall-note \
  306. LGPL-2.1-or-later WITH Linux-syscall-note \
  307. Libpbm \
  308. Libpng \
  309. libpng-2.0 \
  310. libtiff \
  311. LicenseRef-scancode-ams-fonts \
  312. LicenseRef-scancode-bitstream \
  313. LicenseRef-scancode-mit-no-advert-export-control \
  314. LicenseRef-scancode-oasis-ws-security-spec \
  315. LicenseRef-scancode-paul-mackerras-binary \
  316. LicenseRef-scancode-swig \
  317. LicenseRef-scancode-ws-policy-specification \
  318. Linux-OpenIB \
  319. Martin-Birgmeier \
  320. Minpack \
  321. MIT \
  322. MIT WITH Musl-Exception \
  323. MIT-0 \
  324. MIT-CMU \
  325. MIT-Modern-Variant \
  326. MIT-Nagy \
  327. Mit-Old-Style \
  328. MIT-open-group \
  329. Mit-Veillard-Variant \
  330. Mozilla-GC \
  331. MPL-1.0 \
  332. MPL-1.1 \
  333. MPL-2.0 \
  334. NCSA \
  335. NetCDF \
  336. Not-Applicable \
  337. NTP \
  338. Nvidia \
  339. OGC-1.0 \
  340. OLDAP-2.8 \
  341. OML \
  342. OpenSSL \
  343. PayPal-SDK \
  344. PCRE \
  345. PD \
  346. PHP-3.01 \
  347. PIL \
  348. Plexus \
  349. PostgreSQL \
  350. Protobuf-License \
  351. PSF \
  352. PSF-2.0 \
  353. Public-Domain \
  354. Public-Domain-US-Govt \
  355. Python-2.0 \
  356. Qhull \
  357. Red-Hat-Attribution \
  358. Repoze-public \
  359. RSA-1990 \
  360. RSA-MD \
  361. RSA-MD4 \
  362. SAX-PD \
  363. SGI-B-2.0 \
  364. Sleepycat \
  365. SMLNJ \
  366. Snprintf \
  367. Softsurfer \
  368. Spencer-94 \
  369. SSH-short \
  370. SSLeay \
  371. Sunpro \
  372. Unicode \
  373. Unicode-DFS-2016 \
  374. Unicode-Icu-58 \
  375. Unicode-Mappings \
  376. Unittest-Permissive-License \
  377. Unlicense \
  378. Unrar \
  379. UPL-1.0 \
  380. Vertica \
  381. W3C \
  382. W3C-19980720 \
  383. WTFPL \
  384. X11 \
  385. X11-Lucent \
  386. X11-XConsortium-Veillard \
  387. YandexOpen \
  388. Zlib \
  389. zlib-acknowledgement \
  390. ZPL-2.1 \
  391. LICENSES_REQUIRE_CITATION_DYNAMIC= \
  392. LGPL \
  393. LGPL-2.0-only \
  394. LGPL-2.0-or-later \
  395. LGPL-2.1-only \
  396. LGPL-2.1-or-later \
  397. LGPL-3.0-only \
  398. LGPL-3.0-or-later
  399. LICENSES_SERVICE= \
  400. Service-Default-License \
  401. Service-Dll-Harness \
  402. Service-Prebuilt-Tool \
  403. Service-Py23-Proxy \
  404. Service-Unknown-License-Java \
  405. macro _DONT_REQUIRE_LICENSE() {
  406. SET(EXPLICIT_LICENSE_PREFIXES "")
  407. }
  408. ### @usage: LICENSE(licenses...)
  409. ###
  410. ### Specify the licenses of the module, separated by spaces. Specifying multiple licenses interpreted as permission to use this
  411. ### library satisfying all conditions of any of the listed licenses.
  412. ###
  413. ### A license must be prescribed for contribs
  414. macro LICENSE(Flags...) {
  415. SET(LICENSE_EXPRESSION $Flags)
  416. SET(LICENSE_NAMES $Flags)
  417. # TODO(YMAKE-1136) avoid abusing LICENSE
  418. # NOTICE: final value of MODVER might not be set yet if VERSION macro is called after LICENSE. Var expansion is
  419. # escaped here to prevent eager value substitution by SET but allow delayed value substitution when
  420. # adding linking SBOM data command to graph.
  421. when ($_NEED_SBOM_INFO == "yes") {
  422. _SBOM_INFO_LOCAL="path=${MODDIR};ver=${join=.:MODVER};lang=${MODULE_LANG}"
  423. }
  424. otherwise {
  425. _SBOM_INFO_LOCAL=
  426. }
  427. SET_APPEND(_SBOM_INFO_GLOBAL $_SBOM_INFO_LOCAL)
  428. }
  429. ### @usage LICENSE_RESTRICTION(ALLOW_ONLY|DENY LicenseProperty...)
  430. ###
  431. ### Restrict licenses of direct and indirect module dependencies.
  432. ###
  433. ### ALLOW_ONLY restriction type requires dependent module to have at least one license without properties not listed in restrictions list.
  434. ###
  435. ### DENY restriction type forbids dependency on module with no license without any listed property from the list.
  436. ###
  437. ### Note: Can be used multiple times on the same module all specified constraints will be checked.
  438. ### All macro invocation for the same module must use same constraints type (DENY or ALLOW_ONLY)
  439. macro LICENSE_RESTRICTION(TYPE, RESTRICTIONS...) {
  440. SET_APPEND(MODULE_LICENSES_RESTRICTION_TYPES $TYPE)
  441. SET_APPEND(MODULE_LICENSES_RESTRICTIONS $RESTRICTIONS)
  442. }
  443. ### @usage MODULEWISE_LICENSE_RESTRICTION(ALLOW_ONLY|DENY LicenseProperty...)
  444. ###
  445. ### Restrict licenses per module only, without it peers.
  446. ###
  447. ### ALLOW_ONLY restriction type requires module to have at least one license without properties not listed in restrictions list.
  448. ###
  449. ### DENY restriction type forbids module with no license without any listed property from the list.
  450. ###
  451. ### Note: Can be used multiple times on the same module all specified constraints will be checked.
  452. ### All macro invocation for the same module must use same constraints type (DENY or ALLOW_ONLY)
  453. macro MODULEWISE_LICENSE_RESTRICTION(TYPE, RESTRICTIONS...) {
  454. SET_APPEND(MODULEWISE_LICENSES_RESTRICTION_TYPES $TYPE)
  455. SET_APPEND(MODULEWISE_LICENSES_RESTRICTIONS $RESTRICTIONS)
  456. }
  457. ### @usage LICENSE_RESTRICTION_EXCEPTIONS(Module...)
  458. ###
  459. ### List of modules for exception from LICENSE_RESTRICTION and MODULEWISE_LICENSE_RESTRICTION logic.
  460. macro LICENSE_RESTRICTION_EXCEPTIONS(EXCEPT...) {
  461. SET_APPEND(MODULE_LICENSES_RESTRICTION_EXCEPTIONS $EXCEPT)
  462. }