aboutsummaryrefslogblamecommitdiffstats
path: root/build/conf/license.conf
blob: f2fb576b0d737f9a6ee9c6ed7bf674571885ec43 (plain) (tree)
1
2
                                  
                                   

















                                                                                                                              
                                                                        
 
                        

              
                      





                            
                            
                     
                          

               
               


                  


                     









                     
                  
                  








































                                                          
                                       

                                           


                                          
                              
































                                                   
 

                             

                       
                    
                            
                                     
               













                                                    


                                              
                  
                                         

                                             
                                              
                  
                                             

                                     
                       
                       
                                               
                   
                                           
                       
                                               



                                                                 
          
                


                                    
              
             
                  
                  
                         

                        
                     
                 
                          
                           

                    
             
                            
                
                     
                  
           
         
              
         
          
         
                      
         
          
             
                                   
                  
                
                      
         
           
             
                        
              
                    
                   
                          



             
         
                    
            



                
          
                   
                           


                
                      


                
                         
                   

              
               
              
               
           
               
            
            
                      
                      




               
                

                          

                                      








                              



                                                       
                                                          
                            



                                       
 



                           





























                                                                                                                                  
LICENSE_EXPRESSION_IMPLICIT_OR=yes
LICENSE_EXPRESSION_IMPLICIT_AND=yes
LICENSE_EXPRESSION=
LICENSE_NAMES=

MODULE_LICENSES_RESTRICTIONS=
MODULE_LICENSES_RESTRICTION_EXCEPTIONS=
MODULE_LICENSES_RESTRICTION_TYPES=
DEFAULT_MODULE_LICENSE=YandexUncategorized
EXPLICIT_LICENSE_PREFIXES=

# List of license properties which can be used to restrict transitive dependencies. There are three variables checked for each
# property:
# * LICENSES_<PROP_NAME>_STATIC: list of licenses which propagates this property when linking with code published by one of
#                                them statically.
# * LICENSES_<PROP_NAME>_DYNAMIC: list of licenses which propagates this property when linking with code published by one of
#                                 them dyamically.
# * LICENSES_<PROP_NAME>: 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_<PROP_NAME>_STATIC and LICENSES_<PROP_NAME>_DYNAMIC lists.
LICENSE_PROPERTIES= \
    FORBIDDEN NDA REQUIRE_DISCLOSURE PERMISSIVE REQUIRE_CITATION SERVICE

LICENSES_UNATTRIBUTED= \
    AFL-2.0 \
    AML \
    APSL-1.0 \
    ASM-BSD-3-Clause \
    Amazon-SL \
    Artistic-1.0-Perl \
    BCL \
    BSD-3-Clause-Open-MPI \
    BSD-4-Clause-Shortened \
    BSLA \
    Bison-Exception \
    BouncyCastle-MIT \
    Brian-Gladman-3-Clause \
    Bsd-New-Tcpdump \
    Bsd-Original-Uc-1986 \
    CC-BY-1.0 \
    CC-BY-2.0 \
    CC-BY-2.5 \
    CC-BY-3.0 \
    CC-BY-4.0 \
    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 \
    Carnegie-Mellon \
    Carnegie-Mellon-Contributors \
    DOC \
    DSO-1.1 \
    EDL-1.0 \
    Elastic-License-2.0 \
    FSFUL \
    FSFULLR \
    Fftpack-2004 \
    GCC-exception-3.1 \
    GDAL \
    GFDL-1.1-or-later \
    GPL-2.0 WITH Classpath-exception-2.0 \
    GPL-2.0 WITH FOSS-exception \
    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 Libtool-exception \
    GPL-2.0-or-later WITH mif-exception \
    Go-License \
    Google-Patent-License-Webm \
    Google-Patent-License-Webrtc \
    HPND \
    HPND-sell-variant \
    HPND-sell-variant \
    HSQLDB-BSD-3-Clause \
    Hdf5 \
    IPL-1.0 \
    Ibm-Dhcp \
    Ietf-trust \
    ImageMagick \
    Info-Zip \
    Intel-Confidential \
    Intel-Material \
    JAMon-BSD-3-Clause \
    LGPL-3.0-or-later WITH ZeroMQ-Exception \
    LPL-1.02 \
    LicenseRef-scancode-bsd-new-nomod \
    LicenseRef-scancode-cc-by-2.0-uk \
    LicenseRef-scancode-cc-devnations-2.0 \
    LicenseRef-scancode-cc-sampling-1.0 \
    LicenseRef-scancode-free-unknown \
    LicenseRef-scancode-generic-cla \
    LicenseRef-scancode-other-copyleft \
    LicenseRef-scancode-other-permissive \
    LicenseRef-scancode-pcre \
    LicenseRef-scancode-proprietary-license \
    LicenseRef-scancode-unknown \
    LicenseRef-scancode-unknown-license-reference \
    LicenseRef-scancode-warranty-disclaimer \
    MirOS \
    Mit-Xfig \
    Mozilla-GC \
    NAIST-2003 \
    Nvidia-Gov \
    Oracle \
    Oracle-technology \
    PSF-3.7.2 \
    Qhull \
    Quicklz \
    Ruby \
    SSPL-1.0 \
    SZIP \
    Sendmail \
    Softsurfer \
    Stlport-4.5 \
    TCL \
    TU-Berlin-1.0 \
    Unicode-TOU \
    Universal-FOSS-exception-1.0 \
    Unknown \
    Unlicense \
    Vcalendar \
    Vim \
    X11-Adobe-Dec \
    X11-Hanson \
    X11-XConsortium-Veillard \
    Xfree86-1.0 \
    Xnet \
    jQuery-MIT

