{"id":19513627,"url":"https://github.com/ryanwoodsmall/crosware","last_synced_at":"2025-07-06T07:02:36.589Z","repository":{"id":29850363,"uuid":"33395215","full_name":"ryanwoodsmall/crosware","owner":"ryanwoodsmall","description":"Tools, things, stuff, miscellaneous, etc., for Chrome OS / Chromium OS","archived":false,"fork":false,"pushed_at":"2025-04-25T02:49:46.000Z","size":8527,"stargazers_count":62,"open_issues_count":0,"forks_count":4,"subscribers_count":6,"default_branch":"master","last_synced_at":"2025-04-25T03:32:23.378Z","etag":null,"topics":["bash","busybox","chrome-os","chromeos","chromium-os","chromiumos","crosware","curl","dropbear","musl","musl-libc","package-manager","toybox"],"latest_commit_sha":null,"homepage":null,"language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ryanwoodsmall.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2015-04-04T05:19:39.000Z","updated_at":"2025-04-25T02:49:49.000Z","dependencies_parsed_at":"2025-02-27T20:46:30.353Z","dependency_job_id":"334eb5a1-55d5-401d-9a62-f21145f28b73","html_url":"https://github.com/ryanwoodsmall/crosware","commit_stats":{"total_commits":16481,"total_committers":1,"mean_commits":16481.0,"dds":0.0,"last_synced_commit":"19d1cee70b3946016f7298c1cf1c4b85049b2c22"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ryanwoodsmall%2Fcrosware","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ryanwoodsmall%2Fcrosware/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ryanwoodsmall%2Fcrosware/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ryanwoodsmall%2Fcrosware/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ryanwoodsmall","download_url":"https://codeload.github.com/ryanwoodsmall/crosware/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":251712897,"owners_count":21631462,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["bash","busybox","chrome-os","chromeos","chromium-os","chromiumos","crosware","curl","dropbear","musl","musl-libc","package-manager","toybox"],"created_at":"2024-11-10T23:31:34.390Z","updated_at":"2025-07-06T07:02:36.570Z","avatar_url":"https://github.com/ryanwoodsmall.png","language":"Shell","funding_links":[],"categories":["Uncategorized","Active"],"sub_categories":["Uncategorized"],"readme":"# crosware\nTools, things, stuff, miscellaneous, detritus, junk, etc., primarily for Chrome OS / Chromium OS. This is a development-ish environment for Chrome OS on both ARM and x86 (32-bit and 64-bit for both). It should work on \"normal\" Linux too (Armbian, CentOS, Debian, Raspbian, Ubuntu, etc.).\n\n## bootstrap\n\nIf running on a Chromebook/Chromebox/ChromeOS/Flex machine, **developer mode is necessary**.\n_crosware_ temporarily requires `root` access to set ownership and permission in `/usr/local`.\n\nTo bootstrap, using ```/usr/local/crosware``` with initial downloads in ```/usr/local/tmp```...\n\n# :warning: On ChromeOS `sudo` must be run via a virtual terminal :warning:\n\nGoogle, in their infinite wisdom, has disabled `sudo` on ChromeOS.\nOr, rather, disabled gaining extra privileges in the current process (`PR_SET_NO_NEW_PRIVS`/`minijail`/???).\nThis effectively stops `root` user access via the ChromeOS GUI.\n\nThis means the `sudo` commands below must be run via a VT.\n\n- To access a VT, press one of the following key sequences:\n  - Ctrl-Alt-right arrow (F2)\n  - Ctrl-Alt-refresh (F3)\n  - Ctrl-Alt-full screen (F4)\n- Login as `chronos` either with no password, or with a dev password (if you set one)\n- Run the `sudo ...` commands below\n- Return to the ChromeOS GUI with Ctrl-Alt-back arrow (F1)\n\nIf you want to start a locally-accessible SSH daemon, see: [scripts/start-root-sshd](scripts/start-root-sshd).\n\n```shell\n# check you're the chronos user on a chromebook/not root in a container\nwhoami\n\n# allow your regular user to write to /usr/local\nsudo chgrp ${GROUPS} /usr/local\nsudo chmod 2775 /usr/local\n```\n\nThe sudo commands above only need to be run once; it should be safe to run them again.\nIf you choose to use the [scripts/start-root-sshd](scripts/start-root-sshd) script, it must be run after every reboot.\n\nThe following can now be run as the standard ChromeOS user _chronos_ from a GUI/`crosh` shell terminal.\n\n```shell\n# run the bootstrap\n# use curl to download the primary shell script\n# this in turn downloads a jdk, jgit and a toolchain\nbash \u003c(curl -kLs https://raw.githubusercontent.com/ryanwoodsmall/crosware/master/bin/crosware) bootstrap\n\n# source the environment\nsource /usr/local/crosware/etc/profile\nwhich crosware\n```\n\n## install some packages\n\n```shell\n# install some stuff\ncrosware install busybox toybox\n\n# update environment\nsource /usr/local/crosware/etc/profile\n\n# see what we just installed\nwhich -a make busybox toybox \\\n| xargs realpath \\\n| xargs toybox file\n\n# automatically update the environment after an install\n`${cwtop}/scripts/tcrs jo`\nwhich -a jo\n```\n\n## update\n\nTo get new recipes:\n\n```crosware update```\n\nAnd to re-bootstrap (for any updated zulu, jgitsh, statictoolchain installs):\n\n```crosware bootstrap```\n\n### further usage\n\nRun **crosware** without any arguments to see usage; i.e, a (possibly outdated) example:\n\n\u003cpre\u003e\nusage: crosware [command]\n\ncommands:\n  bootstrap : bootstrap crosware\n  check-installed : given a package name, check if it's installed\n  env : dump source-/eval-able crosware etc/profile\n  help : show help\n  install : attempt to build/install a package from a known recipe\n  list-available : list available recipes which are not installed\n  list-funcs : list crosware shell functions\n  list-installed : list installed recipes\n  list-installed-reqs : list installed recipes with their requirements\n  list-recipe-deps : list recipes with their declared dependencies\n  list-recipe-files : list recipes with their source file\n  list-recipe-reqs : list recipes with their requirements\n  list-recipe-reqs-expanded : list recipes with their expanded requirements\n  list-recipes : list build recipes\n  list-recipe-transitive-reqs : list recipes with only transitive requirements\n  list-recipe-versions : list recipes with version number\n  list-upgradable : list installed packages with available upgrades\n  profile : show .profile addition\n  reinstall : uninstall then install given packages without chasing upgrades\n  run-func : run crosware shell function\n  set : run 'set' to show full crosware environment\n  show-arch : show kernel and userspace architecture\n  show-env : run 'env' to show crosware environment\n  show-func : show the given function name\n  show-karch : show kernel architecture\n  show-uarch : show userspace architecture\n  uninstall : uninstall some packages\n  update : attempt to update existing install of crosware\n  update-list-upgradable : update crosware and list upgradable recipes\n  update-upgrade-all : update crosware and upgrade out-of-date recipes\n  upgrade : uninstall then install a recipe\n  upgrade-all : upgrade all packages with different recipe versions\n  upgrade-all-with-deps : upgrade all out-of-date packages and installed dependents\n  upgrade-deps : upgrade any installed deps of a package\n  upgrade-with-deps : upgrade a package and installed depdendents\n\u003c/pre\u003e\n\n### a few more examples\n\nSee the [scripts/](scripts/) directory for a hodge-podge of stuff.\n\n```shell\n# works anywhere - for use system-wide on a normal non-chromeos linux distro (non-root users only)\nsudo ln -sf /usr/local/crosware/scripts/etc-profile-dot-d_crosware.sh /etc/profile.d/zz-crosware.sh\n\n# works anywhere - remove dev bits ({C,LD,...}FLAGS, etc.) from the environment\n# also move crosware paths to the end of ${PATH}\n# facilitates \"i just want the command\" installs\n. /usr/local/crosware/etc/profile\n. ${cwtop}/scripts/non-interactive.sh\n\n# chromeos only - when using the scripts/start-root-sshd script\n# for sudossh (non-interactive) and sudossht (terminal) command wrappers\nsudo ln -sf /usr/local/crosware/scripts/usr-local-bin-sudossh /usr/local/bin/sudossh\nsudo ln -sf /usr/local/crosware/scripts/usr-local-bin-sudossht /usr/local/bin/sudossht\n\n# chromeos only? - obsolete on chromeos but good to note anyway\n# wrap sudo to be passwordless with a trust-on-first-use approach\n# this is (well, was) useful for dev-mode chromebooks with a chronos user password set\n. /usr/local/crosware/scripts/passwordless-sudo.sh\n```\n\n#### use external or disable java and jgit\n\nA few user environment variables are available to control how crosware checks itself out and updates recipes.\n\n| var               | default | purpose                                        |\n| ----------------- | ------- | ---------------------------------------------- |\n| CW_GIT_CMD        | jgitsh  | which \"git\" command to use for checkout/update |\n| CW_USE_JAVA       | true    | use java for bootstrap, jgit                   |\n| CW_EXT_JAVA       | false   | use system java instead of zulu recipe         |\n| CW_USE_JGIT       | true    | use jgit.sh for checkout/update                |\n| CW_EXT_JGIT       | false   | use system jgit.sh instead of jgitsh recipe    |\n| CW_UPDATE_USE_GIT | true    | use a git client to update                     |\n| CW_UPDATE_USE_ZIP | true    | use `update-crosware-from-zip.sh` to update    |\n| CW_IGNORE_MISSING | false   | set to \"true\" ot ignore any missing prereqs    |\n\n#### alpine\n\nAlpine (https://alpinelinux.org/) uses musl libc (http://musl-libc.org) and as such cannot use the Zulu JDK as distributed. To bootstrap using the system-supplied OpenJDK from Alpine repos:\n\n```shell\n# as above, make sure /usr/local is writable by the primary user/group you'll be using...\n# this assumes you're using the default busybox ash shell, and running apk as root...\nexport CW_EXT_JAVA=true\napk update\napk upgrade\napk add bash curl openjdk11\ncd /tmp\ncurl -kLO https://raw.githubusercontent.com/ryanwoodsmall/crosware/master/bin/crosware\nbash crosware bootstrap\n# or, using bash process substitution...\n#   bash -c 'export CW_EXT_JAVA=true ; bash \u003c(curl -kLs https://raw.githubusercontent.com/ryanwoodsmall/crosware/master/bin/crosware) bootstrap'\n```\n\nMake sure the environment variable ```CW_EXT_JAVA``` is set to **true** (or just something other than **false**) to use system Java. Please note that ```/usr/local/crosware/etc/profile``` contains bashisms, and does not work on BusyBox ash, so set your ```SHELL``` accordingly.\n\nIf Zulu is installed on a non-glibc distro, run ```crosware uninstall zulu``` and make sure **CW_EXT_JAVA** and **JAVA_HOME** environment variables are configured.\n\nTo manually remove the Zulu install directory, environment script and installation flag, remove these paths:\n\n- /usr/local/crosware/etc/profile.d/zulu.sh\n- /usr/local/crosware/var/inst/zulu\n- /usr/local/crosware/software/zulu/\n\n#### container\n\nA container suitable for bootstrapping is available:\n\n- Docker hub: https://cloud.docker.com/repository/docker/ryanwoodsmall/crosware\n- buildable from: https://github.com/ryanwoodsmall/dockerfiles/tree/master/crosware\n\nRun with:\n\n```docker run -it ryanwoodsmall/crosware```\n\nAn interactive bash shell session will start, and any crosware C/C++ packages should build and run out of the box.\n\nBuild with something like:\n\n```shell\ndocker build --tag crosware https://raw.githubusercontent.com/ryanwoodsmall/dockerfiles/master/crosware/Dockerfile\ndocker run -it crosware\n```\n\nInside the container, install **git** to enable updates and list any upgradable packages:\n\n```shell\n# note: this installs git and its prereqs from source, it might take awhile\ncrosware install git\n. /usr/local/crosware/etc/profile\ncrosware update\ncrosware list-upgradable\n```\n\n# notes\n\nThis is a _mostly_ self-hosting virtual Linux distribution of sorts, targeting all variations of 32-/64-bit x86 and ARM on Chrome OS, installable on other Linux distributions independently - with **riscv64** support as well.\nThe primary aim of _crosware_ is to be a small - for some definition of small - and \"as statically-linked as possible\" development environment aimed at containers and ChromeOS, but also piggybacking on virtually any distribution that has a persistent `/usr/local` with write permissions.\n\nA static-only GCC compiler using [musl libc](https://musl.libc.org/) (with [musl-cross-make](https://github.com/richfelker/musl-cross-make.git) ) is installed as part of the bootstrap; this sort of precludes things like emacs, but doesn't stop anyone from using the static musl toolchain to build a shared toolchain and libraries, bootstrap another compiler, leverage Alpine packages, etc..\nDespite having \"static\" in the name, a `libc.so` (and `ld.so`, normally a symlink to musl's libc) is available and leveraged for a number packages, primarily to support other programming languages' linking modes and plugin/shared object strategies.\n\nThe initial bootstrap looks something like:\n\n- scripted, i.e., `crosware bootstrap`:\n  - get a JDK (Azul Zulu OpenJDK for glibc)\n  - get jgit.sh (standalone)\n  - get static bootstrapped compiler\n  - checkout rest of project\n- manually install some packages, i.e, `crosware install vim git ...`:\n  - build GNU make\n  - build native busybox, toolbox, sed, etc.\n  - build a few libs / support (ncurses, openssl, slang, zlib, bzip2, lzma, libevent, pkg-config)\n  - build a few packages (curl, vim w/syntax hightlighting, screen, tmux, links, lynx - mostly because I use them)\n\nSome scripts that might be use for bootstrapping on a non-glibc distro:\n\n- [scripts/install-static-bins.sh](scripts/install-static-bins.sh)\n- [scripts/update-crosware-from-tar.sh](scripts/update-crosware-from-tar.sh) (or [scripts/update-crosware-from-zip.sh](scripts/update-crosware-from-zip.sh) )\n- [scripts/install-musl-zulu.sh](scripts/install-musl-zulu.sh)\n- [scripts/reconstitute-git.sh](scripts/reconstitute-git.sh)\n\n# environment\n\nEnvironment stuff to figure out how to handle:\n\n- ```PATH``` (working)\n- ```PKG_CONFIG_LIBDIR/PKG_CONFIG_PATH``` (working)\n- ```CC``` (working)\n- ```CFLAGS``` (working)\n- ```CPP``` (working)\n- ```CPPFLAGS``` (working)\n- ```CXX``` (working)\n- ```INFOPATH```\n- ```LDFLAGS``` (working)\n- ```MANPAGER``` (working)\n- ```MANPATH```\n- ```ACLOCAL_PATH```\n- ```EDITOR``` (vim?)\n- ```PAGER``` (working, set to less (gnu or busybox))\n\n# stuff to figure out\n\nSee [the to-do list (TODO.md)](TODO.md)\n\nSee [the maybe file (MAYBE.md)](MAYBE.md) for recipes to consider, notes, etc.\n\n# links\n\nChromebrew looks nice and exists now: https://github.com/skycocker/chromebrew\n\nAlpine and Sabotage are good sources of inspiration and patches:\n\n- Alpine: https://alpinelinux.org/ and git: https://git.alpinelinux.org/\n- Sabotage: http://sabotage.tech/ and git: https://github.com/sabotage-linux/sabotage/\n\nThe Alpine folks distribute a chroot installer:\n\n- https://github.com/alpinelinux/alpine-chroot-install\n\nAnd I wrote a little quick/dirty Alpine chroot creator that works on Chrome/Chromium OS; no Docker or other software necessary.\n\n- https://github.com/ryanwoodsmall/shell-ish/blob/master/bin/chralpine.sh\n\nThe musl wiki has some pointers on patches and compatibility, and a list of useful alternative implementations of common programs/libraries/utilities/etc.;\nmany are in use in crosware:\n\n- https://wiki.musl-libc.org/compatibility.html#Software-compatibility,-patches-and-build-instructions\n- https://wiki.musl-libc.org/alternatives.html\n\n## bootstrapping ex nihilo\n\nMes (and m2) might be useful at some point.\n\n- https://www.gnu.org/software/mes/\n- janneke stuff:\n  - https://gitlab.com/users/janneke/projects\n  - https://gitlab.com/janneke/mes\n  - https://gitlab.com/janneke/mes-seed\n  - https://github.com/janneke/mescc-tools\n  - https://gitlab.com/janneke/nyacc\n  - https://gitlab.com/janneke/stage0\n  - https://gitlab.com/janneke/stage0-seed\n  - https://gitlab.com/janneke/tinycc\n- oriansj stuff:\n  - https://github.com/oriansj\n  - https://github.com/oriansj/M2-Planet\n  - https://github.com/oriansj/M2-Moon\n  - https://github.com/oriansj/mes-m2\n  - https://github.com/oriansj/mescc-tools-seed\n  - https://github.com/oriansj/mescc-tools\n  - https://github.com/oriansj/stage0\n  - https://github.com/oriansj/bootstrap-seeds\n- https://lists.gnu.org/archive/html/guile-user/2016-06/msg00061.html\n- https://lists.gnu.org/archive/html/guile-user/2017-07/msg00089.html\n- http://lists.gnu.org/archive/html/info-gnu/2018-08/msg00006.html\n\n## other sites/utilities/etc.\n\nSuckless has a list of good stuff:\n\n- https://suckless.org/rocks/\n\nMark Williams Company open sourced Coherent; might be a good source for SUSv3/SUSv4/POSIX stuff:\n\n- http://www.nesssoftware.com/home/mwc/source.php\n\n9p implementations:\n\n- http://9p.cat-v.org/implementations\n\nEltanin tools may be useful:\n\n- https://eltan.in.net/?tools/index\n- https://github.com/eltanin-os\n\nBusybox tiny utility notes:\n\n- https://busybox.net/tinyutils.html\n\n## C/C++ compiler\n\nStatic musl GCC compiler(s) are done, and should work to compile (static-only, some shared lib support) binaries on Chrome OS:\n\n- https://github.com/ryanwoodsmall/musl-misc/releases\n\nBased on Rich Felker's musl-cross-make:\n\n- https://github.com/richfelker/musl-cross-make\n\n# recipes\n\n## bootstrap recipes\n\nThese recipes are included in the main `bin/crosware` script, as they're the foundation of the tool and are distributed as binaries.\nThere are a handful of other binary recipes that are not necessary for bootstrapping.\nThe **statictoolchain** recipe could theoretically be pulled into a normal standalone recipe, but is bedrock enough that it fits in the main script.\nA smaller, more supportable, preferably single-binary static Git client would/will hopefully also find its way to the main script for bootstrap purposes.\n\n- **zulu** azul zulu openjdk jvm\n- **jgitsh** standalone jgit shell script\n- **statictoolchain** musl-cross-make static toolchain\n  - now self-hosted on crosware\n    - https://github.com/ryanwoodsmall/musl-misc/blob/master/musl-cross-make-confs/Makefile.arch_indep\n    - https://github.com/ryanwoodsmall/crosware/blob/master/scripts/build-statictoolchain.sh\n\n## working recipes\n\n- 9mount (https://github.com/sqweek/9mount - mount/umount wrappers for 9p)\n- 9pro (https://git.sr.ht/~ft/9pro - 9p tools for unix)\n- abcl (common lisp, https://common-lisp.net/project/armedbear/)\n- abduco (https://www.brain-dump.org/projects/abduco/ and https://github.com/martanne/abduco)\n- acl (https://savannah.nongnu.org/projects/acl/)\n- acme labs programs (via http://www.acme.com/software/)\n  - httpget (http://www.acme.com/software/http_get/)\n    - httpgetlibressl (libressl https support)\n    - httpgetopenssl (openssl https support)\n  - httppost (http://www.acme.com/software/http_post/)\n    - httppostlibressl (libressl https support)\n    - httppostopenssl (openssl https support)\n  - microhttpd (http://acme.com/software/micro_httpd/)\n  - microinetd (http://acme.com/software/micro_inetd/)\n  - microproxy (http://acme.com/software/micro_proxy/)\n  - minihttpd (http://www.acme.com/software/mini_httpd/)\n    - minihttpdlibressl (libressl https support)\n    - minihttpdopenssl (openssl https support)\n  - minisendmail (http://www.acme.com/software/mini_sendmail/)\n  - subproxy (http://www.acme.com/software/sub_proxy/)\n  - thttpd (http://www.acme.com/software/thttpd/)\n- ag (https://geoff.greer.fm/ag/ and https://github.com/ggreer/the_silver_searcher - the silver searcher, fast grep/ack-like)\n- age (https://github.com/FiloSottile/age - age encryption tool in go)\n- alpinemuslutils (https://github.com/alpinelinux/aports/tree/master/main/musl - getconf, getent, iconv from alpine's musl)\n- ant (https://ant.apache.org - java build tool)\n- argon2 (https://github.com/P-H-C/phc-winner-argon2 - password hashing program and libargon2 library)\n- at (http://ftp.debian.org/debian/pool/main/a/at/)\n- attr (https://savannah.nongnu.org/projects/attr/)\n- autoconf\n- automake\n- b2sum (https://github.com/BLAKE2/BLAKE2 - standalone blake2 sum program)\n- baseutils (https://github.com/ibara/baseutils - portable openbsd userland)\n- bash (latest 5.x, netbsdcurses)\n  - bashminimal (latest 5.x, internal readline, no curses/termcap)\n  - bashtiny (latest 5.x, no readline/curses/termcap)\n  - bash4 (4.4, netbsdcurses)\n  - bash50 (5.0, netbsdcurses)\n  - bash51 (5.1, netbsdcurses)\n  - bash52 (5.2, netbsdcurses)\n  - bashtermcap (termcap.h, libtermcap.a from bash, etc/termcap from gnu termcap)\n- bc (gnu bc, dc)\n- bdb185 (berkeley db 1.85)\n- bdb47 (berkeley db 4.x)\n- beanshell2 (https://github.com/beanshell/beanshell and https://beanshell.github.io - java scripting, leaving beanshell open for 3.x...)\n- bearssl (https://bearssl.org/)\n- bim (https://github.com/klange/bim - minimal vim-alike, pure-C version 2.x)\n  - bim3 (kuroko-based editor)\n- binutils (bfd, opcodes, libiberty.a)\n- bison (https://www.gnu.org/software/bison/ and http://savannah.gnu.org/projects/bison/ and http://git.savannah.gnu.org/cgit/bison.git)\n  - bison37 (older version before some possible posix-mandated breaking changes)\n- bmake (http://www.crufty.net/help/sjg/bmake.html)\n- brogue\n- brotli (https://github.com/google/brotli)\n- bsd programs\n  - bsdjot (from outils)\n  - bsdrs (from outils)\n  - bsdunvis (from outils)\n  - bsdvis (from outils)\n- busybox (static)\n- byacc\n- bzip2\n- cacertificates (from alpine)\n- cadaver (https://notroj.github.io/cadaver/ and https://github.com/notroj/cadaver - cli webdav client using neon - openssl+expat+readline)\n  - cadavergnutls (gnutls)\n  - cadavergnutlsminimal (gnutls + nettle w/mini-gmp)\n  - cadaverlibressl (libressl)\n- cares (https://github.com/c-ares/c-ares and https://c-ares.haxx.se/ - c-ares, asynch dns, must explicitly opt-in)\n- ccache - version 3.x, autotools\n  - ccache4 - now requires cmake, keep them separate for now\n- certstrap (https://github.com/square/certstrap - simple CA in go)\n- cflow\n- check\n- civetweb (https://github.com/civetweb/civetweb - small/embeddable c/c++ webserver with mbedtls/zlib/lua/duktape/cgi support)\n  - openssl/libressl/wolfssl/minimal variants???\n- cjson (https://github.com/DaveGamble/cJSON)\n- cloc (https://github.com/AlDanial/cloc)\n- cmake\n- colorizedlogs (https://github.com/kilobyte/colorized-logs and https://launchpad.net/ubuntu/+source/colorized-logs - includes ansi2txt/ansi2html/ttyrec2ansi/pipetty)\n- configgit (gnu config.guess, config.sub updates for musl, aarch64, etc. http://git.savannah.gnu.org/gitweb/?p=config.git;a=summary)\n- coreutils (single static binary with symlinks, no nls/attr/acl/gmp/pcap/selinux)\n- corkscrew (http://wiki.kartbuilding.net/index.php/Corkscrew_-_ssh_over_https and http://web.archive.org/web/20160207093437/http://agroman.net/corkscrew/ - ssh over http/socks)\n- cppcheck\n- cppi\n- cpu (https://github.com/u-root/cpu - plan 9-like cpu - \"push\" local filesystem/program to remote, execute - in go, works like ssh+9p)\n  - p9ufs (https://github.com/hugelgupf/p9 - standalone go 9p fileserver, included in u-root/gobusybox)\n  - smbiosdmidecode (https://github.com/u-root/smbios - go dmidecode)\n  - uroot (https://github.com/u-root/u-root - go userland w/bootloaders and other amenities)\n    - also contains...\n      - gobusybox (https://github.com/u-root/gobusybox - a general-purpose wrapper to create a `bb` binary with a number of go cmd/... sources)\n      - mkuimage (https://github.com/u-root/mkuimage - small go-based cpio root filesystems)\n- cronolog (https://linux.die.net/man/1/cronolog - version 1.6.2 with fedora largefile patch)\n- cryanc (https://github.com/classilla/cryanc - crypto ancienne, tls for old platforms, provides \"carl\" binary with client+proxy)\n- cscope\n- cssc (gnu sccs)\n- ctags (exuberant ctags for now, universal ctags a better choice?)\n- curl (https://curl.se/ - openssl)\n  - curlbearssl\n  - curlgnutls\n  - curlgnutlsminimal (with nettleminimal/mini-gmp)\n  - curllibressl\n  - curlmbedtls\n  - curlwolfssl\n  - caextract (https://curl.haxx.se/docs/caextract.html - mozilla ca certs in .pem format)\n- cvs\n- cwstaticbinaries (https://github.com/ryanwoodsmall/static-binaries - static binaries, possibly useful for bootrapping?)\n- cxref\n- dasel (https://github.com/TomWright/dasel - select/put/delete/convert data from json/toml/yaml/xml/csv)\n- dash (http://gondor.apana.org.au/~herbert/dash/ and https://git.kernel.org/pub/scm/utils/dash/dash.git)\n  - dashminimal (libedit with basic termcap)\n  - dashtiny (no libedit)\n- ddrescue (https://www.gnu.org/software/ddrescue/ - gnu data recovery tool/nicer dd)\n- derby\n- diffutils\n- diction and style (https://www.gnu.org/software/diction/)\n- direvent (https://www.gnu.org.ua/software/direvent/direvent.html - gnu directory event monitoring daemon)\n- distcc (https://distcc.github.io/ and https://github.com/distcc/distcc - minimal build, no pump, libiberty, avahi, etc.)\n- dnsmasq (http://www.thekelleys.org.uk/dnsmasq/doc.html)\n  - look at adding...\n    - libnetfilter_conntrack (conntrack)\n    - nettle, gmp (DNSSSEC)\n      - ```CFLAGS=\\\"\\${CFLAGS} -Wall -W -O2\\\" LDFLAGS=\\\"\\${LDFLAGS} -static\\\" COPTS=\\\"-DHAVE_DNSSEC \\${CPPFLAGS}\\\"```\n    - idn/idn2 (IDN)\n      - ```-DHAVE_IDN``` (libidn) ```-DHAVE_LIBIDN2``` (libidn2, libunistring)\n    - lua? (5.2 only?)\n    - dbus? ubus?\n- dockerstatic (static docker binaries from https://download.docker.com/linux/static/stable/)\n  - good enough for remote ```${DOCKER_HOST}``` usage\n  - amd64/arm32v6/arm64v8 only\n  - does _not_ work on i686\n  - architecture naming conventions: https://github.com/docker-library/official-images#architectures-other-than-amd64\n- doctl (https://github.com/digitalocean/doctl and https://docs.digitalocean.com/reference/doctl/ - digital ocean api control program)\n- dosfstools (https://github.com/dosfstools/dosfstools - dosfstools)\n- dropbear (https://matt.ucc.asn.au/dropbear/dropbear.html and https://dropbear.nl/ - zlib, lsh sftp-server - tcp port 2222)\n  - dropbearminimal (zlib - tcp port 22222)\n- dsvpn (https://github.com/jedisct1/dsvpn - dead simple vpn)\n- dtach (https://github.com/crigler/dtach and http://dtach.sourceforge.net/ - simpler detachable screenalike)\n- duktape (http://duktape.org/ and https://github.com/svaarala/duktape)\n- dvtm (https://www.brain-dump.org/projects/dvtm/ and https://github.com/martanne/dvtm/)\n- e2fsprogs (https://mirrors.edge.kernel.org/pub/linux/kernel/people/tytso/e2fsprogs/ and http://e2fsprogs.sourceforge.net/ and https://github.com/tytso/e2fsprogs)\n- ecl (https://common-lisp.net/project/ecl/)\n  - shared build\n  - works for aarch64/i686/x86_64\n  - does _not_ work on arm (gc? gmp?)\n- ed (gnu ed)\n- elfutils (https://sourceware.org/elfutils/ - library and utilities for dealing with elf files, including some binutils workalikes(?) - ar, nm, ranlib, strings, strip, etc.)\n- elinks (https://github.com/rkd77/elinks - up-to-date/maintained elinks fork, currently only minimal variant)\n  - elinksminimal (libressl, zlib)\n  - investigate adding tre, spidermonkey/mujs/quickjs javascript/ecmascript/js, ...\n- elvis (https://github.com/mbert/elvis)\n- entr (http://entrproject.org/ and https://github.com/eradman/entr)\n- es (https://github.com/wryun/es-shell - extensible shell, descended from plan9/rc, with scheme/lisp/other functional programming additions)\n- etcd (https://etcd.io/ and https://github.com/etcd-io/etcd)\n- ethtool (https://mirrors.edge.kernel.org/pub/software/network/ethtool/)\n- expat\n- fennel (https://fennel-lang.org/ and https://github.com/bakpakin/Fennel - a lisp that compiles to lua, with a dedicated shared lua install and readline support via luarocks)\n- fetchfreebsd (https://github.com/jrmarino/fetch-freebsd - freebsd fetch program/fetch.h header/libfetch.a lib, openssl, custom compilation instead of cmake)\n  - fetchfreebsdlibressl (same with libressl)\n- file\n- findutils\n- flex\n- gambit (https://github.com/gambit/gambit and http://gambitscheme.org/wiki/index.php/Main_Page)\n  - look at openssl/libressl\n- gauche (https://github.com/shirok/Gauche and https://practical-scheme.net/gauche/index.html)\n  - shared build\n  - sdbm (ndbm) kv/hash, zlib, mbedtls, libressl for `openssl` command\n- gawk (gnu awk, prepended to $PATH, becomes default awk)\n- gc (working on x86\\_64, aarch64; broken on i386, arm)\n- gdbm (https://www.gnu.org.ua/software/gdbm/ - gnu dbm datbase library, netbsdcurses readline)\n  - gdbmminimal (no readline)\n- gettext (https://www.gnu.org/software/gettext - gnu translations, opt-in)\n- gettexttiny (https://github.com/sabotage-linux/gettext-tiny - stub/lightweight substitutes)\n- ghostunnel (https://github.com/ghostunnel/ghostunnel - stunnel-ish in go, with mutual tls auth)\n- git - built with curl+openssl\n  - gitlibressl - built with libressl+curl\n- github tools\n  - gh (https://github.com/cli/cli and https://cli.github.com/ - gh command in go with release management...)\n  - hub (https://github.com/github/hub and https://hub.github.com - git wrapper)\n- glab (https://gitlab.com/gitlab-org/cli - gitlab glab cli)\n- glib (https://wiki.gnome.org/Projects/GLib)\n  - old version\n  - new version requires meson, ninja, thus python3\n- global\n- glorytun (https://github.com/angt/glorytun - udp tunnel using libsodium)\n  - uses mud (https://github.com/angt/mud - multipath udp lib)\n  - docker container example: https://github.com/angt/mudock\n- gmp\n- gnupg (with ntbtls - https://gnupg.org/software/index.html)\n  - gnupg1 (gnupg 1.x - older, smaller gnupg version, with fewer prereqs)\n- gnutls (https://gnutls.org/)\n  - gnutlsminimal (built against nettleminimal w/mini-gmp, openssl compat enabled)\n- gperf (https://www.gnu.org/software/gperf - gnu perfect hash function generator)\n- gpgme (https://gnupg.org/software/gpgme/index.html - gnupg access library)\n- go\n  - go recipe is latest available version\n  - verions\n    - gobootstrap recipe with 1.4 bootstrap binaries (i386, amd64, arm, arm 32-bit static for aarch64)\n    - go117 recipe with golang 1.17.x static binaries for all supported architectures\n    - go118 recipe with golang 1.18.x static binaries for all supported architectures\n    - go119 recipe with golang 1.19.x static binaries for all supported architectures\n    - go120 recipe with golang 1.20.x static binaries for all supported architectures\n    - go121 recipe with golang 1.21.x static binaries for all supported architectures\n    - go122 recipe with golang 1.22.x static binaries for all supported architectures\n    - go123 recipe with golang 1.23.x static binaries for all supported architectures\n    - go124 recipe with golang 1.24.x static binaries for all supported architectures\n  - static binary archive\n  - built via: https://github.com/ryanwoodsmall/go-misc/blob/master/bootstrap-static/build.sh\n- gogit (https://github.com/go-git/go-git - `go-git` cli with `git-{receive,upload}-pack` wrappers)\n- gojq (https://github.com/itchyny/gojq - jq in go)\n- goldy (https://github.com/ibm-security-innovation/goldy - dtls to udp proxy using mbedtls)\n- gop9p (https://github.com/docker-archive/go-p9p - 9pr client, 9ps server)\n- got (https://gameoftrees.org/ - game of trees, openbsd-specific git-like, libressl)\n  - gotopenssl recipe provided as well\n  - portable: https://gameoftrees.org/portable.html\n  - supports git, ssh, git+ssh protocols - no http/https\n  - has a tig-like `tog` program, nice!\n- gotoml (https://github.com/pelletier/go-toml - toml processing/conversion with jsontoml/tomljson/tomll)\n- goyq (https://github.com/mikefarah/yq - yq implementation in go)\n- grep (gnu grep)\n- groff\n- gron (https://github.com/tomnomnom/gron - greppable json, in go)\n- gosftpserver (https://github.com/pkg/sftp - standalone `sftp-server` that works with tinysshd/dropbear from go sftp lib)\n- guile (https://www.gnu.org/software/guile/)\n  - works for aarch64/x86_64\n  - does _not_ work on arm/i686 (gc)\n  - guile2 recipe as well, with same caveats\n- h2 (http://www.h2database.com/ and https://github.com/h2database/h2database - java embedded/client-server db with postgres compat mode)\n- habitat (https://community.chef.io/tools/chef-habitat)\n  - single static `hab` binary\n- haproxy (http://www.haproxy.org/ - openssl+pcre+zlib)\n  - haproxylibressl (libressl+pcre+zlib)\n- hboetesmg (https://github.com/hboetes/mg - micro gnuemacs, libbsd+netbsdcurses)\n- heirloom project tools (http://heirloom.sourceforge.net/ - musl/static changes at https://github.com/ryanwoodsmall/heirloom-project)\n  - exvi with netbsdcurses also available as a standalone package\n- helm (https://helm.sh/ and https://github.com/helm/helm - kubernetes package manager)\n- help2man\n- hitch (https://hitch-tls.org/ - openssl+libev tls proxy)\n- hsqldb (http://hsqldb.org/ - java hypersql database, followup to hypersonicsql, with `sqltool` client)\n  - http://www.hsqldb.org/doc/2.0/guide/running-chapt.html\n  - http://www.hsqldb.org/doc/2.0/guide/listeners-chapt.html\n- htermutils (https://chromium.googlesource.com/apps/libapps/+/HEAD/hterm/etc/)\n- htop\n- ibaramg (https://github.com/ibara/mg - openbsd mg editor)\n- iftop\n- inetutils\n- indent\n- inih (https://github.com/benhoyt/inih - .ini file parser in C, using ninja+meson)\n- iperf\n  - iperf\n  - iperf3\n- isl\n- itsatty (https://github.com/ryanwoodsmall/itsatty)\n- j7zip\n- janet (https://janet-lang.org/ and https://github.com/janet-lang/janet)\n- jansson (https://github.com/akheron/jansson and https://digip.org/jansson/ - C json support, used by nftables)\n- jfrogcli (https://github.com/jfrog/jfrog-cli and https://jfrog.com/help/r/jfrog-cli/jfrog-cli - jfrog cli for e.g. artifactory)\n- jgitsh (bootstrap recipe)\n  - jgitsh6 (java 11)\n  - jgitsh7 (java 17)\n- jj (https://github.com/tidwall/jj - json stream editor)\n- jo (https://github.com/jpmens/jo)\n- jq (https://stedolan.github.io/jq/ - with oniguruma regex)\n- jruby\n- jscheme\n- jython\n- k0s (https://github.com/k0sproject/k0s and https://docs.k0sproject.io/ - lens' small k8s distribution)\n- k0sctl (https://github.com/k0sproject/k0sctl - bootstrapping/management for k0s nodes)\n- k3s (https://k3s.io/ and https://github.com/k3s-io/k3s - small k8s distribution)\n- kawa (scheme)\n- kernelheaders (https://github.com/sabotage-linux/kernel-headers - from sabotage linux)\n- kind (https://kind.sigs.k8s.io/ - k8s in docker, pure go)\n- ksh93 (https://github.com/ksh93/ksh - up-to-date/patched at\u0026t ksh93 with ast build system)\n- kubernetes (binaries)\n  - kubectllatest (kubectl only)\n- kuroko (https://kuroko-lang.github.io/ and https://github.com/kuroko-lang/kuroko - small python-like dynamic language)\n- less (netbsdcurses)\n  - lessminimal (stripped down with small gnu termcap from bash)\n- lftp (https://lftp.yar.ru/)\n- libarchive (https://github.com/libarchive/libarchive and https://www.libarchive.org/ - libarchive.a, bsdtar/bsdcpio/bsdcat, gz/bz2/lzo/lz4/lzma/iso9660 fs/... support)\n- libassuan (https://gnupg.org/software/libassuan/index.html)\n- libatomicops\n- libb2 (https://github.com/BLAKE2/libb2 - blake2 library)\n- libbsd\n- libcap (https://mirrors.edge.kernel.org/pub/linux/libs/security/linux-privs/libcap2/)\n- libcapng (https://people.redhat.com/sgrubb/libcap-ng/ and https://github.com/stevegrubb/libcap-ng - posix capabilities lib)\n- libconfig (https://hyperrealm.github.io/libconfig/ and https://github.com/hyperrealm/libconfig)\n- libconfuse (https://github.com/libconfuse/libconfuse)\n- libedit (https://www.thrysoee.dk/editline/ - aka editline, from netbsd, line editing, history, etc., ncurses)\n  - libeditminimal (stripped down standalone libedit + small gnu termcap, from bash)\n  - libeditnetbsdcurses (same, with netbsdcurses)\n  - need a few symlinks for compat w/readline: https://github.com/sabotage-linux/sabotage/blob/master/pkg/libedit\n- libev (http://software.schmorp.de/pkg/libev.html)\n- libevent (no openssl support yet)\n- libffi\n- libgcrypt (https://gnupg.org/software/libgcrypt/index.html)\n  - libgcryptlts (LTS version)\n- libgit2\n- libgpgerror (https://gnupg.org/software/libgpg-error/index.html)\n- libidn (https://www.gnu.org/software/libidn/)\n- libidn2 (https://www.gnu.org/software/libidn/#libidn2)\n- libixp (https://github.com/0intro/libixp - ixpc - 9p client/library)\n- libksba (https://gnupg.org/software/libksba/index.html)\n- libmd (https://www.hadrons.org/software/libmd/)\n- libnl\n- liboop (https://www.lysator.liu.se/liboop/)\n- libpcap (https://www.tcpdump.org/ and https://www.tcpdump.org/release/ - packet capture library)\n  - libpcap19 (older version for compatibility? with iftop? i dunno)\n- libproxyprotocol (https://libproxyprotocol.com/ and https://github.com/kosmas-valianos/libproxyprotocol - haproxy PROXY protocol support)\n- libpsl (https://github.com/rockdaboot/libpsl \u0026 https://github.com/publicsuffix/list \u0026 https://publicsuffix.org/ - libidn2+libunistring, python3)\n- libressl (https://www.libressl.org/)\n  - libressl37 (old but default version that's still currently the current default by default, currently, until i can update to 3.8/3.9/4.x)\n  - libressl38\n  - libressl39\n  - libressl40\n  - libressl41\n- libretls (https://git.causal.agency/libretls/about/ - libtls from libressl on top of openssl)\n- libssh2 (openssl, zlib)\n  - libssh2libgcrypt (gcrypt, zlib)\n  - libssh2libressl (libressl, zlib)\n  - libssh2mbedtls (mbedtls, zlib)\n  - libssh2wolfssl (wolfssl via osp open source project port, zlib)\n- libsodium (https://github.com/jedisct1/libsodium)\n- libtasn1 (https://ftp.gnu.org/gnu/libtasn1/)\n- libtirpc (https://sourceforge.net/projects/libtirpc/ and http://git.linux-nfs.org/?p=steved/libtirpc.git;a=summary)\n- libtlsbearssl (https://github.com/michaelforney/libtls-bearssl - a standards-based tls lib implemented on top of bearssl)\n- libtom\n  - libtomcrypt (https://www.libtom.net/LibTomCrypt/ and https://github.com/libtom/libtomcrypt)\n  - libtommath (https://www.libtom.net/LibTomMath/ and https://github.com/libtom/libtommath)\n- libtool\n- libuargp (https://github.com/xhebox/libuargp - argp-standalone alternative w/argp_parse)\n- libucontext (https://github.com/kaniini/libucontext - glibc compat ucontext, opt-in)\n- libunistring (https://ftp.gnu.org/gnu/libunistring/)\n- libuv (https://github.com/libuv/libuv)\n- libxml2 (https://gitlab.gnome.org/GNOME/libxml2)\n  - libxml2minimal (no features)\n- libxo (https://github.com/Juniper/libxo and http://juniper.github.io/libxo/libxo-manual.html - html/json/xml output lib and xo cli)\n- libxslt (https://gitlab.gnome.org/GNOME/libxslt)\n  - libxsltminimal (no features, built against libxml2minimal)\n- libz (sortix, zlib fork https://sortix.org/libz/ - static and shared libs for compatibility with alpine/musl bins)\n- lighttpd (https://www.lighttpd.net/ - mbedtls - ssl/tls, webdav support)\n  - lighttpdminimal (zlib, pcre2, libbsd - not tls, webdav, etc.)\n- linenoise (https://github.com/antirez/linenoise)\n- links (http://links.twibright.com/ - openssl)\n  - linkslibressl (libressl)\n- lmdb (https://github.com/LMDB/lmdb and https://symas.com/lmdb/ - lighting memory-mapped database, dummy profile.d for now)\n- loksh (https://github.com/dimkr/loksh)\n- lsh (https://www.lysator.liu.se/~nisse/lsh/ - version 2.0, 2.1 has issues with separate/new nettle)\n  - lshsftpserver (`sftp-server` binary only for e.g. dropbear, tinyssh, ...)\n- lua (http://www.lua.org/ - 5.x release, may change! posix, no readline)\n  - lua54 (posix, barebones)\n  - lua53 (posix, barebones)\n  - lua52 (posix, barebones)\n  - lua51 (posix, barebones)\n- lynx (https://lynx.invisible-island.net/ - ncurses, openssl)\n  - lynxlibressl (ncurses, libressl)\n  - lynxnetbsdcurses (netbsdcurses, openssl)\n  - lynxnetbsdcurseslibressl (netbsdcurses, libressl)\n  - lynxnetbsdcursesslang (netbsdcurses slang, openssl)\n  - lynxnetbsdcursesslanglibressl (netbsdcurses slang, libressl)\n  - lynxslang (ncurses slang, openssl)\n  - lynxslanglibressl (ncurses slang, libressl)\n  - lynxminimal (slang with tiny termcap, libressl)\n- lz4 (https://github.com/lz4/lz4)\n- lzo (http://www.oberhumer.com/opensource/lzo)\n- lzip\n  - clzip\n  - lunzip\n  - lzip\n  - lziprecover\n  - lzlib\n  - pdlzip\n  - plzip\n  - zutils\n- m4\n- make (gnu)\n  - bootstrapmake (gnu make w/o gnu sed requirement)\n- mandoc (http://mandoc.bsd.lv/)\n- manpages, consisting of...\n  - man-pages (https://mirrors.edge.kernel.org/pub/linux/docs/man-pages/)\n  - man-pages-posix (https://mirrors.edge.kernel.org/pub/linux/docs/man-pages/man-pages-posix/)\n- maven (https://maven.apache.org - java build tool)\n- mawk (https://invisible-island.net/mawk/mawk.html)\n- mbedtls (polarssl)\n  - lts\n    - mbedtls2\n      - mbedtls228\n    - mbedtls3\n      - mbedtls36\n  -compat\n    - mbedtls216\n- meson (http://mesonbuild.com/)\n- mg (https://github.com/troglobit/mg - micro gnuemacs, netbsdcurses)\n  - mgminimal (no curses/terminfo/termcap, optimized for size)\n- microsocks (https://github.com/rofl0r/microsocks)\n- miller (https://github.com/johnkerl/miller - miller, aka mlr, awk/sed/grep/jq/... for csv, etc.)\n  - miller5 (mlr, old version in c)\n  - miller6 (mlr, reimplemented in go)\n- minikube (https://minikube.sigs.k8s.io/)\n- minio (https://github.com/minio/minio and https://min.io - s3-compatible object store)\n  - miniomc (https://github.com/minio/mc - minio `mc` client)\n  - docs: https://min.io/docs/minio/linux/index.html\n- minischeme (https://github.com/catseye/minischeme)\n- mksh (http://www.mirbsd.org/mksh.htm)\n- mosquitto (https://github.com/eclipse/mosquitto and https://mosquitto.org/ - mqtt broker \u0026 pub/sub client - openssl/cjson/c-ares)\n  - mosquittolibressl (libressl/cjson/c-ares)\n  - mosquittonotls (insecure/cjson/c-ares - no tls/ssl, INSECURE, plaintext, small, blah blah blah)\n- most (https://www.jedsoft.org/most/)\n  - mostnetbsdcurses (built with netbsdcurses terminfo and bundled slang)\n- mpc\n- mpfr\n- mtm (https://github.com/deadpixi/mtm - micro terminal multiplexer)\n- mujs (http://mujs.com/ and https://github.com/ccxvii/mujs)\n- muon (https://github.com/annacrombie/muon and https://muon.build/ - meson-alike in c, use with samurai (ninja) and pkgconf (pkg-config))\n- muslfts (https://github.com/pullmoll/musl-fts)\n- muslobstack (https://github.com/void-linux/musl-obstack - glibc obstack+some libiberty macros for musl)\n- muslstandalone (http://musl.libc.org/ - unbundled musl libc and kernel headers with musl-gcc wrapper, possibly different version from statictoolchain)\n  - musl11 (musl 1.1.x for compat)\n  - musl12 (musl 1.2.x with `oldmalloc` for compat)\n- n2n (https://github.com/ntop/n2n and https://www.ntop.org/products/n2n/ - peer-to-peer vpn with edge and supernodes for nat traversal - openssl/zstd/libcap/libpcap)\n  - n2nlibressl (libressl and zstd only, no libcap or libpcap)\n  - n2nminimal (no optional features)\n- nashorn (https://github.com/openjdk/nashorn and https://openjdk.org/projects/nashorn - barebones, standalone \"jjs\" javascript shell, no readline support/jrunscript/etc.)\n- nbsdgames (https://github.com/abakh/nbsdgames - new bsd games)\n- ncurses\n- neat/litcave stuff (http://litcave.rudi.ir/)\n  - neatvi (https://github.com/aligrudi/neatvi)\n- nebula (https://github.com/slackhq/nebula - mesh network overlay/vpn)\n- neofetch (https://github.com/dylanaraps/neofetch - terminal machine/os info)\n- neon (https://notroj.github.io/neon/ and https://github.com/notroj/neon - http/webdav library with openssl+expat)\n  - neongnutls (gnutls)\n  - neongnutlsminimal (gnutls + nettle w/mini-gmp)\n  - neonlibressl (libressl)\n- netbsdcurses (libedit, readline, slang bundled - **manual** CPPFLAGS/LDFLAGS for now - sabotage https://github.com/sabotage-linux/netbsd-curses)\n- netbsdwtf (https://github.com/void-linux/netbsd-wtf - \"wtf\" acronym finder from netbsd)\n- netcatopenbsd (from debian, https://salsa.debian.org/debian/netcat-openbsd)\n- netfilter.org stuff (WIP!!!)\n  - conntracktools (https://www.netfilter.org/projects/conntrack-tools/)\n  - iptables (https://www.netfilter.org/projects/iptables/)\n  - libmnl (https://www.netfilter.org/projects/libmnl/)\n  - libnetfilteracct (https://www.netfilter.org/projects/libnetfilter_acct/)\n  - libnetfilterconntrack (https://www.netfilter.org/projects/libnetfilter_conntrack/)\n  - libnetfiltercthelper (https://www.netfilter.org/projects/libnetfilter_cthelper/)\n  - libnetfiltercttimeout (https://www.netfilter.org/projects/libnetfilter_cttimeout/)\n  - libnetfilterlog (https://www.netfilter.org/projects/libnetfilter_log/)\n  - libnetfilterqueue (https://www.netfilter.org/projects/libnetfilter_queue/)\n  - libnfnetlink (https://www.netfilter.org/projects/libnfnetlink/)\n  - libnftnl (https://www.netfilter.org/projects/libnftnl/)\n  - nfacct (https://www.netfilter.org/projects/nfacct/index.html)\n  - nftables (https://www.netfilter.org/projects/nftables/)\n- netsurf libraries\n  - libparserutils (https://www.netsurf-browser.org/projects/libparserutils/)\n  - libwapcaplet (https://www.netsurf-browser.org/projects/libwapcaplet/)\n  - libhubbub (https://www.netsurf-browser.org/projects/hubbub/)\n  - libdom (https://www.netsurf-browser.org/projects/libdom/)\n  - libcss (https://www.netsurf-browser.org/projects/libcss/)\n- nettle (http://www.lysator.liu.se/~nisse/nettle/ and https://git.lysator.liu.se/nettle/nettle)\n  - nettleminimal (opt-in, standalone; bundled mini-gmp)\n- nextvi (https://github.com/kyx0r/nextvi - \"next\" version/fork of neatvi with some extra features/simplifications)\n- nghttp2 (https://github.com/nghttp2/nghttp2)\n- nginx (https://nginx.org/ - openssl and njs support)\n  - nginxlibressl (libressl and njs support)\n  - njs (http://nginx.org/en/docs/njs/index.html - nginx javascript cli tool, njs with libedit shell, libressl crypto)\n  - njsopenssl (njs with libedit shell, openssl crypto)\n  - njsquickjs (njs with libedit shell, libressl crypto and quickjs, with `-n QuickJS` cli support)\n  - njsminimal (njs with libedit shell, no crypto)\n  - njstiny (njs with no libedit shell, no crypto, no cli)\n- ninja (https://ninja-build.org/)\n- nmap\n- npt (https://github.com/nptcl/npt and https://nptcl.github.io/npt/docs/md/ - ansi common lisp implementation, terme display/repl)\n  - nptreadline (npt with netbsdcurses+readline)\n- npth (https://gnupg.org/software/npth/index.html)\n- ntbtls (https://gnupg.org/software/ntbtls/index.html)\n- nvi (via debian, https://salsa.debian.org/debian/nvi)\n- nvi179 (4bsd release from keith bostic, https://sites.google.com/a/bostic.com/keithbostic/vi)\n- oksh (https://github.com/ibara/oksh - netbsdcurses)\n  - okshsmall (limited prereqs, no curses/history support)\n- onetrueawk (https://github.com/onetrueawk/awk - the one true awk)\n- oniguruma (https://github.com/kkos/oniguruma)\n- openconnect (https://www.infradead.org/openconnect and https://gitlab.com/openconnect/openconnect - cisco/juniper/etc. vpn client, openssl)\n  - openconnectgnutls (gnutls)\n  - openconnectgnutlsminimal (gnutls+nettle w/mini-gmp)\n  - includes default `vpnc-script` (https://www.infradead.org/openconnect/vpnc-script.html and https://gitlab.com/openconnect/vpnc-scripts)\n- opendoas (https://github.com/Duncaen/OpenDoas - much simpler \"doas\" sudo replacement)\n- opennc (openbsd netcat - formerly http://systhread.net/coding/opennc.php)\n  - see netcatopenbbsd for bsd netcat as packaged by debian\n  - see libressl for tls-enabled `nc` command\n- openssh (openssl, netbsdcurses, libedit, zlib)\n  - opensshminimal (no openssl, built-in auth/key/cipher/mac/... only, netbsdcurses, libedit, zlib)\n  - opensshlibressl (libressl, netbsdcurses, libedit, zlib)\n  - opensshwolfssl (patches from wolfssl osp project - netbsdcurses, libedit, zlib)\n- openssl\n  - openssl111 (deprecated lts version, still default. whoops)\n  - openssl30 (old lts version)\n  - openssl35 (current lts version)\n- openvpn (https://openvpn.net/community-downloads/ and https://github.com/OpenVPN/openvpn - openssl, zlib, lz4, lzo)\n  - openvpnlibressl (libressl, lz4, lzo)\n  - openvpnmbedtls (mbedtls, lz4, lzo)\n  - openvpnwolfssl (wolfssl, lz4, lzo)\n- opkg (https://git.yoctoproject.org/opkg - WIP .ipk package manager, libarchive/curl/openssl/gnupg/gpgme)\n- otools (https://github.com/CarbsLinux/otools - carbs linux openbsd ports)\n- outils (https://github.com/leahneukirchen/outils - utils from openbsd, including jot/rs/vis/unvis/etc.)\n- p7zip\n- par (http://www.nicemice.net/par/ and https://bitbucket.org/amc-nicemice/par/src/master/)\n- pass (https://www.passwordstore.org/)\n- patch (gnu)\n- patchelf (https://nixos.org/patchelf.html and https://github.com/NixOS/patchelf)\n- paxmirabilis (http://www.mirbsd.org/pax.htm - pax/tar/cpio from mirbsd)\n- pcc (http://pcc.ludd.ltu.se/)\n  - only x86_64 for now!\n  - kinda painful for static compilation, segfaults, etc.\n  - not sure on `crt?.o` files either\n  - uses muslstandalone as libc\n- pcre\n- pcre2\n- pdpmake (https://github.com/rmyorston/pdpmake - public domain posix make)\n- perl\n- pinentry (curses via ncurses, tty)\n- pixman (http://www.pixman.org/ and https://www.cairographics.org/releases/)\n- pkgconfig\n- plan9port (https://github.com/9fans/plan9port - without gui/x11; suckless 9base available and much smaller)\n  - plan9port9p (9p, 9pfuse standalone binaries from plan9port)\n- posixstandard (https://pubs.opengroup.org/onlinepubs/9699919799/download/index.html - posix/sus (single unix specification) docs for personal use)\n- ppp (https://github.com/ppp-project/ppp - paul's ppp package, static minimal pppd+chat, no pcap/tls/peap/eap/...)\n  - ppplibressl (libressl, pcap, plugins - shared)\n  - pppopenssl (openssl, pcap, plugins - shared)\n- pv (http://www.ivarch.com/programs/pv.shtml and https://github.com/a-j-wood/pv - pv pipe viewer pipeviewer)\n- px5g (https://github.com/openwrt/openwrt/tree/master/package/utils/px5g-mbedtls - mbedtls cert/key gen program)\n  - px5gwolfssl (https://github.com/openwrt/openwrt/tree/master/package/utils/px5g-wolfssl - px5g built with wolfssl)\n- python\n  - python2 (very basic support)\n  - python3 (wip)\n- qemacs (https://bellard.org/qemacs/)\n- qemuuser (https://www.qemu.org/ - linux userspace only for now)\n- quickjs (https://bellard.org/quickjs/)\n- rc (https://github.com/muennich/rc - netbsdcurses+readline, fork of tobold+rakitzis rc, basic Makefile)\n  - rc174 (http://tobold.org/article/rc, https://github.com/rakitzis/rc - ncurses+readline, needs to be git hash, old release)\n- rclone (https://rclone.org and https://github.com/rclone/rclone - rsync for cloud/sftp/etc., go, union mounts?)\n- rcs (gnu)\n- readline (https://tiswww.case.edu/php/chet/readline/rltop.html - terminal command history, completion, etc., ncurses)\n  - readlinenetbsdcurses (same, netbsdcurses)\n- reflex (https://invisible-island.net/reflex/reflex.html)\n- retawq (http://retawq.sourceforge.net/ - text-mode windowed network/web browser, ncurses and openssl)\n  - retawqlibressl (ncurses, libressl)\n- rhino\n- rlwrap (netbsdcurses)\n  - rlwrapminimal (stripped down with small gnu termcap from bash)\n- rogue\n- rpcsvcproto (https://github.com/thkukuk/rpcsvc-proto - contains rpcgen)\n- rrredir (https://github.com/rofl0r/rrredir)\n- rsync (https://rsync.samba.org/)\n  - rsyncminimal (fewer deps, smaller, but lower performance)\n- samurai (https://github.com/michaelforney/samurai - small ninja alternative in c)\n- sc (from debian, https://packages.debian.org/buster/sc)\n- scheme48 (http://s48.org)\n- scm (http://people.csail.mit.edu/jaffer/SCM.html and http://people.csail.mit.edu/jaffer/SLIB.html - scm scheme with slib library)\n  - slib (https://people.csail.mit.edu/jaffer/SLIB - standalone slib for easier integration in other schemes; gambit/gauche/guile/kawa/scheme48/sisc/...)\n- screen (https://www.gnu.org/software/screen - terminal multiplexer, netbsdcurses)\n  - screenminimal (limited functionality using bash libtermcap)\n- sdbm (https://github.com/jaydg/sdbm - dbm/ndbm alike, updated for modern systems, with ndbm.h and libndbm.a symlinks)\n- sdkman (http://sdkman.io)\n- sed (gnu gsed, prepended to $PATH, becomes default sed)\n- sharutils (https://www.gnu.org/software/sharutils/)\n- shellbench (https://github.com/shellspec/shellbench)\n- shellinabox (https://github.com/shellinabox/shellinabox)\n- shellish (https://github.com/ryanwoodsmall/shell-ish - some random texts from my script bucket)\n- simh (system simulator - currently opensimh)\n  - opensimh (https://github.com/open-simh/simh - fork/further development of simh 3+4?)\n  - simh3 (http://simh.trailing-edge.com - classic simh 3.x)\n  - simh4 (https://github.com/simh/simh - system simulator...?)\n- sisc (scheme)\n- slang (https://www.jedsoft.org/slang/ - s-lang programmers library, ncurses)\n  - slangnetbsdcurses (same, netbsdcurses)\n  - slangminimal (only tiny termcap from bash)\n- slibtool (https://github.com/midipix-project/slibtool)\n- slip tools (full slattach, etc.)?\n- slirp???\n- slsc (jedsoft \"sc\" console spreadsheet for slang)\n- socat (http://www.dest-unreach.org/socat/ - openssl, netbsdcurses, readline)\n  - socatlibressl (libressl, netbsdcurses, readline)\n  - socatminimal (no tls/ssl, no readline - socket, port, file, etc. *only*)\n  - socatwolfssl (https://github.com/wolfSSL/osp - from wolfssl open source project ports with readline support)\n- source-highlight (https://www.gnu.org/software/src-highlite/)\n  - OLD 1.x version\n  - limited language support, though\n- strace (https://strace.io/ and https://github.com/strace/strace)\n- stunnel (https://www.stunnel.org/ - openssl)\n  - stunnellibressl (libressl build)\n- sqlite\n- sslh (https://www.rutschle.net/tech/sslh/README.html and https://www.rutschle.net/tech/sslh/README.html - ssl/protocol multiplexer, with libconfig/pcre2/libcap support)\n  - sslhminimal (no libcap/capabilities support)\n  - sslhtiny (zero features, no capabilities, config file or regex support)\n- suckless\n  - 9base (https://tools.suckless.org/9base)\n  - sbase (https://core.suckless.org/sbase)\n  - ubase (https://core.suckless.org/ubase)\n- svnkit\n- sysklogd (https://github.com/troglobit/sysklogd - bsd syslog on linux, newer rfc compliant)\n- tea (https://gitea.com/gitea/tea - gitea cli)\n- termcap (https://www.gnu.org/software/termutils/ - old standalone gnu termcap library)\n- termutils (https://www.gnu.org/software/termutils/ - tabs and tput)\n- tetrisbsd (https://github.com/sirjofri/tetris-bsd)\n- texinfo (untested, requires perl)\n- tig (https://github.com/jonas/tig - console git repo pager/browser/ui, ncurses)\n  - tignetbsdcurses (same, netbsdcurses with builtin termcap)\n- tinc (https://www.tinc-vpn.org/ - meshed routing compressed/encrypted vpn, openssl+zlib+lzo)\n  - tinclibressl (same, with libressl instead of openssl)\n- tini (small init for containers, https://github.com/krallin/tini)\n- tinycc\n  - tcc from gnu guix mirror\n  - https://ftp.gnu.org/pub/gnu/guix/mirror/)\n  - sorta works?\n  - static is broken, like...\n  - default shared lib seems to work?\n  - `tcc -run file.c` seems to work on x86_64\n  - everything else is kinda broken\n  - tcc from git probably a better option\n  - uses muslstandalone as libc\n- tinyccmob (https://repo.or.cz/tinycc.git)\n  - more up-to-date tcc from git snapshot\n  - x86_64 \"works\"-ish\n  - static still has issues\n  - shared seems to work for hello world stuff\n  - uses muslstandalone as libc\n- tinycurl (https://curl.se/tiny/ - curl but smaller, focus on http/https)\n  - tinycurlbearssl (bearssl, zlib, nghttp2)\n  - tinycurllibressl (libressl, libssh2, zlib, nghttp2)\n  - tinycurlmbedtls (mbedtls, libssh2, zlib, nghttp2)\n  - tinycurlopenssl (openssl, libssh2, zlib, nghttp2)\n  - tinycurlwolfssl (wolfssl, libssh2, zlib, nghttp2)\n  - tinycurl779\n    - tinycurl779bearssl (bearssl, zlib, nghttp2)\n    - tinycurl779libressl (libressl, libssh2, zlib, nghttp2)\n    - tinycurl779mbedtls (mbedtls, libssh2, zlib, nghttp2)\n    - tinycurl779openssl (openssl, libssh2, zlib, nghttp2)\n    - tinycurl779wolfssl (wolfssl, libsshw, zlib, nghttp2)\n  - tinycurl772\n    - tinycurl772bearssl (bearssl, zlib, nghttp2)\n    - tinycurl772libressl (libressl, libssh2, zlib, nghttp2)\n    - tinycurl772mbedtls (mbedtls, libssh2, zlib, nghttp2)\n    - tinycurl772openssl (openssl, libssh2, zlib, nghttp2)\n    - tinycurl772wolfssl (wolfssl, libsshw, zlib, nghttp2)\n  - babycurl (mbedtls, libssh2, zlib)\n  - babycurlwolfssl (wolfssl, libssh2, zlib)\n  - picocurl (bearssl, zlib)\n    - picocurlmbedtls (mbedtls, zlib, libssh2)\n- tinyemu (https://bellard.org/tinyemu/ - risc-v 32/64, risc-v 128 on x86_64/aarch64, x86 w/kvm on x86_64/i686; openssl/curl support, no sdl)\n  - tinyemulibressl (libressl/curl, no sdl)\n- tinyproxy (https://tinyproxy.github.io/ and https://github.com/tinyproxy/tinyproxy)\n- tinyscheme (http://tinyscheme.sourceforge.net/home.html)\n- tinyssh (https://tinyssh.org and https://github.com/janmojzis/tinyssh - small, pubkey/ed25519, ssh server only)\n- tio (https://tio.github.io and https://github.com/tio/tio)\n- tmux (https://github.com/tmux/tmux - terminal multiplexer)\n- tmuxmisc (https://github.com/ryanwoodsmall/tmux-misc - couple of scripts i use)\n- tnftp (ftp://ftp.netbsd.org/pub/NetBSD/misc/tnftp/)\n- tnftpd (ftp://ftp.netbsd.org/pub/NetBSD/misc/tnftp/ and https://en.wikipedia.org/wiki/Tnftp - formerly lukemftp)\n- toybox (static)\n- tree (http://mama.indstate.edu/users/ice/tree/)\n  - tree1 (tree version 1.x, compatible with pass release 1.7.4)\n  - tree2 (tree version 2.x)\n- troglobit stuff\n  - editline (https://github.com/troglobit/editline - minix readline-like)\n  - inadyn (https://github.com/troglobit/inadyn - dynamic dns updater, openssl)\n    - inadyngnutls (gnutls)\n    - inadyngnutlsminimal (gnutlsminimal built with nettleminimal/mini-gmp)\n    - inadynlibressl (libressl)\n    - inadynmbedtls (mbedtls)\n  - libite (https://github.com/troglobit/libite - sys/queue, sys/tree interfaces in lite/)\n  - libuev (https://github.com/troglobit/libuev - lightweight event loop)\n  - mdnsd (https://github.com/troglobit/mdnsd - multicast dns daemon, mdsresponder, mdns-sd, etc.)\n  - mg (see above)\n  - minisnmpd (https://github.com/troglobit/mini-snmpd and https://troglobit.com/projects/mini-snmpd/)\n  - redir (https://github.com/troglobit/redir -tcp redirect)\n  - sntpd (https://github.com/troglobit/sntpd - ntp client/server/...)\n  - ttinfo (https://github.com/troglobit/ttinfo - display info about a tty or (controlling) process)\n  - uftpd (https://github.com/troglobit/uftpd - small ftp/tftp server)\n  - uredir (https://github.com/troglobit/uredir - udp redirect)\n- txt2man (https://github.com/mvertes/txt2man - plain text to man page converter?)\n- u9fs (https://github.com/Plan9-Archive/u9fs - userspace 9p server, recently updated, works without rhosts stuff)\n  - no auth serve w/busybox or toybox: `tcpsvd -E -v 0.0.0.0 564 ./u9fs -D -z -a none -u username /path/to/share`\n  - access from remote host w/plan 9 from user space: `9p -a 'tcp!hostname.domain.name!564' ls /`\n  - **plan9port9p** recipe provides `9p` client\n  - **libixp** recipe provides `ixpc` 9p client\n- uacme (https://github.com/ndilieto/uacme - standalone acme/letsencrypt client in c, curl+openssl)\n  - uacmelibressl (curl+libressl)\n  - uacmegnutls (curl+gnutls)\n  - uacmegnutls (curl+gnutlsminimal built with nettleminimal/mini-gmp)\n  - uacmembedtls (curl+mbedtls)\n- uemacs (https://git.kernel.org/pub/scm/editors/uemacs/uemacs.git/ - micro-emacs)\n- unfs3 (https://unfs3.github.io/ and https://github.com/unfs3/unfs3)\n- units (https://www.gnu.org/software/units - gnu unit conversion cli program)\n- unrar\n- unzip\n- utillinux\n- uucp (https://www.airs.com/ian/uucp.html and https://www.gnu.org/software/uucp/)\n- vile (https://invisible-island.net/vile/)\n- vim (https://github.com/vim/vim and https://www.vim.org/ - ncurses, with syntax highlighting, which chrome/chromium os vim lacks)\n  - vimminimal (termcap lib and database from bash and gnu termcap, no scripting w/lua, no encryption w/libsodium, ...)\n  - vimnetbsdcurses (netbsdcurses)\n- vultrcli (https://github.com/vultr/vultr-cli - vultr-cli program)\n- w3m (https://github.com/tats/w3m)\n- webhook (https://github.com/adnanh/webhook - webhook to shell server in go)\n- wget (https://www.gnu.org/software/wget/ - openssl)\n  - wgetgnutls (gnutls variant)\n  - wgetgnutlsminimal (gnutls variant with nettleminimal/mini-gmp)\n  - wgetlibressl (libressl instead of openssl)\n- wget2 (https://www.gnu.org/software/wget/ - openssl)\n  - wget2gnutls (full gnutls variant)\n  - wget2gnutlsminimal (minimal gnutls with nettleminimal/mini-gmp)\n  - wget2libressl (libressl)\n  - wget2wolfssl (wolfssl)\n- wireguard (https://www.wireguard.com/)\n  - wgctrlgo (https://github.com/WireGuard/wgctrl-go - wireguard interface control program in go)\n  - wireguardgo (https://git.zx2c4.com/wireguard-go - userspace wireguard go client)\n  - wireguardtools (https://git.zx2c4.com/wireguard-tools - wireguard wg and wg-quick tools)\n- wolfmqtt (https://www.wolfssl.com/products/wolfmqtt/ and https://github.com/wolfSSL/wolfMQTT - tls-enabled mqtt lib and examples for wolfssl)\n- wolfssh (https://www.wolfssl.com/products/wolfssh/ and https://github.com/wolfSSL/wolfssh - ssh lib and examples for wolfssl)\n- wolfssl (https://www.wolfssl.com/ and https://github.com/wolfSSL/wolfssl - formerly cyassl)\n- x509cert (https://git.sr.ht/~mcf/x509cert and https://github.com/michaelforney/x509cert - bearssl cert/request utility)\n- xinetd (https://github.com/openSUSE/xinetd forked from https://github.com/xinetd-org/xinetd)\n- xmlstarlet (http://xmlstar.sourceforge.net/)\n- xvi (http://martinwguy.github.io/xvi/)\n- xxhash (https://github.com/Cyan4973/xxHash)\n- xz (https://tukaani.org/xz/)\n- yash (http://yash.osdn.jp/ and https://github.com/magicant/yash - yash posix shell, with arrays; netbsdcurses+libedit)\n  - yashminimal (no line editing)\n- yaegi (https://github.com/traefik/yaegi - go interpreter in go!)\n- yj (https://github.com/sclevine/yj - yaml/toml/json/hcl converter in go)\n- ynetd (https://github.com/johnsonjh/ynetd and https://yx7.cc/code/ - minimal tcp/inetd server)\n- zip\n- zlib\n- zlibng (https://github.com/zlib-ng/zlib-ng - fork with vector support, compiled static ~and shared~ with `libz.a` compat lib ~and `libz.so.1`~ created as well)\n- zstd (https://github.com/facebook/zstd)\n- zulu - built-in recipe, glibc-based for bootstrapping (chrome os, centos, debian, ubuntu, ...)\n  - zulu8glibc - zulu 8 jdk\n  - zulu11glibc - zulu 11 jdk\n  - zulu17glibc - zulu 17 jdk\n  - zulu8musl - zulu 8 jdk built against musl libc (x86_64, aarch64 only)\n  - zulu11musl - zulu 11 jdk built against musl libc (x86_64, aarch64 only)\n  - zulu17musl - zulu 17 jdk built against musl libc (x86_64, aarch64 only)\n  - zulu21musl - zulu 21 jdk built against musl libc (x86_64, aarch64 only)\n\n## deprecated/broken/disabled recipes\n\n- bsdheaders (https://github.com/bonsai-linux/bsd-headers - from bonsai linux, workaround DECLS for cdefs.h)\n  - upstream repo went missing\n- (old) ksh93 (https://github.com/att/ast/ via at\u0026t ast)\n  - actually ksh2020\n  - dormant\n- libmetalink (https://github.com/metalink-dev/libmetalink)\n  - supported only in wget, which tries to bring in gpgme and its assorted deps; easier to remove for now\n\n\u003c!--\n# vim: ft=markdown\n--\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fryanwoodsmall%2Fcrosware","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fryanwoodsmall%2Fcrosware","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fryanwoodsmall%2Fcrosware/lists"}