{"id":13529374,"url":"https://github.com/ibara/oksh","last_synced_at":"2025-04-07T21:14:46.865Z","repository":{"id":25409602,"uuid":"28838598","full_name":"ibara/oksh","owner":"ibara","description":"Portable OpenBSD ksh, based on the Public Domain Korn Shell (pdksh).","archived":false,"fork":false,"pushed_at":"2025-02-23T18:37:21.000Z","size":744,"stargazers_count":373,"open_issues_count":10,"forks_count":39,"subscribers_count":15,"default_branch":"main","last_synced_at":"2025-03-31T20:06:55.742Z","etag":null,"topics":["bsd","c","kornshell","ksh","openbsd","shell","unix","unix-shell"],"latest_commit_sha":null,"homepage":"","language":"C","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/ibara.png","metadata":{"files":{"readme":"README.md","changelog":"history.c","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}},"created_at":"2015-01-06T00:17:06.000Z","updated_at":"2025-03-13T08:03:37.000Z","dependencies_parsed_at":"2023-01-14T02:41:37.349Z","dependency_job_id":"5df3710b-1ca9-4b35-b386-587beb56ca13","html_url":"https://github.com/ibara/oksh","commit_stats":{"total_commits":231,"total_committers":24,"mean_commits":9.625,"dds":0.2683982683982684,"last_synced_commit":"9756b4f29712c07b7c9eb9b78a83db39c5b6c5ca"},"previous_names":[],"tags_count":14,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ibara%2Foksh","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ibara%2Foksh/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ibara%2Foksh/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ibara%2Foksh/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ibara","download_url":"https://codeload.github.com/ibara/oksh/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247730069,"owners_count":20986404,"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":["bsd","c","kornshell","ksh","openbsd","shell","unix","unix-shell"],"created_at":"2024-08-01T07:00:35.793Z","updated_at":"2025-04-07T21:14:46.838Z","avatar_url":"https://github.com/ibara.png","language":"C","readme":"oksh\n====\nPortable OpenBSD `ksh(1)`. Not an official OpenBSD project.\n\nWhy?\n----\nBecause all operating systems deserve a good shell.\n\nUnlike other ports of OpenBSD ksh, this port is entirely self-contained and aims to be maximally portable across operating systems and C compilers.\nWe are always looking for new combinations to add support for.\n\nSupported systems\n-----------------\n`oksh` is known to run on the following Operating Systems:\n* OpenBSD\n* FreeBSD\n* DragonFly BSD\n* NetBSD\n* HardenedBSD\n* SoloBSD (as the default shell)\n* Mac OS X (port originally by @geoff-nixon)\n* Linux (glibc and musl)\n* Cygwin\n* Android (via Termux)\n* AIX (with major thanks to @tssva and @NattyNarwhal)\n* IBM i PASE\n* Solaris\n* Illumos\n* midipix\n* WSL\n* WSL2\n* Unixware 7\n* Haiku\n* HP-UX (gcc only)\n* SerenityOS\n* MSYS2\n\nRunning on a system not listed here? Add it and send a pull request!\n\nBelieved working\n----------------\nWe believe that `oksh` will work on the following platforms, but testing is needed.\nHelp is greatly appreciated and encouraged!\n* Irix\n\nSupported compilers\n-------------------\n`oksh` is known to build with the following C compilers:\n* [clang](https://llvm.org/)\n* [gcc](https://gcc.gnu.org/)\n* [pcc](http://pcc.ludd.ltu.se/)\n* [cparser](https://pp.ipd.kit.edu/firm/)\n* [xlc](https://www.ibm.com/us-en/marketplace/ibm-c-and-c-plus-plus-compiler-family)\n* [Sun Studio compiler](https://www.oracle.com/technetwork/server-storage/developerstudio/overview/index.html)\n* [lacc](https://github.com/larmel/lacc)\n* Optimizing C Compilation System  (CCS) 4.2  03/27/14 (uw714mp5.bl4s)\n* [Tiny C Compiler](https://bellard.org/tcc/)\n* [CompCert](https://compcert.org/)\n* [Nils Weller's C compiler](http://nwcc.sourceforge.net/)\n* [cproc](https://sr.ht/~mcf/cproc/) (Currently requires a small tweak to ignore a volatile store error)\n* [vbcc](http://www.compilers.de/vbcc.html) (Only tested on OpenBSD/i386)\n* [chibicc](https://github.com/rui314/chibicc)\n* [kefir](https://git.sr.ht/~jprotopopov/kefir)\n* IBM XL C/C++ Advanced Edition Version 6.0 for Mac OS X (tested on Tiger)\n\nBuilding with a compiler not listed here? Add it and send a pull request!\n\nPackages\n--------\n`oksh` is included in some package systems.\n\n[![Packaging status](https://repology.org/badge/vertical-allrepos/oksh.svg)](https://repology.org/project/oksh/versions)\n\nIn addition, there are some unofficial packages:\n* [Ubuntu PPA](https://launchpad.net/~dysfunctionalprogramming/+archive/ubuntu/oksh)\n* [Debian](https://software.opensuse.org//download.html?project=home%3AHead_on_a_Stick%3Aoksh\u0026package=oksh)\n\nUsing a package not listed here? Add it and send a pull request!\n\nDependencies\n------------\nA C99 compiler is the easiest way to ensure that `oksh` will build correctly.\nPlease see the list of C compilers above for a list of known working compilers.\n\nThough not required, the `ncurses` library will be used for screen clearing\nroutines if the library is found during the `configure` stage. This can be\nturned off by the user by passing the `--disable-curses` flag to `configure`.\n\nA `configure` script that produces a `POSIX` `Makefile` is provided to\nease building and installation and can be run by:\n```\n$ ./configure\n$ make \u0026\u0026 sudo make install\n```\n\nOut-of-tree builds\n------------------\nThe `configure` script will detect out-of-tree builds if you prefer to\nbuild out-of-tree. In order for this to work, the `VPATH` make extension\nis used. While not POSIX, `VPATH` is known to work with BSD make and GNU\nmake. In-tree builds create a fully POSIX `Makefile`.\n\nCross compiling\n---------------\nCross compiling can be achieved by running `configure` as follows:\n```\nCC=/path/to/cross/cc CFLAGS=\"any needed cflags\" LDFLAGS=\"any needed ldflags\" ./configure --no-thanks\n```\n\nThis will skip all `configure` checks and write out a generic `Makefile`\nand `pconfig.h` with nearly no options turned on. If using a cross gcc\nor clang, this very well may just work (with all compat compiled in).\nYou can edit these files to reflect your system before running `make`.\n\nAll environment variables and configure flags are respected when using\n`--no-thanks`. Further specifying `--no-link` after `--no-thanks` will\nonly compile the source files into object files, to be transfered onto\nthe target machine and linked there.\n\nThe `--no-thanks` flag can also be used to compile a native `oksh` with\nall the compatibility functions compiled in, rather than relying on the\nsystem's version of those functions.\n\nSubmitting patches\n------------------\nPatches that add new platforms and improve support for existing platforms\nare always welcome.\n\nPatches that cause `oksh` to deviate from upstream OpenBSD ksh behavior\nare better suited to be sent to the\n[OpenBSD tech@](https://www.openbsd.org/mail.html)\nmailing list. Please make sure to test your patch on an OpenBSD machine\nfirst before submitting it to tech@. I will sync with the upstream \nOpenBSD code once your patch is accepted. If you'd like to open an issue\nhere to track progress of your patch on tech@, that's fine.\n\nLicense\n-------\nThe main Korn shell files are public domain (see `LEGAL`).\nPortability files are BSD or ISC licensed; see individual file headers\nfor details.\n\nGet a tarball\n-------------\nSee releases tab. The latest release is oksh-7.6, which matches the ksh(1)\nfrom OpenBSD 7.6, released October 8, 2024.\n","funding_links":[],"categories":["Portable OpenBSD Components","Shells","Packages","\u003ca name=\"shells\"\u003e\u003c/a\u003eShells"],"sub_categories":["Interviews with OpenBSD developers","Shells"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fibara%2Foksh","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fibara%2Foksh","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fibara%2Foksh/lists"}