diff --git a/config/aarch64/ci.toml b/config/aarch64/ci.toml new file mode 100644 index 0000000..1d184f3 --- /dev/null +++ b/config/aarch64/ci.toml @@ -0,0 +1,320 @@ +# The Redox build server configuration + +# General settings +[general] +# Do not prompt if settings are not defined +prompt = false + +# Package settings +[packages] + +# If you need to disable some broken package comment out instead of removal to not increase the maintenance cost +#TODO: commented out recipes need to be built and tested inside of Redox to verify if they returned to work + +# Meta-packages below + +# auto-test = {} +# dev-essential = {} +# dev-redox = {} +# redox-tests = {} +# x11-minimal = {} +# x11-full = {} + +# Normal packages below + +acid = {} +acid-bins = {} +base = {} +base-initfs = {} +bash = {} +bash-completion = {} +bootloader = {} +bottom = {} +ca-certificates = {} +contain = {} +coreutils = {} +cosmic-edit = {} +cosmic-files = {} +cosmic-icons = {} +cosmic-term = {} +cosmic-text = {} +curl = {} +dash = {} +dejavu = {} +diffutils = {} +expat = {} +extrautils = {} +findutils = {} +freefont = {} +freetype2 = {} +gcc13 = {} +gettext = {} +git = {} +gnu-binutils = {} +gnu-make = {} +hicolor-icon-theme = {} +installer = {} +installer-gui = {} +ion = {} +kernel = {} +kibi = {} +libffi = {} +libgcc = {} +libiconv = {} +libjpeg = {} +libogg = {} +liborbital = {} +libpng = {} +libstdcxx = {} +libvorbis = {} +libxkbcommon = {} +libxml2 = {} +llvm21 = {} +nano = {} +nasm = {} +ncurses = {} +netdb = {} +netsurf = {} +netutils = {} +nghttp2 = {} +openssl1 = {} +openssl3 = {} +orbdata = {} +orbital = {} +orbterm = {} +orbutils = {} +patch = {} +patchelf = {} +pcre = {} +pkgutils = {} +pls = {} +pop-icon-theme = {} +redoxfs = {} +relibc = {} +ripgrep = {} +rust = {} +rustpython = {} +sdl1 = {} +sed = {} +shared-mime-info = {} +smith = {} +terminfo = {} +userutils = {} +uutils = {} +vim = {} +xz = {} +zlib = {} +zstd = {} +# #"gcc13.cxx" = {} +# #"llvm21.clang" = {} +# #"llvm21.clang-dev" = {} +# #"llvm21.dev" = {} +# #"llvm21.lld" = {} +# #"llvm21.lld-dev" = {} +# #"llvm21.runtime" = {} +# #"python312.dev" = {} +# #"rust.doc" = {} +# #atk = {} # depends on glib which does not build +# #benchmarks = {} +# #binutils-gdb = {} +# #book = {} +# #cairo-demo = {} # linking errors +# #classicube = {} +# #cmake = {} +# #cmatrix = {} # needs ncursesw now +# #cookbook = {} +# #cosmic-reader = {} +# #cosmic-settings = {} +# #cosmic-store = {} +# #devilutionx = {} +# #dynamic-example = {} +# #fal +# #fd = {} # ctrlc-3.1.1 +# #file = {} +# #flycast = {} +# #freeciv = {} +# #freeglut = {} +# #friar = {} # mio patch +# #game-2048 = {} # rustc-serialize +# #gawk = {} # langinfo.h +# #gigalomania = {} # old recipe format +# #gitoxide = {} +# #goaccess = {} +# #gstreamer = {} # conflict with thread local errno +# #harfbuzz = {} # depends on glib which does not build +# #helix = {} +# #hello-redox = {} +# #hematite = {} # needs crate patches for redox-unix +# #hf = {} +# #ibm-plex = {} +# #iced = {} +# #jansson = {} # needs config.sub update +# #jq = {} +# #libarchive = {} +# #libatomic = {} +# #libcosmic = {} +# #libflac = {} +# #libmodplug1 = {} +# #libmpfr = {} +# #libnettle = {} +# #libogg = {} +# #libpsl = {} +# #libssh2 = {} +# #libtool = {} +# #liburcu = {} +# #libuv = {} +# #lua-compat-53 = {} +# #luajit = {} +# #luarocks = {} +# #luv = {} +# #mdp = {} # gcc hangs +# #miniserve = {} # actix +# #mpc = {} +# #mupen64plus = {} +# #ncdu = {} # multiple definitions of symbols +# #newlib = {} # obsolete +# #newlibtest = {} # obsolete +# #noto-color-emoji = {} +# #nushell = {} # needs cargo update +# #openjk = {} +# #openposixtestsuite = {} +# #opentyrian = {} +# #orbcalculator = {} +# #ostest-bins = {} +# #pango = {} # undefined references to std::__throw_system_error(int) +# #pastel = {} # needs crate patches for redox-unix +# #pathfinder = {} # servo-fontconfig +# #pciids = {} +# #pcre2 = {} +# #pixman = {} # depends on glib which does not build +# #pkgar = {} # uses virtual Cargo.toml, needs recipe update +# #pls = {} +# #pop-wallpapers = {} +# #powerline = {} # dirs +# #qemu = {} # can be built, but not working +# #quakespasm = {} +# #redox-posix-tests = {} +# #redox-ssh = {} # does not compile +# #retroarch = {} # OS_TLSIndex not declared +# #rust-cairo = {} # linking errors +# #rust-cairo-demo = {} # linking errors +# #rvvm = {} +# #schismtracker = {} # uses system includes +# #sdl-player = {} # wctype_t +# #sdl2-gfx = {} +# #sm64ex = {} +# #spacecadetpinball = {} +# #twin-commander = {} +# #ubuntu-wallpapers = {} +# #unibilium = {} +# #utf8proc = {} +# #vice = {} # linker errors +# #vvvvvv = {} # did not compile +# #webrender = {} # unwind +# #website = {} +# #wesnoth = {} +# #wget = {} +# autoconf = {} +# automake = {} +# binutils = {} +# bzip2 = {} +# cairo = {} +# cleye = {} +# composer = {} +# cpal = {} +# dosbox = {} +# duktape = {} +# eduke32 = {} +# exampled = {} +# expat = {} +# extrautils = {} +# ffmpeg6 = {} +# fontconfig = {} +# freedoom = {} +# freepats = {} +# fribidi = {} +# gdbserver = {} # wrong libc type +# gdk-pixbuf = {} +# gears = {} +# generaluser-gs = {} +# glib = {} +# glutin = {} +# gnu-grep = {} +# htop = {} +# intel-one-mono = {} +# lci = {} +# libavif = {} +# libc-bench = {} +# libedit = {} +# libgmp = {} +# libicu = {} +# libonig = {} +# libsodium = {} +# libuuid = {} +# libwebp = {} +# lsd = {} +# lua54 = {} +# lz4 = {} +# mednafen = {} +# mesa = {} # libudev was not found +# mesa-glu = {} # depends on mesa +# mgba = {} +# mpc = {} # libmpfr not found +# ncursesw = {} +# neverball = {} +# nginx = {} +# onefetch = {} +# openjazz = {} +# openssh = {} +# openttd = {} +# openttd-opengfx = {} +# openttd-openmsx = {} +# openttd-opensfx = {} +# orbclient = {} +# osdemo = {} +# perg = {} +# periodictable = {} +# perl5 = {} +# php84 = {} +# pixelcannon = {} +# pkg-config = {} +# prboom = {} +# procedural-wallpapers-rs = {} +# python312 = {} +# readline = {} +# redox-fatfs = {} +# redox-games = {} +# relibc-tests = {} +# relibc-tests-bins = {} +# rodioplay = {} +# rs-nes = {} +# rsync = {} +# rust64 = {} +# rustual-boy = {} +# scummvm = {} +# sdl-gfx = {} +# sdl1-image = {} +# sdl1-mixer = {} +# sdl1-ttf = {} +# sdl2 = {} +# sdl2-gears = {} +# sdl2-image = {} +# sdl2-mixer = {} +# sdl2-ttf = {} +# servo = {} +# shellharden = {} +# shellstorm = {} +# simple-http-server = {} +# sodium = {} +# sopwith = {} +# sqlite3 = {} +# strace = {} # unknown syscall +# syobonaction = {} +# timidity = {} +# tokei = {} +# ttf-hack = {} +# vttest = {} +# webkitgtk3 = {} +# winit = {} +# xxhash = {} +# zoxide = {} # untested diff --git a/config/aarch64/demo.toml b/config/aarch64/demo.toml new file mode 100644 index 0000000..2158607 --- /dev/null +++ b/config/aarch64/demo.toml @@ -0,0 +1,3 @@ +# Configuration for demonstration + +include = ["../desktop.toml"] diff --git a/config/aarch64/dev.toml b/config/aarch64/dev.toml new file mode 100644 index 0000000..ce6a482 --- /dev/null +++ b/config/aarch64/dev.toml @@ -0,0 +1,20 @@ +# Configuration for development + +include = ["../dev.toml"] + +# Override the default settings here + +# General settings +[general] +# Filesystem size in MiB +# filesystem_size = 1024 + +# Package settings +[packages] +# see ci.toml for error reasons +gdbserver = "ignore" +gnu-binutils = "ignore" +mesa = "ignore" +mesa-glu = "ignore" +mpc = "ignore" +strace = "ignore" diff --git a/config/aarch64/jeremy.toml b/config/aarch64/jeremy.toml new file mode 100644 index 0000000..f3d8c0a --- /dev/null +++ b/config/aarch64/jeremy.toml @@ -0,0 +1,3 @@ +# Configuration for Jeremy Soller + +include = ["desktop.toml"] diff --git a/config/aarch64/raspi3bp/minimal.toml b/config/aarch64/raspi3bp/minimal.toml new file mode 100644 index 0000000..8b47243 --- /dev/null +++ b/config/aarch64/raspi3bp/minimal.toml @@ -0,0 +1,10 @@ +# Minimal configuration + +include = ["../../minimal.toml"] + +# General settings +[general] +# Filesystem size in MiB +filesystem_size = 256 +# EFI partition size in MiB +efi_partition_size = 128 diff --git a/config/aarch64/redoxer.toml b/config/aarch64/redoxer.toml new file mode 100644 index 0000000..a17c50c --- /dev/null +++ b/config/aarch64/redoxer.toml @@ -0,0 +1,8 @@ +# Configuration used for building redoxer base image + +include = ["../redoxer.toml"] + +# General settings +[general] +# Filesystem size in MiB +filesystem_size = 1024 diff --git a/config/acid.toml b/config/acid.toml new file mode 100644 index 0000000..5392934 --- /dev/null +++ b/config/acid.toml @@ -0,0 +1,31 @@ +# Configuration for "acid" testing + +include = ["base.toml"] + +# General settings +[general] +# Filesystem size in MiB +filesystem_size = 1024 + +# Package settings +[packages] +acid = {} +coreutils = {} +ion = {} + +[[files]] +path = "/usr/lib/init.d/10_acid" +data = """ +requires_weak 00_drivers +ion /usr/lib/run_acid.ion +""" + +[[files]] +path = "/usr/lib/run_acid.ion" +data = """ +#!/usr/bin/env ion +export RUST_BACKTRACE=full +cd /home/user/acid +cargo test +shutdown +""" diff --git a/config/auto-test.toml b/config/auto-test.toml new file mode 100644 index 0000000..b6ff978 --- /dev/null +++ b/config/auto-test.toml @@ -0,0 +1,32 @@ +# Configuration for automated testing of essential test suites +# Smaller test suites are executed first to catch possible bugs or regressions faster + +include = ["base.toml"] + +# General settings +[general] +# Filesystem size in MiB +filesystem_size = 1024 + +# Package settings +[packages] +auto-test = {} + +[[files]] +path = "/usr/lib/init.d/30_console" +data = """ +requires_weak 10_net +ion /usr/lib/run_tests.ion +""" + +[[files]] +path = "/usr/lib/run_tests.ion" +data = """ +#!/usr/bin/env ion +export RUST_BACKTRACE=full +cd /home/user/acid +cargo test +bash /root/relibc-tests/run.sh +os-test-runner +shutdown +""" diff --git a/config/base.toml b/config/base.toml new file mode 100644 index 0000000..1f47fd5 --- /dev/null +++ b/config/base.toml @@ -0,0 +1,325 @@ +# Base configuration: This configuration is meant to be included by +# other configurations rather than use directly. It is the greatest +# common divisor of all other configurations and misses several +# parts necessary to create a bootable system. + +# General settings +[general] +# Do not prompt if settings are not defined +prompt = false + +[packages] +base = {} +base-initfs = {} +bootloader = {} +kernel = {} +libgcc = {} +libstdcxx = {} +netdb = {} +netutils = {} +relibc = {} +userutils = {} +uutils = {} + +## Configuration files +[[files]] +path = "/usr/lib/init.d/00_base" +data = """ +# clear and recreate tmpdir with 0o1777 permission +rm -rf /tmp +mkdir -m a=rwxt /tmp + +notify ipcd +notify ptyd +nowait sudo --daemon +""" + +[[files]] +path = "/usr/lib/init.d/00_drivers" +data = """ +requires_weak 00_base +pcid-spawner +""" + +## Network init +[[files]] +path = "/usr/lib/init.d/10_net" +data = """ +requires_weak 00_drivers +notify smolnetd +nowait dhcpd +""" + +[[files]] +path = "/etc/login_schemes.toml" +data = """ +[user_schemes.root] +schemes = ["*"] +[user_schemes.user] +schemes = [ + # Kernel schemes + "debug", + "event", + "memory", + "pipe", + "serio", + "irq", + "time", + "sys", + # Base schemes + "rand", + "null", + "zero", + "log", + # Network schemes + "ip", + "icmp", + "tcp", + "udp", + # IPC schemes + "shm", + "chan", + "uds_stream", + "uds_dgram", + # File schemes + "file", + # Display schemes + "display.vesa", + "display*", + # Other schemes + "pty", + "sudo", + "audio", + "orbital", +] +""" + +[[files]] +path = "/etc/hostname" +data = "redbear" + +## Default net configuration (optimized for QEMU) +[[files]] +path = "/etc/net/dns" +data = """ +9.9.9.9 +""" + +[[files]] +path = "/etc/net/ip" +data = """ +10.0.2.15 +""" + +[[files]] +path = "/etc/net/ip_router" +data = """ +10.0.2.2 +""" + +[[files]] +path = "/etc/net/ip_subnet" +data = """ +255.255.255.0 +""" + +# https://www.freedesktop.org/software/systemd/man/latest/os-release.html +[[files]] +path = "/usr/lib/os-release" +data = """ +PRETTY_NAME="Red Bear OS 0.1.0" +NAME="Red Bear OS" +VERSION_ID="0.1.0" +VERSION="0.1.0" +ID="redbear-os" +ID_LIKE="redox-os" + +HOME_URL="https://github.com/vasilito/Red-Bear-OS-3" +DOCUMENTATION_URL="https://doc.redox-os.org/" +SUPPORT_URL="https://github.com/vasilito/Red-Bear-OS-3/issues" +""" +# FIXME maybe add VARIANT= and VARIANT_ID= keys depending on the chosen configuration? + +[[files]] +path = "/etc/os-release" +data = "../usr/lib/os-release" +symlink = true + +[[files]] +path = "/etc/pkg.d/50_redox" +data = "https://static.redox-os.org/pkg" + +## /usr and symlinks for usrmerge +[[files]] +path = "/usr" +data = "" +directory = true +mode = 0o755 + +[[files]] +path = "/usr/bin" +data = "" +directory = true +mode = 0o755 + +[[files]] +path = "/bin" +data = "usr/bin" +symlink = true + +[[files]] +path = "/usr/include" +data = "" +directory = true +mode = 0o755 + +[[files]] +path = "/include" +data = "usr/include" +symlink = true + +[[files]] +path = "/usr/lib" +data = "" +directory = true +mode = 0o755 + +[[files]] +path = "/lib" +data = "usr/lib" +symlink = true + +[[files]] +path = "/usr/libexec" +data = "" +directory = true +mode = 0o755 + +[[files]] +path = "/usr/share" +data = "" +directory = true +mode = 0o755 + +[[files]] +path = "/share" +data = "usr/share" +symlink = true + +[[files]] +path = "/ui" +data = "usr/share/ui" +symlink = true + +## legacy orbital font directory +[[files]] +path = "/usr/share/ui/fonts" +data = "/usr/share/fonts" +symlink = true + +## legacy orbital icon directory +[[files]] +path = "/usr/share/ui/icons" +data = "/usr/share/icons" +symlink = true + +## /var +[[files]] +path = "/var" +data = "" +directory = true +mode = 0o755 + +[[files]] +path = "/var/cache" +data = "" +directory = true +mode = 0o755 + +[[files]] +path = "/var/lib" +data = "" +directory = true +mode = 0o755 + +[[files]] +path = "/var/lock" +data = "" +directory = true +mode = 0o1777 + +[[files]] +path = "/var/log" +data = "" +directory = true +mode = 0o755 + +[[files]] +path = "/var/run" +data = "" +directory = true +mode = 0o755 + +[[files]] +path = "/var/tmp" +data = "" +directory = true +mode = 0o1777 + +## Device file symlinks +[[files]] +path = "/dev/null" +data = "/scheme/null" +symlink = true + +[[files]] +path = "/dev/random" +data = "/scheme/rand" +symlink = true + +[[files]] +path = "/dev/urandom" +data = "/scheme/rand" +symlink = true + +[[files]] +path = "/dev/zero" +data = "/scheme/zero" +symlink = true + +[[files]] +path = "/dev/tty" +data = "libc:tty" +symlink = true + +[[files]] +path = "/dev/stdin" +data = "libc:stdin" +symlink = true + +[[files]] +path = "/dev/stdout" +data = "libc:stdout" +symlink = true + +[[files]] +path = "/dev/stderr" +data = "libc:stderr" +symlink = true + +# User settings +[users.root] +password = "password" +uid = 0 +gid = 0 +shell = "/usr/bin/ion" + +[users.user] +# Password is unset +password = "" +shell = "/usr/bin/ion" + +# Group settings +[groups.sudo] +gid = 1 +members = ["user"] diff --git a/config/desktop-minimal.toml b/config/desktop-minimal.toml new file mode 100644 index 0000000..852dc83 --- /dev/null +++ b/config/desktop-minimal.toml @@ -0,0 +1,32 @@ +# Minimal desktop configuration + +include = ["minimal.toml"] + +# General settings +[general] +# Filesystem size in MiB +filesystem_size = 256 + +# Package settings +[packages] +orbdata = {} +orbital = {} +orbterm = {} +orbutils = {} + +[[files]] +path = "/usr/lib/init.d/20_orbital" +data = """ +requires_weak 10_net +notify audiod +nowait VT=3 orbital orblogin launcher +""" + +# Override console config to not switch to VT 2 +[[files]] +path = "/usr/lib/init.d/30_console" +data = """ +requires_weak 20_orbital +nowait getty 2 +nowait getty /scheme/debug/no-preserve -J +""" diff --git a/config/desktop.toml b/config/desktop.toml new file mode 100644 index 0000000..70691f7 --- /dev/null +++ b/config/desktop.toml @@ -0,0 +1,26 @@ +# Default build system configuration + +include = ["desktop-minimal.toml", "server.toml"] + +# General settings +[general] +# Filesystem size in MiB +filesystem_size = 650 + +# Package settings +[packages] +cosmic-edit = {} +cosmic-files = {} +cosmic-icons = {} +cosmic-term = {} +dejavu = {} +ext4d = {} +freefont = {} +hicolor-icon-theme = {} +installer-gui = {} +netsurf = {} +patchelf = {} +pop-icon-theme = {} +shared-mime-info = {} +# orbterm from desktop-minimal should be ignored +orbterm = "ignore" diff --git a/config/dev.toml b/config/dev.toml new file mode 100644 index 0000000..8f92fb2 --- /dev/null +++ b/config/dev.toml @@ -0,0 +1,15 @@ +# Configuration for development + +include = ["desktop.toml"] + +# General settings +[general] +# Filesystem size in MiB +filesystem_size = 20000 +# Do not prompt if settings are not defined +prompt = false + +# Package settings +[packages] +dev-redox = {} +hello-redox = {} diff --git a/config/i586/ci.toml b/config/i586/ci.toml new file mode 100644 index 0000000..3432fba --- /dev/null +++ b/config/i586/ci.toml @@ -0,0 +1,317 @@ +# The Redox build server configuration + +# General settings +[general] +# Do not prompt if settings are not defined +prompt = false + +# Package settings +[packages] + +# If you need to disable some broken package comment out instead of removal to not increase the maintenance cost +#TODO: commented out recipes need to be built and tested inside of Redox to verify if they returned to work + +# Meta-packages below + +# auto-test = {} +# dev-essential = {} +# dev-redox = {} +# redox-tests = {} +# x11-minimal = {} +# x11-full = {} + +# Normal packages below + +# acid = {} # rust require dynamic linking +acid-bins = {} +base = {} +base-initfs = {} +bash = {} +bash-completion = {} +bootloader = {} +bottom = {} +ca-certificates = {} +contain = {} +coreutils = {} +cosmic-edit = {} +cosmic-files = {} +cosmic-icons = {} +cosmic-term = {} +cosmic-text = {} +curl = {} +dash = {} +dejavu = {} +diffutils = {} +expat = {} +extrautils = {} +findutils = {} +freefont = {} +freetype2 = {} +gettext = {} +git = {} +gnu-make = {} +hicolor-icon-theme = {} +installer = {} +installer-gui = {} +ion = {} +kernel = {} +kibi = {} +libffi = {} +libgcc = {} +libiconv = {} +libjpeg = {} +libogg = {} +liborbital = {} +libpng = {} +libstdcxx = {} +libvorbis = {} +libxkbcommon = {} +libxml2 = {} +nano = {} +nasm = {} +ncurses = {} +netdb = {} +netsurf = {} +netutils = {} +nghttp2 = {} +openssl1 = {} +orbdata = {} +orbital = {} +orbterm = {} +orbutils = {} +patch = {} +pcre = {} +patchelf = {} +pop-icon-theme = {} +pkgutils = {} +redoxfs = {} +relibc = {} +ripgrep = {} +rustpython = {} +sdl1 = {} +sed = {} +shared-mime-info = {} +smith = {} +terminfo = {} +userutils = {} +uutils = {} +xz = {} +#vim = {} # conflicting types +zlib = {} + +# #"gcc13.cxx" = {} +# #"llvm21.clang" = {} +# #"llvm21.clang-dev" = {} +# #"llvm21.dev" = {} +# #"llvm21.lld" = {} +# #"llvm21.lld-dev" = {} +# #"llvm21.runtime" = {} +# #"python312.dev" = {} +# #"rust.doc" = {} +# #atk = {} # depends on glib which does not build +# #benchmarks = {} +# #binutils-gdb = {} +# #book = {} +# #cairo-demo = {} # linking errors +# #classicube = {} +# #cmake = {} +# #cmatrix = {} # needs ncursesw now +# #cookbook = {} +# #cosmic-reader = {} +# #cosmic-settings = {} +# #cosmic-store = {} +# #devilutionx = {} +# #dynamic-example = {} +# #fal +# #fd = {} # ctrlc-3.1.1 +# #file = {} +# #flycast = {} +# #freeciv = {} +# #freeglut = {} +# #friar = {} # mio patch +# #game-2048 = {} # rustc-serialize +# #gawk = {} # langinfo.h +# #gigalomania = {} # old recipe format +# #gitoxide = {} +# #goaccess = {} +# #gstreamer = {} # conflict with thread local errno +# #harfbuzz = {} # depends on glib which does not build +# #helix = {} +# #hello-redox = {} +# #hematite = {} # needs crate patches for redox-unix +# #hf = {} +# #ibm-plex = {} +# #iced = {} +# #jansson = {} # needs config.sub update +# #jq = {} +# #libarchive = {} +# #libatomic = {} +# #libcosmic = {} +# #libflac = {} +# #libmodplug1 = {} +# #libmpfr = {} +# #libnettle = {} +# #libogg = {} +# #libpsl = {} +# #libssh2 = {} +# #libtool = {} +# #liburcu = {} +# #libuv = {} +# #lua-compat-53 = {} +# #luajit = {} +# #luarocks = {} +# #luv = {} +# #mdp = {} # gcc hangs +# #miniserve = {} # actix +# #mpc = {} +# #mupen64plus = {} +# #ncdu = {} # multiple definitions of symbols +# #newlib = {} # obsolete +# #newlibtest = {} # obsolete +# #noto-color-emoji = {} +# #nushell = {} # needs cargo update +# #openjk = {} +# #openposixtestsuite = {} +# #opentyrian = {} +# #orbcalculator = {} +# #ostest-bins = {} +# #pango = {} # undefined references to std::__throw_system_error(int) +# #pastel = {} # needs crate patches for redox-unix +# #pathfinder = {} # servo-fontconfig +# #pciids = {} +# #pcre2 = {} +# #pixman = {} # depends on glib which does not build +# #pkgar = {} # uses virtual Cargo.toml, needs recipe update +# #pls = {} +# #pop-wallpapers = {} +# #powerline = {} # dirs +# #qemu = {} # can be built, but not working +# #quakespasm = {} +# #redox-posix-tests = {} +# #redox-ssh = {} # does not compile +# #retroarch = {} # OS_TLSIndex not declared +# #rust-cairo = {} # linking errors +# #rust-cairo-demo = {} # linking errors +# #rvvm = {} +# #schismtracker = {} # uses system includes +# #sdl-player = {} # wctype_t +# #sdl2-gfx = {} +# #sm64ex = {} +# #spacecadetpinball = {} +# #twin-commander = {} +# #ubuntu-wallpapers = {} +# #unibilium = {} +# #utf8proc = {} +# #vice = {} # linker errors +# #vvvvvv = {} # did not compile +# #webrender = {} # unwind +# #website = {} +# #wesnoth = {} +# #wget = {} +# autoconf = {} +# automake = {} +# binutils = {} +# bzip2 = {} +# cairo = {} +# cleye = {} +# composer = {} +# cpal = {} +# dosbox = {} +# duktape = {} +# eduke32 = {} +# exampled = {} +# ffmpeg6 = {} +# fontconfig = {} +# freedoom = {} +# freepats = {} +# fribidi = {} +# gcc13 = {} +# gdbserver = {} +# gdk-pixbuf = {} +# gears = {} +# generaluser-gs = {} +# glib = {} +# glutin = {} +# gnu-binutils = {} +# gnu-grep = {} +# htop = {} +# intel-one-mono = {} +# lci = {} +# libavif = {} +# libc-bench = {} +# libedit = {} +# libgmp = {} +# libicu = {} +# libonig = {} +# libsodium = {} +# libuuid = {} +# libwebp = {} +# llvm21 = {} +# lsd = {} +# lua54 = {} +# lz4 = {} +# mednafen = {} +# mesa = {} +# mesa-glu = {} +# mgba = {} +# ncursesw = {} +# neverball = {} +# nginx = {} +# onefetch = {} +# openjazz = {} +# openssh = {} +# openssl3 = {} +# openttd = {} +# openttd-opengfx = {} +# openttd-openmsx = {} +# openttd-opensfx = {} +# orbclient = {} +# osdemo = {} +# perg = {} +# periodictable = {} +# perl5 = {} +# php84 = {} +# pixelcannon = {} +# pkg-config = {} +# prboom = {} +# procedural-wallpapers-rs = {} +# python312 = {} +# readline = {} +# redox-fatfs = {} +# redox-games = {} +# relibc-tests = {} +# relibc-tests-bins = {} +# rodioplay = {} +# rs-nes = {} +# rsync = {} +# rust = {} +# rust64 = {} +# rustual-boy = {} +# scummvm = {} +# sdl-gfx = {} +# sdl1-image = {} +# sdl1-mixer = {} +# sdl1-ttf = {} +# sdl2 = {} +# sdl2-gears = {} +# sdl2-image = {} +# sdl2-mixer = {} +# sdl2-ttf = {} +# servo = {} +# shellharden = {} +# shellstorm = {} +# simple-http-server = {} +# sodium = {} +# sopwith = {} +# sqlite3 = {} +# strace = {} +# syobonaction = {} +# timidity = {} +# tokei = {} +# ttf-hack = {} +# vttest = {} +# webkitgtk3 = {} +# winit = {} +# xxhash = {} +# zoxide = {} # untested +# zstd = {} diff --git a/config/i586/demo.toml b/config/i586/demo.toml new file mode 100644 index 0000000..e4568ae --- /dev/null +++ b/config/i586/demo.toml @@ -0,0 +1,49 @@ +# Configuration for demonstration + +include = ["../desktop.toml"] + +# General settings +[general] +# Filesystem size in MiB +filesystem_size = 768 + +# Package settings +[packages] +# Games +dosbox = {} +freedoom = {} +prboom = {} +redox-games = {} + +# Demos +pixelcannon = {} + +# MIDI +freepats = {} + +[[files]] +path = "/home/user/Welcome.txt" +data = """ +############################################################################## +# # +# Welcome to Red Bear OS! # +# # +# Red Bear OS (RBOS) is a derivative of Redox, an operating system written # +# in Rust, a language with focus on safety and high performance. Redox, # +# following the microkernel design, aims to be secure, usable, and free. # +# Redox is inspired by previous kernels and operating systems, such as # +# SeL4, MINIX, Plan 9, and BSD. # +# # +# Red Bear OS _is not_ just a kernel, it's a full-featured Operating System, # +# providing packages (memory allocator, file system, display manager, core # +# utilities, etc.) that together make up a functional and convenient # +# operating system. You can loosely think of it as the GNU or BSD ecosystem, # +# but in a memory safe language and with modern technology. # +# # +# The website can be found at https://github.com/vasilito/Red-Bear-OS-3. # +# # +# For things to try on Red Bear OS, please see # +# https://doc.redox-os.org/book/ch02-06-trying-out-redox.html # +# # +############################################################################## +""" diff --git a/config/i586/dev.toml b/config/i586/dev.toml new file mode 100644 index 0000000..6974b4e --- /dev/null +++ b/config/i586/dev.toml @@ -0,0 +1,14 @@ +# Configuration for development + +include = ["../dev.toml"] + +# Override the default settings here + +# General settings +[general] +# Filesystem size in MiB +# filesystem_size = 1024 + +# Package settings +[packages] +# example = {} diff --git a/config/i586/jeremy.toml b/config/i586/jeremy.toml new file mode 100644 index 0000000..d76b88d --- /dev/null +++ b/config/i586/jeremy.toml @@ -0,0 +1,39 @@ +# Configuration for Jeremy Soller + +include = ["../desktop.toml"] + +# General settings +[general] +# Filesystem size in MiB +filesystem_size = 4000 + +# Package settings +[packages] +# apps +cosmic-text = {} +pixelcannon = {} +sodium = {} + +# cli +acid = {} +cleye = {} +ripgrep = {} + +# demos +cpal = {} +orbclient = {} +rodioplay = {} +winit = {} + +# games +dosbox = {} +eduke32 = {} +freedoom = {} +prboom = {} +redox-games = {} + +# stuff +freepats = {} +generaluser-gs = {} +jeremy = {} +ttf-hack = {} diff --git a/config/i586/redoxer.toml b/config/i586/redoxer.toml new file mode 100644 index 0000000..a17c50c --- /dev/null +++ b/config/i586/redoxer.toml @@ -0,0 +1,8 @@ +# Configuration used for building redoxer base image + +include = ["../redoxer.toml"] + +# General settings +[general] +# Filesystem size in MiB +filesystem_size = 1024 diff --git a/config/minimal.toml b/config/minimal.toml new file mode 100644 index 0000000..5f11074 --- /dev/null +++ b/config/minimal.toml @@ -0,0 +1,26 @@ +# Minimal configuration + +include = ["base.toml"] + +# General settings +[general] +# Filesystem size in MiB +filesystem_size = 196 + +# Package settings +[packages] +ca-certificates = {} +coreutils = {} +extrautils = {} +ion = {} +pkgutils = {} +kibi = {} + +[[files]] +path = "/usr/lib/init.d/30_console" +data = """ +requires_weak 10_net +inputd -A 2 +nowait getty 2 +nowait getty /scheme/debug/no-preserve -J +""" diff --git a/config/os-test.toml b/config/os-test.toml new file mode 100644 index 0000000..58ed1b4 --- /dev/null +++ b/config/os-test.toml @@ -0,0 +1,22 @@ +# Configuration for "os-test" testing + +include = ["server.toml"] + +# General settings +[general] +# Filesystem size in MiB +filesystem_size = 1024 +# Do not prompt if settings are not defined +prompt = false + +# Package settings +[packages] +os-test-bins = {} # Provides source and cross-compiled binaries + +[[files]] +path = "/usr/lib/init.d/30_console" +data = """ +requires_weak 10_net +RUST_BACKTRACE=full os-test-runner +shutdown +""" diff --git a/config/redbear-desktop.toml b/config/redbear-desktop.toml new file mode 100644 index 0000000..fdce13e --- /dev/null +++ b/config/redbear-desktop.toml @@ -0,0 +1,14 @@ +# Red Bear OS Desktop Configuration +# Mainline Redox desktop + Red Bear branding + ext4 filesystem support +# +# Build: make all CONFIG_NAME=redbear-desktop +# Live: make live CONFIG_NAME=redbear-desktop + +include = ["desktop.toml"] + +[general] +filesystem_size = 10240 + +[packages] +# Red Bear OS branding (os-release, hostname, motd) +redbear-release = {} diff --git a/config/redbear-full.toml b/config/redbear-full.toml new file mode 100644 index 0000000..57c66ae --- /dev/null +++ b/config/redbear-full.toml @@ -0,0 +1,35 @@ +# Red Bear OS Full Configuration +# Complete desktop + all RBOS custom drivers and tools +# +# Build: make all CONFIG_NAME=redbear-full +# Live: make live CONFIG_NAME=redbear-full + +include = ["desktop.toml"] + +[general] +# 2GB filesystem — plenty for full desktop + drivers +# (desktop.toml sets 650MB, but we want headroom for our custom packages) +filesystem_size = 2048 + +[packages] +# Red Bear OS branding (os-release, hostname, motd) +redbear-release = {} + +# ext4 filesystem support (our custom port) +ext4d = {} + +# RBOS driver infrastructure +redox-driver-sys = {} +linux-kpi = {} +firmware-loader = {} + +# Input layer +evdevd = {} +udev-shim = {} + +# GPU driver (AMD — modesetting display core) +redox-drm = {} +amdgpu = {} + +# RBOS meta-package (dependencies, default config) +redbear-meta = {} diff --git a/config/redbear-live.toml b/config/redbear-live.toml new file mode 100644 index 0000000..cd46cb7 --- /dev/null +++ b/config/redbear-live.toml @@ -0,0 +1,10 @@ +# Red Bear OS Live Configuration +# Live ISO variant — boots into Red Bear OS Desktop from USB/DVD +# +# Build: make live CONFIG_NAME=redbear-live + +include = ["redbear-desktop.toml"] + +[general] +# Larger filesystem for live image with more tools +filesystem_size = 12288 diff --git a/config/redbear-minimal.toml b/config/redbear-minimal.toml new file mode 100644 index 0000000..c0091fb --- /dev/null +++ b/config/redbear-minimal.toml @@ -0,0 +1,20 @@ +# Red Bear OS Minimal Configuration +# Console/Server variant with bare-metal driver support but no GUI +# +# Build: make all CONFIG_NAME=redbear-minimal + +include = ["minimal.toml"] + +[general] +filesystem_size = 512 + +[packages] +# Red Bear OS branding +redbear-release = {} + +# Firmware loading +firmware-loader = {} + +# Input event handling +evdevd = {} +udev-shim = {} diff --git a/config/redoxer-gui.toml b/config/redoxer-gui.toml new file mode 100644 index 0000000..c3e6149 --- /dev/null +++ b/config/redoxer-gui.toml @@ -0,0 +1,18 @@ +# Configuration for the Redoxer GUI image + +include = ["redoxer.toml"] + +# Package settings +[packages] +orbdata = {} +orbital = {} + +# Override to run inside of orbital +[[files]] +path = "/usr/lib/init.d/30_redoxer" +data = """ +requires_weak 10_net +echo +echo "## running redoxer in orbital ##" +nowait VT=3 orbital redoxerd +""" diff --git a/config/redoxer.toml b/config/redoxer.toml new file mode 100644 index 0000000..6532300 --- /dev/null +++ b/config/redoxer.toml @@ -0,0 +1,51 @@ +# Configuration for the Redoxer image + +include = ["base.toml"] + +# Package settings +[packages] +bash = {} +ca-certificates = {} +coreutils = {} +extrautils = {} +findutils = {} +gnu-make = {} +ion = {} +pkgutils = {} +relibc = {} +sed = {} + +# Override to not background dhcpd +[[files]] +path = "/usr/lib/init.d/10_net" +data = """ +requires_weak 00_drivers +notify smolnetd +dhcpd +""" + +[[files]] +path = "/usr/lib/init.d/30_redoxer" +data = """ +requires_weak 10_net +ion /usr/lib/run_redoxer.ion +""" + +[[files]] +path = "/usr/lib/run_redoxer.ion" +data = """ +#!/usr/bin/env ion +echo +echo "## preparing environment ##" +export GROUPS=0 +export HOME=/root +export HOST=redox +export SHELL=/bin/sh +export UID=0 +export USER=root +cd /root +env +echo +echo "## running redoxer ##" +redoxerd +""" diff --git a/config/riscv64gc/ci.toml b/config/riscv64gc/ci.toml new file mode 100644 index 0000000..382a421 --- /dev/null +++ b/config/riscv64gc/ci.toml @@ -0,0 +1,318 @@ +# The Redox build server configuration + +# General settings +[general] +# Do not prompt if settings are not defined +prompt = false + +# Package settings +[packages] + +# If you need to disable some broken package comment out instead of removal to not increase the maintenance cost +#TODO: commented out recipes need to be built and tested inside of Redox to verify if they returned to work + +# Meta-packages below + +# auto-test = {} +# dev-essential = {} +# dev-redox = {} +# redox-tests = {} +# x11-minimal = {} +# x11-full = {} + +# Normal packages below + +# acid = {} # rust require dynamic linking +acid-bins = {} +base = {} +base-initfs = {} +bash = {} +bash-completion = {} +bootloader = {} +bottom = {} +ca-certificates = {} +#contain = {} # redox_syscall 0.4 not working on riscv64gc? +coreutils = {} +cosmic-edit = {} +cosmic-files = {} +cosmic-icons = {} +cosmic-term = {} +#cosmic-text = {} # need to bump redox_syscall +curl = {} +dash = {} +dejavu = {} +diffutils = {} +expat = {} +extrautils = {} +findutils = {} +freefont = {} +freetype2 = {} +gettext = {} +git = {} +gnu-make = {} +hicolor-icon-theme = {} +installer = {} +#installer-gui = {} # redox_syscall 0.4 not working on riscv64gc? +ion = {} +kernel = {} +kibi = {} +libffi = {} +libgcc = {} +#libiconv = {} # not tested yet, netsurf is commented out +libjpeg = {} +libogg = {} +#liborbital = {} # not tested yet, netsurf is commented out +libpng = {} +libstdcxx = {} +libvorbis = {} +libxkbcommon = {} +libxml2 = {} +#nano = {} # error compiling ncurses +nasm = {} +#ncurses = {} +netdb = {} +#netsurf = {} # error compiling nghttp2 +netutils = {} +#nghttp2 = {} +openssl1 = {} +orbdata = {} +orbital = {} +orbterm = {} +orbutils = {} +#patch = {} error configure machine `riscv64gc-unknown' not recognized +pcre = {} +patchelf = {} +pop-icon-theme = {} +pkgutils = {} +redoxfs = {} +relibc = {} +ripgrep = {} +rustpython = {} +#sdl1 = {} # not tested yet, netsurf is commented out +sed = {} +shared-mime-info = {} +smith = {} +terminfo = {} +userutils = {} +uutils = {} +xz = {} +#vim = {} # error compiling ncurses +zlib = {} + +# #"gcc13.cxx" = {} +# #"llvm21.clang" = {} +# #"llvm21.clang-dev" = {} +# #"llvm21.dev" = {} +# #"llvm21.lld" = {} +# #"llvm21.lld-dev" = {} +# #"llvm21.runtime" = {} +# #"python312.dev" = {} +# #"rust.doc" = {} +# #atk = {} # depends on glib which does not build +# #benchmarks = {} +# #binutils-gdb = {} +# #book = {} +# #cairo-demo = {} # linking errors +# #classicube = {} +# #cmake = {} +# #cmatrix = {} # needs ncursesw now +# #cookbook = {} +# #cosmic-reader = {} +# #cosmic-settings = {} +# #cosmic-store = {} +# #devilutionx = {} +# #dynamic-example = {} +# #fal +# #fd = {} # ctrlc-3.1.1 +# #file = {} +# #flycast = {} +# #freeciv = {} +# #freeglut = {} +# #friar = {} # mio patch +# #game-2048 = {} # rustc-serialize +# #gawk = {} # langinfo.h +# #gigalomania = {} # old recipe format +# #gitoxide = {} +# #goaccess = {} +# #gstreamer = {} # conflict with thread local errno +# #harfbuzz = {} # depends on glib which does not build +# #helix = {} +# #hello-redox = {} +# #hematite = {} # needs crate patches for redox-unix +# #hf = {} +# #ibm-plex = {} +# #iced = {} +# #jansson = {} # needs config.sub update +# #jq = {} +# #libarchive = {} +# #libatomic = {} +# #libcosmic = {} +# #libflac = {} +# #libmodplug1 = {} +# #libmpfr = {} +# #libnettle = {} +# #libogg = {} +# #libpsl = {} +# #libssh2 = {} +# #libtool = {} +# #liburcu = {} +# #libuv = {} +# #lua-compat-53 = {} +# #luajit = {} +# #luarocks = {} +# #luv = {} +# #mdp = {} # gcc hangs +# #miniserve = {} # actix +# #mpc = {} +# #mupen64plus = {} +# #ncdu = {} # multiple definitions of symbols +# #newlib = {} # obsolete +# #newlibtest = {} # obsolete +# #noto-color-emoji = {} +# #nushell = {} # needs cargo update +# #openjk = {} +# #openposixtestsuite = {} +# #opentyrian = {} +# #orbcalculator = {} +# #ostest-bins = {} +# #pango = {} # undefined references to std::__throw_system_error(int) +# #pastel = {} # needs crate patches for redox-unix +# #pathfinder = {} # servo-fontconfig +# #pciids = {} +# #pcre2 = {} +# #pixman = {} # depends on glib which does not build +# #pkgar = {} # uses virtual Cargo.toml, needs recipe update +# #pls = {} +# #pop-wallpapers = {} +# #powerline = {} # dirs +# #qemu = {} # can be built, but not working +# #quakespasm = {} +# #redox-posix-tests = {} +# #redox-ssh = {} # does not compile +# #retroarch = {} # OS_TLSIndex not declared +# #rust-cairo = {} # linking errors +# #rust-cairo-demo = {} # linking errors +# #rvvm = {} +# #schismtracker = {} # uses system includes +# #sdl-player = {} # wctype_t +# #sdl2-gfx = {} +# #sm64ex = {} +# #spacecadetpinball = {} +# #twin-commander = {} +# #ubuntu-wallpapers = {} +# #unibilium = {} +# #utf8proc = {} +# #vice = {} # linker errors +# #vvvvvv = {} # did not compile +# #webrender = {} # unwind +# #website = {} +# #wesnoth = {} +# #wget = {} +# autoconf = {} +# automake = {} +# binutils = {} +# bzip2 = {} +# cairo = {} +# cleye = {} +# composer = {} +# cosmic-text = {} +# cpal = {} +# dosbox = {} +# duktape = {} +# eduke32 = {} +# exampled = {} +# ffmpeg6 = {} +# fontconfig = {} +# freedoom = {} +# freepats = {} +# fribidi = {} +# gcc13 = {} +# gdbserver = {} +# gdk-pixbuf = {} +# gears = {} +# generaluser-gs = {} +# glib = {} +# glutin = {} +# gnu-binutils = {} +# gnu-grep = {} +# htop = {} +# intel-one-mono = {} +# lci = {} +# libavif = {} +# libc-bench = {} +# libedit = {} +# libgmp = {} +# libicu = {} +# libonig = {} +# libsodium = {} +# libuuid = {} +# libwebp = {} +# llvm21 = {} +# lsd = {} +# lua54 = {} +# lz4 = {} +# mednafen = {} +# mesa = {} +# mesa-glu = {} +# mgba = {} +# ncursesw = {} +# neverball = {} +# nginx = {} +# onefetch = {} +# openjazz = {} +# openssh = {} +# openssl3 = {} +# openttd = {} +# openttd-opengfx = {} +# openttd-openmsx = {} +# openttd-opensfx = {} +# orbclient = {} +# osdemo = {} +# perg = {} +# periodictable = {} +# perl5 = {} +# php84 = {} +# pixelcannon = {} +# pkg-config = {} +# prboom = {} +# procedural-wallpapers-rs = {} +# python312 = {} +# readline = {} +# redox-fatfs = {} +# redox-games = {} +# relibc-tests = {} +# relibc-tests-bins = {} +# rodioplay = {} +# rs-nes = {} +# rsync = {} +# rust = {} +# rust64 = {} +# rustual-boy = {} +# scummvm = {} +# sdl-gfx = {} +# sdl1-image = {} +# sdl1-mixer = {} +# sdl1-ttf = {} +# sdl2 = {} +# sdl2-gears = {} +# sdl2-image = {} +# sdl2-mixer = {} +# sdl2-ttf = {} +# servo = {} +# shellharden = {} +# shellstorm = {} +# simple-http-server = {} +# sodium = {} +# sopwith = {} +# sqlite3 = {} +# strace = {} +# syobonaction = {} +# timidity = {} +# tokei = {} +# ttf-hack = {} +# vttest = {} +# webkitgtk3 = {} +# winit = {} +# xxhash = {} +# zoxide = {} # untested +# zstd = {} diff --git a/config/riscv64gc/demo.toml b/config/riscv64gc/demo.toml new file mode 100644 index 0000000..1f6e59b --- /dev/null +++ b/config/riscv64gc/demo.toml @@ -0,0 +1,3 @@ +# Configuration for demonstration + +include = ["desktop.toml"] diff --git a/config/riscv64gc/desktop.toml b/config/riscv64gc/desktop.toml new file mode 100644 index 0000000..f523e7c --- /dev/null +++ b/config/riscv64gc/desktop.toml @@ -0,0 +1,15 @@ +# Default build system configuration + +include = ["../desktop.toml"] + +# Override the default settings here + +# General settings +[general] +# Filesystem size in MiB +# filesystem_size = 1024 + +# Package settings +[packages] +# example = {} +netsurf = "ignore" # liborbital fails to link in due to mismatching float ABI diff --git a/config/riscv64gc/jeremy.toml b/config/riscv64gc/jeremy.toml new file mode 100644 index 0000000..f3d8c0a --- /dev/null +++ b/config/riscv64gc/jeremy.toml @@ -0,0 +1,3 @@ +# Configuration for Jeremy Soller + +include = ["desktop.toml"] diff --git a/config/server.toml b/config/server.toml new file mode 100644 index 0000000..70b98d6 --- /dev/null +++ b/config/server.toml @@ -0,0 +1,21 @@ +# Server configuration + +include = ["minimal.toml"] + +# General settings +[general] +# Filesystem size in MiB +filesystem_size = 512 + +# Package settings +[packages] +bash = {} +bottom = {} +#contain = {} # needs to update dependencies +curl = {} +diffutils = {} +findutils = {} +git = {} +installer = {} +kibi = {} +redoxfs = {} diff --git a/config/sys-build.toml b/config/sys-build.toml new file mode 100644 index 0000000..9534edd --- /dev/null +++ b/config/sys-build.toml @@ -0,0 +1,31 @@ +# Configuration for automated self-hosted system compilation testing + +include = ["server.toml"] + +# General settings +[general] +# Filesystem size in MiB +filesystem_size = 10000 + +# Package settings +[packages] +cookbook = {} +bottom = "ignore" +kibi = "ignore" + +[[files]] +path = "/usr/lib/init.d/30_console" +data = """ +requires_weak 10_net +ion /usr/lib/sys_build.ion +""" + +[[files]] +path = "/usr/lib/sys_build.ion" +data = """ +#!/usr/bin/env ion +export RUST_BACKTRACE=full +cd /home/user/cookbook +make prefix r.sys,--with-package-deps +shutdown +""" diff --git a/config/tests.toml b/config/tests.toml new file mode 100644 index 0000000..eafbcbf --- /dev/null +++ b/config/tests.toml @@ -0,0 +1,15 @@ +# Configuration for testing + +include = ["server.toml"] + +# General settings +[general] +# Filesystem size in MiB +filesystem_size = 10000 +# Do not prompt if settings are not defined +prompt = false + +# Package settings +[packages] +redox-tests = {} +benchmarks = {} diff --git a/config/wayland.toml b/config/wayland.toml new file mode 100644 index 0000000..f750313 --- /dev/null +++ b/config/wayland.toml @@ -0,0 +1,99 @@ +# Wayland configuration + +include = ["desktop.toml"] + +# Override the default settings here + +# General settings +[general] +# Filesystem size in MiB +filesystem_size = 2048 + +# Package settings +[packages] +adwaita-icon-theme = {} +bash = {} +cosmic-app-library = {} +cosmic-comp = {} +gtk3 = {} +libcosmic-wayland = {} +libxcursor = {} +iced-wayland = {} +mesa = {} +"pop-icon-theme.cursors" = {} +smallvil = {} +softbuffer-wayland = {} +wayland-rs = {} +#webkitgtk3 = {} +winit-wayland = {} +xkeyboard-config = {} + +# Overridden to launch wayland compositor instead of orblogin +[[files]] +path = "/usr/lib/init.d/20_orbital" +data = """ +requires_weak 10_net +notify audiod +nowait BROWSER=/bin/netsurf-fb VT=3 orbital orbital-wayland +""" + +[[files]] +path = "/usr/bin/orbital-wayland" +mode = 0o755 +data = """ +#!/usr/bin/env bash + +set -ex + +# Prepare environment +unset DISPLAY +export COSMIC_BACKEND=winit +export HOME=/root +export LD_DEBUG=all +export RUST_BACKTRACE=full +export RUST_LOG=debug +export XCURSOR_THEME=Pop +export XDG_RUNTIME_DIR=/tmp/run/user/0 + +# Create XDG runtime directory +#TODO: mkdir -p not working +mkdir -p /tmp/run +mkdir -p /tmp/run/user +mkdir -p /tmp/run/user/0 + +# Compile glib schemas +glib-compile-schemas /usr/share/glib-2.0/schemas/ + +# For cosmic-comp (more features) +cosmic-comp wayland-session + +# For smallvil (easier to debug) +#smallvil -c wayland-session& +""" + +[[files]] +path = "/usr/bin/wayland-session" +mode = 0o755 +data = """ +#!/usr/bin/env bash + +set -ex + +#env G_MAIN_POLL_DEBUG=1 G_MESSAGES_DEBUG=all LD_DEBUG=all WEBKIT_DEBUG=all MiniBrowser& +printenv +#wayland-rs_simple_window +#winit-wayland_window +#softbuffer-wayland_animation +#iced-wayland_sctk_lazy +libcosmic-wayland_application +#gtk3-widget-factory +#cosmic-app-library run +""" + +[[files]] +path = "/etc/gtk-3.0/settings.ini" +data = """ +[Settings] +gtk-cursor-theme-name = "Pop" +gtk-icon-theme-name = "Cosmic" +""" diff --git a/config/x11.toml b/config/x11.toml new file mode 100644 index 0000000..b74918c --- /dev/null +++ b/config/x11.toml @@ -0,0 +1,161 @@ +# X11 configuration + +include = ["desktop.toml"] + +# Override the default settings here + +# General settings +[general] +# Filesystem size in MiB +filesystem_size = 2048 + +# Package settings +[packages] +adwaita-icon-theme = {} +dbus = {} +gtk3 = {} +mate-common = {} +mesa-demos-x11 = {} +#webkitgtk3 = {} # not compiling +#xfce4-panel = {} +#xfwm4 = {} +x11-full = {} +zenity = {} + +[[files]] +path = "/usr/lib/init.d/10_dbus" +data = """ +requires_weak 10_net +bash /usr/bin/start-dbus.sh +""" + +[[files]] +path = "/usr/bin/start-dbus.sh" +mode = 0o755 +data = """ +#!/usr/bin/env bash +export DBUS_DEBUG_OUTPUT=1 +#export DBUS_VERBOSE=1 +#export G_DBUS_DEBUG=all +mkdir -p /var/lib/dbus +dbus-uuidgen --ensure +mkdir -p /run/dbus +rm -f /run/dbus/pid +dbus-daemon --system +""" + +[[files]] +path = "/usr/lib/init.d/10_xenv" +data = """ +requires_weak 10_net +glib-compile-schemas /usr/share/glib-2.0/schemas/ +""" + +# Overridden to launch X instead of orblogin +[[files]] +path = "/usr/lib/init.d/20_orbital" +data = """ +requires_weak 10_dbus 10_xenv +notify audiod +nowait BROWSER=/bin/netsurf-fb VT=3 orbital orbital-x11 +""" + +[[files]] +path = "/usr/bin/orbital-x11" +mode = 0o755 +data = """ +#!/usr/bin/env bash + +set -ex + +# for ice authority and pixbuf +export HOME=/home/root +export XDG_DATA_DIRS=/usr/share + +# Generate config file +WIDTH="$((0x$(grep FRAMEBUFFER_WIDTH /scheme/sys/env | cut -d '=' -f 2)))" +HEIGHT="$((0x$(grep FRAMEBUFFER_HEIGHT /scheme/sys/env | cut -d '=' -f 2)))" +mkdir -p /usr/share/X11/xorg.conf.d +cat > /usr/share/X11/xorg.conf.d/orbital.conf < php /bin/composer install +""" + +[[files]] +postinstall = true +data = "" +path = "/etc/nginx/conf.d" +directory = true + +[[files]] +postinstall = true +path = "/etc/nginx/nginx.conf" +data = """ +user nginx; + +# currently nginx does a lot spin locking for some reason +worker_processes 1; +error_log /var/log/nginx/error.log; +pid /var/run/nginx.pid; + +events { + worker_connections 1024; +} +http { + log_format main '$remote_addr - $remote_user [$time_local] "$request" ' + '$status $body_bytes_sent "$http_referer" ' + '"$http_user_agent" "$http_x_forwarded_for"'; + access_log /var/log/nginx/access.log main; + + include mime.types; + include fastcgi.conf; + default_type application/octet-stream; + + include /etc/nginx/conf.d/*.conf; +} +""" + +[[files]] +postinstall = true +path = "/etc/nginx/conf.d/localhost.conf" +data = """ +server { + listen 80; + server_name localhost; + root /usr/share/website; + absolute_redirect off; + + location / { + index index.html index.htm; + } +} +""" + +[[files]] +postinstall = true +path = "/etc/nginx/conf.d/php-www.conf" +data = """ +server { + listen 8081; + server_name localhost; + root /var/www/html; + + index index.php index.html index.htm; + + location / { + try_files $uri $uri/ =404; + } + + location ~ \\.php$ { +# because we're not using PHP FPM (see rustysd php.service) +# include fastcgi_params; +# fastcgi_pass 127.0.0.1:9000; +# fastcgi_index index.php; +# fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; + proxy_pass http://127.0.0.1:9000; + } +} +""" + +[[files]] +postinstall = true +path = "/etc/php/84/php-fpm.conf" +data = """ + +error_log=/var/log/php-fpm.log +include=/etc/php/84/php-fpm.d/*.conf +""" + +[[files]] +postinstall = true +path = "/etc/php/84/php-fpm.d/www.conf" +data = """ +[www] +user = user +group = user +listen = 127.0.0.1:9000 +pm = static +pm.max_children = 1 +""" + +[[files]] +postinstall = true +path = "/etc/ssh/sshd_config" +data = """ +Port 22 +AddressFamily inet +AuthorizedKeysFile .ssh/authorized_keys +PermitRootLogin yes +PasswordAuthentication yes +PermitEmptyPasswords yes +Subsystem sftp /usr/libexec/sftp-server +""" + +[users.nobody] +password = "" +shell = "/usr/bin/ion" #TODO: nologin? + +[users.nginx] +password = "" +shell = "/usr/bin/ion" #TODO: nologin? + +[[files]] +path = "/root/keygen.sh" +data = """ +#!/usr/bin/env bash + +if [ ! -f /etc/ssh/ssh_host_rsa_key ]; then +ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_key -N "" +ssh-keygen -t ed25519 -f /etc/ssh/ssh_host_ed25519_key -N "" +ssh-keygen -t ecdsa -f /etc/ssh/ssh_host_ecdsa_key -N "" +fi +""" + +[[files]] +path = "/home/user/server.sh" +data = """ +#!/usr/bin/env bash + +/bin/sshd -D & +nginx -g "daemon off;" & +php-fpm --nodaemonize & +""" + +[[files]] +path = "/home/user/Welcome.txt" +data = """ +############################################################################## +# Welcome to Red Bear OS Server Demo! +# +# This is a quick demonstration of Red Bear OS used as server stack. +# At the moment we support SSH, NGINX, Python, PHP. There's more to come +# +# This server demo is insecure by design, we encourage you to get familiar into +# basics of server security if you wish to use this as a production server. +# +# There should be rustysd already running, if not, you can try start it manually +# > sudo rustysd --conf /etc/rustysd +# +# You can also try running all daemons manually +# > sudo bash server.sh +# +# The server will start port 22 (ssh), 80 (static web) and 8081 (php) +# If you use the Red Bear OS build system, starting QEMU with `net=redir` +# should expose those port to 8022, 8080 and 8081. +# Try logging in to console via SSH with `ssh user@localhost -p 8022` +# +############################################################################## +"""