Group: Guix/Wishlist

From LibrePlanet
Jump to: navigation, search
(Linphone is now part of guix so I am removing it from this list.)
m
 
(212 intermediate revisions by 25 users not shown)
Line 5: Line 5:
 
to its name or increment the vote count, e.g. "(+1)" -> "(+2)", etc.
 
to its name or increment the vote count, e.g. "(+1)" -> "(+2)", etc.
  
Reminder: Please only add ''Free Software'' here.
+
So Before adding a package to this list, please verify that it hasn't
 +
[https://guix.gnu.org/packages/ already been packaged].
 +
 
 +
In addition, Guix is a distribution that follows the [https://www.gnu.org/distros/free-system-distribution-guidelines.html Free System Distribution Guidelines (GNU FSDG)] and as such not only it only has free software but these guidelines also have additional requirements (like for instance not steering users toward the installation of nonfree software, no Malware, etc).
 +
 
 +
So it would be a really good idea to point if the package is already packaged by either a [https://www.gnu.org/distros/free-distros.html Free GNU/Linux Distribution] or a [https://www.gnu.org/distros/free-non-gnu-distros.html Free Non-GNU Distribution], or at least try to see if that software is fully free software and doesn't have any nonfree dependencies (like nonfree firmwares, libraries, other nonfree packages and so on) or if not indicate if it wasn't checked in order to prevent accidental inclusion of nonfree software in Guix (that could happen for instance if each party assumes that the other people checked while no one checked).
  
Before adding a package to this list, please verify that it hasn't
+
Parabola also has a [https://git.parabola.nu/blacklist.git/ blacklist repository] which contains list of nonfree software found in Arch that Parabola blacklisted and sometimes replaced. It also contains perfectly fine software which is blacklisted for other purposes, like renaming "Arch Linux" in "Parabola" in some packages, but the reason of the blacklist is specified.
[https://guix.gnu.org/packages/ already been packaged].
 
  
 
This page should be synced with [https://directory.fsf.org/wiki/Collection:GNU/Linux Free software replacements] recommended by the FSF.
 
This page should be synced with [https://directory.fsf.org/wiki/Collection:GNU/Linux Free software replacements] recommended by the FSF.
  
 
__TOC__
 
__TOC__
 +
 +
== Packages ==
  
 
=== Communication ===
 
=== Communication ===
  
 
==== Mail ====
 
==== Mail ====
* [https://abook.sourceforge.io/ abook]
+
* [https://aerc-mail.org/ aerc] (+1)
* [https://aerc-mail.org/ aerc]
+
* [https://directory.fsf.org/wiki/Courier Courier MTA with SQWebMail] (+1)
* [https://directory.fsf.org/wiki/Courier Courier MTA with SQWebMail]
+
* [https://www.nongnu.org/nmh/ nmh]
* [https://directory.fsf.org/wiki/Postfix Postfix] (+3)
+
* [https://directory.fsf.org/wiki/Postfix Postfix] (+4)
 +
* [https://repo.or.cz/s-mailx.git S-nail/S-mailx]
 
* [https://directory.fsf.org/wiki/Usermin Usermin]
 
* [https://directory.fsf.org/wiki/Usermin Usermin]
  
Line 26: Line 33:
 
* [https://directory.fsf.org/wiki/Ekiga Ekiga] (+3)
 
* [https://directory.fsf.org/wiki/Ekiga Ekiga] (+3)
 
* [https://directory.fsf.org/wiki/Empathy Empathy] (+3)
 
* [https://directory.fsf.org/wiki/Empathy Empathy] (+3)
* [https://directory.fsf.org/wiki/Collection:GNU/Linux Jitsi Desktop] (+3)
+
* [https://directory.fsf.org/wiki/Collection:GNU/Linux Jitsi Desktop] (+4)
 +
* [https://invent.kde.org/network/kaidan Kaidan]
 
* [https://directory.fsf.org/wiki/Collection:GNU/Linux KDE Telepathy]
 
* [https://directory.fsf.org/wiki/Collection:GNU/Linux KDE Telepathy]
* [https://github.com/wireapp/wire-desktop wire-desktop]
+
* [https://github.com/signalapp/Signal-Desktop Signal Desktop] (+3)
* [https://github.com/signalapp/Signal-Desktop Signal Desktop]
 
  
 
==== Instant messaging client ====
 
==== Instant messaging client ====
 +
* [https://code.briarproject.org/briar/briar-gtk briar-gtk]
 
* [https://directory.fsf.org/wiki/Cryptocat Cryptocat]
 
* [https://directory.fsf.org/wiki/Cryptocat Cryptocat]
* [https://directory.fsf.org/wiki/Psi Psi] (+1)
+
* [https://github.com/deltachat/deltachat-desktop Delta Chat]
 
* [https://directory.fsf.org/wiki/Ricochet Ricochet] (+3)
 
* [https://directory.fsf.org/wiki/Ricochet Ricochet] (+3)
* [https://directory.fsf.org/wiki/Telegram Telegram-Desktop] (+1)
+
* [https://github.com/isamert/scli Scli] (+1)
 +
* [https://github.com/thelounge/thelounge The Lounge]
 +
* [https://github.com/osa1/tiny Tiny]
 
* [https://chiselapp.com/user/sgolovan/repository/tkabber/index tkabber]
 
* [https://chiselapp.com/user/sgolovan/repository/tkabber/index tkabber]
 
* [https://directory.fsf.org/wiki/Tox Tox (with clients such as Venom, and MuTox)] (+1)
 
* [https://directory.fsf.org/wiki/Tox Tox (with clients such as Venom, and MuTox)] (+1)
Line 41: Line 51:
  
 
==== Social networking ====
 
==== Social networking ====
 +
* [https://getaether.net/ Aether]
 
* [https://directory.fsf.org/wiki/Diaspora Diaspora] (+2)
 
* [https://directory.fsf.org/wiki/Diaspora Diaspora] (+2)
 
* [https://directory.fsf.org/wiki/Social GNU Social] ([https://lists.gnu.org/archive/html/guix-devel/2017-09/msg00328.html WIP]) (+1)
 
* [https://directory.fsf.org/wiki/Social GNU Social] ([https://lists.gnu.org/archive/html/guix-devel/2017-09/msg00328.html WIP]) (+1)
Line 46: Line 57:
 
* [https://pleroma.social/ Pleroma] (requires elixir build-system) (+2)
 
* [https://pleroma.social/ Pleroma] (requires elixir build-system) (+2)
 
* [https://directory.fsf.org/wiki/Pump.io Pump.io] (requires nodejs-build-system) (+1)
 
* [https://directory.fsf.org/wiki/Pump.io Pump.io] (requires nodejs-build-system) (+1)
 +
* [https://github.com/h3poteto/whalebird-desktop Whalebird-desktop]
  
 
==== Matrix ====
 
==== Matrix ====
* [https://element.io/ Element] (+1)
+
* [https://gitlab.gnome.org/GNOME/fractal Fractal]
* [https://directory.fsf.org/wiki/Matrix-synapse Matrix-synapse] (+3)
 
 
* [https://github.com/kamax-matrix/mxisd mxisd] (+1)
 
* [https://github.com/kamax-matrix/mxisd mxisd] (+1)
 
* [https://invent.kde.org/network/neochat NeoChat]
 
* [https://invent.kde.org/network/neochat NeoChat]
* [https://github.com/poljar/weechat-matrix weechat-matrix] (+1)
+
* [https://github.com/poljar/weechat-matrix weechat-matrix] (+2)
  
 
=== Production ===
 
=== Production ===
  
 
==== Editor ====
 
==== Editor ====
* [https://directory.fsf.org/wiki/Arduino arduino IDE] (+2)
+
* [https://directory.fsf.org/wiki/Arduino arduino IDE] (+4)
 +
* [https://github.com/helix-editor/helix Helix]
 
* [https://directory.fsf.org/wiki/Light_Table Light Table]
 
* [https://directory.fsf.org/wiki/Light_Table Light Table]
 +
* [https://github.com/Kethku/neovide Neovide]
 
* [https://github.com/notepadqq/notepadqq notepadqq]
 
* [https://github.com/notepadqq/notepadqq notepadqq]
 
* [https://platformio.org/ PlatformIO]
 
* [https://platformio.org/ PlatformIO]
 
* [https://gitlab.gnome.org/World/Tau/ Tau]
 
* [https://gitlab.gnome.org/World/Tau/ Tau]
* [https://github.com/Microsoft/vscode/ vscode] (+1)
+
* [https://gitlab.gnome.org/chergert/gnome-text-editor Text Editor]
* [https://vscodium.com/ VSCodium]
+
* [http://ex-vi.sourceforge.net Traditional Vi]
 +
* [https://vscodium.com/ VSCodium] (+2)
 +
* [https://github.com/xi-editor/xi-editor xi-editor]
  
 
==== Graphics ====  
 
==== Graphics ====  
 +
* [https://gitlab.gnome.org/World/design/app-icon-preview App Icon Preview]
 +
* [http://digimend.github.io/ DIGImend]
 +
* [https://github.com/maoschanz/dynamic-wallpaper-editor Dynamic Wallpaper Editor]
 +
* [https://gitlab.gnome.org/World/design/icon-library Icon Library]
 +
* [https://gitlab.gnome.org/YaLTeR/identity Identity]
 +
* [https://github.com/ImEditor/ImEditor ImEditor]
 +
* [https://ldtk.io/ LDtk]
 +
* [https://gitlab.gnome.org/World/obfuscate Obfuscate]
 
* [https://github.com/hundredrabbits/ronin Ronin]
 
* [https://github.com/hundredrabbits/ronin Ronin]
* [https://directory.fsf.org/wiki/Sweet_Home_3D Sweet Home 3D] (+1)
+
* [https://directory.fsf.org/wiki/Sweet_Home_3D Sweet Home 3D] (+2)
 
* [https://gitlab.com/lebiniou/lebiniou Le Biniou]
 
* [https://gitlab.com/lebiniou/lebiniou Le Biniou]
 +
* [https://github.com/shutter-project/shutter Shutter]
 +
* [https://github.com/OpenTabletDriver/OpenTabletDriver OpenTabletDriver]
 +
* [https://github.com/opentoonz/opentoonz OpenToonz] *Note: Already available pre-packaged in Parabola GNU/Linux. So the hard work for this one is already done.*
 +
* [https://github.com/NatronGitHub/Natron Natron] *Note: On the github releases page, recommended to use precompiled binaries with patches for qt4 and python2 are provided. That one should be used for GNU Guix.*
  
 
==== Office ====
 
==== Office ====
* [https://www.zotero.org/download/ Zotero Desktop] (+3)
+
* [https://www.zotero.org/download/ Zotero Desktop] (+4)
* [https://koreader.rocks/ KOReader] (+1)
+
* [https://koreader.rocks/ KOReader] (+2)
 +
* [https://github.com/phase1geo/minder/ Minder]
  
 
=== System ===
 
=== System ===
 +
* [https://github.com/costales/gufw Gufw] (+1)
 +
* [https://firewalld.org/ firewalld]
 +
* [https://podman.io/ podman]
 +
* [https://buildah.io/ buildah]
  
 
==== Backup ====
 
==== Backup ====
Line 91: Line 123:
 
* [https://github.com/way-cooler/way-cooler/ way-cooler]
 
* [https://github.com/way-cooler/way-cooler/ way-cooler]
 
* [https://github.com/waymonad/waymonad waymonad]
 
* [https://github.com/waymonad/waymonad waymonad]
 +
* [https://wio-project.org/ wio]
 
* [https://github.com/svenstaro/wmfocus wmfocus]
 
* [https://github.com/svenstaro/wmfocus wmfocus]
  
 
==== Fonts ====
 
==== Fonts ====
* [https://github.com/slavfox/Cozette Cozette]
+
* [https://github.com/aminabedi68/Estedad Estedad]
 +
* [https://github.com/wikkyk/leggie Leggie]
 
* [https://github.com/phallus/fonts Lemon]
 
* [https://github.com/phallus/fonts Lemon]
* [https://juliamono.netlify.app/ JuliaMono]
 
* [https://github.com/RedHatBrand/Overpass Overpass]
 
 
* [http://tobiasjung.name/profont/ ProFont] (+1)
 
* [http://tobiasjung.name/profont/ ProFont] (+1)
 
* [https://proggyfonts.net/ Proggy]
 
* [https://proggyfonts.net/ Proggy]
 
* [https://github.com/NerdyPepper/scientifica Scientifica]
 
* [https://github.com/NerdyPepper/scientifica Scientifica]
 +
* [https://github.com/fcambus/spleen Spleen]
 +
* [https://github.com/curioustorvald/Terrarum-sans-bitmap Terrarum Sans Bitmap]
 
* [https://github.com/Lucy/tewi-font Tewi]
 
* [https://github.com/Lucy/tewi-font Tewi]
 +
* [https://github.com/be5invis/iosevka Iosevka Other Styles ]
 +
-- It would be nice to have the other versions of iosevka.
  
 
==== Hardware ====
 
==== Hardware ====
 +
* [http://bricxcc.sourceforge.net/ bricxcc]
 
* [https://github.com/ckb-next/ckb-next ckb-next]
 
* [https://github.com/ckb-next/ckb-next ckb-next]
 +
* [https://github.com/thinkingbits/dualsensectl dualsensectl]
 
* [https://github.com/linuxhw/hw-probe hw-probe]
 
* [https://github.com/linuxhw/hw-probe hw-probe]
 
* [https://github.com/dreemurrs-embedded/Jumpdrive/ Jumpdrive]
 
* [https://github.com/dreemurrs-embedded/Jumpdrive/ Jumpdrive]
* [https://directory.fsf.org/wiki/Linux-LVM LVM-Support] (+5)
 
 
* [https://github.com/donovan6000/M33-Fio M33-Fio]
 
* [https://github.com/donovan6000/M33-Fio M33-Fio]
* [https://github.com/OctoPrint/OctoPrint OctoPrint] (+2)
+
* [https://github.com/OctoPrint/OctoPrint OctoPrint] ([https://issues.guix.gnu.org/51314 patch]) (+2)
 
* [https://github.com/openrazer/openrazer openrazer]
 
* [https://github.com/openrazer/openrazer openrazer]
 
* [https://gitlab.com/pholy/OSCAR-code OSCAR]
 
* [https://gitlab.com/pholy/OSCAR-code OSCAR]
 +
* [https://git.parabola.nu/abslibre.git/tree/libre/phoronix-test-suite phoronix-test-suite]: Parabola has a (very badly) patched version of phoronix-test-suite. It might be useful to improve the patch (I did it and I'm not good at all in PHP) and contribute it back to Parabola and add phoronix-test-suite to Guix. This software enables to do performance tests. So with it you can know how fast is a Librebooted Thinkpad X200 compared to an RYF Talos II for instance.
 +
* [https://github.com/pok3r-custom/Pok3rConf Pok3rConf]
 +
* [https://github.com/pok3r-custom/pok3rtool pok3rtool]
 
* [https://github.com/qmk/qmk_firmware/ qmk_firmware]
 
* [https://github.com/qmk/qmk_firmware/ qmk_firmware]
* [https://github.com/brektrou/rtl8821CU rtl8821cu]
+
* <s>[https://github.com/brektrou/rtl8821CU rtl8821cu]</s> While the firmware binary has been released under the GPLv2(+?), it lacks corresponding source code. So someone needs to do the work to reconstruct the source code from the binary. See the link in [[Group:Hardware/research/WiFi/Realtek]] for more details.
* [https://github.com/cilynx/rtl88x2bu rtl88x2bu]
+
* <s>[https://github.com/cilynx/rtl88x2bu rtl88x2bu]</s>  While the firmware binary has been released under the GPLv2(+?), it lacks corresponding source code. So someone needs to do the work to reconstruct the source code from the binary. See the link in [[Group:Hardware/research/WiFi/Realtek]] for more details.
 +
* [https://github.com/AlexandreRouma/SDRPlusPlus SDR++]
 
* [https://directory.fsf.org/wiki/Swapspace Swapspace] (+1)
 
* [https://directory.fsf.org/wiki/Swapspace Swapspace] (+1)
 
* [https://github.com/georgewhewell/undervolt/ undervolt]
 
* [https://github.com/georgewhewell/undervolt/ undervolt]
* [http://bricxcc.sourceforge.net/ bricxcc]
+
* [https://github.com/vial-kb/vial-gui Vial]
  
 
==== Input ====
 
==== Input ====
Line 129: Line 170:
 
* [https://github.com/pawamoy/aria2p aria2p]
 
* [https://github.com/pawamoy/aria2p aria2p]
 
* [https://github.com/jamielinux/bashmount bashmount]
 
* [https://github.com/jamielinux/bashmount bashmount]
* [https://github.com/sharkdp/bat bat]
 
 
* [https://github.com/putnam/binmerge binmerge]
 
* [https://github.com/putnam/binmerge binmerge]
* [https://github.com/aristocratos/bpytop bpytop]
 
 
* [https://github.com/CyberShadow/btdu btdu]
 
* [https://github.com/CyberShadow/btdu btdu]
* [https://github.com/jarun/Buku buku]
 
 
* [https://github.com/xgi/castero castero]
 
* [https://github.com/xgi/castero castero]
 
* [https://cbftp.eu/ cbftp]
 
* [https://cbftp.eu/ cbftp]
 
* [https://github.com/otakuto/crazydiskinfo crazydiskinfo]
 
* [https://github.com/otakuto/crazydiskinfo crazydiskinfo]
* [https://github.com/jceb/dex dex]
 
 
* [https://github.com/baskerville/diana diana]
 
* [https://github.com/baskerville/diana diana]
 
* [https://github.com/muesli/duf duf]
 
* [https://github.com/muesli/duf duf]
Line 146: Line 183:
 
* [https://github.com/tanaikech/goodls goodls]
 
* [https://github.com/tanaikech/goodls goodls]
 
* [https://github.com/ciromattia/kcc kcc]
 
* [https://github.com/ciromattia/kcc kcc]
* [https://github.com/gokcehan/lf lf]
 
 
* [https://github.com/hackerb9/lsix lsix]
 
* [https://github.com/hackerb9/lsix lsix]
 +
* [https://github.com/ssut/payload-dumper-go payload-dumper-go]
 
* [https://gitlab.com/postmarketOS/pmbootstrap pmbootstrap]
 
* [https://gitlab.com/postmarketOS/pmbootstrap pmbootstrap]
 +
* [https://github.com/mathaou/termdbms termdbms]
 +
* [https://github.com/RasmusLindroth/tut/ tut]
 
* [https://directory.fsf.org/wiki/Twin Twin]
 
* [https://directory.fsf.org/wiki/Twin Twin]
 
* [https://gitlab.com/corbie/twitch-curses twitch-curses]
 
* [https://gitlab.com/corbie/twitch-curses twitch-curses]
 +
* [https://github.com/Yuubi-san/unaesgcm unaesgcm]
 
* [https://github.com/sigpipe/urlview urlview]
 
* [https://github.com/sigpipe/urlview urlview]
 
* [https://github.com/ReimuNotMoe/ydotool ydotool]
 
* [https://github.com/ReimuNotMoe/ydotool ydotool]
  
 
==== Tools ====
 
==== Tools ====
 +
* [https://github.com/bleachbit/bleachbit Bleachbit]
 +
* Bundlewrap [https://framagit.org/GNUtoo/machines_configs/-/raw/guix/guix.scm/gnu/packages/bundlewrap.scm wip], [https://www.parabola.nu/packages/community/pcr/bundlewrap/ Parabola]
 +
* [https://distcc.github.io/ distcc]
 
* [http://libguestfs.org/ libguestfs]
 
* [http://libguestfs.org/ libguestfs]
 
* [https://github.com/saitoha/libsixel libsixel]
 
* [https://github.com/saitoha/libsixel libsixel]
 +
* mat2 (+1): [https://framagit.org/GNUtoo/machines_configs/-/raw/guix/guix.scm/gnu/packages/mat2.scm wip], [https://www.parabola.nu/packages/community/x86_64/mat2/ Parabola], most probably fully free without nonfree dependencies and FSDG compliant. Some work might still be needed to make sure test passes as we probably want to avoid bugs in software that people might rely on to stay alive.
 +
* [https://pijul.org/ Pijul] Old version available in a community channel [https://github.com/Hellseher/guix-channel-1/blob/master/pijul.scm pijul.scm]
 +
* [https://gitlab.com/bgermann/unrar-free unrar-free]
 
* [https://www.ventoy.net/en/index.html Ventoy]
 
* [https://www.ventoy.net/en/index.html Ventoy]
  
 
==== Wayland ====
 
==== Wayland ====
 
* [https://github.com/yory8/clipman clipman]
 
* [https://github.com/yory8/clipman clipman]
* [https://github.com/nyyManni/dmenu-wayland dmenu-wayland]
+
* [https://github.com/nyyManni/dmenu-wayland dmenu-wayland] (+1)
 
* [https://github.com/giucam/termistor termistor]
 
* [https://github.com/giucam/termistor termistor]
* [https://github.com/brunelli/wl-clipboard-x11 wl-clipboard-x11]
+
* [https://github.com/brunelli/wl-clipboard-x11 wl-clipboard-x11] (+1)
* [https://hg.sr.ht/~scoopta/wlrobs wlrobs]
 
 
* [https://git.sr.ht/~sircmpwn/wshowkeys wshowkeys]
 
* [https://git.sr.ht/~sircmpwn/wshowkeys wshowkeys]
  
 
==== X11 ====
 
==== X11 ====
 
* [https://github.com/horst3180/arc-firefox-theme arc-firefox-theme]
 
* [https://github.com/horst3180/arc-firefox-theme arc-firefox-theme]
 +
* [https://github.com/salman-abedin/devour Devour]
 
* [https://sourceforge.net/projects/digitalclock4/ Digital Clock 4]
 
* [https://sourceforge.net/projects/digitalclock4/ Digital Clock 4]
 
* [http://gambas.sourceforge.net/en/main.html Gambas]
 
* [http://gambas.sourceforge.net/en/main.html Gambas]
* [https://github.com/erebe/greenclip Greenclip]
+
* [https://github.com/Bionus/imgbrd-grabber imgbrd-grabber]
 
* [https://github.com/tsujan/Kvantum/tree/master/Kvantum Kvantum] (+1)
 
* [https://github.com/tsujan/Kvantum/tree/master/Kvantum Kvantum] (+1)
 +
* [https://github.com/marcusbritanicus/NewBreeze NewBreeze]
 
* [https://github.com/fernandotcl/pa-applet PulseAudio-Applet]
 
* [https://github.com/fernandotcl/pa-applet PulseAudio-Applet]
* [https://sourceforge.net/p/qt5ct/code/HEAD/tree/trunk/qt5ct/ qt5ct]
+
* [https://github.com/FedoraQt/QGnomePlatform QGnomePlatform]
 +
* [https://github.com/qt/qtstyleplugins qtstyleplugins]
 
* [https://github.com/kozec/sc-controller sc-controller]
 
* [https://github.com/kozec/sc-controller sc-controller]
 
* [https://github.com/z411/trackma Trackma]
 
* [https://github.com/z411/trackma Trackma]
* [https://github.com/slacka/WoeUSB WoeUSB]
 
 
* [https://wiki.x2go.org/doku.php X2Go]
 
* [https://wiki.x2go.org/doku.php X2Go]
  
 
=== Programming ===
 
=== Programming ===
* [https://github.com/facebook/folly folly]
+
* [https://deno.land/ Deno]
 
* [https://sourceforge.net/p/libdwarf/code/ci/master/tree/ libdwarf]
 
* [https://sourceforge.net/p/libdwarf/code/ci/master/tree/ libdwarf]
  
Line 190: Line 237:
 
==== Programming languages ====
 
==== Programming languages ====
 
* [https://www.gnu.org/software/sather/ GNU Sather]
 
* [https://www.gnu.org/software/sather/ GNU Sather]
 +
* [https://github.com/makuto/cakelisp/ Cakelisp]
 
* [https://crystal-lang.org Crystal]
 
* [https://crystal-lang.org Crystal]
 
* [https://github.com/bakpakin/Fennel Fennel]
 
* [https://github.com/bakpakin/Fennel Fennel]
* [https://gcc.gnu.org/onlinedocs/gcc-9.2.0/gcc/Standards.html#D-language GCC's D front-end]
 
 
* [https://isabelle.in.tum.de isabelle] (+1)
 
* [https://isabelle.in.tum.de isabelle] (+1)
 
* [https://directory.fsf.org/wiki/Klisp klisp]
 
* [https://directory.fsf.org/wiki/Klisp klisp]
 
* [https://directory.fsf.org/wiki/Scala Scala]
 
* [https://directory.fsf.org/wiki/Scala Scala]
* [https://ziglang.org zig]
+
* [https://github.com/AlbanBedel/scummc ScummC]
 +
 
 +
===== Ada =====
 +
* [https://www.gnu.org/software/gnat/ GNU Ada] (+1)
 +
* [https://github.com/AdaCore/gps GNAT Studio]
 +
* [https://github.com/AdaCore/gprbuild GPRbuild]
 +
* [https://github.com/AdaCore/spark2014 SPARK2014]
  
 
===== Clojure =====
 
===== Clojure =====
* [https://leiningen.org/ Leiningen]
+
* [https://leiningen.org/ Leiningen] (+1)
 +
* [https://babashka.org/ babashka]
 +
 
 +
===== Common Lisp =====
 +
* [https://cmucl.org CMUCL]
 +
* [https://github.com/roswell/roswell Roswell]
 +
* [https://www.quicklisp.org Quicklisp]
 +
 
 +
===== Eiffel =====
 +
* [https://savannah.gnu.org/projects/liberty-eiffel/ GNU Eiffel Compiler]
 +
* [https://github.com/EiffelSoftware/EiffelStudio Eiffel Studio]
  
 
===== Emacs =====
 
===== Emacs =====
Line 205: Line 268:
 
* [https://github.com/NicolasPetton/Indium indium]
 
* [https://github.com/NicolasPetton/Indium indium]
 
* [https://github.com/NicolasPetton/xref-js2 xref-js2]
 
* [https://github.com/NicolasPetton/xref-js2 xref-js2]
 +
 +
===== Erlang =====
 +
* [https://github.com/erlang/rebar3 rebar3]
  
 
===== Guile =====
 
===== Guile =====
  
 
===== Haskell =====
 
===== Haskell =====
*[https://www.haskellstack.org/ stack] (build tool)
+
* [https://www.haskellstack.org/ stack] (build tool)
  
 
===== Java =====
 
===== Java =====
Line 219: Line 285:
  
 
===== Python =====
 
===== Python =====
 +
* [https://buildbot.net Buildbot]
 
* [https://github.com/hydrusnetwork/hydrus hydrus]
 
* [https://github.com/hydrusnetwork/hydrus hydrus]
 
* [https://directory.fsf.org/wiki/PyPump PyPump]
 
* [https://directory.fsf.org/wiki/PyPump PyPump]
 +
* [https://trimage.org/ Trimage]
  
===== Ruby =====
+
===== Scheme =====
* [https://directory.fsf.org/wiki/Rails Rails] (many dependencies)
+
* [https://github.com/justinethier/cyclone Cyclone Scheme]
 +
* [http://www.larcenists.org Larceny]
  
===== Eiffel =====
+
===== Standard ML =====
* [https://savannah.gnu.org/projects/liberty-eiffel/ GNU Eiffel Compiler]
+
* [https://github.com/MLton/mlton MLton] ([https://issues.guix.gnu.org/38605 WIP])
* [https://github.com/EiffelSoftware/EiffelStudio Eiffel Studio]
 
  
===== Ada =====
+
=== Misc ===
* [https://www.gnu.org/software/gnat/ GNU Ada]
+
* [https://github.com/tristanheaven/gtkhash Gtkhash]
* [https://github.com/AdaCore/gps GNAT Studio]
+
* [https://github.com/FiloSottile/age Age]
* [https://github.com/AdaCore/gprbuild GPRbuild]
+
* [https://github.com/str4d/rage Rage] (+1)
* [https://github.com/AdaCore/spark2014 SPARK2014]
+
* [https://github.com/bleachbit/bleachbit Bleachbit]
 +
* [https://github.com/gephi/gephi Gephi]
 +
* [https://gitlab.gnome.org/Cogitri/Health Health]
 +
* [https://github.com/SeaDve/Kooha Kooha]
 +
* [https://gitlab.com/rmnvgr/metadata-cleaner Metadata Cleaner]
 +
* [https://gitlab.gnome.org/gnumdk/passbook Passbook]
 +
* [https://github.com/trustcrypto/OnlyKey-App OnlyKey App]
 +
* [https://github.com/cbrnix/Newaita Newaita Icons]
 +
* [https://github.com/sargon/trayer-srg Trayer]
  
=== Misc ===
 
  
 
==== Emulation ====
 
==== Emulation ====
 +
* [https://github.com/bottlesdevs/Bottles Bottles]
 
* [https://code.google.com/archive/p/fbterm/ Fbterm]
 
* [https://code.google.com/archive/p/fbterm/ Fbterm]
* [https://directory.fsf.org/wiki/PCSX-Reloaded PCSX-Reloaded]
+
* [https://github.com/PCSX2/pcsx2 PCSX2] (+1)
* [https://github.com/PCSX2/pcsx2 PCSX2]
 
 
* [https://rpcs3.net/ RPCS3]
 
* [https://rpcs3.net/ RPCS3]
  
 
==== Live USB ====
 
==== Live USB ====
* [https://github.com/slacka/WoeUSB WoeUSB]
+
* [https://github.com/WoeUSB/WoeUSB WoeUSB]
  
 
==== Audio ====
 
==== Audio ====
 +
* [https://github.com/diamondburned/aqours aqours]
 +
* [https://kcat.tomasu.net/alure.html ALURE]
 
* [https://github.com/falkTX/Cadence Cadence]
 
* [https://github.com/falkTX/Cadence Cadence]
 
* [https://directory.fsf.org/wiki/Mixxx Mixxx] (+1)
 
* [https://directory.fsf.org/wiki/Mixxx Mixxx] (+1)
 
* [https://github.com/MycroftAI MycroftAI]
 
* [https://github.com/MycroftAI MycroftAI]
 
* [https://github.com/fulhax/ncpamixer ncpamixer]
 
* [https://github.com/fulhax/ncpamixer ncpamixer]
* [https://github.com/strawberrymusicplayer/strawberry Strawberry]
+
* [https://gitlab.gnome.org/GNOME/gnome-sound-recorder Sound Recorder]
 +
* [https://github.com/stargateaudio/stargate Stargate]
 
* [https://github.com/boysetsfrog/vimpc vimpc]
 
* [https://github.com/boysetsfrog/vimpc vimpc]
 
* [https://github.com/whipper-team/whipper whipper]
 
* [https://github.com/whipper-team/whipper whipper]
 +
* [https://github.com/ralph-irving/squeezelite squeezelite]
  
 
==== Music ====
 
==== Music ====
 
* [https://www.npmjs.com/package/abc2svg abc2svg]
 
* [https://www.npmjs.com/package/abc2svg abc2svg]
 
* [https://github.com/leesavide/abcm2ps abcm2ps]
 
* [https://github.com/leesavide/abcm2ps abcm2ps]
* [https://ccrma.stanford.edu/software/cmn/ cmn]
 
 
* [https://github.com/grame-cncm/guidolib guidolib]
 
* [https://github.com/grame-cncm/guidolib guidolib]
 
* [https://github.com/mdedwards/slippery-chicken slippery-chicken]
 
* [https://github.com/mdedwards/slippery-chicken slippery-chicken]
 +
* [https://github.com/marin-m/SongRec SongRec]
 +
* [https://github.com/sonic-pi-net/sonic-pi Sonic Pi]
  
 
==== Video ====
 
==== Video ====
 +
* [https://github.com/Rafostar/clapper Clapper]
 
* [https://github.com/lbryio/lbry-desktop LBRY]
 
* [https://github.com/lbryio/lbry-desktop LBRY]
 
* [https://github.com/mifi/lossless-cut LosslessCut]
 
* [https://github.com/mifi/lossless-cut LosslessCut]
 
* [https://directory.fsf.org/wiki/MythTV MythTV]
 
* [https://directory.fsf.org/wiki/MythTV MythTV]
* [https://directory.fsf.org/wiki/Pitivi Pitivi] (+1)
+
* [https://github.com/trizen/pipe-viewer pipe-viewer]
 +
* [https://gitlab.shinice.net/artectrex/Cuttlefish Cuttlefish]
 +
* [https://gitlab.gnome.org/YaLTeR/video-trimmer Video Trimmer]
 +
* [https://github.com/FreeTubeApp/FreeTube FreeTube] (+1)
  
 
==== Education ====
 
==== Education ====
 
* [https://directory.fsf.org/wiki/Dr._geo Dr. Geo]
 
* [https://directory.fsf.org/wiki/Dr._geo Dr. Geo]
 
* [https://directory.fsf.org/wiki/Glean Glean]
 
* [https://directory.fsf.org/wiki/Glean Glean]
 +
* [http://spimsimulator.sourceforge.net SPIM MIPS Simulator]
  
 
==== Feed Readers ====
 
==== Feed Readers ====
 
+
* [https://gitlab.com/news-flash/news_flash_gtk NewsFlash] (+1)
* [https://gitlab.com/news-flash/news_flash_gtk NewsFlash]
 
  
 
==== Games ====  
 
==== Games ====  
Line 280: Line 364:
 
* [https://github.com/exch-bms2/beatoraja beatoraja]
 
* [https://github.com/exch-bms2/beatoraja beatoraja]
 
* Bouncy Bunny
 
* Bouncy Bunny
* [https://directory.fsf.org/wiki/BZFlag BZFlag] (+1)
+
* [https://github.com/cataclysmbnteam/Cataclysm-BN Cataclysm: Bright Nights]
 +
* [https://github.com/cemu-project/Cemu Cemu]
 
* [https://directory.fsf.org/wiki/Cube2 Cube 2: Sauerbraten]
 
* [https://directory.fsf.org/wiki/Cube2 Cube 2: Sauerbraten]
 +
* [https://http://www.deliantra.net/ Deliantra] (server + client require special version of perl.)
 +
* [https://github.com/EasyRPG/Editor EasyRPG-Editor] (Would require an update to liblcf and prompt an update to easyrpg-player.)
 
* [https://github.com/elonafoobar/elonafoobar Elona foobar]
 
* [https://github.com/elonafoobar/elonafoobar Elona foobar]
 
* [https://directory.fsf.org/wiki/FreeCol FreeCol]
 
* [https://directory.fsf.org/wiki/FreeCol FreeCol]
 
* [https://sourceforge.net/projects/freecs-1-5/ FreeCS]
 
* [https://sourceforge.net/projects/freecs-1-5/ FreeCS]
* [https://github.com/Anuken/Mindustry Mindustry] (requires a gradle-build-system because the build needs a plugin that at least depends on gradle) (+2)
+
* [https://github.com/SpaceManiac/HamSandwich HamSandwich]
 +
* [https://github.com/itchio/itch itch-client] (+1)
 +
* [https://github.com/Attnam/ivan IVAN]
 +
* [http://games.moria.org.uk/kye/ Kye]
 +
* [https://git.gieszer.link/unfa/liblast Liblast]
 +
* [https://github.com/Anuken/Mindustry Mindustry] (requires a gradle-build-system because the build needs a plugin that at least depends on gradle) (+3)
 
* [https://directory.fsf.org/wiki/Oolite Oolite]
 
* [https://directory.fsf.org/wiki/Oolite Oolite]
 
* [https://directory.fsf.org/wiki/OpenArena OpenArena]
 
* [https://directory.fsf.org/wiki/OpenArena OpenArena]
 
* [https://github.com/Ruin0x11/OpenNefia OpenNefia]
 
* [https://github.com/Ruin0x11/OpenNefia OpenNefia]
* [https://orsc.dev/open-rsc/Game Open RSC]
+
* [https://gitlab.com/open-runescape-classic Open RuneScape Classic]
* [https://github.com/ppy/osu osu!]
+
* [https://openspades.yvt.jp/ OpenSpades]
 +
* [https://github.com/itdelatrisu/opsu opsu!]
 +
* [https://github.com/ppy/osu osu!] (+1)
 +
* [https://github.com/performous/performous Performous]
 +
* [https://github.com/Quaver/Quaver Quaver]
 
* [https://github.com/RigsOfRods/rigs-of-rods Rigs of Rods]
 
* [https://github.com/RigsOfRods/rigs-of-rods Rigs of Rods]
 +
* [https://github.com/Ryujinx/Ryujinx Ryujinx]
 
* [https://github.com/space-wizards/RobustToolbox Robust Toolbox]
 
* [https://github.com/space-wizards/RobustToolbox Robust Toolbox]
* [https://ryzom.com/ Ryzom]
+
* [https://ryzom.com/ Ryzom] (+1)
 
* [http://gogs.shuvit.org:3000/Shuvit-Org/shuvit Shuvit]
 
* [http://gogs.shuvit.org:3000/Shuvit-Org/shuvit Shuvit]
 
* [http://www.amirrorclear.net/flowers/game/sil Sil] ([https://hidamari.blue/git/packages/html/sil.scm.html WIP] needs patches to handle readonly installpath) (+1)
 
* [http://www.amirrorclear.net/flowers/game/sil Sil] ([https://hidamari.blue/git/packages/html/sil.scm.html WIP] needs patches to handle readonly installpath) (+1)
Line 305: Line 402:
 
* [https://www.thedarkmod.com/main/ The Dark Mod] (+1)
 
* [https://www.thedarkmod.com/main/ The Dark Mod] (+1)
 
* [https://tivolicloud.com/ Tivoli Cloud VR]
 
* [https://tivolicloud.com/ Tivoli Cloud VR]
* [https://directory.fsf.org/wiki/Trigger_Rally Trigger Rally] (+2)
+
* [https://github.com/Tuxemon/Tuxemon Tuxemon]
 
* [https://github.com/Duion/Uebergame Uebergame]
 
* [https://github.com/Duion/Uebergame Uebergame]
 
* [https://directory.fsf.org/wiki/VDrift VDrift]
 
* [https://directory.fsf.org/wiki/VDrift VDrift]
 
* [https://gitlab.com/veloren/veloren Veloren]
 
* [https://gitlab.com/veloren/veloren Veloren]
 
* [https://vircadia.com/ Vircadi]
 
* [https://vircadia.com/ Vircadi]
* [https://github.com/vicgeralds/vitetris vitetris]
 
 
* [https://warfork.com/ Warfork]
 
* [https://warfork.com/ Warfork]
 +
* [http://xye.sourceforge.net/ Xye]
 +
* [https://yuzu-emu.org/ yuzu-emu]
  
 
==== Network ====
 
==== Network ====
 
* [https://git.sr.ht/~julienxx/asuka asuka]
 
* [https://git.sr.ht/~julienxx/asuka asuka]
 
* [https://github.com/debauchee/barrier barrier]
 
* [https://github.com/debauchee/barrier barrier]
* [https://sr.ht/~julienxx/Castor/ Castor]
 
* [https://git.deluge-torrent.org/deluge/ Deluge (Latest)]
 
 
* [https://directory.fsf.org/wiki/ELinks ELinks]
 
* [https://directory.fsf.org/wiki/ELinks ELinks]
* [https://www.fail2ban.org/ fail2ban]
+
* [https://www.fail2ban.org/ fail2ban] (+3)
 
* [https://cgit.kde.org/falkon.git Falkon]
 
* [https://cgit.kde.org/falkon.git Falkon]
 
* [https://gitlab.gnome.org/World/Fragments Fragments]
 
* [https://gitlab.gnome.org/World/Fragments Fragments]
 
* [https://directory.fsf.org/wiki/Freenet Freenet] (+1)
 
* [https://directory.fsf.org/wiki/Freenet Freenet] (+1)
 +
* [https://github.com/mrash/fwknop fwknop]
 
* [https://github.com/ethereum/go-ethereum geth]
 
* [https://github.com/ethereum/go-ethereum geth]
* [https://sr.ht/~sircmpwn/gmni/ gmni]
+
* [https://directory.fsf.org/wiki/I2P I2P] (+3)
* [https://directory.fsf.org/wiki/I2P I2P] (+1)
+
* [https://librewolf-community.gitlab.io LibreWolf]
* [https://github.com/MasterQ32/kristall kristall]
+
* [https://guix.gnu.org/en/packages/matterbridge-1.22.2/ matterbridge]: Update it and also package in its dependencies in Guix instead of relying on the Go build system to fetch and build them.
 
* [https://github.com/rapid7/metasploit-framework metasploit-framework]
 
* [https://github.com/rapid7/metasploit-framework metasploit-framework]
 
* [https://github.com/rapid7/metasploit-payloads metasploit-payloads]
 
* [https://github.com/rapid7/metasploit-payloads metasploit-payloads]
 
* [https://github.com/jansc/ncgopher ncgopher]
 
* [https://github.com/jansc/ncgopher ncgopher]
 +
* [https://pi-hole.net/ Pi-hole]
 +
* [https://github.com/graysky2/profile-sync-daemon profile-sync-daemon]
 
* [https://github.com/puppetlabs/puppet Puppet]
 
* [https://github.com/puppetlabs/puppet Puppet]
* [https://gitlab.com/Remmina/Remmina Remmina]
+
* [https://github.com/Qv2ray/Qv2ray Qv2ray]
 +
* [https://github.com/shadowsocks/shadowsocks-rust shadowsocks-rust]
 
* [http://sqlmap.org sqlmap]
 
* [http://sqlmap.org sqlmap]
 
* [https://github.com/rndusr/stig stig]
 
* [https://github.com/rndusr/stig stig]
* [https://directory.fsf.org/wiki/Tor_Browser Tor Browser] (+9)
+
* [https://github.com/Syncplay/syncplay Syncplay]
 
* [https://github.com/transmission-remote-gui/transgui transgui]
 
* [https://github.com/transmission-remote-gui/transgui transgui]
 
* [https://github.com/transmission/transmission/ transmission-qt]
 
* [https://github.com/transmission/transmission/ transmission-qt]
 
* [https://directory.fsf.org/wiki/Tribler Tribler]
 
* [https://directory.fsf.org/wiki/Tribler Tribler]
 
* [https://github.com/urbit/urbit Urbit]
 
* [https://github.com/urbit/urbit Urbit]
 +
* [https://github.com/v2fly/v2ray-core V2Ray]
 +
* [https://sr.ht/~sircmpwn/visurf/ visurf]
 
* [https://github.com/wlach/wvdial Wvdial]
 
* [https://github.com/wlach/wvdial Wvdial]
 +
* [https://github.com/jun7/wyeb wyeb]
 
* [https://github.com/faissaloo/Yukko Yukko]
 
* [https://github.com/faissaloo/Yukko Yukko]
 
* [https://zeronet.io/ ZeroNet]
 
* [https://zeronet.io/ ZeroNet]
 +
* [https://github.com/Jelmerro/Vieb Vieb Browser]
 +
 +
==== Tor Browser ====
 +
* [https://directory.fsf.org/wiki/Tor_Browser Tor Browser] (+11)
 +
 +
The Tor Browser has an issue that makes it incompatible with the Free System Distribution Guidelines (GNU FSDG): it is configured to use Mozilla the addons repository.
 +
 +
Several strategies are possible to get it in Guix and it might be possible to combine some of them together.
 +
 +
The Tor Browser project might find it very interesting to use Guix instead of Ubuntu for building the Tor Browser as Guix goes way beyond reproducible builds: It has extensive work that has been done to make Guix bootstrapable. Most other distributions only care about reproducible builds and so if the compilers binaries had a backdoor, software built with such compilers could then have a reproducible backdoor.
 +
 +
The issue is that the Tor Browser supports several operating systems (GNU/Linux, Android, Microsoft Windows, MacOS) and currently Guix only supports building software for GNU/Linux, GNU/Hurd and Microsoft Windows (this was contributed by someone wanting to build bitcoin with Guix precisely because extensive work has been made to make Guix bootstrapable).
 +
 +
Adding the ability to build applications for Android should probably be doable but I've no clue at all about MacOS.
 +
 +
In addition Guix already supports i686 and x86_64 for both Windows and GNU/Linux, and we might gain the ability to get the Tor browser for armhf, ARM 64bit (aarch64), powerpc, powerpc64le (the architecture used in the Talos II), riscV64.
 +
 +
And finally Guix pack also support several formats, like tarballs and Debian packages, and more can also be added as well. That would enable the tor-browser to be installed as a regular package. That could be handy with Tails for instance as last time I checked it was just a tarball being extracted.
 +
 +
In any case, it would really be a good idea to make the upstream Tor Browser project switch to Guix for their releases as we would avoid having to do any Q/A to verify that our version of the tor-browser looks exactly the same on the networks and that websites can't distinguish Guix users because it has been patched or built differently. And other FSDG distributions with less strict policies on bootstrapability could either build it though Guix or ship the tor-browser installer as it would then only ship software that is FSDG compliant.
 +
 +
We'd also need to make sure that users don't mess up trying versions that are not exactly the same as the released one (that might happens if the dependencies gets updated in Guix for instance). In any case we could then easily package the tor-browser installer in Guix too.
 +
 +
In addition it could push them to fix or accept fixes for the addon repository problem as Guix is probably not going to accept a tor-browser that is not FSDG compliant.
 +
 +
Now with the addon repository, several approaches could be taken:
 +
* It could be removed completely. The Tor Project advise against installing addons anyway as it could de-anonymize users. That's probably the best option here.
 +
* It could be moved to another list, for instance [https://www.gnu.org/software/gnuzilla/addons.html the one maintained the GNU project] or one maintained by the Tor project.
 +
* It could also be fixed at Mozilla but I've no idea how easy it is, especially because we might need to check if the addons are really free software and can be built with free software, etc.
 +
 +
In any case it's probably not super important what option is chosen here as long as it's fixed.
 +
 +
References:
 +
* https://labs.parabola.nu/issues/874
  
 
==== Self-hosting ====
 
==== Self-hosting ====
 
* [https://github.com/ankicommunity/anki-sync-server anki-sync-server] (+1)
 
* [https://github.com/ankicommunity/anki-sync-server anki-sync-server] (+1)
 +
* [https://sr.ht/~migadu/alps/ Alps Webmail]
 
* [https://directory.fsf.org/wiki/EtherCalc EtherCalc] (+1)
 
* [https://directory.fsf.org/wiki/EtherCalc EtherCalc] (+1)
 
* [https://directory.fsf.org/wiki/Etherpad Etherpad] (+1)
 
* [https://directory.fsf.org/wiki/Etherpad Etherpad] (+1)
Line 351: Line 489:
 
* [https://directory.fsf.org/wiki/Gogs Gogs]
 
* [https://directory.fsf.org/wiki/Gogs Gogs]
 
* [https://gohugo.io/ Hugo]
 
* [https://gohugo.io/ Hugo]
 +
* [https://jmp.chat/ JMP.chat], which is related to [https://soprani.ca/  Soprani.ca]
 
* [http://wakaba.c3.cx/s/web/wakaba_kareha Kareha]
 
* [http://wakaba.c3.cx/s/web/wakaba_kareha Kareha]
 +
* [https://matomo.org/ Matomo]
 
* [https://directory.fsf.org/wiki/MediaGoblin Mediagoblin] (+2)
 
* [https://directory.fsf.org/wiki/MediaGoblin Mediagoblin] (+2)
* [https://directory.fsf.org/wiki/Nextcloud Nextcloud] (+3)
+
* [https://directory.fsf.org/wiki/Nextcloud Nextcloud] (+4)
 
* [https://github.com/nextcloud/desktop Nextcloud-Client] (+1)
 
* [https://github.com/nextcloud/desktop Nextcloud-Client] (+1)
* [https://directory.fsf.org/wiki/OwnCloud ownCloud]
 
 
* [https://directory.fsf.org/wiki/Sandstorm Sandstorm]
 
* [https://directory.fsf.org/wiki/Sandstorm Sandstorm]
 
* [https://directory.fsf.org/wiki/Sr.ht sr.ht] (+1)
 
* [https://directory.fsf.org/wiki/Sr.ht sr.ht] (+1)
 
* [http://wakaba.c3.cx/s/web/wakaba_kareha Wakaba]
 
* [http://wakaba.c3.cx/s/web/wakaba_kareha Wakaba]
 +
* [https://wordpress.org WordPress] ([https://issues.guix.gnu.org/35634 patch])
 
* [https://github.com/YOURLS/YOURLS YOURLS]
 
* [https://github.com/YOURLS/YOURLS YOURLS]
  
 
==== Science ====
 
==== Science ====
* [https://directory.fsf.org/wiki/Logisim Logisim]
+
* [https://directory.fsf.org/wiki/Logisim Logisim] (+1)
 +
* [https://github.com/openrocket/openrocket OpenRocket]
 
* [https://directory.fsf.org/wiki/Sage Sage] (+2)
 
* [https://directory.fsf.org/wiki/Sage Sage] (+2)
 
* [https://directory.fsf.org/wiki/Scilab Scilab]
 
* [https://directory.fsf.org/wiki/Scilab Scilab]
 +
* [https://www.cs.waikato.ac.nz/ml/weka/index.html Weka]
 +
* [https://sourceforge.net/projects/xflr5/ XFLR5]
 +
 +
==== Translator ====
 +
* [https://github.com/apertium/apertium-tools apertium-tools]
 +
 +
== Features ==
 +
* Add more cross toolchains for more CPU architectures
 +
** armv4t looks like a good idea as many older ARM boards that boot with free software could then be supported. Debian still officially supports armv4t, so it might be possible to copy their settings and fixes.
 +
** Add an xtensa-elf target as it's probably already supported within packages for building the ath9k_htc firmware
 +
** Find if other firmwares from other architectures are being built
 +
* Add more cross toolchains for more OSes
 +
** It would be a good idea to be able to build binaries for Android, we already have a bit of Android components in Guix but they can only be used on GNU/Linux or other already officially supported toolchains or OS. It would be a good idea to add an Android / bionic target. We'd need to check how much bionic is linked to the kernel version being used on the Android device.
 +
* Add more Guix pack or guix system image formats
 +
** We could add Arch Linux packages to guix pack be able to be used on Parabola.
 +
** We could enable to ship multiple package in one Debian package (currently that works with the tarball format of guix pack but not with Debian packages)
 +
** Add a way to deploy Guix in a directory in a way compatible with LXC
 +
* <s>[https://directory.fsf.org/wiki/Linux-LVM LVM-Support] (+5)</s> Guix now has LVM support but it might not be fully complete. I for instance managed to boot a Guix SD system from an ext4 rootfs that is in a LVM partition that is in a LUKS encrypted partition with [https://flossmanuals.net/pub/guix-system-and-libreboot.pdf this guide] and by following the official documentation.
 +
* Integrate better letsencrypt/certbot. Currently certbot works fine if you already have certificates: it can renew them and so on. But if you use webroot you need the web server to be started for certbot to create or update certificates, but nginx (which is the web server best supported by guixSD API) won't start without the certificates. People deploying services with Guix typically have to do workarounds because of this issue. A solution would be to add a --standalone option for certbot and once the certificate is obtained to trigger the switch to webroot and starting the web server with a hook like it's done when renewing certificates.
 +
* Add a better way to deal with secrets or external files: Currently it's up to users to do the provisioning of secrets like VPN credential files. If they package it somehow they end up being in the store and being a security risk as any users could see them. Having to manually provision such files might work in some cases but it doesn't scale well as to do it right we'd need to make a provionning method that works for all the cases (all the different types of images, etc). A solution would be to add some extra option to guix to also include extra files or tarballs. This way the files would be added for all images types (docker, qcow2 system images, disk images, with guix system init, etc).
 +
* Add generic ways to generate very small rootfs. For instance there is some support for initramfs already. Now that there is ppc64le support, if we can make images that fit into (128M?) of flash and that OpenBMC is packaged in Guix, it could probably completely support RYF computers like the Talos II. If we have a good enough abstraction like a target OS for instance, we could probably add the software we want in initramfs and/or in the BMC and configure them like a regular Guix system from the host computer. There is already support for managing VMs through a ganetti API in guix and there are also childhurds in Guix.
 +
* Cross distributions bootstrap
 +
** Enable to install Parabola and Hyperbola from Guix. Status: [https://framagit.org/GNUtoo/machines_configs/-/raw/guix/guix.scm/gnu/packages/archlinux.scm wip]. I've got some failures with pacstrap on GuixSD because the PATH is not the same than Parabola's path. I don't know where Parabola's PATH comes from though as /etc/environment is empty by default. Note that some packages need to be refreshed to work as Parabola and/or Hyperbola don't keep many older packages and sources. But once all that lands in Guix it shound't be an issue anymore as the source should be made available though software heritage, and guix will fallback to it.
 +
** Package Guix in Parabola. Currently Guix package only worked on x86_64, so I added a guix-installer package to make sure we could still install it in a safe way (where we have some chain of trust with gpg during the installation).
 +
 +
== Documentation ==
 +
[[Documentation Wishlist]]
 +
 +
== Other ==
 +
* There are many bugs and patches on https://issues.guix.gnu.org/, so if you want to help it might be a good idea to try to fix bugs, review patches and so on.
 +
 +
== TODO ==
  
TODO: When libreplanet.org is upgraded to a new version of MediaWiki,  
+
* When libreplanet.org is upgraded to a new version of MediaWiki, use interwiki links to link to the Free Software Directory for descriptions of wishlisted software.
use interwiki links to link to the Free Software Directory for  
 
descriptions of wishlisted software.
 
  
 
{{featured resource|month=February|year=2019}}
 
{{featured resource|month=February|year=2019}}

Latest revision as of 23:49, 6 September 2022

The below list contains software that users of GNU Guix would like to see packaged. If you are interested in contributing to Guix, please consider packaging something in this list while keeping in mind that some may have been listed because they are "difficult" or elusive. If the package you're interested in is already listed, feel free to either add a "(+1)" next to its name or increment the vote count, e.g. "(+1)" -> "(+2)", etc.

So Before adding a package to this list, please verify that it hasn't already been packaged.

In addition, Guix is a distribution that follows the Free System Distribution Guidelines (GNU FSDG) and as such not only it only has free software but these guidelines also have additional requirements (like for instance not steering users toward the installation of nonfree software, no Malware, etc).

So it would be a really good idea to point if the package is already packaged by either a Free GNU/Linux Distribution or a Free Non-GNU Distribution, or at least try to see if that software is fully free software and doesn't have any nonfree dependencies (like nonfree firmwares, libraries, other nonfree packages and so on) or if not indicate if it wasn't checked in order to prevent accidental inclusion of nonfree software in Guix (that could happen for instance if each party assumes that the other people checked while no one checked).

Parabola also has a blacklist repository which contains list of nonfree software found in Arch that Parabola blacklisted and sometimes replaced. It also contains perfectly fine software which is blacklisted for other purposes, like renaming "Arch Linux" in "Parabola" in some packages, but the reason of the blacklist is specified.

This page should be synced with Free software replacements recommended by the FSF.

Packages

Communication

Mail

Multimedia communication

Instant messaging client

Social networking

Matrix

Production

Editor

Graphics

Office

System

Backup

Booting

  • Support booting from pre-existing systemd-boot, i.e. "grub-install --no-nvram".

DEs & WMs

Fonts

-- It would be nice to have the other versions of iosevka.

Hardware

Input

Media Transfer Protocol

Shell

Tools

Wayland

X11

Programming

Version control

Programming languages

Ada
Clojure
Common Lisp
Eiffel
Emacs
Erlang
Guile
Haskell
Java
Perl
Python
Scheme
Standard ML

Misc


Emulation

Live USB

Audio

Music

Video

Education

Feed Readers

Games

Network

Tor Browser

The Tor Browser has an issue that makes it incompatible with the Free System Distribution Guidelines (GNU FSDG): it is configured to use Mozilla the addons repository.

Several strategies are possible to get it in Guix and it might be possible to combine some of them together.

The Tor Browser project might find it very interesting to use Guix instead of Ubuntu for building the Tor Browser as Guix goes way beyond reproducible builds: It has extensive work that has been done to make Guix bootstrapable. Most other distributions only care about reproducible builds and so if the compilers binaries had a backdoor, software built with such compilers could then have a reproducible backdoor.

The issue is that the Tor Browser supports several operating systems (GNU/Linux, Android, Microsoft Windows, MacOS) and currently Guix only supports building software for GNU/Linux, GNU/Hurd and Microsoft Windows (this was contributed by someone wanting to build bitcoin with Guix precisely because extensive work has been made to make Guix bootstrapable).

Adding the ability to build applications for Android should probably be doable but I've no clue at all about MacOS.

In addition Guix already supports i686 and x86_64 for both Windows and GNU/Linux, and we might gain the ability to get the Tor browser for armhf, ARM 64bit (aarch64), powerpc, powerpc64le (the architecture used in the Talos II), riscV64.

And finally Guix pack also support several formats, like tarballs and Debian packages, and more can also be added as well. That would enable the tor-browser to be installed as a regular package. That could be handy with Tails for instance as last time I checked it was just a tarball being extracted.

In any case, it would really be a good idea to make the upstream Tor Browser project switch to Guix for their releases as we would avoid having to do any Q/A to verify that our version of the tor-browser looks exactly the same on the networks and that websites can't distinguish Guix users because it has been patched or built differently. And other FSDG distributions with less strict policies on bootstrapability could either build it though Guix or ship the tor-browser installer as it would then only ship software that is FSDG compliant.

We'd also need to make sure that users don't mess up trying versions that are not exactly the same as the released one (that might happens if the dependencies gets updated in Guix for instance). In any case we could then easily package the tor-browser installer in Guix too.

In addition it could push them to fix or accept fixes for the addon repository problem as Guix is probably not going to accept a tor-browser that is not FSDG compliant.

Now with the addon repository, several approaches could be taken:

  • It could be removed completely. The Tor Project advise against installing addons anyway as it could de-anonymize users. That's probably the best option here.
  • It could be moved to another list, for instance the one maintained the GNU project or one maintained by the Tor project.
  • It could also be fixed at Mozilla but I've no idea how easy it is, especially because we might need to check if the addons are really free software and can be built with free software, etc.

In any case it's probably not super important what option is chosen here as long as it's fixed.

References:

Self-hosting

Science

Translator

Features

  • Add more cross toolchains for more CPU architectures
    • armv4t looks like a good idea as many older ARM boards that boot with free software could then be supported. Debian still officially supports armv4t, so it might be possible to copy their settings and fixes.
    • Add an xtensa-elf target as it's probably already supported within packages for building the ath9k_htc firmware
    • Find if other firmwares from other architectures are being built
  • Add more cross toolchains for more OSes
    • It would be a good idea to be able to build binaries for Android, we already have a bit of Android components in Guix but they can only be used on GNU/Linux or other already officially supported toolchains or OS. It would be a good idea to add an Android / bionic target. We'd need to check how much bionic is linked to the kernel version being used on the Android device.
  • Add more Guix pack or guix system image formats
    • We could add Arch Linux packages to guix pack be able to be used on Parabola.
    • We could enable to ship multiple package in one Debian package (currently that works with the tarball format of guix pack but not with Debian packages)
    • Add a way to deploy Guix in a directory in a way compatible with LXC
  • LVM-Support (+5) Guix now has LVM support but it might not be fully complete. I for instance managed to boot a Guix SD system from an ext4 rootfs that is in a LVM partition that is in a LUKS encrypted partition with this guide and by following the official documentation.
  • Integrate better letsencrypt/certbot. Currently certbot works fine if you already have certificates: it can renew them and so on. But if you use webroot you need the web server to be started for certbot to create or update certificates, but nginx (which is the web server best supported by guixSD API) won't start without the certificates. People deploying services with Guix typically have to do workarounds because of this issue. A solution would be to add a --standalone option for certbot and once the certificate is obtained to trigger the switch to webroot and starting the web server with a hook like it's done when renewing certificates.
  • Add a better way to deal with secrets or external files: Currently it's up to users to do the provisioning of secrets like VPN credential files. If they package it somehow they end up being in the store and being a security risk as any users could see them. Having to manually provision such files might work in some cases but it doesn't scale well as to do it right we'd need to make a provionning method that works for all the cases (all the different types of images, etc). A solution would be to add some extra option to guix to also include extra files or tarballs. This way the files would be added for all images types (docker, qcow2 system images, disk images, with guix system init, etc).
  • Add generic ways to generate very small rootfs. For instance there is some support for initramfs already. Now that there is ppc64le support, if we can make images that fit into (128M?) of flash and that OpenBMC is packaged in Guix, it could probably completely support RYF computers like the Talos II. If we have a good enough abstraction like a target OS for instance, we could probably add the software we want in initramfs and/or in the BMC and configure them like a regular Guix system from the host computer. There is already support for managing VMs through a ganetti API in guix and there are also childhurds in Guix.
  • Cross distributions bootstrap
    • Enable to install Parabola and Hyperbola from Guix. Status: wip. I've got some failures with pacstrap on GuixSD because the PATH is not the same than Parabola's path. I don't know where Parabola's PATH comes from though as /etc/environment is empty by default. Note that some packages need to be refreshed to work as Parabola and/or Hyperbola don't keep many older packages and sources. But once all that lands in Guix it shound't be an issue anymore as the source should be made available though software heritage, and guix will fallback to it.
    • Package Guix in Parabola. Currently Guix package only worked on x86_64, so I added a guix-installer package to make sure we could still install it in a safe way (where we have some chain of trust with gpg during the installation).

Documentation

Documentation Wishlist

Other

  • There are many bugs and patches on https://issues.guix.gnu.org/, so if you want to help it might be a good idea to try to fix bugs, review patches and so on.

TODO

  • When libreplanet.org is upgraded to a new version of MediaWiki, use interwiki links to link to the Free Software Directory for descriptions of wishlisted software.

This page was a featured resource in February 2019.