diff --git a/forge_comparison.md b/forge_comparison.md index 3a7d214..a009335 100644 --- a/forge_comparison.md +++ b/forge_comparison.md @@ -7,23 +7,25 @@ The following forges have no significant ethical issues: | *forge* | *registration publicly open* | *software* | *Tor-hostile* | *sensitive info exposed to CloudFlare* | *forced re/hCAPTCHA* | *forced execution of non-free software* | *notes* | |---|---|---|---|---|---|---|---| -([🧅](http://githidep2hynhdmutuv7n2tei4iie2c7lyqz5fes3r5zzoxe5dshtxyd.onion))|💀|other|n|n|n|n|**dead site**| +([🧅](http://githidep2hynhdmutuv7n2tei4iie2c7lyqz5fes3r5zzoxe5dshtxyd.onion))|💀|other/unknown|n|n|n|n|**dead site**| +[codeberg.org](https://codeberg.org)|🟢|Gitea|n|n|n|n|functions without any JavaScript and the JavaScript that exists is all 1st-party ([ref](https://github.com/privacytoolsIO/privacytools.io/issues/843#issuecomment-483830547))| [framagit.org](https://framagit.org)|🟢|Gitlab (CE)|n|n|n|n|| [git.fuwafuwa.moe](https://git.fuwafuwa.moe)([🧅](http://git.fuwafuwaqtlkkxwc.onion))|🟢|Gitea|n|n|n|n|SSH over Tor broken; HTTPS over Tor works| [git.hardenedbsd.org](https://git.hardenedbsd.org)|🟢|Gitlab (CE)|n|n|n|n|possibly restricted to BSD efforts| [git.jami.net](https://git.jami.net)|🟢|Gitlab (CE)|n|n|n|n|possibly restricted to Jami efforts| [git.nixnet.services](https://git.nixnet.services)|🔴|Gitea|n|n|n|n|used to be git.nixnet.xyz| -[git.sdf.org](https://git.sdf.org)|🟢|Gitea|n|n|n|n|SSH over Tor broken (try HTTPS over Tor)| +[git.sdf.org](https://git.sdf.org)|🟢|Gitea|n|n|n|n|SSH over Tor broken but HTTPS over Tor works| [git.slashdev.space](https://git.slashdev.space)|🟢|Gitea|n|n|n|n|SSH over Tor broken (try HTTPS over Tor)| [git.teknik.io](https://git.teknik.io)|🔴|Gitea|n|n|n|n|| [gitlab.freedesktop.org](https://gitlab.freedesktop.org)|🟢|Gitlab (CE)|n|n|n|n|possibly restricted to Freedesktop efforts| [gitlab.gnome.org](https://gitlab.gnome.org)|🟢|Gitlab (CE)|n|n|n|n|possibly restricted to Gnome efforts| [gitlab.torproject.org](https://gitlab.torproject.org)|🟢|Gitlab (CE)|n|n|n|n|open registration; repo creation possibly restricted; Google reCAPTCHA is [allegedley](https://lists.gnu.org/archive/html/repo-criteria-discuss/2021-03/msg00000.html) used, but [not at registration time](https://gitlab.onionize.space)| -[libregit.org](https://libregit.org)|🔴|Gitea|n|n|n|n|reg by invite only| +[launchpad.net](https://launchpad.net)|🟢|Launchpad|n|n|n|n|| +[notabug.org](https://notabug.org)([🧅](http://qs3zumwfci4tntnd.onion))|🟢|Gogs|n|n|n|n|based on [liberated](https://notabug.org/hp/gogs) fork of Gogs; [supports Tor](https://notabug.org/tor) (the *onion* web UI is currently disabled in response to attack but the onion site accepts git connections); supports SSH keys and SSH over Tor to NAB's onion service; no e-voting; NAB doesn't associate PGP keys to users, so PGP signed commits may be unavailable or more manual work needed.| [source.puri.sm](https://source.puri.sm)|🟢|Gitlab (CE)|n|n|n|n|open registration; *not* restricted to puri.sm efforts; no CAPTCHA (confirmed March 2021)| [source.small-tech.org](https://source.small-tech.org)|🔴|Gitlab (CE)|n|n|n|n|| [sr.ht](https://sr.ht)|🟢|Sourcehut|n|n|n|n|javascript-free| -[yerbamate.dev](https://yerbamate.dev)|💀|other|n|n|n|n|**dead site**| +[yerbamate.dev](https://yerbamate.dev)|💀|Gitea|n|n|n|n|**dead site**| ## Blacklist @@ -31,7 +33,9 @@ These forges have severe ethical or trust issues and should be boycotted: | *forge* | *registration publicly open* | *software* | *Tor-hostile* | *sensitive info exposed to CloudFlare* | *forced re/hCAPTCHA* | *forced execution of non-free software* | *notes* | |---|---|---|---|---|---|---|---| -git.feneas.org|🟢|Gitlab (CE)|n|n|⚒|☣|reCAPTCHA impedes registration| -git.openprivacy.ca|⛔ (exclusive walled garden)|other|👁|n|n|n|Tor users get 404 - suspected botnet; [listed](https://codeberg.org/crimeflare/cloudflare-tor/src/branch/master/cloudflare_users/cloudflare_supporter.txt) as a Cloudflare supporter| -gitlab.com|⛔ (exclusive walled garden)|Gitlab (EE)|n|🌩|⚒|☣|flagship instance running the *Enterprise Edition*; uses hCAPTCHA; heavily restricted with discriminatory policies| +bitbucket.org|🟢|Bitbucket Server|n|n|n|☣|**Amazon AWS-hosted**; needs non-free javascript that [clusterfucks uMatrix](https://github.com/privacytoolsIO/privacytools.io/issues/843#issuecomment-483830547); has some relationship with Netlify; access to source code [restricted](https://en.wikipedia.org/wiki/Bitbucket#Bitbucket_Server)| +git.feneas.org|🟢|Gitlab (CE)|n|n|⚒|☣|reCAPTCHA impedes registration and imposes non-free s/w| +git.openprivacy.ca|⛔ (exclusive walled garden)|other/unknown|👁|n|n|n|Tor users get 404 - suspected botnet; [listed](https://codeberg.org/crimeflare/cloudflare-tor/src/branch/master/cloudflare_users/cloudflare_supporter.txt) as a Cloudflare supporter| +gitlab.com|⛔ (exclusive walled garden)|Gitlab (EE)|n|🌩|⚒|☣|flagship instance running the *Enterprise Edition*; uses both hCAPTCHA & reCAPTCHA; heavily restricted with discriminatory policies| +libregit.org|⛔ (exclusive walled garden)|Gitea|n|🌩|n|n|reg by invite only| diff --git a/input_data/forges.sql b/input_data/forges.sql index 67a1e68..cef41df 100644 --- a/input_data/forges.sql +++ b/input_data/forges.sql @@ -1,36 +1,43 @@ -create table if not exists forgesTbl (url_clrnet text, - url_onion text, - software text check(software in ('Gitea', 'gitlab_ce', 'gitlab_ee', 'Gogs', 'Sourcehut', 'other')) not null default 'other', - lst_kind text check(lst_kind in ('black', 'gray', 'white')) not null default 'white', - hrecaptcha text check(hrecaptcha in ('unavoidable', 'non-essential tasks', 'never')) not null default 'never', - dead boolean not null default 0, - openpubreg boolean not null default 1, - cflogin boolean not null default 0, - antitor boolean not null default 0, - forced_nfsw boolean not null default 0, - aws boolean not null default 0, - notes text, - primary key (url_clrnet,url_onion)); +create table if not exists forgesTbl + (url_clrnet text, + url_onion text, + software text check(software in ('Bitbucket Server', 'Gitea', 'gitlab_ce', 'gitlab_ee', 'Gogs', 'Launchpad', 'Sourcehut', 'other')) not null default 'other', + lst_kind text check(lst_kind in ('black', 'gray', 'white')) not null default 'white', + hrecaptcha text check(hrecaptcha in ('unavoidable', 'non-essential tasks', 'never')) not null default 'never', + dead boolean not null default 0, + openpubreg boolean not null default 1, + cflogin boolean not null default 0, + antitor boolean not null default 0, + forced_nfsw boolean not null default 0, + aws boolean not null default 0, + notes text, + primary key (url_clrnet,url_onion)); -insert into forgesTbl (url_clrnet, dead) values ('https://yerbamate.dev',1); +insert into forgesTbl (url_clrnet, software, forced_nfsw, aws, notes) values ('https://bitbucket.org','Bitbucket Server',1,1,'needs non-free javascript that [clusterfucks uMatrix](https://github.com/privacytoolsIO/privacytools.io/issues/843#issuecomment-483830547); has some relationship with Netlify; access to source code [restricted](https://en.wikipedia.org/wiki/Bitbucket#Bitbucket_Server)'); + +insert into forgesTbl (url_clrnet, url_onion, software, notes) values ('https://notabug.org','http://qs3zumwfci4tntnd.onion','Gogs','based on [liberated](https://notabug.org/hp/gogs) fork of Gogs; [supports Tor](https://notabug.org/tor) (the *onion* web UI is currently disabled in response to attack but the onion site accepts git connections); supports SSH keys and SSH over Tor to NAB''s onion service; no e-voting; NAB doesn''t associate PGP keys to users, so PGP signed commits may be unavailable or more manual work needed.'); + +insert into forgesTbl (url_clrnet, software) values ('https://launchpad.net','Launchpad'); +insert into forgesTbl (url_clrnet, software, dead) values ('https://yerbamate.dev','Gitea',1); insert into forgesTbl (url_clrnet, antitor, notes) values ('https://git.openprivacy.ca',1,'Tor users get 404 - suspected botnet; [listed](https://codeberg.org/crimeflare/cloudflare-tor/src/branch/master/cloudflare_users/cloudflare_supporter.txt) as a Cloudflare supporter'); insert into forgesTbl (url_clrnet, software, notes) values ('https://sr.ht','Sourcehut', 'javascript-free'); insert into forgesTbl (url_onion, dead) values ('http://githidep2hynhdmutuv7n2tei4iie2c7lyqz5fes3r5zzoxe5dshtxyd.onion', 1); /* Gitea */ +insert into forgesTbl (url_clrnet, software, notes) values ('https://codeberg.org','Gitea', 'functions without any JavaScript and the JavaScript that exists is all 1st-party ([ref](https://github.com/privacytoolsIO/privacytools.io/issues/843#issuecomment-483830547))'); insert into forgesTbl (url_clrnet, software, openpubreg, notes) values ('https://git.nixnet.services','Gitea', 0, 'used to be git.nixnet.xyz'); insert into forgesTbl (url_clrnet, software, openpubreg) values ('https://git.teknik.io','Gitea',0); insert into forgesTbl (url_clrnet, url_onion, software, notes) values ('https://git.fuwafuwa.moe','http://git.fuwafuwaqtlkkxwc.onion','Gitea','SSH over Tor broken; HTTPS over Tor works'); insert into forgesTbl (url_clrnet, software, notes) values ('https://git.slashdev.space','Gitea','SSH over Tor broken (try HTTPS over Tor)'); -insert into forgesTbl (url_clrnet, software, openpubreg, notes) values ('https://libregit.org','Gitea',0,'reg by invite only'); -insert into forgesTbl (url_clrnet, software, notes) values ('https://git.sdf.org','Gitea','SSH over Tor broken (try HTTPS over Tor)'); +insert into forgesTbl (url_clrnet, software, openpubreg, cflogin, notes) values ('https://libregit.org','Gitea',0,1,'reg by invite only'); +insert into forgesTbl (url_clrnet, software, notes) values ('https://git.sdf.org','Gitea','SSH over Tor broken but HTTPS over Tor works'); /* Gitlab */ insert into forgesTbl (url_clrnet, software) values ('https://framagit.org','gitlab_ce'); -insert into forgesTbl (url_clrnet, software, hrecaptcha, notes) values ('https://git.feneas.org','gitlab_ce','unavoidable','reCAPTCHA impedes registration'); +insert into forgesTbl (url_clrnet, software, hrecaptcha, notes) values ('https://git.feneas.org','gitlab_ce','unavoidable','reCAPTCHA impedes registration and imposes non-free s/w'); insert into forgesTbl (url_clrnet, software, notes) values ('https://git.hardenedbsd.org','gitlab_ce','possibly restricted to BSD efforts'); insert into forgesTbl (url_clrnet, software, notes) values ('https://git.jami.net','gitlab_ce','possibly restricted to Jami efforts'); -insert into forgesTbl (url_clrnet, software, cflogin, hrecaptcha, notes) values ('https://gitlab.com','gitlab_ee',1,'unavoidable','flagship instance running the *Enterprise Edition*; uses hCAPTCHA; heavily restricted with discriminatory policies'); +insert into forgesTbl (url_clrnet, software, cflogin, hrecaptcha, notes) values ('https://gitlab.com','gitlab_ee',1,'unavoidable','flagship instance running the *Enterprise Edition*; uses both hCAPTCHA & reCAPTCHA; heavily restricted with discriminatory policies'); insert into forgesTbl (url_clrnet, software, notes) values ('https://gitlab.freedesktop.org','gitlab_ce','possibly restricted to Freedesktop efforts'); insert into forgesTbl (url_clrnet, software, notes) values ('https://gitlab.gnome.org','gitlab_ce','possibly restricted to Gnome efforts'); insert into forgesTbl (url_clrnet, software, hrecaptcha, notes) values ('https://gitlab.torproject.org','gitlab_ce','non-essential tasks','open registration; repo creation possibly restricted; Google reCAPTCHA is [allegedley](https://lists.gnu.org/archive/html/repo-criteria-discuss/2021-03/msg00000.html) used, but [not at registration time](https://gitlab.onionize.space)'); diff --git a/tools/gen_forge_table.sh b/tools/gen_forge_table.sh index 8216c3a..86a7928 100755 --- a/tools/gen_forge_table.sh +++ b/tools/gen_forge_table.sh @@ -126,7 +126,7 @@ $(intro $lst)"' ' sqlite3 "${db_file}" "select $name_clause||case when url_onion is null then '' else '([${sym[onion]}]('||url_onion||'))' end, case when dead then '${sym[skull]}' when cflogin or antitor then '${sym[noentry]} (exclusive walled garden)' when not openpubreg then '${sym[red_circle]}' else '${sym[green_circle]}' end, - case software when 'gitlab_ce' then 'Gitlab (CE)' when 'gitlab_ee' then 'Gitlab (EE)' else software end, + case software when 'gitlab_ce' then 'Gitlab (CE)' when 'gitlab_ee' then 'Gitlab (EE)' when 'other' then 'other/unknown' else software end, case when antitor then '${sym[eye]}' else 'n' end, case when cflogin then '${sym[cloud_lightening]}' else 'n' end, case when hrecaptcha = 'unavoidable' then '${sym[hammerpick]}' else 'n' end,