From 33c4ccffab2b614210198be08603eb2ec5305936 Mon Sep 17 00:00:00 2001 From: ed Date: Tue, 26 Nov 2024 00:39:38 +0000 Subject: [PATCH] vendor foss licenses license downloader (for generating COPYING.txt) broke after opensource.org changed their html, so just vendor all of it --- scripts/genlic.py | 40 ++++++++++++++++++++++++++ scripts/genlic.sh | 54 ------------------------------------ scripts/lics/1.r13 | 5 ++++ scripts/lics/2.r13 | 7 +++++ scripts/lics/3.r13 | 9 ++++++ scripts/lics/4.r13 | 39 ++++++++++++++++++++++++++ scripts/lics/README.md | 3 ++ scripts/lics/rot.py | 12 ++++++++ scripts/make-pypi-release.sh | 5 ++-- scripts/make-sfx.sh | 3 +- scripts/make-tgz-release.sh | 2 +- 11 files changed, 119 insertions(+), 60 deletions(-) create mode 100755 scripts/genlic.py delete mode 100755 scripts/genlic.sh create mode 100644 scripts/lics/1.r13 create mode 100644 scripts/lics/2.r13 create mode 100644 scripts/lics/3.r13 create mode 100644 scripts/lics/4.r13 create mode 100644 scripts/lics/README.md create mode 100755 scripts/lics/rot.py diff --git a/scripts/genlic.py b/scripts/genlic.py new file mode 100755 index 00000000..19e64827 --- /dev/null +++ b/scripts/genlic.py @@ -0,0 +1,40 @@ +#!/usr/bin/env python3 + +import re, os, sys, codecs + +outfile = os.path.realpath(sys.argv[1]) + +os.chdir(os.path.dirname(__file__)) + +with open("../docs/lics.txt", "rb") as f: + s = f.read().decode("utf-8").rstrip("\n") + "\n\n\n\n" + s = re.sub("\nC: ", "\nCopyright (c) ", s) + s = re.sub("\nL: ", "\nLicense: ", s) + ret = s.split("\n") + +lics = [ + "MIT License", + "BSD 2-Clause License", + "BSD 3-Clause License", + "SIL Open Font License v1.1", +] + +for n, lic in enumerate(lics, 1): + with open("lics/%d.r13" % (n,), "rb") as f: + s = f.read().decode("utf-8") + s = codecs.decode(s, "rot_13") + s = "\n--- %s ---\n\n%s" % (lic, s) + ret.extend(s.split("\n")) + +for n, ln in enumerate(ret): + if not ln.startswith("--- "): + continue + pad = " " * ((80 - len(ln)) // 2) + ln = "%s\033[07m%s\033[0m" % (pad, ln) + ret[n] = ln + +ret.append("") +ret.append("") + +with open(outfile, "wb") as f: + f.write(("\n".join(ret)).encode("utf-8")) diff --git a/scripts/genlic.sh b/scripts/genlic.sh deleted file mode 100755 index 2eb4cc92..00000000 --- a/scripts/genlic.sh +++ /dev/null @@ -1,54 +0,0 @@ -#!/bin/bash -set -e - -outfile="$($(command -v realpath || command -v grealpath) "$1")" - -[ -e genlic.sh ] || cd scripts -[ -e genlic.sh ] - -f=../build/mit.txt -[ -e $f ] || - curl https://opensource.org/licenses/MIT | - awk '/div>/{o=0}o>1;o{o++}/;COPYRIGHT HOLDER/{o=1}' | - awk '{gsub(/<[^>]+>/,"")};1' >$f - -f=../build/isc.txt -[ -e $f ] || - curl https://opensource.org/licenses/ISC | - awk '/div>/{o=0}o>2;o{o++}/;OWNER/{o=1}' | - awk '{gsub(/<[^>]+>/,"")};/./{b=0}!/./{b++}b>1{next}1' >$f - -f=../build/2bsd.txt -[ -e $f ] || - curl https://opensource.org/licenses/BSD-2-Clause | - awk '/div>/{o=0}o>1;o{o++}/HOLDER/{o=1}' | - awk '{gsub(/<[^>]+>/,"")};1' >$f - -f=../build/3bsd.txt -[ -e $f ] || - curl https://opensource.org/licenses/BSD-3-Clause | - awk '/div>/{o=0}o>1;o{o++}/HOLDER/{o=1}' | - awk '{gsub(/<[^>]+>/,"")};1' >$f - -f=../build/ofl.txt -[ -e $f ] || - curl https://opensource.org/licenses/OFL-1.1 | - awk '/PREAMBLE/{o=1}/sil\.org/{o=0}!o{next}/./{printf "%s ",$0;next}{print"\n"}' | - awk '{gsub(/<[^>]+>/,"");gsub(/^\s+/,"");gsub(/&/,"\\&")}/./{b=0}!/./{b++}b>1{next}1' >$f - -(sed -r 's/^L: /License: /;s/^C: /Copyright (c) /' <../docs/lics.txt -printf '\n\n--- MIT License ---\n\n'; cat ../build/mit.txt -printf '\n\n--- ISC License ---\n\n'; cat ../build/isc.txt -printf '\n\n--- BSD 2-Clause License ---\n\n'; cat ../build/2bsd.txt -printf '\n\n--- BSD 3-Clause License ---\n\n'; cat ../build/3bsd.txt -printf '\n\n--- SIL Open Font License v1.1 ---\n\n'; cat ../build/ofl.txt -) | -while IFS= read -r x; do - [ "${x:0:4}" = "--- " ] || { - printf '%s\n' "$x" - continue - } - n=${#x} - p=$(( (80-n)/2 )) - printf "%${p}s\033[07m%s\033[0m\n" "" "$x" -done > "$outfile" diff --git a/scripts/lics/1.r13 b/scripts/lics/1.r13 new file mode 100644 index 00000000..d66fa0ec --- /dev/null +++ b/scripts/lics/1.r13 @@ -0,0 +1,5 @@ +Crezvffvba vf urerol tenagrq, serr bs punetr, gb nal crefba bognvavat n pbcl bs guvf fbsgjner naq nffbpvngrq qbphzragngvba svyrf (gur "Fbsgjner"), gb qrny va gur Fbsgjner jvgubhg erfgevpgvba, vapyhqvat jvgubhg yvzvgngvba gur evtugf gb hfr, pbcl, zbqvsl, zretr, choyvfu, qvfgevohgr, fhoyvprafr, naq/be fryy pbcvrf bs gur Fbsgjner, naq gb crezvg crefbaf gb jubz gur Fbsgjner vf sheavfurq gb qb fb, fhowrpg gb gur sbyybjvat pbaqvgvbaf: + +Gur nobir pbclevtug abgvpr naq guvf crezvffvba abgvpr funyy or vapyhqrq va nyy pbcvrf be fhofgnagvny cbegvbaf bs gur Fbsgjner. + +GUR FBSGJNER VF CEBIVQRQ "NF VF", JVGUBHG JNEENAGL BS NAL XVAQ, RKCERFF BE VZCYVRQ, VAPYHQVAT OHG ABG YVZVGRQ GB GUR JNEENAGVRF BS ZREPUNAGNOVYVGL, SVGARFF SBE N CNEGVPHYNE CHECBFR NAQ ABAVASEVATRZRAG. VA AB RIRAG FUNYY GUR NHGUBEF BE PBCLEVTUG UBYQREF OR YVNOYR SBE NAL PYNVZ, QNZNTRF BE BGURE YVNOVYVGL, JURGURE VA NA NPGVBA BS PBAGENPG, GBEG BE BGUREJVFR, NEVFVAT SEBZ, BHG BS BE VA PBAARPGVBA JVGU GUR FBSGJNER BE GUR HFR BE BGURE QRNYVATF VA GUR FBSGJNER. \ No newline at end of file diff --git a/scripts/lics/2.r13 b/scripts/lics/2.r13 new file mode 100644 index 00000000..e7ec2120 --- /dev/null +++ b/scripts/lics/2.r13 @@ -0,0 +1,7 @@ +Erqvfgevohgvba naq hfr va fbhepr naq ovanel sbezf, jvgu be jvgubhg zbqvsvpngvba, ner crezvggrq cebivqrq gung gur sbyybjvat pbaqvgvbaf ner zrg: + +1. Erqvfgevohgvbaf bs fbhepr pbqr zhfg ergnva gur nobir pbclevtug abgvpr, guvf yvfg bs pbaqvgvbaf naq gur sbyybjvat qvfpynvzre. + +2. Erqvfgevohgvbaf va ovanel sbez zhfg ercebqhpr gur nobir pbclevtug abgvpr, guvf yvfg bs pbaqvgvbaf naq gur sbyybjvat qvfpynvzre va gur qbphzragngvba naq/be bgure zngrevnyf cebivqrq jvgu gur qvfgevohgvba. + +GUVF FBSGJNER VF CEBIVQRQ OL GUR PBCLEVTUG UBYQREF NAQ PBAGEVOHGBEF "NF VF" NAQ NAL RKCERFF BE VZCYVRQ JNEENAGVRF, VAPYHQVAT, OHG ABG YVZVGRQ GB, GUR VZCYVRQ JNEENAGVRF BS ZREPUNAGNOVYVGL NAQ SVGARFF SBE N CNEGVPHYNE CHECBFR NER QVFPYNVZRQ. VA AB RIRAG FUNYY GUR PBCLEVTUG UBYQRE BE PBAGEVOHGBEF OR YVNOYR SBE NAL QVERPG, VAQVERPG, VAPVQRAGNY, FCRPVNY, RKRZCYNEL, BE PBAFRDHRAGVNY QNZNTRF (VAPYHQVAT, OHG ABG YVZVGRQ GB, CEBPHERZRAG BS FHOFGVGHGR TBBQF BE FREIVPRF; YBFF BS HFR, QNGN, BE CEBSVGF; BE OHFVARFF VAGREEHCGVBA) UBJRIRE PNHFRQ NAQ BA NAL GURBEL BS YVNOVYVGL, JURGURE VA PBAGENPG, FGEVPG YVNOVYVGL, BE GBEG (VAPYHQVAT ARTYVTRAPR BE BGUREJVFR) NEVFVAT VA NAL JNL BHG BS GUR HFR BS GUVF FBSGJNER, RIRA VS NQIVFRQ BS GUR CBFFVOVYVGL BS FHPU QNZNTR. \ No newline at end of file diff --git a/scripts/lics/3.r13 b/scripts/lics/3.r13 new file mode 100644 index 00000000..d1a561cf --- /dev/null +++ b/scripts/lics/3.r13 @@ -0,0 +1,9 @@ +Erqvfgevohgvba naq hfr va fbhepr naq ovanel sbezf, jvgu be jvgubhg zbqvsvpngvba, ner crezvggrq cebivqrq gung gur sbyybjvat pbaqvgvbaf ner zrg: + +1. Erqvfgevohgvbaf bs fbhepr pbqr zhfg ergnva gur nobir pbclevtug abgvpr, guvf yvfg bs pbaqvgvbaf naq gur sbyybjvat qvfpynvzre. + +2. Erqvfgevohgvbaf va ovanel sbez zhfg ercebqhpr gur nobir pbclevtug abgvpr, guvf yvfg bs pbaqvgvbaf naq gur sbyybjvat qvfpynvzre va gur qbphzragngvba naq/be bgure zngrevnyf cebivqrq jvgu gur qvfgevohgvba. + +3. Arvgure gur anzr bs gur pbclevtug ubyqre abe gur anzrf bs vgf pbagevohgbef znl or hfrq gb raqbefr be cebzbgr cebqhpgf qrevirq sebz guvf fbsgjner jvgubhg fcrpvsvp cevbe jevggra crezvffvba. + +GUVF FBSGJNER VF CEBIVQRQ OL GUR PBCLEVTUG UBYQREF NAQ PBAGEVOHGBEF "NF VF" NAQ NAL RKCERFF BE VZCYVRQ JNEENAGVRF, VAPYHQVAT, OHG ABG YVZVGRQ GB, GUR VZCYVRQ JNEENAGVRF BS ZREPUNAGNOVYVGL NAQ SVGARFF SBE N CNEGVPHYNE CHECBFR NER QVFPYNVZRQ. VA AB RIRAG FUNYY GUR PBCLEVTUG UBYQRE BE PBAGEVOHGBEF OR YVNOYR SBE NAL QVERPG, VAQVERPG, VAPVQRAGNY, FCRPVNY, RKRZCYNEL, BE PBAFRDHRAGVNY QNZNTRF (VAPYHQVAT, OHG ABG YVZVGRQ GB, CEBPHERZRAG BS FHOFGVGHGR TBBQF BE FREIVPRF; YBFF BS HFR, QNGN, BE CEBSVGF; BE OHFVARFF VAGREEHCGVBA) UBJRIRE PNHFRQ NAQ BA NAL GURBEL BS YVNOVYVGL, JURGURE VA PBAGENPG, FGEVPG YVNOVYVGL, BE GBEG (VAPYHQVAT ARTYVTRAPR BE BGUREJVFR) NEVFVAT VA NAL JNL BHG BS GUR HFR BS GUVF FBSGJNER, RIRA VS NQIVFRQ BS GUR CBFFVOVYVGL BS FHPU QNZNTR. \ No newline at end of file diff --git a/scripts/lics/4.r13 b/scripts/lics/4.r13 new file mode 100644 index 00000000..f94a34c6 --- /dev/null +++ b/scripts/lics/4.r13 @@ -0,0 +1,39 @@ +CERNZOYR + +Gur tbnyf bs gur Bcra Sbag Yvprafr (BSY) ner gb fgvzhyngr jbeyqjvqr qrirybczrag bs pbyynobengvir sbag cebwrpgf, gb fhccbeg gur sbag perngvba rssbegf bs npnqrzvp naq yvathvfgvp pbzzhavgvrf, naq gb cebivqr n serr naq bcra senzrjbex va juvpu sbagf znl or funerq naq vzcebirq va cnegarefuvc jvgu bguref. + +Gur BSY nyybjf gur yvprafrq sbagf gb or hfrq, fghqvrq, zbqvsvrq naq erqvfgevohgrq serryl nf ybat nf gurl ner abg fbyq ol gurzfryirf. Gur sbagf, vapyhqvat nal qrevingvir jbexf, pna or ohaqyrq, rzorqqrq, erqvfgevohgrq naq/be fbyq jvgu nal fbsgjner cebivqrq gung nal erfreirq anzrf ner abg hfrq ol qrevingvir jbexf. Gur sbagf naq qrevingvirf, ubjrire, pnaabg or eryrnfrq haqre nal bgure glcr bs yvprafr. Gur erdhverzrag sbe sbagf gb erznva haqre guvf yvprafr qbrf abg nccyl gb nal qbphzrag perngrq hfvat gur sbagf be gurve qrevingvirf. + +QRSVAVGVBAF + +"Sbag Fbsgjner" ersref gb gur frg bs svyrf eryrnfrq ol gur Pbclevtug Ubyqre(f) haqre guvf yvprafr naq pyrneyl znexrq nf fhpu. Guvf znl vapyhqr fbhepr svyrf, ohvyq fpevcgf naq qbphzragngvba. + +"Erfreirq Sbag Anzr" ersref gb nal anzrf fcrpvsvrq nf fhpu nsgre gur pbclevtug fgngrzrag(f). + +"Bevtvany Irefvba" ersref gb gur pbyyrpgvba bs Sbag Fbsgjner pbzcbaragf nf qvfgevohgrq ol gur Pbclevtug Ubyqre(f). + +"Zbqvsvrq Irefvba" ersref gb nal qrevingvir znqr ol nqqvat gb, qryrgvat, be fhofgvghgvat - va cneg be va jubyr - nal bs gur pbzcbaragf bs gur Bevtvany Irefvba, ol punatvat sbezngf be ol cbegvat gur Sbag Fbsgjner gb n arj raivebazrag. + +"Nhgube" ersref gb nal qrfvtare, ratvarre, cebtenzzre, grpuavpny jevgre be bgure crefba jub pbagevohgrq gb gur Sbag Fbsgjner. + +CREZVFFVBA & PBAQVGVBAF + +Crezvffvba vf urerol tenagrq, serr bs punetr, gb nal crefba bognvavat n pbcl bs gur Sbag Fbsgjner, gb hfr, fghql, pbcl, zretr, rzorq, zbqvsl, erqvfgevohgr, naq fryy zbqvsvrq naq hazbqvsvrq pbcvrf bs gur Sbag Fbsgjner, fhowrpg gb gur sbyybjvat pbaqvgvbaf: + +1) Arvgure gur Sbag Fbsgjner abe nal bs vgf vaqvivqhny pbzcbaragf, va Bevtvany be Zbqvsvrq Irefvbaf, znl or fbyq ol vgfrys. + +2) Bevtvany be Zbqvsvrq Irefvbaf bs gur Sbag Fbsgjner znl or ohaqyrq, erqvfgevohgrq naq/be fbyq jvgu nal fbsgjner, cebivqrq gung rnpu pbcl pbagnvaf gur nobir pbclevtug abgvpr naq guvf yvprafr. Gurfr pna or vapyhqrq rvgure nf fgnaq-nybar grkg svyrf, uhzna-ernqnoyr urnqref be va gur nccebcevngr znpuvar-ernqnoyr zrgnqngn svryqf jvguva grkg be ovanel svyrf nf ybat nf gubfr svryqf pna or rnfvyl ivrjrq ol gur hfre. + +3) Ab Zbqvsvrq Irefvba bs gur Sbag Fbsgjner znl hfr gur Erfreirq Sbag Anzr(f) hayrff rkcyvpvg jevggra crezvffvba vf tenagrq ol gur pbeerfcbaqvat Pbclevtug Ubyqre. Guvf erfgevpgvba bayl nccyvrf gb gur cevznel sbag anzr nf cerfragrq gb gur hfref. + +4) Gur anzr(f) bs gur Pbclevtug Ubyqre(f) be gur Nhgube(f) bs gur Sbag Fbsgjner funyy abg or hfrq gb cebzbgr, raqbefr be nqiregvfr nal Zbqvsvrq Irefvba, rkprcg gb npxabjyrqtr gur pbagevohgvba(f) bs gur Pbclevtug Ubyqre(f) naq gur Nhgube(f) be jvgu gurve rkcyvpvg jevggra crezvffvba. + +5) Gur Sbag Fbsgjner, zbqvsvrq be hazbqvsvrq, va cneg be va jubyr, zhfg or qvfgevohgrq ragveryl haqre guvf yvprafr, naq zhfg abg or qvfgevohgrq haqre nal bgure yvprafr. Gur erdhverzrag sbe sbagf gb erznva haqre guvf yvprafr qbrf abg nccyl gb nal qbphzrag perngrq hfvat gur Sbag Fbsgjner. + +GREZVANGVBA + +Guvf yvprafr orpbzrf ahyy naq ibvq vs nal bs gur nobir pbaqvgvbaf ner abg zrg. + +QVFPYNVZRE + +GUR SBAG FBSGJNER VF CEBIVQRQ "NF VF", JVGUBHG JNEENAGL BS NAL XVAQ, RKCERFF BE VZCYVRQ, VAPYHQVAT OHG ABG YVZVGRQ GB NAL JNEENAGVRF BS ZREPUNAGNOVYVGL, SVGARFF SBE N CNEGVPHYNE CHECBFR NAQ ABAVASEVATRZRAG BS PBCLEVTUG, CNGRAG, GENQRZNEX, BE BGURE EVTUG. VA AB RIRAG FUNYY GUR PBCLEVTUG UBYQRE OR YVNOYR SBE NAL PYNVZ, QNZNTRF BE BGURE YVNOVYVGL, VAPYHQVAT NAL TRARENY, FCRPVNY, VAQVERPG, VAPVQRAGNY, BE PBAFRDHRAGVNY QNZNTRF, JURGURE VA NA NPGVBA BS PBAGENPG, GBEG BE BGUREJVFR, NEVFVAT SEBZ, BHG BS GUR HFR BE VANOVYVGL GB HFR GUR SBAG FBSGJNER BE SEBZ BGURE QRNYVATF VA GUR SBAG FBSGJNER. \ No newline at end of file diff --git a/scripts/lics/README.md b/scripts/lics/README.md new file mode 100644 index 00000000..5b58a223 --- /dev/null +++ b/scripts/lics/README.md @@ -0,0 +1,3 @@ +these are foss licenses in rot13 so scanners don't think copyparty isn't mit + +1=mit 2=2bsd 3=3bsd 4=ofl diff --git a/scripts/lics/rot.py b/scripts/lics/rot.py new file mode 100755 index 00000000..2d6866c4 --- /dev/null +++ b/scripts/lics/rot.py @@ -0,0 +1,12 @@ +#!/usr/bin/env python3 + +import os, codecs + +for fn in os.listdir("."): + if not fn.endswith(".txt"): + continue + with open(fn, "rb") as f: + s = f.read().decode("utf-8") + b = codecs.encode(s, "rot_13").encode("utf-8") + with open(fn.replace("txt", "r13"), "wb") as f: + f.write(b) diff --git a/scripts/make-pypi-release.sh b/scripts/make-pypi-release.sh index 28c0764c..7e4b9b76 100755 --- a/scripts/make-pypi-release.sh +++ b/scripts/make-pypi-release.sh @@ -100,14 +100,13 @@ load_env || { # cleanup rm -rf unt build/pypi -# grab licenses -scripts/genlic.sh copyparty/res/COPYING.txt +# generate license list +scripts/genlic.py copyparty/res/COPYING.txt # clean-ish packaging env rm -rf build/pypi mkdir -p build/pypi cp -pR pyproject.toml README.md LICENSE copyparty contrib bin scripts/strip_hints build/pypi/ -tar -c docs/lics.txt scripts/genlic.sh build/*.txt | tar -xC build/pypi/ cd build/pypi # delete junk diff --git a/scripts/make-sfx.sh b/scripts/make-sfx.sh index 4f341e6c..cc14fb4f 100755 --- a/scripts/make-sfx.sh +++ b/scripts/make-sfx.sh @@ -308,8 +308,7 @@ necho() { # remove type hints before build instead (cd copyparty; PYTHONPATH="..:$PYTHONPATH" "$pybin" ../../scripts/strip_hints/a.py; rm uh) - licfile=$(realpath copyparty/res/COPYING.txt) - (cd ../scripts; ./genlic.sh "$licfile") + (cd ../scripts; ./genlic.py ../copyparty/res/COPYING.txt) } [ ! -e copyparty/web/deps/mini-fa.woff ] && [ $dl_wd ] && { diff --git a/scripts/make-tgz-release.sh b/scripts/make-tgz-release.sh index 9d50a941..c68766f9 100755 --- a/scripts/make-tgz-release.sh +++ b/scripts/make-tgz-release.sh @@ -64,7 +64,7 @@ git archive hovudstraum | tar -xC "$rls_dir" echo ">>> export untracked deps" tar -c copyparty/web/deps | tar -xC "$rls_dir" -scripts/genlic.sh "$rls_dir/copyparty/res/COPYING.txt" +scripts/genlic.py "$rls_dir/copyparty/res/COPYING.txt" cd "$rls_dir" find -type d -exec chmod 755 '{}' \+