LICENSES_PATCHES_FORBIDDEN= \
    Unicode

LICENSES_FORBIDDEN= \
    AGPL-3.0-only \
    AGPL-3.0-or-later \
    Artistic-1.0 \
    Musl-Exception \
    ${LICENSES_UNATTRIBUTED}

# Group for proprietary code licenses
LICENSES_NDA= \
    Intel-NDA \
    mimepp \
    OracleOebs \
    Sophos-SDK \
    YandexUncategorized \
    YandexNDA

# These licenses allow use with opensource code only
LICENSES_REQUIRE_DISCLOSURE= \
    CDDL-1.0 \
    CDDL-1.1 \
    CECILL-2.0 \
    CPL-1.0 \
    EPL-1.0 \
    EPL-2.0 \
    GPL \
    GPL-1.0-only \
    GPL-1.0-or-later \
    GPL-1.0-or-later WITH Linux-syscall-note \
    GPL-1.1 \
    GPL-2.0 \
    GPL-2.0-only \
    GPL-2.0-only WITH GCC-exception-2.0 \
    GPL-2.0-only WITH Linux-syscall-note \
    GPL-2.0-or-later \
    GPL-2.0-or-later WITH GCC-exception-2.0 \
    GPL-2.0-or-later WITH Linux-syscall-note \
    GPL-3.0-only \
    GPL-3.0-or-later \
    GPL-3.0-or-later WITH Bison-exception-2.2

LICENSES_REQUIRE_DISCLOSURE_STATIC= \
    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 Linux-syscall-note \
    LGPL-2.1-only \
    LGPL-2.1-only WITH Linux-syscall-note \
    LGPL-2.1-or-later \
    LGPL-2.1-or-later WITH Linux-syscall-note \
    LGPL-3.0-only \
    LGPL-3.0-or-later

