Last active
January 31, 2019 15:39
-
-
Save gregorp/3b7e20309a894f4aa9ca0927e55ad98a to your computer and use it in GitHub Desktop.
Check R package dependency tree for GPL-3 package
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
get_license_info = function() { | |
lic_info = available.packages(filters = c("CRAN", "duplicates"), | |
fields = "License")[, c("Package", "License")] | |
lic_info = as.data.frame(lic_info, stringsAsFactors = FALSE) | |
# take a stab at identifying GPL 3 packages without other license options | |
lic_info$GPL3 = grepl("GPL.*3", lic_info$License) & !grepl("\\|", lic_info$License) | |
return(lic_info) | |
} | |
cran_licenses = get_license_info() | |
check_gpl3_deps = function(package, license_info) { | |
deps = package_dependencies(package, recursive = TRUE) | |
gpl3_deps = lapply(deps, function(x) { | |
# base packages are listed as dependencies | |
# but not in the licensing info | |
found = license_info[intersect(row.names(license_info), x), ] | |
found = found[order(found$GPL3, decreasing = TRUE), ] | |
rownames(found) = NULL | |
return(found) | |
}) | |
return(gpl3_deps) | |
} | |
check_gpl3_deps(c("data.table", "tidyverse", "rstanarm"), cran_licenses) | |
# $data.table | |
# [1] Package License GPL3 | |
# <0 rows> (or 0-length row.names) | |
# | |
# $tidyverse | |
# Package License GPL3 | |
# 1 assertthat GPL-3 TRUE | |
# 2 clipr GPL-3 TRUE | |
# 3 forcats GPL-3 TRUE | |
# 4 fs GPL-3 TRUE | |
# 5 hms GPL-3 TRUE | |
# 6 lazyeval GPL-3 TRUE | |
# 7 modelr GPL-3 TRUE | |
# 8 pillar GPL-3 TRUE | |
# 9 readxl GPL-3 TRUE | |
# 10 rlang GPL-3 TRUE | |
# 11 rmarkdown GPL-3 TRUE | |
# 12 rvest GPL-3 TRUE | |
# 13 tidyselect GPL-3 TRUE | |
# 14 whisker GPL-3 TRUE | |
# 15 askpass MIT + file LICENSE FALSE | |
# 16 backports GPL-2 FALSE | |
# 17 base64enc GPL-2 | GPL-3 FALSE | |
# 18 BH BSL-1.0 FALSE | |
# 19 bindr MIT + file LICENSE FALSE | |
# 20 bindrcpp MIT + file LICENSE FALSE | |
# 21 broom MIT + file LICENSE FALSE | |
# 22 callr MIT + file LICENSE FALSE | |
# 23 cellranger MIT + file LICENSE FALSE | |
# 24 cli MIT + file LICENSE FALSE | |
# 25 colorspace BSD_3_clause + file LICENSE FALSE | |
# 26 crayon MIT + file LICENSE FALSE | |
# 27 curl MIT + file LICENSE FALSE | |
# 28 DBI LGPL (>= 2) FALSE | |
# 29 dbplyr MIT + file LICENSE FALSE | |
# 30 digest GPL (>= 2) FALSE | |
# 31 dplyr MIT + file LICENSE FALSE | |
# 32 evaluate MIT + file LICENSE FALSE | |
# 33 fansi GPL (>= 2) FALSE | |
# 34 generics GPL-2 FALSE | |
# 35 ggplot2 GPL-2 | file LICENSE FALSE | |
# 36 glue MIT + file LICENSE FALSE | |
# 37 gtable GPL-2 FALSE | |
# 38 haven MIT + file LICENSE FALSE | |
# 39 highr GPL FALSE | |
# 40 htmltools GPL (>= 2) FALSE | |
# 41 httr MIT + file LICENSE FALSE | |
# 42 jsonlite MIT + file LICENSE FALSE | |
# 43 knitr GPL FALSE | |
# 44 labeling MIT + file LICENSE | Unlimited FALSE | |
# 45 lattice GPL (>= 2) FALSE | |
# 46 lubridate GPL (>= 2) FALSE | |
# 47 magrittr MIT + file LICENSE FALSE | |
# 48 markdown GPL-2 FALSE | |
# 49 MASS GPL-2 | GPL-3 FALSE | |
# 50 Matrix GPL (>= 2) | file LICENCE FALSE | |
# 51 mgcv GPL (>= 2) FALSE | |
# 52 mime GPL FALSE | |
# 53 munsell MIT + file LICENSE FALSE | |
# 54 nlme GPL (>= 2) | file LICENCE FALSE | |
# 55 openssl MIT + file LICENSE FALSE | |
# 56 pkgconfig MIT + file LICENSE FALSE | |
# 57 plogr MIT + file LICENSE FALSE | |
# 58 plyr MIT + file LICENSE FALSE | |
# 59 prettyunits MIT + file LICENSE FALSE | |
# 60 processx MIT + file LICENSE FALSE | |
# 61 progress MIT + file LICENSE FALSE | |
# 62 ps BSD_3_clause + file LICENSE FALSE | |
# 63 purrr GPL-3 | file LICENSE FALSE | |
# 64 R6 MIT + file LICENSE FALSE | |
# 65 RColorBrewer Apache License 2.0 FALSE | |
# 66 Rcpp GPL (>= 2) FALSE | |
# 67 readr GPL (>= 2) | file LICENSE FALSE | |
# 68 rematch MIT + file LICENSE FALSE | |
# 69 reprex MIT + file LICENSE FALSE | |
# 70 reshape2 MIT + file LICENSE FALSE | |
# 71 rstudioapi MIT + file LICENSE FALSE | |
# 72 scales MIT + file LICENSE FALSE | |
# 73 selectr BSD_3_clause + file LICENCE FALSE | |
# 74 stringi file LICENSE FALSE | |
# 75 stringr GPL-2 | file LICENSE FALSE | |
# 76 sys MIT + file LICENSE FALSE | |
# 77 tibble MIT + file LICENSE FALSE | |
# 78 tidyr MIT + file LICENSE FALSE | |
# 79 tinytex MIT + file LICENSE FALSE | |
# 80 utf8 Apache License (== 2.0) | file LICENSE FALSE | |
# 81 viridisLite MIT + file LICENSE FALSE | |
# 82 withr GPL (>= 2) FALSE | |
# 83 xfun MIT + file LICENSE FALSE | |
# 84 xml2 GPL (>= 2) FALSE | |
# 85 yaml BSD_3_clause + file LICENSE FALSE | |
# | |
# $rstanarm | |
# Package License GPL3 | |
# 1 assertthat GPL-3 TRUE | |
# 2 bayesplot GPL (>= 3) TRUE | |
# 3 lazyeval GPL-3 TRUE | |
# 4 loo GPL (>= 3) TRUE | |
# 5 miniUI GPL-3 TRUE | |
# 6 nloptr LGPL-3 TRUE | |
# 7 pillar GPL-3 TRUE | |
# 8 pkgbuild GPL-3 TRUE | |
# 9 rlang GPL-3 TRUE | |
# 10 rprojroot GPL-3 TRUE | |
# 11 rstan GPL (>= 3) TRUE | |
# 12 rstantools GPL (>= 3) TRUE | |
# 13 shinyjs AGPL-3 TRUE | |
# 14 shinystan GPL (>= 3) TRUE | |
# 15 tidyselect GPL-3 TRUE | |
# 16 askpass MIT + file LICENSE FALSE | |
# 17 backports GPL-2 FALSE | |
# 18 base64enc GPL-2 | GPL-3 FALSE | |
# 19 BH BSL-1.0 FALSE | |
# 20 bindr MIT + file LICENSE FALSE | |
# 21 bindrcpp MIT + file LICENSE FALSE | |
# 22 bitops GPL (>= 2) FALSE | |
# 23 callr MIT + file LICENSE FALSE | |
# 24 cli MIT + file LICENSE FALSE | |
# 25 colorspace BSD_3_clause + file LICENSE FALSE | |
# 26 colourpicker MIT + file LICENSE FALSE | |
# 27 crayon MIT + file LICENSE FALSE | |
# 28 crosstalk MIT + file LICENSE FALSE | |
# 29 desc MIT + file LICENSE FALSE | |
# 30 digest GPL (>= 2) FALSE | |
# 31 dplyr MIT + file LICENSE FALSE | |
# 32 DT GPL-3 | file LICENSE FALSE | |
# 33 dygraphs MIT + file LICENSE FALSE | |
# 34 fansi GPL (>= 2) FALSE | |
# 35 ggplot2 GPL-2 | file LICENSE FALSE | |
# 36 ggridges GPL-2 | file LICENSE FALSE | |
# 37 glue MIT + file LICENSE FALSE | |
# 38 gridExtra GPL (>= 2) FALSE | |
# 39 gtable GPL-2 FALSE | |
# 40 gtools GPL-2 FALSE | |
# 41 htmltools GPL (>= 2) FALSE | |
# 42 htmlwidgets MIT + file LICENSE FALSE | |
# 43 httpuv GPL (>= 2) | file LICENSE FALSE | |
# 44 igraph GPL (>= 2) FALSE | |
# 45 inline LGPL FALSE | |
# 46 jsonlite MIT + file LICENSE FALSE | |
# 47 labeling MIT + file LICENSE | Unlimited FALSE | |
# 48 later GPL (>= 2) FALSE | |
# 49 lattice GPL (>= 2) FALSE | |
# 50 lme4 GPL (>= 2) FALSE | |
# 51 magrittr MIT + file LICENSE FALSE | |
# 52 markdown GPL-2 FALSE | |
# 53 MASS GPL-2 | GPL-3 FALSE | |
# 54 Matrix GPL (>= 2) | file LICENCE FALSE | |
# 55 matrixStats Artistic-2.0 FALSE | |
# 56 mgcv GPL (>= 2) FALSE | |
# 57 mime GPL FALSE | |
# 58 minqa GPL-2 FALSE | |
# 59 munsell MIT + file LICENSE FALSE | |
# 60 nlme GPL (>= 2) | file LICENCE FALSE | |
# 61 openssl MIT + file LICENSE FALSE | |
# 62 packrat GPL-2 FALSE | |
# 63 pkgconfig MIT + file LICENSE FALSE | |
# 64 plogr MIT + file LICENSE FALSE | |
# 65 plyr MIT + file LICENSE FALSE | |
# 66 prettyunits MIT + file LICENSE FALSE | |
# 67 processx MIT + file LICENSE FALSE | |
# 68 promises MIT + file LICENSE FALSE | |
# 69 ps BSD_3_clause + file LICENSE FALSE | |
# 70 purrr GPL-3 | file LICENSE FALSE | |
# 71 R6 MIT + file LICENSE FALSE | |
# 72 RColorBrewer Apache License 2.0 FALSE | |
# 73 Rcpp GPL (>= 2) FALSE | |
# 74 RcppEigen GPL (>= 2) | file LICENSE FALSE | |
# 75 RCurl BSD FALSE | |
# 76 reshape2 MIT + file LICENSE FALSE | |
# 77 rsconnect GPL-2 FALSE | |
# 78 rstudioapi MIT + file LICENSE FALSE | |
# 79 scales MIT + file LICENSE FALSE | |
# 80 shiny GPL-3 | file LICENSE FALSE | |
# 81 shinythemes GPL-3 | file LICENSE FALSE | |
# 82 sourcetools MIT + file LICENSE FALSE | |
# 83 StanHeaders BSD_3_clause + file LICENSE FALSE | |
# 84 stringi file LICENSE FALSE | |
# 85 stringr GPL-2 | file LICENSE FALSE | |
# 86 survival LGPL (>= 2) FALSE | |
# 87 sys MIT + file LICENSE FALSE | |
# 88 threejs MIT + file LICENSE FALSE | |
# 89 tibble MIT + file LICENSE FALSE | |
# 90 utf8 Apache License (== 2.0) | file LICENSE FALSE | |
# 91 viridisLite MIT + file LICENSE FALSE | |
# 92 withr GPL (>= 2) FALSE | |
# 93 xtable GPL (>= 2) FALSE | |
# 94 xts GPL (>= 2) FALSE | |
# 95 yaml BSD_3_clause + file LICENSE FALSE | |
# 96 zoo GPL-2 | GPL-3 FALSE |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment