Bioconductor package licenses

Published

July 16, 2026

Get Bioc package list

suppressPackageStartupMessages({
    library(BiocPkgTools)
    library(dplyr)
    library(DT)
})

BiocManager::version()
[1] '3.24'
pkg <- biocPkgList(repo = "BioCsoft")
'getOption("repos")' replaces Bioconductor standard repositories, see 'help("repositories", package = "BiocManager")'
for details.
Replacement repositories:
    CRAN: https://p3m.dev/cran/__linux__/noble/latest
adding rname 'https://bioconductor.org/packages/3.24/bioc/VIEWS'
# pkg <- biocPkgList(repo = c("BioCsoft", "BioCann", "BioCexp", "BioCworkflows"))

Get licenses

sort(table(pkg$License, useNA = "ifany"))

                                           AGPL (>= 3)                                  AGPL-3 | file LICENSE 
                                                     1                                                      1 
                Apache License (== 2.0) + file LICENSE                 Apache License (== 2.0) | file LICENSE 
                                                     1                                                      1 
                               Apache License (>= 2.0)                      Apache License 2.0 | file LICENSE 
                                                     1                                                      1 
                                          Artistic 2.0                    Artistic-2.0 | GPL-2 + file LICENSE 
                                                     1                                                      1 
                                          BSD_3_clause                            CC BY-SA 4.0 + file LICENSE 
                                                     1                                                      1 
                                                   CPL Creative Commons Attribution 4.0 International License 
                                                     1                                                      1 
                                          EPL (>= 1.0)                   GNU General Public License version 3 
                                                     1                                                      1 
                                             GPL (==2)                                           GPL (>= 2.1) 
                                                     1                                                      1 
                                            GPL (>=2 )                                                  GPL 3 
                                                     1                                                      1 
                                         GPL version 3                                GPL-2 | GPL-3 | BSL-1.0 
                                                     1                                                      1 
                                  GPL-3 + file LICENCE                                 GPL-3 bioconductor.org 
                                                     1                                                      1 
                                             GPL(>= 2)                                               GPL(>=3) 
                                                     1                                                      1 
                          LGPL (>= 2.1) | file LICENSE                                          LGPL (>= 3.0) 
                                                     1                                                      1 
                                              LGPL-2.1                                     MIT | file LICENSE 
                                                     1                                                      1 
                                           MIT License                             Mozilla Public License 2.0 
                                                     1                                                      1 
                                             Unlimited                                Apache License (== 2.0) 
                                                     1                                                      2 
                                          Artistic-1.0                            Artistic-2.0 + file LICENSE 
                                                     2                                                      2 
                   BSD 3-clause License + file LICENSE                                              CC BY 4.0 
                                                     2                                                      2 
                                       CC BY-NC-ND 4.0                         CC BY-NC-ND 4.0 + file LICENSE 
                                                     2                                                      2 
                                                   CC0                                                    EPL 
                                                     2                                                      2 
                                          GPL (>= 3.0)                                            GPL (>=2.0) 
                                                     2                                                      2 
                                           GPL (>=3.0)                                               GPL (>2) 
                                                     2                                                      2 
            GPL (http://www.gnu.org/copyleft/gpl.html)                                          GPL version 2 
                                                     2                                                      2 
                                GPL Version 2 or later                                          LGPL (>= 2.1) 
                                                     2                                                      2 
                                            LGPL (>=3)                                LGPL-2.1 | file LICENSE 
                                                     2                                                      2 
                                 LGPL-3 + file LICENSE                                                 CeCILL 
                                                     2                                                      3 
                                 CeCILL | file LICENSE                                           GPL (>= 2.0) 
                                                     3                                                      3 
                             GPL (>= 2) + file LICENSE                               GPL (>=3) + file LICENSE 
                                                     3                                                      3 
                                 AGPL-3 + file LICENSE                                     Apache License 2.0 
                                                     4                                                      4 
                                  Artistic License 2.0                                   GPL-2 + file LICENSE 
                                                     4                                                      4 
                                  GPL-2 | file LICENSE                                             LGPL (>=2) 
                                                     4                                                      4 
                                    MIT + file LICENCE                                          AGPL-3.0-only 
                                                     4                                                      5 
                                              GPL(>=2)                                                 LGPL-2 
                                                     5                                                      5 
                                 Apache License (>= 2)                              GPL (>= 3) + file LICENSE 
                                                     6                                                      6 
                                         GPL-2 | GPL-3                                                    MIT 
                                                     6                                                      6 
                           BSD_2_clause + file LICENSE                                          LGPL (>= 2.0) 
                                                     8                                                      8 
                                           LGPL (>= 3)                                              GPL (>=3) 
                                                     8                                                      9 
                           Artistic-2.0 | file LICENSE                                   GPL-3 | file LICENSE 
                                                    13                                                     13 
                                                AGPL-3                            BSD_3_clause + file LICENSE 
                                                    16                                                     17 
                                           LGPL (>= 2)                                                    GPL 
                                                    18                                                     21 
                                                LGPL-3                                           file LICENSE 
                                                    36                                                     38 
                                                  LGPL                                              GPL (>=2) 
                                                    38                                                     47 
                                  GPL-3 + file LICENSE                                             GPL (>= 3) 
                                                    67                                                     77 
                                            GPL (>= 2)                                                  GPL-2 
                                                   177                                                    225 
                                    MIT + file LICENSE                                                  GPL-3 
                                                   392                                                    490 
                                          Artistic-2.0 
                                                   532 

Clean up

## Get unique licenses
lic <- unique(pkg$License)
lic <- lic[!is.na(lic)]
alres <- lapply(structure(lic, names = lic), tools:::analyze_license)

## Get information about the licenses
alres <- do.call(dplyr::bind_rows, lapply(names(alres), function(nm) {
    a <- alres[[nm]]
    data.frame(License = nm,
               LicenseStandardizable = a$is_standardizable,
               LicenseVerified = a$is_verified,
               LicenseStandardization = a$standardization,
               LicenseCanonical = a$is_canonical,
               LicenseFOSS = a$is_FOSS,
               LicenseRestrictsUse = a$restricts_use)
}))

## Add additional column removing the "+/| file LICENSE" part (if we want to 
## assume that this is compatible with the main license indication)
alres$LicenseStandardizationShort <- gsub("[ ]*\\+*\\|*[ ]*file LICEN[SC]E",
                                          "", alres$LicenseStandardization)

dim(alres)
[1] 91  8
length(unique(alres$LicenseStandardizationShort))
[1] 50
DT::datatable(alres,
              extensions = "FixedColumns",
              rownames = FALSE,
              options = list(scrollX = TRUE, 
                             fixedColumns = list(leftColumns = 1),
                             search = list(regex = FALSE, caseInsensitive = TRUE),
                             pageLength = 20))
## Add license columns to pkg list
pkg <- pkg %>% 
    dplyr::select(Package, Maintainer, License, hasLICENSE) %>%
    dplyr::left_join(alres, by = "License")
dim(pkg)
[1] 2403   11
DT::datatable(pkg,
              extensions = "FixedColumns",
              rownames = FALSE,
              options = list(scrollX = TRUE, 
                             fixedColumns = list(leftColumns = 1),
                             search = list(regex = FALSE, caseInsensitive = TRUE),
                             pageLength = 20))

Tabulate licenses

sort(table(pkg$LicenseStandardizationShort, useNA = "ifany"))

                                           AGPL (>= 3)                                Apache License (>= 2.0) 
                                                     1                                                      1 
                                  Artistic-2.0 | GPL-2                                           CC BY-SA 4.0 
                                                     1                                                      1 
                                                   CPL Creative Commons Attribution 4.0 International License 
                                                     1                                                      1 
                                          EPL (>= 1.0)                   GNU General Public License version 3 
                                                     1                                                      1 
                                            GPL (== 2)                                           GPL (>= 2.1) 
                                                     1                                                      1 
                               GPL-2 | GPL-3 | BSL-1.0                                          LGPL (>= 3.0) 
                                                     1                                                      1 
                                           MIT License                             Mozilla Public License 2.0 
                                                     1                                                      1 
                                             Unlimited                                           Artistic-1.0 
                                                     1                                                      2 
                                  BSD 3-clause License                                              CC BY 4.0 
                                                     2                                                      2 
                                                   CC0                                                    EPL 
                                                     2                                                      2 
                                             GPL (> 2)                                          LGPL (>= 2.1) 
                                                     2                                                      3 
                                              LGPL-2.1                                Apache License (== 2.0) 
                                                     3                                                      4 
                                  Artistic License 2.0                                        CC BY-NC-ND 4.0 
                                                     4                                                      4 
                                          GPL (>= 3.0)                                     Apache License 2.0 
                                                     4                                                      5 
                                          GPL (>= 2.0)                                                 LGPL-2 
                                                     5                                                      5 
                                 Apache License (>= 2)                                                 CeCILL 
                                                     6                                                      6 
                                         GPL-2 | GPL-3                                           BSD_2_clause 
                                                     6                                                      8 
                                         LGPL (>= 2.0)                                                   <NA> 
                                                     8                                                      8 
                                           LGPL (>= 3)                                           BSD_3_clause 
                                                    10                                                     18 
                                                AGPL-3                                                    GPL 
                                                    21                                                     21 
                                           LGPL (>= 2)                                                        
                                                    22                                                     38 
                                                  LGPL                                                 LGPL-3 
                                                    38                                                     38 
                                            GPL (>= 3)                                                  GPL-2 
                                                    96                                                    235 
                                            GPL (>= 2)                                                    MIT 
                                                   236                                                    403 
                                          Artistic-2.0                                                  GPL-3 
                                                   548                                                    573 

Some cases that may need attention

We attempt to estimate the fraction of packages that are provided under an OSI approved license. It should be noted that, automatically performed, this will necessary be a rough estimate, e.g. since there are several packages that do not mention the license explicitly in the DESCRIPTION file but only provide the license text in a separate LICENSE file.

totalNbrPkg <- nrow(pkg)
ccLicensed <- pkg$Package[grep("CC|Creative Commons", pkg$LicenseStandardizationShort)]
fileLicense <- pkg$Package[which(pkg$LicenseStandardizationShort == "")]
licUnlimited <- pkg$Package[which(pkg$LicenseStandardizationShort == "Unlimited")]
licNotStandardizable <- pkg$Package[is.na(pkg$LicenseStandardizationShort)]

fractionOSIApproved <- 1 - length(unique(c(ccLicensed, fileLicense, 
                                           licUnlimited, licNotStandardizable)))/totalNbrPkg
print(paste0("Rough estimate of fraction packages with OSI approved license: ", 
             signif(100 * fractionOSIApproved, digits = 4), "%"))
[1] "Rough estimate of fraction packages with OSI approved license: 97.63%"

Creative Commons licenses

Creative Commons recommends not using their licenses for software (but may be suitable for data packages): https://creativecommons.org/faq/#can-i-apply-a-creative-commons-license-to-software. Note though that the CC licenses are among the ‘standard’ open source licenses listed in the R license database: https://svn.r-project.org/R/trunk/share/licenses/license.db.

DT::datatable(subset(pkg, grepl("CC|Creative Commons", LicenseStandardizationShort)),
              extensions = "FixedColumns",
              rownames = FALSE,
              options = list(scrollX = TRUE, 
                             fixedColumns = list(leftColumns = 1),
                             search = list(regex = FALSE, caseInsensitive = TRUE),
                             pageLength = 20))

Packages that have just a ‘file LICENSE’

These need to be checked manually.

.makeLinkToLicense <- function(pkg, text) {
    sprintf('<a href="%s" target="_blank"> %s</a>',
            paste0("https://bioconductor.org/packages/devel/bioc/licenses/", 
                   pkg, "/LICENSE"), 
            text)
}
DT::datatable(subset(pkg, LicenseStandardizationShort == "") %>% 
                  dplyr::mutate(License = vapply(seq_along(License), function(i) {
                      .makeLinkToLicense(Package[i], License[i])
                  }, "NA")),
              extensions = "FixedColumns",
              rownames = FALSE,
              escape = FALSE,
              options = list(scrollX = TRUE, 
                             fixedColumns = list(leftColumns = 1),
                             search = list(regex = FALSE, caseInsensitive = TRUE),
                             pageLength = 20))

Packages that have license “Unlimited”

DT::datatable(subset(pkg, LicenseStandardizationShort == "Unlimited"),
              extensions = "FixedColumns",
              rownames = FALSE,
              options = list(scrollX = TRUE, 
                             fixedColumns = list(leftColumns = 1),
                             search = list(regex = FALSE, caseInsensitive = TRUE),
                             pageLength = 20))

Packages that have licenses that can not be standardized

Some of these may be false positives.

DT::datatable(subset(pkg, is.na(LicenseStandardizationShort)),
              extensions = "FixedColumns",
              rownames = FALSE,
              options = list(scrollX = TRUE, 
                             fixedColumns = list(leftColumns = 1),
                             search = list(regex = FALSE, caseInsensitive = TRUE),
                             pageLength = 20))

The rest of the licenses appear to be approved open source licenses (https://opensource.org/licenses/alphabetical).

Session info

sessionInfo()
R version 4.6.1 (2026-06-24)
Platform: x86_64-pc-linux-gnu
Running under: Ubuntu 24.04.4 LTS

Matrix products: default
BLAS:   /usr/lib/x86_64-linux-gnu/openblas-pthread/libblas.so.3 
LAPACK: /usr/lib/x86_64-linux-gnu/openblas-pthread/libopenblasp-r0.3.26.so;  LAPACK version 3.12.0

locale:
 [1] LC_CTYPE=en_US.UTF-8       LC_NUMERIC=C               LC_TIME=en_US.UTF-8        LC_COLLATE=en_US.UTF-8    
 [5] LC_MONETARY=en_US.UTF-8    LC_MESSAGES=en_US.UTF-8    LC_PAPER=en_US.UTF-8       LC_NAME=C                 
 [9] LC_ADDRESS=C               LC_TELEPHONE=C             LC_MEASUREMENT=en_US.UTF-8 LC_IDENTIFICATION=C       

time zone: Etc/UTC
tzcode source: system (glibc)

attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods   base     

other attached packages:
[1] DT_0.34.0            dplyr_1.2.1          BiocPkgTools_1.31.12 htmlwidgets_1.6.4   

loaded via a namespace (and not attached):
 [1] xfun_0.60            bslib_0.11.0         httr2_1.2.3          gh_1.6.0             Biobase_2.73.1      
 [6] tzdb_0.5.0           vctrs_0.7.3          tools_4.6.1          crosstalk_1.2.2      bitops_1.0-9        
[11] generics_0.1.4       stats4_4.6.1         curl_7.1.0           RUnit_0.4.33.1       tibble_3.3.1        
[16] RSQLite_3.53.3       blob_1.3.0           pkgconfig_2.0.3      dbplyr_2.6.0         graph_1.91.0        
[21] lifecycle_1.0.5      compiler_4.6.1       stringr_1.6.0        biocViews_1.81.1     htmltools_0.5.9     
[26] sass_0.4.10          RCurl_1.98-1.19      yaml_2.3.12          pillar_1.11.1        jquerylib_0.1.4     
[31] tidyr_1.3.2          cachem_1.1.0         tidyselect_1.2.1     rvest_1.0.5          digest_0.6.39       
[36] stringi_1.8.7        purrr_1.2.2          fastmap_1.2.0        cli_3.6.6            magrittr_2.0.5      
[41] RBGL_1.89.0          XML_3.99-0.23        readr_2.2.0          withr_3.0.3          filelock_1.0.3      
[46] rappdirs_0.3.4       bit64_4.8.2          lubridate_1.9.5      timechange_0.4.0     rmarkdown_2.31      
[51] httr_1.4.8           igraph_2.3.3         bit_4.6.0            otel_0.2.0           hms_1.1.4           
[56] memoise_2.0.1        evaluate_1.0.5       knitr_1.51           BiocFileCache_3.3.0  rlang_1.3.0         
[61] glue_1.8.1           DBI_1.3.0            BiocManager_1.30.27  xml2_1.6.0           BiocGenerics_0.59.10
[66] jsonlite_2.0.0       R6_2.6.1