# These licenses allows any kind of linkage with proprietary code
LICENSES_PERMISSIVE= \
    0BSD \
    Apache-1.0 \
    Apache-1.1 \
    Apache-2.0 \
    Apache-2.0 WITH LLVM-exception \
    APSL-2.0 \
    Beerware \
    blessing \
    BSL-1.0 \
    BSD \
    BSD-1-Clause \
    BSD-2-Clause \
    BSD-2-Clause-Patent \
    BSD-2-Clause-Views \
    BSD-3-Clause \
    BSD-4-Clause \
    BSD-4-Clause-UC \
    BSD-derived \
    BSD-ORIGINAL-UC-1986 \
    BSD-Source-Code \
    Bsd-Simplified-Darwin \
    Bsd-Unchanged \
    Bsd-Unmodified \
    bzip2-1.0.6 \
    CC0-1.0 \
    CC-PDDC \
    Cmu-Computing-Services \
    CUP-Parser \
    curl \
    Custom-Punycode \
    Facebook-SDK \
    FDK \
    FSFAP \
    FTL \
    H2 \
    IBM-pibs \
    ICU \
    Ietf \
    IJG \
    Intel-Simplified \
    ISC \
    JSON \
    Khronos \
    Libpbm \
    LicenseRef-scancode-bitstream \
    LicenseRef-scancode-ams-fonts \
    Linux-OpenIB \
    Libpng \
    libpng-2.0 \
    libtiff \
    Martin-Birgmeier \
    MIT \
    MIT-0 \
    MIT-CMU \
    MIT-Modern-Variant \
    MIT-Nagy \
    MIT-open-group \
    Mit-Old-Style \
    Mit-Veillard-Variant \
    MPL-1.0 \
    MPL-1.1 \
    MPL-2.0 \
    Minpack \
    NCSA \
    NTP \
    Not-Applicable \
    Nvidia \
    OGC-1.0 \
    OLDAP-2.8 \
    OML \
    OpenSSL \
    PayPal-SDK \
    PCRE \
    PD \
    Public-Domain \
    Public-Domain-US-Govt \
    PHP-3.01 \
    PIL \
    Plexus \
    PostgreSQL \
    Protobuf-License \
    PSF \
    PSF-2.0 \
    Python-2.0 \
    Qhull \
    Red-Hat-Attribution \
    Repoze-public \
    RSA-MD \
    RSA-MD4 \
    RSA-1990 \
    Sleepycat \
    Snprintf \
    SGI-B-2.0 \
    SMLNJ \
    SSH-short \
    SSLeay \
    Sunpro \
    Unicode-DFS-2016 \
    Unicode-Icu-58 \
    Unicode-Mappings \
    Unlicense \
    Unrar \
    UPL-1.0 \
    Vertica \
    W3C \
    WTFPL \
    X11 \
    X11-Lucent \
    YandexOpen \
    Zlib \
    zlib-acknowledgement \
    ZPL-2.1 \
    ${CUSTOM_LICENSE_MUSL_EXCEPTION} \
    ${LICENSES_PATCHES_FORBIDDEN}

LICENSES_PERMISSIVE_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

# https://st.yandex-team.ru/ARCADIAWGSUP-34
CUSTOM_LICENSE_LIBSSH2_AGENT_WIN=Libssh2-Agent-Win
# Permissive only in musllib
CUSTOM_LICENSE_MUSL_EXCEPTION=Musl-Exception-in-Musllib

# TODO: this list is almost empty. needed for DEVRULES-151
LICENSES_REQUIRE_CITATION= \
    Apache-2.0 \
    Cmu-Computing-Services \
    OpenSSL \
    Spencer-94 \
    ${CUSTOM_LICENSE_LIBSSH2_AGENT_WIN}

LICENSES_SERVICE= \
    Service-Dll-Harness \
    Service-Prebuilt-Tool \
    Service-Py23-Proxy

macro _REQUIRE_EXPLICIT_LICENSE(Prefix...) {
    SET(EXPLICIT_LICENSE_PREFIXES ${Prefix})
}

### @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)
}

### @usage RESTRICT_LICENSES(ALLOW_ONLY|DENY LicenseProperty...)
###
### Restrict licenses of direct and indirect module dependencies.
###
### ALLOW_ONLY restriction type requires dependent module to have at leas one license without propertis not listed in restrictions
### list.
###
### DENY restriction type forbids dependency on module with no license without any listed propery 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 RESTRICT_LICENSES(TYPE, EXCEPT[], RESTRICTIONS...) {
    SET_APPEND(MODULE_LICENSES_RESTRICTION_TYPES $TYPE)
    SET_APPEND(MODULE_LICENSES_RESTRICTIONS $RESTRICTIONS)
    SET_APPEND(MODULE_LICENSES_RESTRICTION_EXCEPTIONS $EXCEPT)
}