oasislinux/oasis
repository·master·Indexed 25 days ago
https://github.com/oasislinux/oasisA small, statically-linked Linux system designed for simplicity and reproducibility. Following BSD-like principles, oasis avoids traditional package managers in favor of a specification-based filesystem generation system and minimal dependencies.
What's inside oasis
- libxkbcommon is a library used for handling X Keyboard Extension (XKB) configuration. It provides a way to process keyboard layouts and keymaps.
Overview of nsd authoritative name server
masternsd is an authoritative name server component within the oasis project.Overview of oasis Linux system
masteroasis is a small Linux system designed with principles similar to BSD. It focuses on simplicity, static linking, and reproducible builds. Key characteristics include:
- Static Linking: All base system software (including the
veloxdisplay server andnetsurfweb browser) is completely statically linked for self-contained binaries. - Reproducible Builds: Uses
samuraiand Lua scripts for fast, predictable, and incremental builds. - Minimal Bootstrap: Can be bootstrapped from any POSIX system with
git,lua,curl,sha256, standard compression utilities, and anx86_64-linux-muslcross compiler. - TLS/Crypto: Uses
BearSSLthroughout the system vialibcurlandlibtls-bearssl. - No Package Manager: Instead of a traditional manager, users configure
specificationsof files/packages to include, and the build system generates a filesystem tree in a git repository. - Extensibility: Integrates with OS-agnostic package systems like
pkgsrcandnixto add software outside the base system. - Simple Configuration: The
/etcdirectory is designed to be minimal and easy to understand; for example, the system initialization script/etc/rc.initis only 16 lines long. - ISO C Conformity: Aims to build with
cproc, a strict and small ISO C compiler.
- Static Linking: All base system software (including the
Overview of kbd keyboard utilities
masterThekbdpackage provides keyboard layouts and utilities specifically designed for the Linux console.Overview of fontconfig usage in oasis
masterIn the oasis ecosystem,fontconfigis currently a dependency used exclusively bydmenu,st,velox, andwld. Note that this dependency is intended to be temporary and should be removed once those specific programs are updated to open font files directly.Overview of util-linux in Oasis
masterTheutil-linuxcomponent in this repository is configured with a specific set of enabled features and libraries, primarily focused on filesystem paths, filesystem checking (fsck), and block device/mount utilities. Note that whilelibblkidandlibmountare enabled during configuration, they are not required for buildingfdisk.Configure the expat package
masterWhen building the
expatpackage within the oasis environment, use the./configurescript with specific flags to point to the OpenBSD include and library directories. This ensures the build correctly links against the required OpenBSD headers and thebsdlibrary../configure \ CPPFLAGS=-I/src/oasis/pkg/openbsd/include \ LDFLAGS='-L/src/oasis/pkg/openbsd' \ LIBS='-lbsd'Configure PCRE with specific build flags
masterWhen building PCRE for this project, use the following
./configureflags to ensure the correct feature set is enabled, including JIT support, UTF-8, and Unicode properties, while disabling C++ and shared library support../configure \ --disable-cpp \ --disable-shared \ --enable-jit \ --enable-utf8 \ --enable-unicode-propertiesConfigure alsa-lib build with specific flags
masterWhen building
alsa-libwithin this repository, use the following./configurecommand to disable hardware dependency (hwdep), Universal Code Library (ucm), and the requirement forlibdl../configure \ --prefix= \ --disable-hwdep \ --disable-ucm \ --without-libdlBuild libxkbcommon with Meson
masterTo build libxkbcommon with specific configuration paths and disabled X11/Wayland support, use the Meson build system with the following flags. This configuration sets the XKB config root to
/share/xkband the X locale root to/share/xlocale.meson \ --prefix=/ \ -Dxkb-config-root=/share/xkb \ -Dx-locale-root=/share/xlocale \ -Denable-x11=false \ -Denable-wayland=false \ -Denable-docs=false \ buildInstall oasis Linux
masterFor detailed installation instructions, refer to the official oasis wiki.
Note: oasis is an ambitious project. Users should be prepared to build their own kernel and tinker with the system configuration if issues arise.
Configure libass with custom Freetype and FriBidi paths
masterWhen building
libasswithin the Oasis environment, you may need to generate aconfig.hfile using a specific./configurecommand that points to custom paths forFreetypeandFriBidi. This ensureslibasslinks against the specific versions of these libraries provided by the Oasis package system rather than system-wide providers../configure \ --disable-require-system-font-provider \ FREETYPE_CFLAGS=-I/src/oasis/pkg/freetype/src/include \ FREETYPE_LIBS=/src/oasis/out/pkg/freetype/libfreetype.a \ FRIBIDI_CFLAGS=-I/src/oasis/out/pkg/fribidi/include \ FRIBIDI_LIBS=/home/michael/src/oasis/out/pkg/fribidi/libfribidi.a