2703 lines
62 KiB
Diff
2703 lines
62 KiB
Diff
diff --git a/config/aarch64/ci.toml b/config/aarch64/ci.toml
|
|
index c44288a..1d184f3 100644
|
|
--- a/config/aarch64/ci.toml
|
|
+++ b/config/aarch64/ci.toml
|
|
@@ -25,6 +25,7 @@ prompt = false
|
|
acid = {}
|
|
acid-bins = {}
|
|
base = {}
|
|
+base-initfs = {}
|
|
bash = {}
|
|
bash-completion = {}
|
|
bootloader = {}
|
|
diff --git a/config/acid.toml b/config/acid.toml
|
|
index 139e032..6e4e82e 100644
|
|
--- a/config/acid.toml
|
|
+++ b/config/acid.toml
|
|
@@ -14,10 +14,16 @@ coreutils = {}
|
|
ion = {}
|
|
|
|
[[files]]
|
|
-path = "/usr/lib/init.d/10_acid"
|
|
+path = "/usr/lib/init.d/10_acid.service"
|
|
data = """
|
|
-requires_weak 00_base.target
|
|
-ion /usr/lib/run_acid.ion
|
|
+[unit]
|
|
+description = "Acid test runner"
|
|
+requires_weak = ["00_pcid-spawner.service"]
|
|
+
|
|
+[service]
|
|
+cmd = "ion"
|
|
+args = ["/usr/lib/run_acid.ion"]
|
|
+type = "oneshot_async"
|
|
"""
|
|
|
|
[[files]]
|
|
diff --git a/config/auto-test.toml b/config/auto-test.toml
|
|
index e6f3032..aac5505 100644
|
|
--- a/config/auto-test.toml
|
|
+++ b/config/auto-test.toml
|
|
@@ -13,10 +13,16 @@ filesystem_size = 1024
|
|
auto-test = {}
|
|
|
|
[[files]]
|
|
-path = "/usr/lib/init.d/30_console"
|
|
+path = "/usr/lib/init.d/30_console.service"
|
|
data = """
|
|
-requires_weak 10_net.target
|
|
-ion /usr/lib/run_tests.ion
|
|
+[unit]
|
|
+description = "Automated test runner"
|
|
+requires_weak = ["00_base.target"]
|
|
+
|
|
+[service]
|
|
+cmd = "ion"
|
|
+args = ["/usr/lib/run_tests.ion"]
|
|
+type = "oneshot"
|
|
"""
|
|
|
|
[[files]]
|
|
diff --git a/config/base.toml b/config/base.toml
|
|
index 516af8e..e7a04f3 100644
|
|
--- a/config/base.toml
|
|
+++ b/config/base.toml
|
|
@@ -10,6 +10,7 @@ prompt = false
|
|
|
|
[packages]
|
|
base = {}
|
|
+base-initfs = {}
|
|
bootloader = {}
|
|
kernel = {}
|
|
libgcc = {}
|
|
@@ -21,6 +22,30 @@ userutils = {}
|
|
uutils = {}
|
|
|
|
## Configuration files
|
|
+[[files]]
|
|
+path = "/usr/lib/init.d/00_base.service"
|
|
+data = """
|
|
+[unit]
|
|
+description = "Base environment setup (tmpdir)"
|
|
+
|
|
+[service]
|
|
+cmd = "ion"
|
|
+args = ["-c", "rm -rf /tmp; mkdir -m a=rwxt /tmp"]
|
|
+type = "oneshot"
|
|
+"""
|
|
+
|
|
+[[files]]
|
|
+path = "/usr/lib/init.d/00_sudo.service"
|
|
+data = """
|
|
+[unit]
|
|
+description = "Sudo privilege daemon"
|
|
+
|
|
+[service]
|
|
+cmd = "sudo"
|
|
+args = ["--daemon"]
|
|
+type = "oneshot_async"
|
|
+"""
|
|
+
|
|
[[files]]
|
|
path = "/etc/login_schemes.toml"
|
|
data = """
|
|
@@ -61,13 +86,12 @@ schemes = [
|
|
"pty",
|
|
"sudo",
|
|
"audio",
|
|
- "orbital",
|
|
]
|
|
"""
|
|
|
|
[[files]]
|
|
path = "/etc/hostname"
|
|
-data = "redox"
|
|
+data = "redbear"
|
|
|
|
## Default net configuration (optimized for QEMU)
|
|
[[files]]
|
|
@@ -98,15 +122,16 @@ data = """
|
|
[[files]]
|
|
path = "/usr/lib/os-release"
|
|
data = """
|
|
-PRETTY_NAME="Redox OS 0.9.0"
|
|
-NAME="Redox OS"
|
|
-VERSION_ID="0.9.0"
|
|
-VERSION="0.9.0"
|
|
-ID="redox-os"
|
|
-
|
|
-HOME_URL="https://redox-os.org/"
|
|
-DOCUMENTATION_URL="https://redox-os.org/docs/"
|
|
-SUPPORT_URL="https://redox-os.org/community/"
|
|
+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?
|
|
|
|
@@ -176,17 +201,18 @@ path = "/share"
|
|
data = "usr/share"
|
|
symlink = true
|
|
|
|
-## legacy orbital directories
|
|
[[files]]
|
|
path = "/ui"
|
|
data = "usr/share/ui"
|
|
symlink = true
|
|
|
|
+## legacy display font directory
|
|
[[files]]
|
|
path = "/usr/share/ui/fonts"
|
|
data = "/usr/share/fonts"
|
|
symlink = true
|
|
|
|
+## legacy display icon directory
|
|
[[files]]
|
|
path = "/usr/share/ui/icons"
|
|
data = "/usr/share/icons"
|
|
@@ -235,6 +261,47 @@ 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"
|
|
diff --git a/config/desktop-contain.toml b/config/desktop-contain.toml
|
|
deleted file mode 100644
|
|
index a67a148..0000000
|
|
--- a/config/desktop-contain.toml
|
|
+++ /dev/null
|
|
@@ -1,42 +0,0 @@
|
|
-# Desktop configuration using the Contain sandbox
|
|
-
|
|
-include = ["desktop.toml"]
|
|
-
|
|
-# Override the default settings here
|
|
-
|
|
-# General settings
|
|
-[general]
|
|
-# Filesystem size in MiB
|
|
-# filesystem_size = 1024
|
|
-
|
|
-# Package settings
|
|
-[packages]
|
|
-# example = {}
|
|
-
|
|
-# Override orbital init to use contain_orblogin
|
|
-[[files]]
|
|
-path = "/usr/lib/init.d/20_orbital"
|
|
-data = """
|
|
-requires_weak 10_net.target 20_audiod.service
|
|
-nowait VT=3 orbital contain_orblogin launcher
|
|
-"""
|
|
-
|
|
-# Override console init to use contain
|
|
-[[files]]
|
|
-path = "/usr/lib/init.d/30_console"
|
|
-data = """
|
|
-requires_weak 20_orbital
|
|
-nowait getty --contain 2
|
|
-nowait getty --contain /scheme/debug/no-preserve -J
|
|
-"""
|
|
-
|
|
-[[files]]
|
|
-path = "/etc/contain.toml"
|
|
-data = """
|
|
-pass_schemes = ["rand", "null", "tcp", "udp", "thisproc", "pty", "orbital", "display.vesa"]
|
|
-sandbox_schemes = ["file"]
|
|
-files = ["file:/dev/null"]
|
|
-rofiles = ["file:/etc/passwd", "file:/etc/hostname", "file:/etc/localtime"]
|
|
-dirs = ["file:/tmp"]
|
|
-rodirs = ["file:/bin", "file:/ui"]
|
|
-"""
|
|
diff --git a/config/desktop-minimal.toml b/config/desktop-minimal.toml
|
|
index 8ac8f36..7aa8735 100644
|
|
--- a/config/desktop-minimal.toml
|
|
+++ b/config/desktop-minimal.toml
|
|
@@ -9,23 +9,55 @@ filesystem_size = 256
|
|
|
|
# Package settings
|
|
[packages]
|
|
-orbdata = {}
|
|
-orbital = {}
|
|
-orbterm = {}
|
|
-orbutils = {}
|
|
+orbdata = "ignore"
|
|
+orbital = "ignore"
|
|
+orbterm = "ignore"
|
|
+orbutils = "ignore"
|
|
|
|
[[files]]
|
|
-path = "/usr/lib/init.d/20_orbital"
|
|
+path = "/usr/lib/init.d/20_display.service"
|
|
data = """
|
|
-requires_weak 10_net.target 20_audiod.service
|
|
-nowait VT=3 orbital orblogin launcher
|
|
+[unit]
|
|
+description = "Display setup"
|
|
+requires_weak = ["00_base.target"]
|
|
+
|
|
+[service]
|
|
+cmd = "ion"
|
|
+args = ["-c", "true"]
|
|
+envs = { VT = "3" }
|
|
+type = "oneshot_async"
|
|
"""
|
|
|
|
-# Override console config to not switch to VT 2
|
|
+# Override: do not activate VT 2 (desktop uses VT 3)
|
|
+[[files]]
|
|
+path = "/usr/lib/init.d/29_activate_console.service"
|
|
+data = ""
|
|
+
|
|
+# Override console config to depend on display instead of VT activation
|
|
[[files]]
|
|
-path = "/usr/lib/init.d/30_console"
|
|
+path = "/usr/lib/init.d/30_console.service"
|
|
data = """
|
|
-requires_weak 20_orbital
|
|
-nowait getty 2
|
|
-nowait getty /scheme/debug/no-preserve -J
|
|
+[unit]
|
|
+description = "Console terminals"
|
|
+requires_weak = ["20_display.service"]
|
|
+
|
|
+[service]
|
|
+cmd = "getty"
|
|
+args = ["2"]
|
|
+type = "oneshot_async"
|
|
+respawn = true
|
|
+"""
|
|
+
|
|
+[[files]]
|
|
+path = "/usr/lib/init.d/31_debug_console.service"
|
|
+data = """
|
|
+[unit]
|
|
+description = "Debug console"
|
|
+requires_weak = ["30_console.service"]
|
|
+
|
|
+[service]
|
|
+cmd = "getty"
|
|
+args = ["/scheme/debug/no-preserve", "-J"]
|
|
+type = "oneshot_async"
|
|
+respawn = true
|
|
"""
|
|
diff --git a/config/desktop.toml b/config/desktop.toml
|
|
index c6c92c1..59ae330 100644
|
|
--- a/config/desktop.toml
|
|
+++ b/config/desktop.toml
|
|
@@ -9,11 +9,12 @@ filesystem_size = 650
|
|
|
|
# Package settings
|
|
[packages]
|
|
-cosmic-edit = {}
|
|
-cosmic-files = {}
|
|
-cosmic-icons = {}
|
|
-cosmic-term = {}
|
|
+cosmic-edit = "ignore"
|
|
+cosmic-files = "ignore"
|
|
+cosmic-icons = "ignore"
|
|
+cosmic-term = "ignore"
|
|
dejavu = {}
|
|
+ext4d = {}
|
|
freefont = {}
|
|
hicolor-icon-theme = {}
|
|
installer-gui = {}
|
|
diff --git a/config/i586/ci.toml b/config/i586/ci.toml
|
|
index d333d0f..3432fba 100644
|
|
--- a/config/i586/ci.toml
|
|
+++ b/config/i586/ci.toml
|
|
@@ -25,6 +25,7 @@ prompt = false
|
|
# acid = {} # rust require dynamic linking
|
|
acid-bins = {}
|
|
base = {}
|
|
+base-initfs = {}
|
|
bash = {}
|
|
bash-completion = {}
|
|
bootloader = {}
|
|
diff --git a/config/i586/demo.toml b/config/i586/demo.toml
|
|
index 4230fc1..e4568ae 100644
|
|
--- a/config/i586/demo.toml
|
|
+++ b/config/i586/demo.toml
|
|
@@ -26,22 +26,23 @@ path = "/home/user/Welcome.txt"
|
|
data = """
|
|
##############################################################################
|
|
# #
|
|
-# Welcome to Redox! #
|
|
+# Welcome to Red Bear OS! #
|
|
# #
|
|
-# Redox is 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 (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. #
|
|
# #
|
|
-# Redox _is not_ just a kernel, it's a full-featured Operating System, #
|
|
+# 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://www.redox-os.org. #
|
|
+# The website can be found at https://github.com/vasilito/Red-Bear-OS-3. #
|
|
# #
|
|
-# For things to try on Redox, please see #
|
|
+# 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/minimal.toml b/config/minimal.toml
|
|
index 7ccb60d..368e67b 100644
|
|
--- a/config/minimal.toml
|
|
+++ b/config/minimal.toml
|
|
@@ -17,10 +17,42 @@ pkgutils = {}
|
|
kibi = {}
|
|
|
|
[[files]]
|
|
-path = "/usr/lib/init.d/30_console"
|
|
+path = "/usr/lib/init.d/29_activate_console.service"
|
|
data = """
|
|
-requires_weak 10_net.target
|
|
-inputd -A 2
|
|
-nowait getty 2
|
|
-nowait getty /scheme/debug/no-preserve -J
|
|
+[unit]
|
|
+description = "Activate console VT"
|
|
+requires_weak = ["00_base.target"]
|
|
+
|
|
+[service]
|
|
+cmd = "inputd"
|
|
+args = ["-A", "2"]
|
|
+type = "oneshot_async"
|
|
+"""
|
|
+
|
|
+[[files]]
|
|
+path = "/usr/lib/init.d/30_console.service"
|
|
+data = """
|
|
+[unit]
|
|
+description = "Console terminals"
|
|
+requires_weak = ["29_activate_console.service"]
|
|
+
|
|
+[service]
|
|
+cmd = "getty"
|
|
+args = ["2"]
|
|
+type = "oneshot_async"
|
|
+respawn = true
|
|
+"""
|
|
+
|
|
+[[files]]
|
|
+path = "/usr/lib/init.d/31_debug_console.service"
|
|
+data = """
|
|
+[unit]
|
|
+description = "Debug console"
|
|
+requires_weak = ["29_activate_console.service"]
|
|
+
|
|
+[service]
|
|
+cmd = "getty"
|
|
+args = ["/scheme/debug/no-preserve", "-J"]
|
|
+type = "oneshot_async"
|
|
+respawn = true
|
|
"""
|
|
diff --git a/config/os-test.toml b/config/os-test.toml
|
|
index 048e31f..c7ebbc9 100644
|
|
--- a/config/os-test.toml
|
|
+++ b/config/os-test.toml
|
|
@@ -14,9 +14,15 @@ prompt = false
|
|
os-test-bins = {} # Provides source and cross-compiled binaries
|
|
|
|
[[files]]
|
|
-path = "/usr/lib/init.d/30_console"
|
|
+path = "/usr/lib/init.d/30_console.service"
|
|
data = """
|
|
-requires_weak 10_net.target
|
|
-RUST_BACKTRACE=full os-test-runner
|
|
-shutdown
|
|
+[unit]
|
|
+description = "OS test runner"
|
|
+requires_weak = ["00_base.target"]
|
|
+
|
|
+[service]
|
|
+cmd = "ion"
|
|
+args = ["-c", "os-test-runner; shutdown"]
|
|
+envs = { RUST_BACKTRACE = "full" }
|
|
+type = "oneshot"
|
|
"""
|
|
diff --git a/config/redbear-bluetooth-experimental.toml b/config/redbear-bluetooth-experimental.toml
|
|
new file mode 100644
|
|
index 0000000..fd8cfd0
|
|
--- /dev/null
|
|
+++ b/config/redbear-bluetooth-experimental.toml
|
|
@@ -0,0 +1,17 @@
|
|
+# Red Bear OS Bluetooth Experimental Profile
|
|
+#
|
|
+# Standalone build target for the first bounded Bluetooth slice.
|
|
+#
|
|
+# This profile extends the existing minimal Red Bear baseline but keeps Bluetooth wiring isolated to
|
|
+# this profile instead of leaking it into the shared device-service fragments used by all images.
|
|
+# The current slice is explicit-startup, USB-attached, BLE-first, and intentionally not wired to
|
|
+# USB-class autospawn yet.
|
|
+
|
|
+include = ["redbear-minimal.toml", "redbear-bluetooth-services.toml"]
|
|
+
|
|
+[general]
|
|
+filesystem_size = 2048
|
|
+
|
|
+[packages]
|
|
+redbear-btusb = {}
|
|
+redbear-btctl = {}
|
|
diff --git a/config/redbear-bluetooth-services.toml b/config/redbear-bluetooth-services.toml
|
|
new file mode 100644
|
|
index 0000000..29408c4
|
|
--- /dev/null
|
|
+++ b/config/redbear-bluetooth-services.toml
|
|
@@ -0,0 +1,17 @@
|
|
+# Red Bear OS Bluetooth experimental service wiring
|
|
+#
|
|
+# Kept in a dedicated included fragment so the Bluetooth profile can inject
|
|
+# bounded runtime files and service units without relying on profile-local
|
|
+# [[files]] behavior.
|
|
+
|
|
+[[files]]
|
|
+path = "/var/lib/bluetooth"
|
|
+data = ""
|
|
+directory = true
|
|
+mode = 0o755
|
|
+
|
|
+[[files]]
|
|
+path = "/var/run/redbear-btusb"
|
|
+data = ""
|
|
+directory = true
|
|
+mode = 0o755
|
|
diff --git a/config/redbear-device-services.toml b/config/redbear-device-services.toml
|
|
new file mode 100644
|
|
index 0000000..98d546d
|
|
--- /dev/null
|
|
+++ b/config/redbear-device-services.toml
|
|
@@ -0,0 +1,128 @@
|
|
+# Red Bear OS shared device-service wiring
|
|
+#
|
|
+# Shared by profiles that ship the firmware/input/Wi-Fi control compatibility stack.
|
|
+
|
|
+[packages]
|
|
+redbear-quirks = {}
|
|
+pciids = {}
|
|
+fatd = {}
|
|
+
|
|
+[[files]]
|
|
+path = "/usr/lib/init.d/12_boot-late.target"
|
|
+data = """
|
|
+[unit]
|
|
+description = "Late boot services target"
|
|
+requires_weak = [
|
|
+ "00_base.target",
|
|
+]
|
|
+"""
|
|
+
|
|
+[[files]]
|
|
+path = "/lib/firmware"
|
|
+data = ""
|
|
+directory = true
|
|
+mode = 0o755
|
|
+
|
|
+[[files]]
|
|
+path = "/usr/bin/usbctl"
|
|
+data = "/usr/lib/drivers/usbctl"
|
|
+symlink = true
|
|
+
|
|
+[[files]]
|
|
+path = "/lib/pcid.d/intel_gpu.toml"
|
|
+data = """
|
|
+# PCID configuration for Intel GPU auto-detection
|
|
+[[drivers]]
|
|
+name = "Intel GPU (VGA compatible)"
|
|
+class = 0x03
|
|
+vendor = 0x8086
|
|
+subclass = 0x00
|
|
+command = ["redox-drm"]
|
|
+
|
|
+[[drivers]]
|
|
+name = "Intel GPU (3D controller)"
|
|
+class = 0x03
|
|
+vendor = 0x8086
|
|
+subclass = 0x02
|
|
+command = ["redox-drm"]
|
|
+"""
|
|
+
|
|
+[[files]]
|
|
+path = "/lib/pcid.d/amd_gpu.toml"
|
|
+data = """
|
|
+# PCID configuration for AMD GPU auto-detection
|
|
+[[drivers]]
|
|
+name = "AMD GPU (VGA compatible)"
|
|
+class = 0x03
|
|
+vendor = 0x1002
|
|
+subclass = 0x00
|
|
+command = ["redox-drm"]
|
|
+
|
|
+[[drivers]]
|
|
+name = "AMD GPU (3D controller)"
|
|
+class = 0x03
|
|
+vendor = 0x1002
|
|
+subclass = 0x02
|
|
+command = ["redox-drm"]
|
|
+"""
|
|
+
|
|
+[[files]]
|
|
+path = "/usr/lib/init.d/05_firmware-loader.service"
|
|
+data = """
|
|
+[unit]
|
|
+description = "Firmware loading scheme"
|
|
+requires_weak = [
|
|
+ "12_boot-late.target",
|
|
+ "00_pcid-spawner.service",
|
|
+]
|
|
+
|
|
+[service]
|
|
+cmd = "firmware-loader"
|
|
+type = { scheme = "firmware" }
|
|
+"""
|
|
+
|
|
+[[files]]
|
|
+path = "/usr/lib/init.d/11_udev.service"
|
|
+data = """
|
|
+[unit]
|
|
+description = "udev compatibility shim"
|
|
+requires_weak = [
|
|
+ "12_boot-late.target",
|
|
+ "00_pcid-spawner.service",
|
|
+]
|
|
+
|
|
+[service]
|
|
+cmd = "udev-shim"
|
|
+type = { scheme = "udev" }
|
|
+"""
|
|
+
|
|
+[[files]]
|
|
+path = "/usr/lib/init.d/11_wifictl.service"
|
|
+data = """
|
|
+[unit]
|
|
+description = "Wi-Fi control daemon"
|
|
+requires_weak = [
|
|
+ "12_boot-late.target",
|
|
+ "00_pcid-spawner.service",
|
|
+ "05_firmware-loader.service",
|
|
+]
|
|
+
|
|
+[service]
|
|
+cmd = "redbear-wifictl"
|
|
+type = { scheme = "wifictl" }
|
|
+"""
|
|
+
|
|
+[[files]]
|
|
+path = "/usr/lib/init.d/10_evdevd.service"
|
|
+data = """
|
|
+[unit]
|
|
+description = "Evdev input daemon"
|
|
+requires_weak = [
|
|
+ "12_boot-late.target",
|
|
+ "00_pcid-spawner.service",
|
|
+]
|
|
+
|
|
+[service]
|
|
+cmd = "evdevd"
|
|
+type = "oneshot_async"
|
|
+"""
|
|
diff --git a/config/redbear-full.toml b/config/redbear-full.toml
|
|
new file mode 100644
|
|
index 0000000..9aea15b
|
|
--- /dev/null
|
|
+++ b/config/redbear-full.toml
|
|
@@ -0,0 +1,349 @@
|
|
+# Red Bear OS Full Configuration
|
|
+# Desktop/graphics ISO for bare metal and QEMU.
|
|
+#
|
|
+# Build: make live CONFIG_NAME=redbear-full
|
|
+# QEMU: make all CONFIG_NAME=redbear-full && make qemu
|
|
+#
|
|
+# Extends redbear-mini with the full desktop/graphics stack:
|
|
+# Wayland, Qt6, KF6, KWin, Mesa, DRM drivers, firmware, greeter.
|
|
+
|
|
+include = ["redbear-mini.toml"]
|
|
+
|
|
+[general]
|
|
+filesystem_size = 4096
|
|
+efi_partition_size = 16
|
|
+
|
|
+[users.messagebus]
|
|
+uid = 100
|
|
+gid = 100
|
|
+name = "messagebus"
|
|
+home = "/nonexistent"
|
|
+shell = "/usr/bin/ion"
|
|
+
|
|
+[packages]
|
|
+# Firmware loading
|
|
+redbear-firmware = {}
|
|
+firmware-loader = {}
|
|
+
|
|
+# GPU/graphics stack
|
|
+redox-drm = {}
|
|
+mesa = {}
|
|
+libdrm = {}
|
|
+
|
|
+# Wayland protocol
|
|
+libwayland = {}
|
|
+wayland-protocols = {}
|
|
+
|
|
+# Keyboard/input
|
|
+libxkbcommon = {}
|
|
+xkeyboard-config = {}
|
|
+libevdev = {}
|
|
+libinput = {}
|
|
+
|
|
+# Seat management
|
|
+seatd = {}
|
|
+
|
|
+# Qt6 stack
|
|
+qtbase = {}
|
|
+qtdeclarative = {}
|
|
+qtsvg = {}
|
|
+qtwayland = {}
|
|
+qt6-wayland-smoke = {}
|
|
+
|
|
+# KF6 Frameworks
|
|
+kf6-extra-cmake-modules = {}
|
|
+kf6-kcoreaddons = {}
|
|
+kf6-kconfig = {}
|
|
+kf6-ki18n = {}
|
|
+kf6-kcolorscheme = {}
|
|
+kf6-kauth = {}
|
|
+kf6-kwindowsystem = {}
|
|
+kf6-knotifications = {}
|
|
+kf6-kconfigwidgets = {}
|
|
+kf6-kcrash = {}
|
|
+kf6-kdbusaddons = {}
|
|
+kf6-kglobalaccel = {}
|
|
+kf6-kservice = {}
|
|
+kf6-kpackage = {}
|
|
+kf6-kiconthemes = {}
|
|
+kirigami = {}
|
|
+kf6-kio = {}
|
|
+kf6-kdeclarative = {}
|
|
+kf6-kcmutils = {}
|
|
+kf6-kwayland = {}
|
|
+kdecoration = {}
|
|
+kf6-kded6 = {}
|
|
+kglobalacceld = {}
|
|
+
|
|
+# KWin Wayland compositor
|
|
+kwin = {}
|
|
+
|
|
+# Greeter/login stack
|
|
+redbear-authd = {}
|
|
+redbear-session-launch = {}
|
|
+redbear-greeter = {}
|
|
+
|
|
+# Core Red Bear umbrella package
|
|
+redbear-meta = {}
|
|
+
|
|
+# Desktop fonts and icons
|
|
+dejavu = {}
|
|
+freefont = {}
|
|
+hicolor-icon-theme = {}
|
|
+pop-icon-theme = {}
|
|
+
|
|
+# Suppress legacy desktop packages
|
|
+orbdata = "ignore"
|
|
+orbital = "ignore"
|
|
+orbterm = "ignore"
|
|
+orbutils = "ignore"
|
|
+cosmic-edit = "ignore"
|
|
+cosmic-files = "ignore"
|
|
+cosmic-icons = "ignore"
|
|
+cosmic-term = "ignore"
|
|
+
|
|
+[[files]]
|
|
+path = "/lib/firmware/amdgpu"
|
|
+data = ""
|
|
+directory = true
|
|
+mode = 0o755
|
|
+
|
|
+[[files]]
|
|
+path = "/usr/lib/fonts"
|
|
+data = "/usr/share/fonts"
|
|
+symlink = true
|
|
+
|
|
+[[files]]
|
|
+path = "/usr/lib/init.d/05_boot-essential.target"
|
|
+data = """
|
|
+[unit]
|
|
+description = "Boot essential services target"
|
|
+requires_weak = [
|
|
+ "00_base.target",
|
|
+]
|
|
+"""
|
|
+
|
|
+[[files]]
|
|
+path = "/usr/lib/init.d/13_iommu.service"
|
|
+data = """
|
|
+[unit]
|
|
+description = "IOMMU DMA remapping daemon"
|
|
+requires_weak = [
|
|
+ "12_boot-late.target",
|
|
+ "00_pcid-spawner.service",
|
|
+]
|
|
+
|
|
+[service]
|
|
+cmd = "/usr/bin/iommu"
|
|
+type = "oneshot_async"
|
|
+"""
|
|
+
|
|
+[[files]]
|
|
+path = "/usr/lib/init.d/12_dbus.service"
|
|
+data = """
|
|
+[unit]
|
|
+description = "D-Bus system bus"
|
|
+requires_weak = [
|
|
+ "12_boot-late.target",
|
|
+]
|
|
+
|
|
+[service]
|
|
+cmd = "ion"
|
|
+args = [
|
|
+ "-c",
|
|
+ "mkdir -p /var/lib/dbus /run/dbus; rm -f /run/dbus/pid; dbus-uuidgen --ensure; dbus-daemon --system",
|
|
+]
|
|
+type = "oneshot_async"
|
|
+"""
|
|
+
|
|
+[[files]]
|
|
+path = "/usr/lib/init.d/13_redbear-sessiond.service"
|
|
+data = """
|
|
+[unit]
|
|
+description = "Red Bear session broker (org.freedesktop.login1)"
|
|
+requires_weak = [
|
|
+ "12_dbus.service",
|
|
+]
|
|
+
|
|
+[service]
|
|
+cmd = "redbear-sessiond"
|
|
+type = "oneshot_async"
|
|
+"""
|
|
+
|
|
+[[files]]
|
|
+path = "/usr/lib/init.d/13_seatd.service"
|
|
+data = """
|
|
+[unit]
|
|
+description = "seatd seat management daemon"
|
|
+requires_weak = [
|
|
+ "12_dbus.service",
|
|
+ "13_redbear-sessiond.service",
|
|
+]
|
|
+
|
|
+[service]
|
|
+cmd = "/usr/bin/seatd"
|
|
+args = ["-l", "info"]
|
|
+type = "oneshot_async"
|
|
+"""
|
|
+
|
|
+[[files]]
|
|
+path = "/usr/lib/init.d/14_redbear-upower.service"
|
|
+data = """
|
|
+[unit]
|
|
+description = "UPower D-Bus service (org.freedesktop.UPower)"
|
|
+requires_weak = [
|
|
+ "12_dbus.service",
|
|
+]
|
|
+
|
|
+[service]
|
|
+cmd = "redbear-upower"
|
|
+type = "oneshot_async"
|
|
+"""
|
|
+
|
|
+[[files]]
|
|
+path = "/usr/lib/init.d/14_redbear-udisks.service"
|
|
+data = """
|
|
+[unit]
|
|
+description = "UDisks2 D-Bus service (org.freedesktop.UDisks2)"
|
|
+requires_weak = [
|
|
+ "12_dbus.service",
|
|
+]
|
|
+
|
|
+[service]
|
|
+cmd = "redbear-udisks"
|
|
+type = "oneshot_async"
|
|
+"""
|
|
+
|
|
+[[files]]
|
|
+path = "/usr/lib/init.d/14_redbear-polkit.service"
|
|
+data = """
|
|
+[unit]
|
|
+description = "PolicyKit1 D-Bus service (org.freedesktop.PolicyKit1)"
|
|
+requires_weak = [
|
|
+ "12_dbus.service",
|
|
+]
|
|
+
|
|
+[service]
|
|
+cmd = "redbear-polkit"
|
|
+type = "oneshot_async"
|
|
+"""
|
|
+
|
|
+[[files]]
|
|
+path = "/usr/lib/init.d/19_redbear-authd.service"
|
|
+data = """
|
|
+[unit]
|
|
+description = "Red Bear authentication daemon"
|
|
+requires_weak = [
|
|
+ "12_dbus.service",
|
|
+]
|
|
+
|
|
+[service]
|
|
+cmd = "/usr/bin/redbear-authd"
|
|
+type = "oneshot_async"
|
|
+"""
|
|
+
|
|
+[[files]]
|
|
+path = "/usr/lib/init.d/20_greeter.service"
|
|
+data = """
|
|
+[unit]
|
|
+description = "Red Bear greeter service"
|
|
+requires_weak = [
|
|
+ "12_dbus.service",
|
|
+ "13_redbear-sessiond.service",
|
|
+ "13_seatd.service",
|
|
+ "19_redbear-authd.service",
|
|
+]
|
|
+
|
|
+[service]
|
|
+cmd = "/usr/bin/redbear-greeterd"
|
|
+envs = { VT = "3", REDBEAR_GREETER_USER = "greeter" }
|
|
+type = "oneshot_async"
|
|
+"""
|
|
+
|
|
+[[files]]
|
|
+path = "/usr/lib/init.d/29_activate_console.service"
|
|
+data = """
|
|
+[unit]
|
|
+description = "Activate fallback console VT"
|
|
+requires_weak = [
|
|
+ "05_boot-essential.target",
|
|
+]
|
|
+
|
|
+[service]
|
|
+cmd = "inputd"
|
|
+args = ["-A", "2"]
|
|
+type = "oneshot_async"
|
|
+"""
|
|
+
|
|
+[[files]]
|
|
+path = "/usr/lib/init.d/30_console.service"
|
|
+data = """
|
|
+[unit]
|
|
+description = "Console terminals"
|
|
+requires_weak = [
|
|
+ "29_activate_console.service",
|
|
+]
|
|
+
|
|
+[service]
|
|
+cmd = "getty"
|
|
+args = ["2"]
|
|
+type = "oneshot_async"
|
|
+respawn = true
|
|
+"""
|
|
+
|
|
+[[files]]
|
|
+path = "/usr/lib/init.d/31_debug_console.service"
|
|
+data = """
|
|
+[unit]
|
|
+description = "Debug console"
|
|
+requires_weak = [
|
|
+ "29_activate_console.service",
|
|
+]
|
|
+
|
|
+[service]
|
|
+cmd = "getty"
|
|
+args = ["/scheme/debug/no-preserve", "-J"]
|
|
+type = "oneshot_async"
|
|
+respawn = true
|
|
+"""
|
|
+
|
|
+[users.greeter]
|
|
+password = ""
|
|
+uid = 101
|
|
+gid = 101
|
|
+name = "greeter"
|
|
+home = "/nonexistent"
|
|
+shell = "/usr/bin/ion"
|
|
+
|
|
+[groups.greeter]
|
|
+gid = 101
|
|
+members = ["greeter"]
|
|
+
|
|
+[[files]]
|
|
+path = "/etc/pcid.d/ihdgd.toml"
|
|
+data = """
|
|
+[[drivers]]
|
|
+name = "Intel GPU (VGA compatible)"
|
|
+class = 0x03
|
|
+vendor = 0x8086
|
|
+subclass = 0x00
|
|
+command = ["redox-drm"]
|
|
+
|
|
+[[drivers]]
|
|
+name = "Intel GPU (3D controller)"
|
|
+class = 0x03
|
|
+vendor = 0x8086
|
|
+subclass = 0x02
|
|
+command = ["redox-drm"]
|
|
+"""
|
|
+
|
|
+[[files]]
|
|
+path = "/etc/pcid.d/virtio-gpud.toml"
|
|
+data = """
|
|
+[[drivers]]
|
|
+name = "VirtIO GPU"
|
|
+class = 0x03
|
|
+vendor = 0x1af4
|
|
+subclass = 0x00
|
|
+command = ["redox-drm"]
|
|
+"""
|
|
diff --git a/config/redbear-greeter-services.toml b/config/redbear-greeter-services.toml
|
|
new file mode 100644
|
|
index 0000000..d20b0e2
|
|
--- /dev/null
|
|
+++ b/config/redbear-greeter-services.toml
|
|
@@ -0,0 +1,126 @@
|
|
+# Red Bear greeter/login service wiring
|
|
+#
|
|
+# This fragment is intended to be included by the active desktop/graphics target.
|
|
+
|
|
+[[files]]
|
|
+path = "/usr/lib/init.d/05_boot-essential.target"
|
|
+data = """
|
|
+[unit]
|
|
+description = "Boot essential services target"
|
|
+requires_weak = [
|
|
+ "00_base.target",
|
|
+]
|
|
+"""
|
|
+
|
|
+[users.greeter]
|
|
+password = ""
|
|
+uid = 101
|
|
+gid = 101
|
|
+name = "greeter"
|
|
+home = "/nonexistent"
|
|
+shell = "/usr/bin/ion"
|
|
+
|
|
+[groups.greeter]
|
|
+gid = 101
|
|
+members = ["greeter"]
|
|
+
|
|
+[packages]
|
|
+redbear-authd = {}
|
|
+redbear-session-launch = {}
|
|
+redbear-greeter = {}
|
|
+
|
|
+[[files]]
|
|
+path = "/usr/lib/init.d/19_redbear-authd.service"
|
|
+data = """
|
|
+[unit]
|
|
+description = "Red Bear authentication daemon"
|
|
+requires_weak = [
|
|
+ "12_dbus.service",
|
|
+]
|
|
+
|
|
+[service]
|
|
+cmd = "ion"
|
|
+args = [
|
|
+ "-c",
|
|
+ "redbear-authd",
|
|
+]
|
|
+type = "oneshot_async"
|
|
+"""
|
|
+
|
|
+[[files]]
|
|
+path = "/usr/lib/init.d/20_display.service"
|
|
+data = """
|
|
+[unit]
|
|
+description = "Compositor proof (Phase 2: KWin virtual + Qt6 smoke + 60s survival)"
|
|
+requires_weak = [
|
|
+ "12_dbus.service",
|
|
+ "13_redbear-sessiond.service",
|
|
+ "13_seatd.service",
|
|
+]
|
|
+
|
|
+[service]
|
|
+cmd = "redbear-validation-session"
|
|
+envs = { VT = "3" }
|
|
+type = "oneshot_async"
|
|
+"""
|
|
+
|
|
+[[files]]
|
|
+path = "/usr/lib/init.d/20_greeter.service"
|
|
+data = """
|
|
+[unit]
|
|
+description = "Red Bear greeter service (disabled for Phase 2 compositor proof; re-enable for Phase 3 user sessions)"
|
|
+requires_weak = [
|
|
+]
|
|
+
|
|
+[service]
|
|
+cmd = "ion"
|
|
+args = ["-c", "true"]
|
|
+type = "oneshot_async"
|
|
+"""
|
|
+
|
|
+[[files]]
|
|
+path = "/usr/lib/init.d/30_console.service"
|
|
+data = """
|
|
+[unit]
|
|
+description = "Console terminals"
|
|
+requires_weak = [
|
|
+ "29_activate_console.service",
|
|
+]
|
|
+
|
|
+[service]
|
|
+cmd = "getty"
|
|
+args = ["2"]
|
|
+type = "oneshot_async"
|
|
+respawn = true
|
|
+"""
|
|
+
|
|
+[[files]]
|
|
+path = "/usr/lib/init.d/29_activate_console.service"
|
|
+data = """
|
|
+[unit]
|
|
+description = "Activate fallback console VT"
|
|
+requires_weak = [
|
|
+ "05_boot-essential.target",
|
|
+]
|
|
+
|
|
+[service]
|
|
+cmd = "inputd"
|
|
+args = ["-A", "2"]
|
|
+type = "oneshot_async"
|
|
+"""
|
|
+
|
|
+[[files]]
|
|
+path = "/usr/lib/init.d/31_debug_console.service"
|
|
+data = """
|
|
+[unit]
|
|
+description = "Debug console"
|
|
+requires_weak = [
|
|
+ "29_activate_console.service",
|
|
+]
|
|
+
|
|
+[service]
|
|
+cmd = "getty"
|
|
+args = ["/scheme/debug/no-preserve", "-J"]
|
|
+type = "oneshot_async"
|
|
+respawn = true
|
|
+"""
|
|
diff --git a/config/redbear-grub-policy.toml b/config/redbear-grub-policy.toml
|
|
new file mode 100644
|
|
index 0000000..33e8098
|
|
--- /dev/null
|
|
+++ b/config/redbear-grub-policy.toml
|
|
@@ -0,0 +1,9 @@
|
|
+# Red Bear OS shared GRUB policy fragment
|
|
+# Use with any redbear-* profile to make GRUB first-class in installer flows.
|
|
+
|
|
+[general]
|
|
+bootloader = "grub"
|
|
+efi_partition_size = 16
|
|
+
|
|
+[packages]
|
|
+grub = {}
|
|
diff --git a/config/redbear-grub.toml b/config/redbear-grub.toml
|
|
new file mode 100644
|
|
index 0000000..27e3e2f
|
|
--- /dev/null
|
|
+++ b/config/redbear-grub.toml
|
|
@@ -0,0 +1,16 @@
|
|
+# Red Bear OS GRUB Configuration
|
|
+# Text-only ISO with GRUB boot manager for bare metal.
|
|
+#
|
|
+# Build: make live CONFIG_NAME=redbear-grub
|
|
+#
|
|
+# Identical to redbear-mini but uses GNU GRUB as the boot manager
|
|
+# instead of the Redox EFI bootloader.
|
|
+
|
|
+include = ["redbear-mini.toml", "redbear-grub-policy.toml"]
|
|
+
|
|
+[general]
|
|
+bootloader = "grub"
|
|
+efi_partition_size = 16
|
|
+
|
|
+[packages]
|
|
+grub = {}
|
|
diff --git a/config/redbear-legacy-base.toml b/config/redbear-legacy-base.toml
|
|
new file mode 100644
|
|
index 0000000..1c2a273
|
|
--- /dev/null
|
|
+++ b/config/redbear-legacy-base.toml
|
|
@@ -0,0 +1,52 @@
|
|
+# Red Bear OS overrides for base init services.
|
|
+#
|
|
+# 00_base.service: stripped base setup (tmpdir only, no sudo — sudo runs from
|
|
+# base.toml's 00_sudo.service). ipcd and ptyd are started by
|
|
+# 00_ipcd.service and 00_ptyd.service from the base recipe.
|
|
+# 00_drivers / 10_net: no longer overridden — the legacy scripts were removed
|
|
+# from base.toml. pcid-spawner is started by 00_pcid-spawner.service
|
|
+# from the base recipe; smolnetd/dhcpd have their own .service files.
|
|
+# 00_pcid-spawner.service: overridden to oneshot_async. The base recipe uses
|
|
+# type="oneshot" which blocks init until pcid-spawner exits. On real
|
|
+# hardware (and QEMU), pcid-spawner can hang waiting for a PCI device
|
|
+# driver that never responds, blocking the entire rootfs phase including
|
|
+# getty/login. Using oneshot_async lets init proceed to start console
|
|
+# services while drivers spawn in the background.
|
|
+
|
|
+[packages]
|
|
+zsh = {}
|
|
+
|
|
+[[files]]
|
|
+path = "/usr/lib/init.d/00_base.service"
|
|
+data = """
|
|
+[unit]
|
|
+description = "Base environment setup (tmpdir)"
|
|
+
|
|
+[service]
|
|
+cmd = "ion"
|
|
+args = ["-c", "rm -rf /tmp; mkdir -m a=rwxt /tmp"]
|
|
+type = "oneshot"
|
|
+"""
|
|
+
|
|
+[[files]]
|
|
+path = "/etc/init.d/20_audiod.service"
|
|
+data = """
|
|
+[unit]
|
|
+description = "Audio multiplexer"
|
|
+default_dependencies = false
|
|
+
|
|
+[service]
|
|
+cmd = "audiod"
|
|
+type = "oneshot_async"
|
|
+"""
|
|
+
|
|
+[[files]]
|
|
+path = "/etc/init.d/00_pcid-spawner.service"
|
|
+data = """
|
|
+[unit]
|
|
+description = "PCI driver spawner (non-blocking)"
|
|
+
|
|
+[service]
|
|
+cmd = "pcid-spawner"
|
|
+type = "oneshot_async"
|
|
+"""
|
|
diff --git a/config/redbear-legacy-desktop.toml b/config/redbear-legacy-desktop.toml
|
|
new file mode 100644
|
|
index 0000000..34b0e7e
|
|
--- /dev/null
|
|
+++ b/config/redbear-legacy-desktop.toml
|
|
@@ -0,0 +1,18 @@
|
|
+# Red Bear OS overrides for legacy desktop init services.
|
|
+# Blank the display and console services inherited from desktop-minimal.toml.
|
|
+
|
|
+[[files]]
|
|
+path = "/usr/lib/init.d/20_display.service"
|
|
+data = ""
|
|
+
|
|
+[[files]]
|
|
+path = "/usr/lib/init.d/29_activate_console.service"
|
|
+data = ""
|
|
+
|
|
+[[files]]
|
|
+path = "/usr/lib/init.d/30_console.service"
|
|
+data = ""
|
|
+
|
|
+[[files]]
|
|
+path = "/usr/lib/init.d/31_debug_console.service"
|
|
+data = ""
|
|
diff --git a/config/redbear-mini.toml b/config/redbear-mini.toml
|
|
new file mode 100644
|
|
index 0000000..9b5cb60
|
|
--- /dev/null
|
|
+++ b/config/redbear-mini.toml
|
|
@@ -0,0 +1,456 @@
|
|
+# Red Bear OS Mini Configuration
|
|
+# Text-only ISO for console/recovery/install on bare metal.
|
|
+#
|
|
+# Build: make live CONFIG_NAME=redbear-mini
|
|
+#
|
|
+# Target contract:
|
|
+# - text-login live/recovery/install surface
|
|
+# - boot framebuffer for VT text consoles via vesad + fbcond
|
|
+# - all non-graphics, non-firmware packages from the full profile
|
|
+# - no linux-firmware payload, no firmware-loader, no GPU/display drivers
|
|
+
|
|
+include = ["minimal.toml", "redbear-legacy-base.toml", "redbear-netctl.toml"]
|
|
+
|
|
+[general]
|
|
+filesystem_size = 1536
|
|
+
|
|
+[users.messagebus]
|
|
+uid = 100
|
|
+gid = 100
|
|
+name = "messagebus"
|
|
+home = "/nonexistent"
|
|
+shell = "/usr/bin/ion"
|
|
+
|
|
+[packages]
|
|
+# Red Bear OS branding and host utilities.
|
|
+redbear-release = {}
|
|
+redbear-hwutils = {}
|
|
+redbear-quirks = {}
|
|
+
|
|
+# Redox-native netctl tooling.
|
|
+redbear-netctl = {}
|
|
+redbear-netctl-console = {}
|
|
+redbear-netstat = {}
|
|
+redbear-traceroute = {}
|
|
+redbear-mtr = {}
|
|
+redbear-nmap = {}
|
|
+
|
|
+# Wi-Fi control daemon (firmware-loader excluded — no firmware blobs in mini).
|
|
+redbear-wifictl = {}
|
|
+
|
|
+# Diagnostics and shell-side utilities.
|
|
+mc = {}
|
|
+redbear-info = {}
|
|
+
|
|
+# Keep package builder utility in live environment.
|
|
+cub = {}
|
|
+
|
|
+# ── PCI device database (critical for pcid-spawner driver matching) ──
|
|
+pciids = {}
|
|
+
|
|
+# ── Filesystem support ──
|
|
+ext4d = {}
|
|
+fatd = {}
|
|
+redoxfs = {}
|
|
+
|
|
+# ── System installer ──
|
|
+installer = {}
|
|
+
|
|
+# ── Input / device management ──
|
|
+evdevd = {}
|
|
+udev-shim = {}
|
|
+
|
|
+# ── D-Bus IPC and session services ──
|
|
+dbus = {}
|
|
+redbear-sessiond = {}
|
|
+redbear-dbus-services = {}
|
|
+redbear-notifications = {}
|
|
+redbear-upower = {}
|
|
+redbear-udisks = {}
|
|
+redbear-polkit = {}
|
|
+
|
|
+# ── IOMMU DMA remapping ──
|
|
+iommu = {}
|
|
+
|
|
+# ── Standard CLI tools (from server profile) ──
|
|
+bash = {}
|
|
+bottom = {}
|
|
+curl = {}
|
|
+diffutils = {}
|
|
+findutils = {}
|
|
+git = {}
|
|
+htop = {}
|
|
+
|
|
+# ── Build / packaging utilities ──
|
|
+patchelf = {}
|
|
+shared-mime-info = {}
|
|
+
|
|
+# VT/getty/login chain: initfs starts inputd + vesad + fbcond in phase 1,
|
|
+# then minimal.toml legacy 30_console runs inputd -A 2 + getty 2 + getty debug.
|
|
+
|
|
+[[files]]
|
|
+path = "/etc/netctl/active"
|
|
+data = "wired-dhcp\n"
|
|
+
|
|
+[[files]]
|
|
+path = "/etc/init.d/10_smolnetd.service"
|
|
+data = """
|
|
+[unit]
|
|
+description = "Network stack (non-blocking on live-mini)"
|
|
+requires_weak = [
|
|
+ "00_pcid-spawner.service",
|
|
+]
|
|
+
|
|
+[service]
|
|
+cmd = "netstack"
|
|
+type = "oneshot_async"
|
|
+"""
|
|
+
|
|
+[[files]]
|
|
+path = "/etc/init.d/10_dhcpd.service"
|
|
+data = """
|
|
+[unit]
|
|
+description = "DHCP client daemon (non-blocking on live-mini)"
|
|
+requires_weak = [
|
|
+ "10_smolnetd.service",
|
|
+]
|
|
+
|
|
+[service]
|
|
+cmd = "dhcpd"
|
|
+args = ["-f"]
|
|
+type = "oneshot_async"
|
|
+"""
|
|
+
|
|
+[[files]]
|
|
+path = "/etc/issue"
|
|
+data = """
|
|
+########## Red Bear OS #########
|
|
+# Login with the following: #
|
|
+# `user` #
|
|
+# `root`:`password` #
|
|
+################################
|
|
+"""
|
|
+
|
|
+[[files]]
|
|
+path = "/etc/motd"
|
|
+data = """
|
|
+
|
|
+ _ _
|
|
+ | | (_)
|
|
+ | | ___ _ ___ _ __ _ _ ___
|
|
+ | |/ / || |/ _ \\ | '_ \\| | | / __|
|
|
+ | < | || | (_) || |_) | |_| \\__ \\
|
|
+ |_|\\_\\|_|/ |\\___/ | .__/ \\__,_|___/
|
|
+ |__/ | |
|
|
+ |_|
|
|
+
|
|
+ Red Bear OS v0.2.0 "Liliya" — Built on Redox OS
|
|
+ Type 'help' for available commands.
|
|
+"""
|
|
+
|
|
+[[files]]
|
|
+path = "/etc/init.d/20_audiod.service"
|
|
+data = """
|
|
+[unit]
|
|
+description = "Audio multiplexer (non-blocking on live-mini)"
|
|
+requires_weak = [
|
|
+ "00_base.target",
|
|
+]
|
|
+
|
|
+[service]
|
|
+cmd = "audiod"
|
|
+type = "oneshot_async"
|
|
+"""
|
|
+
|
|
+[[files]]
|
|
+path = "/etc/init.d/02_serial_probe.service"
|
|
+data = """
|
|
+[unit]
|
|
+description = "Serial boot probe marker"
|
|
+requires_weak = [
|
|
+ "00_base.target",
|
|
+]
|
|
+
|
|
+[service]
|
|
+cmd = "echo"
|
|
+args = ["RB_SERIAL_PROBE_OK"]
|
|
+type = "oneshot"
|
|
+"""
|
|
+
|
|
+[[files]]
|
|
+path = "/etc/init.d/00_gpiod.service"
|
|
+data = """
|
|
+[unit]
|
|
+description = "GPIO controller registry (non-blocking on live-mini)"
|
|
+requires_weak = [
|
|
+ "00_base.target",
|
|
+]
|
|
+
|
|
+[service]
|
|
+cmd = "gpiod"
|
|
+type = "oneshot_async"
|
|
+"""
|
|
+
|
|
+[[files]]
|
|
+path = "/etc/init.d/00_i2cd.service"
|
|
+data = """
|
|
+[unit]
|
|
+description = "I2C adapter registry (non-blocking on live-mini)"
|
|
+requires_weak = [
|
|
+ "00_base.target",
|
|
+]
|
|
+
|
|
+[service]
|
|
+cmd = "i2cd"
|
|
+type = "oneshot_async"
|
|
+"""
|
|
+
|
|
+[[files]]
|
|
+path = "/etc/init.d/00_i2c-dw-acpi.service"
|
|
+data = """
|
|
+[unit]
|
|
+description = "DesignWare ACPI I2C controller (non-blocking)"
|
|
+requires_weak = [
|
|
+ "00_i2cd.service",
|
|
+]
|
|
+
|
|
+[service]
|
|
+cmd = "dw-acpi-i2cd"
|
|
+type = "oneshot_async"
|
|
+"""
|
|
+
|
|
+[[files]]
|
|
+path = "/etc/init.d/00_intel-gpiod.service"
|
|
+data = """
|
|
+[unit]
|
|
+description = "Intel ACPI GPIO registrar (non-blocking)"
|
|
+requires_weak = [
|
|
+ "00_gpiod.service",
|
|
+ "00_i2cd.service",
|
|
+]
|
|
+
|
|
+[service]
|
|
+cmd = "intel-gpiod"
|
|
+type = "oneshot_async"
|
|
+"""
|
|
+
|
|
+[[files]]
|
|
+path = "/etc/init.d/00_i2c-gpio-expanderd.service"
|
|
+data = """
|
|
+[unit]
|
|
+description = "I2C GPIO expander companion bridge (non-blocking on live-mini)"
|
|
+requires_weak = [
|
|
+ "00_i2cd.service",
|
|
+ "00_gpiod.service",
|
|
+]
|
|
+
|
|
+[service]
|
|
+cmd = "i2c-gpio-expanderd"
|
|
+type = "oneshot_async"
|
|
+"""
|
|
+
|
|
+[[files]]
|
|
+path = "/etc/init.d/00_i2c-hidd.service"
|
|
+data = """
|
|
+[unit]
|
|
+description = "ACPI I2C HID bring-up daemon (non-blocking)"
|
|
+requires_weak = [
|
|
+ "00_i2cd.service",
|
|
+ "00_i2c-dw-acpi.service",
|
|
+ "00_intel-gpiod.service",
|
|
+ "00_i2c-gpio-expanderd.service",
|
|
+]
|
|
+
|
|
+[service]
|
|
+cmd = "i2c-hidd"
|
|
+type = "oneshot_async"
|
|
+"""
|
|
+
|
|
+[[files]]
|
|
+path = "/etc/init.d/00_ucsid.service"
|
|
+data = """
|
|
+[unit]
|
|
+description = "USB-C UCSI topology detector (non-blocking on live-mini)"
|
|
+requires_weak = [
|
|
+ "00_base.target",
|
|
+ "00_i2cd.service",
|
|
+]
|
|
+
|
|
+[service]
|
|
+cmd = "ucsid"
|
|
+type = "oneshot_async"
|
|
+"""
|
|
+
|
|
+[[files]]
|
|
+path = "/usr/lib/init.d/12_boot-late.target"
|
|
+data = """
|
|
+[unit]
|
|
+description = "Late boot services target"
|
|
+requires_weak = [
|
|
+ "00_base.target",
|
|
+]
|
|
+"""
|
|
+
|
|
+[[files]]
|
|
+path = "/usr/lib/init.d/11_udev.service"
|
|
+data = """
|
|
+[unit]
|
|
+description = "udev compatibility shim"
|
|
+requires_weak = [
|
|
+ "12_boot-late.target",
|
|
+ "00_pcid-spawner.service",
|
|
+]
|
|
+
|
|
+[service]
|
|
+cmd = "udev-shim"
|
|
+type = { scheme = "udev" }
|
|
+"""
|
|
+
|
|
+[[files]]
|
|
+path = "/usr/lib/init.d/10_evdevd.service"
|
|
+data = """
|
|
+[unit]
|
|
+description = "Evdev input daemon"
|
|
+requires_weak = [
|
|
+ "12_boot-late.target",
|
|
+ "00_pcid-spawner.service",
|
|
+]
|
|
+
|
|
+[service]
|
|
+cmd = "evdevd"
|
|
+type = "oneshot_async"
|
|
+"""
|
|
+
|
|
+[[files]]
|
|
+path = "/usr/lib/init.d/11_wifictl.service"
|
|
+data = """
|
|
+[unit]
|
|
+description = "Wi-Fi control daemon"
|
|
+requires_weak = [
|
|
+ "12_boot-late.target",
|
|
+ "00_pcid-spawner.service",
|
|
+]
|
|
+
|
|
+[service]
|
|
+cmd = "redbear-wifictl"
|
|
+type = { scheme = "wifictl" }
|
|
+"""
|
|
+
|
|
+[[files]]
|
|
+path = "/usr/lib/init.d/12_dbus.service"
|
|
+data = """
|
|
+[unit]
|
|
+description = "D-Bus system bus"
|
|
+requires_weak = [
|
|
+ "12_boot-late.target",
|
|
+]
|
|
+
|
|
+[service]
|
|
+cmd = "ion"
|
|
+args = [
|
|
+ "-c",
|
|
+ "mkdir -p /var/lib/dbus /run/dbus; rm -f /run/dbus/pid; dbus-uuidgen --ensure; dbus-daemon --system",
|
|
+]
|
|
+type = "oneshot_async"
|
|
+"""
|
|
+
|
|
+[[files]]
|
|
+path = "/usr/lib/init.d/13_redbear-sessiond.service"
|
|
+data = """
|
|
+[unit]
|
|
+description = "Red Bear session broker (org.freedesktop.login1)"
|
|
+requires_weak = [
|
|
+ "12_dbus.service",
|
|
+]
|
|
+
|
|
+[service]
|
|
+cmd = "redbear-sessiond"
|
|
+type = "oneshot_async"
|
|
+"""
|
|
+
|
|
+[[files]]
|
|
+path = "/usr/lib/init.d/13_iommu.service"
|
|
+data = """
|
|
+[unit]
|
|
+description = "IOMMU DMA remapping daemon"
|
|
+requires_weak = [
|
|
+ "12_boot-late.target",
|
|
+ "00_pcid-spawner.service",
|
|
+]
|
|
+
|
|
+[service]
|
|
+cmd = "/usr/bin/iommu"
|
|
+type = "oneshot_async"
|
|
+"""
|
|
+
|
|
+[[files]]
|
|
+path = "/usr/lib/init.d/14_redbear-upower.service"
|
|
+data = """
|
|
+[unit]
|
|
+description = "UPower D-Bus service (org.freedesktop.UPower)"
|
|
+requires_weak = [
|
|
+ "12_dbus.service",
|
|
+]
|
|
+
|
|
+[service]
|
|
+cmd = "redbear-upower"
|
|
+type = "oneshot_async"
|
|
+"""
|
|
+
|
|
+[[files]]
|
|
+path = "/usr/lib/init.d/14_redbear-udisks.service"
|
|
+data = """
|
|
+[unit]
|
|
+description = "UDisks2 D-Bus service (org.freedesktop.UDisks2)"
|
|
+requires_weak = [
|
|
+ "12_dbus.service",
|
|
+]
|
|
+
|
|
+[service]
|
|
+cmd = "redbear-udisks"
|
|
+type = "oneshot_async"
|
|
+"""
|
|
+
|
|
+[[files]]
|
|
+path = "/usr/lib/init.d/14_redbear-polkit.service"
|
|
+data = """
|
|
+[unit]
|
|
+description = "PolicyKit1 D-Bus service (org.freedesktop.PolicyKit1)"
|
|
+requires_weak = [
|
|
+ "12_dbus.service",
|
|
+]
|
|
+
|
|
+[service]
|
|
+cmd = "redbear-polkit"
|
|
+type = "oneshot_async"
|
|
+"""
|
|
+
|
|
+[[files]]
|
|
+path = "/var/lib/dbus"
|
|
+data = ""
|
|
+directory = true
|
|
+mode = 0o755
|
|
+
|
|
+[[files]]
|
|
+path = "/run/dbus"
|
|
+data = ""
|
|
+directory = true
|
|
+mode = 0o755
|
|
+
|
|
+[[files]]
|
|
+path = "/etc/pcid.d/ihdgd.toml"
|
|
+data = """
|
|
+# redbear-live-mini: text-only image; override upstream ihdgd config with empty file
|
|
+"""
|
|
+
|
|
+[[files]]
|
|
+path = "/etc/pcid.d/virtio-gpud.toml"
|
|
+data = """
|
|
+# redbear-live-mini: text-only image; override upstream virtio-gpud config with empty file
|
|
+"""
|
|
+
|
|
+[[files]]
|
|
+path = "/etc/pcid.d/00_text_mode_gpu_mask.toml"
|
|
+data = """
|
|
+# redbear-live-mini: no display driver matched; class 0x03 devices are skipped
|
|
+"""
|
|
diff --git a/config/redbear-netctl.toml b/config/redbear-netctl.toml
|
|
new file mode 100644
|
|
index 0000000..b50a061
|
|
--- /dev/null
|
|
+++ b/config/redbear-netctl.toml
|
|
@@ -0,0 +1,106 @@
|
|
+# Red Bear OS shared network profile wiring
|
|
+#
|
|
+# Shared by redbear-minimal, redbear-desktop, redbear-full, and redbear-kde.
|
|
+
|
|
+[[files]]
|
|
+path = "/etc/netctl"
|
|
+data = ""
|
|
+directory = true
|
|
+mode = 0o755
|
|
+
|
|
+[[files]]
|
|
+path = "/etc/netctl/examples"
|
|
+data = ""
|
|
+directory = true
|
|
+mode = 0o755
|
|
+
|
|
+[[files]]
|
|
+path = "/etc/netctl/examples/wired-dhcp"
|
|
+data = """
|
|
+Description='Red Bear wired DHCP profile'
|
|
+Interface=eth0
|
|
+Connection=ethernet
|
|
+IP=dhcp
|
|
+"""
|
|
+
|
|
+[[files]]
|
|
+path = "/etc/netctl/wired-dhcp"
|
|
+data = """
|
|
+Description='Red Bear wired DHCP profile'
|
|
+Interface=eth0
|
|
+Connection=ethernet
|
|
+IP=dhcp
|
|
+"""
|
|
+
|
|
+[[files]]
|
|
+path = "/etc/netctl/examples/wired-static"
|
|
+data = """
|
|
+Description='Red Bear wired static profile'
|
|
+Interface=eth0
|
|
+Connection=ethernet
|
|
+IP=static
|
|
+Address=('192.168.1.10/24')
|
|
+Gateway='192.168.1.1'
|
|
+DNS=('1.1.1.1')
|
|
+"""
|
|
+
|
|
+[[files]]
|
|
+path = "/etc/netctl/examples/wifi-dhcp"
|
|
+data = """
|
|
+Description='Red Bear Wi-Fi DHCP profile'
|
|
+Interface=wlan0
|
|
+Connection=wifi
|
|
+SSID='example-ssid'
|
|
+Security=wpa2-psk
|
|
+Key='example-passphrase'
|
|
+IP=dhcp
|
|
+"""
|
|
+
|
|
+[[files]]
|
|
+path = "/etc/netctl/examples/wifi-open"
|
|
+data = """
|
|
+Description='Red Bear Wi-Fi open-network profile'
|
|
+Interface=wlan0
|
|
+Connection=wifi
|
|
+SSID='example-open-ssid'
|
|
+Security=open
|
|
+IP=dhcp
|
|
+"""
|
|
+
|
|
+[[files]]
|
|
+path = "/etc/netctl/examples/wifi-open-bounded"
|
|
+data = """
|
|
+Description='Red Bear Wi-Fi bounded lifecycle profile'
|
|
+Interface=wlan0
|
|
+Connection=wifi
|
|
+SSID='example-open-ssid'
|
|
+Security=open
|
|
+IP=bounded
|
|
+"""
|
|
+
|
|
+[[files]]
|
|
+path = "/etc/netctl/wifi-open-bounded"
|
|
+data = """
|
|
+Description='Red Bear Wi-Fi bounded lifecycle profile'
|
|
+Interface=wlan0
|
|
+Connection=wifi
|
|
+SSID='example-open-ssid'
|
|
+Security=open
|
|
+IP=bounded
|
|
+"""
|
|
+
|
|
+[[files]]
|
|
+path = "/usr/lib/init.d/12_netctl.service"
|
|
+data = """
|
|
+[unit]
|
|
+description = "Network profile application"
|
|
+requires_weak = [
|
|
+ "10_smolnetd.service",
|
|
+ "10_dhcpd.service",
|
|
+]
|
|
+
|
|
+[service]
|
|
+cmd = "redbear-netctl"
|
|
+args = ["--boot"]
|
|
+type = "oneshot_async"
|
|
+"""
|
|
diff --git a/config/redbear-wifi-experimental.toml b/config/redbear-wifi-experimental.toml
|
|
new file mode 100644
|
|
index 0000000..350eb5a
|
|
--- /dev/null
|
|
+++ b/config/redbear-wifi-experimental.toml
|
|
@@ -0,0 +1,20 @@
|
|
+# Red Bear OS Wi-Fi Experimental Profile
|
|
+#
|
|
+# Standalone tracked build target for the current bounded Intel Wi-Fi slice.
|
|
+#
|
|
+# This profile extends the existing minimal Red Bear baseline but switches the default active profile
|
|
+# to the bounded Wi-Fi path and adds the first Intel driver-side package on top of the shared
|
|
+# firmware/control/profile tooling.
|
|
+
|
|
+include = ["redbear-minimal.toml"]
|
|
+
|
|
+[general]
|
|
+filesystem_size = 2048
|
|
+
|
|
+[packages]
|
|
+# First bounded Intel driver-side package
|
|
+redbear-iwlwifi = {}
|
|
+
|
|
+[[files]]
|
|
+path = "/etc/netctl/active"
|
|
+data = "wifi-open-bounded\n"
|
|
diff --git a/config/redoxer-gui.toml b/config/redoxer-gui.toml
|
|
index bc50407..8aa1863 100644
|
|
--- a/config/redoxer-gui.toml
|
|
+++ b/config/redoxer-gui.toml
|
|
@@ -9,10 +9,15 @@ orbital = {}
|
|
|
|
# Override to run inside of orbital
|
|
[[files]]
|
|
-path = "/usr/lib/init.d/30_redoxer"
|
|
+path = "/usr/lib/init.d/30_redoxer.service"
|
|
data = """
|
|
-requires_weak 10_net.target
|
|
-echo
|
|
-echo "## running redoxer in orbital ##"
|
|
-nowait VT=3 orbital redoxerd
|
|
+[unit]
|
|
+description = "Redoxer GUI test (orbital)"
|
|
+requires_weak = ["10_dhcpd.service"]
|
|
+
|
|
+[service]
|
|
+cmd = "orbital"
|
|
+args = ["redoxerd"]
|
|
+envs = { VT = "3" }
|
|
+type = "oneshot_async"
|
|
"""
|
|
diff --git a/config/redoxer.toml b/config/redoxer.toml
|
|
index ce04443..6875066 100644
|
|
--- a/config/redoxer.toml
|
|
+++ b/config/redoxer.toml
|
|
@@ -15,26 +15,42 @@ pkgutils = {}
|
|
relibc = {}
|
|
sed = {}
|
|
|
|
-# Override to not background dhcpd
|
|
+# Override network services for redoxer (foreground dhcpd)
|
|
+[[files]]
|
|
+path = "/usr/lib/init.d/10_smolnetd.service"
|
|
+data = """
|
|
+[unit]
|
|
+description = "Network stack for redoxer"
|
|
+requires_weak = ["00_pcid-spawner.service"]
|
|
+
|
|
+[service]
|
|
+cmd = "netstack"
|
|
+type = "oneshot_async"
|
|
+"""
|
|
+
|
|
[[files]]
|
|
path = "/usr/lib/init.d/10_dhcpd.service"
|
|
data = """
|
|
[unit]
|
|
-description = "Network configuration using DHCP"
|
|
-requires_weak = [
|
|
- "10_smolnetd.service",
|
|
-]
|
|
+description = "DHCP client (foreground) for redoxer"
|
|
+requires_weak = ["10_smolnetd.service"]
|
|
|
|
[service]
|
|
cmd = "dhcpd"
|
|
-type = "oneshot"
|
|
+type = "oneshot_async"
|
|
"""
|
|
|
|
[[files]]
|
|
-path = "/usr/lib/init.d/30_redoxer"
|
|
+path = "/usr/lib/init.d/30_redoxer.service"
|
|
data = """
|
|
-requires_weak 10_net.target
|
|
-ion /usr/lib/run_redoxer.ion
|
|
+[unit]
|
|
+description = "Redoxer test runner"
|
|
+requires_weak = ["10_dhcpd.service"]
|
|
+
|
|
+[service]
|
|
+cmd = "ion"
|
|
+args = ["/usr/lib/run_redoxer.ion"]
|
|
+type = "oneshot_async"
|
|
"""
|
|
|
|
[[files]]
|
|
diff --git a/config/riscv64gc/ci.toml b/config/riscv64gc/ci.toml
|
|
index ef207e7..382a421 100644
|
|
--- a/config/riscv64gc/ci.toml
|
|
+++ b/config/riscv64gc/ci.toml
|
|
@@ -25,6 +25,7 @@ prompt = false
|
|
# acid = {} # rust require dynamic linking
|
|
acid-bins = {}
|
|
base = {}
|
|
+base-initfs = {}
|
|
bash = {}
|
|
bash-completion = {}
|
|
bootloader = {}
|
|
diff --git a/config/sys-build.toml b/config/sys-build.toml
|
|
index 9534edd..7f75662 100644
|
|
--- a/config/sys-build.toml
|
|
+++ b/config/sys-build.toml
|
|
@@ -14,10 +14,16 @@ bottom = "ignore"
|
|
kibi = "ignore"
|
|
|
|
[[files]]
|
|
-path = "/usr/lib/init.d/30_console"
|
|
+path = "/usr/lib/init.d/30_console.service"
|
|
data = """
|
|
-requires_weak 10_net
|
|
-ion /usr/lib/sys_build.ion
|
|
+[unit]
|
|
+description = "System build test"
|
|
+requires_weak = ["00_base.target"]
|
|
+
|
|
+[service]
|
|
+cmd = "ion"
|
|
+args = ["/usr/lib/sys_build.ion"]
|
|
+type = "oneshot"
|
|
"""
|
|
|
|
[[files]]
|
|
diff --git a/config/wayland.toml b/config/wayland.toml
|
|
index 1bf8d30..a91f005 100644
|
|
--- a/config/wayland.toml
|
|
+++ b/config/wayland.toml
|
|
@@ -1,94 +1,351 @@
|
|
-# Wayland configuration
|
|
+# Wayland validation-only configuration
|
|
|
|
-include = ["desktop.toml"]
|
|
+# This is the bounded compositor validation slice.
|
|
|
|
-# Override the default settings here
|
|
+include = ["desktop.toml", "redbear-legacy-base.toml", "redbear-legacy-desktop.toml", "redbear-device-services.toml", "redbear-netctl.toml"]
|
|
|
|
-# General settings
|
|
[general]
|
|
-# Filesystem size in MiB
|
|
filesystem_size = 2048
|
|
|
|
-# Package settings
|
|
+[users.messagebus]
|
|
+uid = 100
|
|
+gid = 100
|
|
+name = "messagebus"
|
|
+home = "/nonexistent"
|
|
+shell = "/usr/bin/false"
|
|
+
|
|
+[groups.messagebus]
|
|
+gid = 100
|
|
+members = ["messagebus"]
|
|
+
|
|
[packages]
|
|
-adwaita-icon-theme = {}
|
|
-bash = {}
|
|
-cosmic-app-library = {}
|
|
-cosmic-comp = {}
|
|
-gtk3 = {}
|
|
-libcosmic-wayland = {}
|
|
-libxcursor = {}
|
|
-iced-wayland = {}
|
|
+redbear-release = {}
|
|
+redbear-hwutils = {}
|
|
+redbear-info = {}
|
|
+redbear-netctl = {}
|
|
+dbus = {}
|
|
+redbear-sessiond = {}
|
|
+redbear-dbus-services = {}
|
|
+firmware-loader = {}
|
|
+evdevd = {}
|
|
+udev-shim = {}
|
|
+seatd = {}
|
|
mesa = {}
|
|
"pop-icon-theme.cursors" = {}
|
|
-smallvil = {}
|
|
-softbuffer-wayland = {}
|
|
-wayland-rs = {}
|
|
-#webkitgtk3 = {}
|
|
-winit-wayland = {}
|
|
+kwin = {}
|
|
xkeyboard-config = {}
|
|
|
|
-# Overridden to launch wayland compositor instead of orblogin
|
|
[[files]]
|
|
-path = "/usr/lib/init.d/20_orbital"
|
|
+path = "/usr/lib/init.d/12_dbus.service"
|
|
data = """
|
|
-requires_weak 10_net.target 20_audiod.service
|
|
-nowait BROWSER=/bin/netsurf-fb VT=3 orbital orbital-wayland
|
|
+[unit]
|
|
+description = "D-Bus system bus"
|
|
+requires_weak = [
|
|
+ "00_base.target",
|
|
+]
|
|
+
|
|
+[service]
|
|
+cmd = "ion"
|
|
+args = [
|
|
+ "-c",
|
|
+ "mkdir -p /var/lib/dbus /run/dbus; rm -f /run/dbus/pid; dbus-uuidgen --ensure; dbus-daemon --system",
|
|
+]
|
|
+type = "oneshot_async"
|
|
"""
|
|
|
|
[[files]]
|
|
-path = "/usr/bin/orbital-wayland"
|
|
+path = "/var/lib/dbus"
|
|
+data = ""
|
|
+directory = true
|
|
mode = 0o755
|
|
+
|
|
+[[files]]
|
|
+path = "/run/dbus"
|
|
+data = ""
|
|
+directory = true
|
|
+mode = 0o755
|
|
+
|
|
+[[files]]
|
|
+path = "/usr/lib/init.d/13_seatd.service"
|
|
+data = """
|
|
+[unit]
|
|
+description = "seatd seat management daemon"
|
|
+requires_weak = [
|
|
+ "12_dbus.service",
|
|
+ "13_redbear-sessiond.service",
|
|
+]
|
|
+
|
|
+[service]
|
|
+cmd = "seatd"
|
|
+args = ["-l", "info"]
|
|
+type = "oneshot_async"
|
|
+"""
|
|
+
|
|
+[[files]]
|
|
+path = "/usr/lib/init.d/13_redbear-sessiond.service"
|
|
+data = """
|
|
+[unit]
|
|
+description = "Red Bear session broker (org.freedesktop.login1)"
|
|
+requires_weak = [
|
|
+ "12_dbus.service",
|
|
+]
|
|
+
|
|
+[service]
|
|
+cmd = "ion"
|
|
+args = [
|
|
+ "-c",
|
|
+ "redbear-sessiond",
|
|
+]
|
|
+type = "oneshot_async"
|
|
+"""
|
|
+
|
|
+[[files]]
|
|
+path = "/usr/lib/init.d/20_display.service"
|
|
+data = """
|
|
+[unit]
|
|
+description = "Display session service (Wayland validation)"
|
|
+requires_weak = [
|
|
+ "12_dbus.service",
|
|
+ "13_redbear-sessiond.service",
|
|
+ "13_seatd.service",
|
|
+]
|
|
+
|
|
+[service]
|
|
+cmd = "/usr/bin/redbear-validation-session"
|
|
+envs = { BROWSER = "/bin/netsurf-fb", VT = "3" }
|
|
+type = "oneshot_async"
|
|
+"""
|
|
+
|
|
+[[files]]
|
|
+path = "/usr/lib/init.d/30_console.service"
|
|
data = """
|
|
-#!/usr/bin/env bash
|
|
+[unit]
|
|
+description = "Console terminals"
|
|
+requires_weak = [
|
|
+ "29_activate_console.service",
|
|
+]
|
|
|
|
-set -ex
|
|
+[service]
|
|
+cmd = "getty"
|
|
+args = ["2"]
|
|
+type = "oneshot_async"
|
|
+respawn = true
|
|
+"""
|
|
|
|
-# Prepare environment
|
|
-unset DISPLAY
|
|
-export COSMIC_BACKEND=winit
|
|
-export HOME=/root
|
|
-export LD_DEBUG=all
|
|
+[[files]]
|
|
+path = "/usr/lib/init.d/29_activate_console.service"
|
|
+data = """
|
|
+[unit]
|
|
+description = "Activate display VT"
|
|
+requires_weak = [
|
|
+ "20_display.service",
|
|
+]
|
|
+
|
|
+[service]
|
|
+cmd = "inputd"
|
|
+args = ["-A", "3"]
|
|
+type = "oneshot_async"
|
|
+"""
|
|
+
|
|
+[[files]]
|
|
+path = "/usr/lib/init.d/31_debug_console.service"
|
|
+data = """
|
|
+[unit]
|
|
+description = "Debug console"
|
|
+requires_weak = [
|
|
+ "29_activate_console.service",
|
|
+]
|
|
+
|
|
+[service]
|
|
+cmd = "getty"
|
|
+args = ["/scheme/debug/no-preserve", "-J"]
|
|
+type = "oneshot_async"
|
|
+respawn = true
|
|
+"""
|
|
+
|
|
+[[files]]
|
|
+path = "/usr/bin/redbear-validation-session"
|
|
+mode = 0o755
|
|
+data = """
|
|
+#!/usr/bin/env sh
|
|
+
|
|
+export DISPLAY=""
|
|
+export WAYLAND_DISPLAY="${WAYLAND_DISPLAY:-wayland-0}"
|
|
+export XDG_SESSION_TYPE=wayland
|
|
+export LIBSEAT_BACKEND=seatd
|
|
+export SEATD_SOCK=/run/seatd.sock
|
|
+export QT_PLUGIN_PATH=/usr/plugins
|
|
+export QT_QPA_PLATFORM_PLUGIN_PATH=/usr/plugins/platforms
|
|
+export QML2_IMPORT_PATH=/usr/qml
|
|
export RUST_BACKTRACE=full
|
|
export RUST_LOG=debug
|
|
export XCURSOR_THEME=Pop
|
|
-export XDG_RUNTIME_DIR=/tmp/run/user/0
|
|
+export XKB_CONFIG_ROOT=/usr/share/X11/xkb
|
|
+
|
|
+if [ -z "${XDG_RUNTIME_DIR:-}" ]; then
|
|
+ export XDG_RUNTIME_DIR="/tmp/run/user/$(id -u)"
|
|
+fi
|
|
+
|
|
+mkdir -p "$XDG_RUNTIME_DIR"
|
|
+chmod 700 "$XDG_RUNTIME_DIR" 2>/dev/null || true
|
|
+
|
|
+wait_for_path() {
|
|
+ target="$1"
|
|
+ attempts=0
|
|
+ while [ "$attempts" -lt 30 ]; do
|
|
+ if [ -e "$target" ]; then
|
|
+ return 0
|
|
+ fi
|
|
+ attempts=$((attempts + 1))
|
|
+ sleep 1
|
|
+ done
|
|
+ return 1
|
|
+}
|
|
+
|
|
+if ! wait_for_path /run/dbus/system_bus_socket; then
|
|
+ echo "system D-Bus socket did not appear" >&2
|
|
+ exit 1
|
|
+fi
|
|
|
|
-# Create XDG runtime directory
|
|
-#TODO: mkdir -p not working
|
|
-mkdir -p /tmp/run
|
|
-mkdir -p /tmp/run/user
|
|
-mkdir -p /tmp/run/user/0
|
|
+sleep 2
|
|
|
|
-# Compile glib schemas
|
|
-glib-compile-schemas /usr/share/glib-2.0/schemas/
|
|
+wait_for_wayland_socket() {
|
|
+ socket_path="$XDG_RUNTIME_DIR/$WAYLAND_DISPLAY"
|
|
+ attempts=0
|
|
+ while [ "$attempts" -lt 30 ]; do
|
|
+ if [ -e "$socket_path" ]; then
|
|
+ return 0
|
|
+ fi
|
|
+ if ! kill -0 "$kwin_pid" 2>/scheme/null; then
|
|
+ return 1
|
|
+ fi
|
|
+ attempts=$((attempts + 1))
|
|
+ sleep 1
|
|
+ done
|
|
+ return 1
|
|
+}
|
|
|
|
-# For cosmic-comp (more features)
|
|
-cosmic-comp wayland-session
|
|
+if [ -z "${DBUS_SESSION_BUS_ADDRESS:-}" ]; then
|
|
+ eval "$(dbus-launch --sh-syntax)"
|
|
+fi
|
|
|
|
-# For smallvil (easier to debug)
|
|
-#smallvil -c wayland-session&
|
|
+dbus-update-activation-environment \
|
|
+ DBUS_SESSION_BUS_ADDRESS \
|
|
+ DBUS_SESSION_BUS_PID \
|
|
+ WAYLAND_DISPLAY \
|
|
+ XDG_SESSION_TYPE \
|
|
+ XDG_RUNTIME_DIR \
|
|
+ DISPLAY \
|
|
+ HOME \
|
|
+ USER
|
|
+
|
|
+if [ -d /usr/share/glib-2.0/schemas ]; then
|
|
+ glib-compile-schemas /usr/share/glib-2.0/schemas/
|
|
+fi
|
|
+
|
|
+export XCURSOR_THEME="${XCURSOR_THEME:-Pop}"
|
|
+export XKB_CONFIG_ROOT="${XKB_CONFIG_ROOT:-/usr/share/X11/xkb}"
|
|
+
|
|
+if [ -z "${KWIN_DRM_DEVICES:-}" ] && [ -e /scheme/drm/card0 ]; then
|
|
+ export KWIN_DRM_DEVICES=/scheme/drm/card0
|
|
+fi
|
|
+
|
|
+kwin_wayland_wrapper --drm &
|
|
+kwin_pid=$!
|
|
+
|
|
+if ! wait_for_wayland_socket; then
|
|
+ echo "kwin_wayland failed to expose $XDG_RUNTIME_DIR/$WAYLAND_DISPLAY" >&2
|
|
+ exit 1
|
|
+fi
|
|
+
|
|
+exec /usr/bin/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
|
|
+#!/usr/bin/env ion
|
|
+
|
|
+export HOME=/home/root
|
|
+export USER=root
|
|
+export LOGNAME=root
|
|
+
|
|
+let session_started = "$HOME/.wayland-session.started"
|
|
+rm -f $session_started
|
|
+echo "started" > $session_started
|
|
+export QT_PLUGIN_PATH=/usr/plugins
|
|
+export QT_QPA_PLATFORM_PLUGIN_PATH=/usr/plugins/platforms
|
|
+export QML2_IMPORT_PATH=/usr/qml
|
|
+let smoke_ok = "$HOME/.qt6-wayland-smoke.ok"
|
|
+let smoke_err = "$HOME/.qt6-wayland-smoke.err"
|
|
+let smoke_log = "$HOME/.qt6-wayland-smoke.log"
|
|
+let bootstrap_ok = "$HOME/.qt6-bootstrap-minimal.ok"
|
|
+let bootstrap_log = "$HOME/.qt6-bootstrap-minimal.log"
|
|
+let plugin_ok = "$HOME/.qt6-plugin-minimal.ok"
|
|
+let plugin_err = "$HOME/.qt6-plugin-minimal.err"
|
|
+let plugin_log = "$HOME/.qt6-plugin-minimal.log"
|
|
+let smoke_minimal_ok = "$HOME/.qt6-wayland-smoke-minimal.ok"
|
|
+let smoke_offscreen_ok = "$HOME/.qt6-wayland-smoke-offscreen.ok"
|
|
+let smoke_wayland_ok = "$HOME/.qt6-wayland-smoke-wayland.ok"
|
|
+let smoke_minimal_log = "$HOME/.qt6-wayland-smoke-minimal.log"
|
|
+let smoke_offscreen_log = "$HOME/.qt6-wayland-smoke-offscreen.log"
|
|
+let smoke_wayland_log = "$HOME/.qt6-wayland-smoke-wayland.log"
|
|
+rm -f $smoke_ok $smoke_err
|
|
+rm -f $smoke_log
|
|
+rm -f $bootstrap_ok $bootstrap_log
|
|
+rm -f $plugin_ok $plugin_err $plugin_log
|
|
+rm -f $smoke_minimal_ok $smoke_offscreen_ok $smoke_wayland_ok
|
|
+rm -f $smoke_minimal_log $smoke_offscreen_log $smoke_wayland_log
|
|
+if which qt6-wayland-smoke >/scheme/null
|
|
+ if test -f /usr/plugins/platforms/libqminimal.so
|
|
+ echo "=== qminimal ELF header (guest) ==="
|
|
+ stat /usr/plugins/platforms/libqminimal.so
|
|
+ dd if=/usr/plugins/platforms/libqminimal.so bs=64 count=1 | od -An -tx1
|
|
+ else
|
|
+ echo "=== qminimal ELF header (guest) missing ==="
|
|
+ end
|
|
+ if env LD_DEBUG=all QT_DEBUG_PLUGINS=1 QT_QPA_PLATFORM=minimal qt6-bootstrap-check > $bootstrap_log ^> $bootstrap_log
|
|
+ touch $bootstrap_ok
|
|
+ else
|
|
+ if test -f $bootstrap_log
|
|
+ cat $bootstrap_log
|
|
+ end
|
|
+ echo "qt6-bootstrap-check minimal failed; see $bootstrap_log" > $smoke_err
|
|
+ end
|
|
+
|
|
+ if env LD_DEBUG=all QT_DEBUG_PLUGINS=1 QT_PLUGIN_PATH=/usr/plugins QT_QPA_PLATFORM_PLUGIN_PATH=/usr/plugins/platforms qt6-plugin-check /usr/plugins/platforms/libqminimal.so > $plugin_log ^> $plugin_log
|
|
+ touch $plugin_ok
|
|
+ else
|
|
+ if test -f $plugin_log
|
|
+ cat $plugin_log
|
|
+ end
|
|
+ echo "qt6-plugin-check failed; see $plugin_log" > $plugin_err
|
|
+ echo "qt6-plugin-check failed; see $plugin_log" > $smoke_err
|
|
+ end
|
|
+
|
|
+ if env QT_DEBUG_PLUGINS=1 QT_QPA_PLATFORM=minimal qt6-wayland-smoke > $smoke_minimal_log ^> $smoke_minimal_log
|
|
+ touch $smoke_minimal_ok
|
|
+ else
|
|
+ echo "qt6-wayland-smoke minimal failed; see $smoke_minimal_log" > $smoke_err
|
|
+ end
|
|
+
|
|
+ if env QT_DEBUG_PLUGINS=1 QT_QPA_PLATFORM=offscreen qt6-wayland-smoke > $smoke_offscreen_log ^> $smoke_offscreen_log
|
|
+ touch $smoke_offscreen_ok
|
|
+ else
|
|
+ echo "qt6-wayland-smoke offscreen failed; see $smoke_offscreen_log" > $smoke_err
|
|
+ end
|
|
+
|
|
+ if env QT_DEBUG_PLUGINS=1 QT_QPA_PLATFORM=wayland qt6-wayland-smoke > $smoke_wayland_log ^> $smoke_wayland_log
|
|
+ touch $smoke_wayland_ok
|
|
+ touch $smoke_ok
|
|
+ else
|
|
+ echo "qt6-wayland-smoke wayland failed; see $smoke_wayland_log" > $smoke_err
|
|
+ end
|
|
+end
|
|
"""
|
|
|
|
+
|
|
[[files]]
|
|
path = "/etc/gtk-3.0/settings.ini"
|
|
data = """
|
|
diff --git a/config/x11.toml b/config/x11.toml
|
|
index 06de655..6534874 100644
|
|
--- a/config/x11.toml
|
|
+++ b/config/x11.toml
|
|
@@ -1,4 +1,8 @@
|
|
-# X11 configuration
|
|
+# X11 compatibility-only configuration
|
|
+
|
|
+# This profile is not a primary desktop path.
|
|
+# Red Bear OS treats KWin Wayland as the production compositor/session path.
|
|
+# X exists only for compatibility and legacy app/runtime surfaces.
|
|
|
|
include = ["desktop.toml"]
|
|
|
|
@@ -23,10 +27,16 @@ x11-full = {}
|
|
zenity = {}
|
|
|
|
[[files]]
|
|
-path = "/usr/lib/init.d/10_dbus"
|
|
+path = "/usr/lib/init.d/10_dbus.service"
|
|
data = """
|
|
-requires_weak 10_net.target
|
|
-bash /usr/bin/start-dbus.sh
|
|
+[unit]
|
|
+description = "D-Bus system bus (X11)"
|
|
+requires_weak = ["00_base.target"]
|
|
+
|
|
+[service]
|
|
+cmd = "bash"
|
|
+args = ["/usr/bin/start-dbus.sh"]
|
|
+type = "oneshot_async"
|
|
"""
|
|
|
|
[[files]]
|
|
@@ -45,18 +55,31 @@ dbus-daemon --system
|
|
"""
|
|
|
|
[[files]]
|
|
-path = "/usr/lib/init.d/10_xenv"
|
|
+path = "/usr/lib/init.d/10_xenv.service"
|
|
data = """
|
|
-requires_weak 10_net.target
|
|
-glib-compile-schemas /usr/share/glib-2.0/schemas/
|
|
+[unit]
|
|
+description = "Compile glib schemas"
|
|
+requires_weak = ["00_base.target"]
|
|
+
|
|
+[service]
|
|
+cmd = "glib-compile-schemas"
|
|
+args = ["/usr/share/glib-2.0/schemas/"]
|
|
+type = "oneshot"
|
|
"""
|
|
|
|
# Overridden to launch X instead of orblogin
|
|
[[files]]
|
|
-path = "/usr/lib/init.d/20_orbital"
|
|
+path = "/usr/lib/init.d/20_orbital.service"
|
|
data = """
|
|
-requires_weak 10_dbus 10_xenv 20_audiod.service
|
|
-nowait BROWSER=/bin/netsurf-fb VT=3 orbital orbital-x11
|
|
+[unit]
|
|
+description = "Orbital display (X11)"
|
|
+requires_weak = ["10_dbus.service", "10_xenv.service"]
|
|
+
|
|
+[service]
|
|
+cmd = "orbital"
|
|
+args = ["orbital-x11"]
|
|
+envs = { BROWSER = "/bin/netsurf-fb", VT = "3" }
|
|
+type = "oneshot_async"
|
|
"""
|
|
|
|
[[files]]
|
|
@@ -124,10 +147,35 @@ mate-session&
|
|
"""
|
|
|
|
|
|
+# Override console config to set DISPLAY=:0
|
|
+[[files]]
|
|
+path = "/usr/lib/init.d/30_console.service"
|
|
+data = """
|
|
+[unit]
|
|
+description = "Console terminals (X11)"
|
|
+requires_weak = ["20_orbital.service"]
|
|
+
|
|
+[service]
|
|
+cmd = "getty"
|
|
+args = ["2"]
|
|
+envs = { DISPLAY = ":0" }
|
|
+type = "oneshot_async"
|
|
+respawn = true
|
|
+"""
|
|
+
|
|
[[files]]
|
|
-path = "/usr/lib/environment.d/10_x11"
|
|
+path = "/usr/lib/init.d/31_debug_console.service"
|
|
data = """
|
|
-DISPLAY=:0
|
|
+[unit]
|
|
+description = "Debug console (X11)"
|
|
+requires_weak = ["30_console.service"]
|
|
+
|
|
+[service]
|
|
+cmd = "getty"
|
|
+args = ["/scheme/debug/no-preserve", "-J"]
|
|
+envs = { DISPLAY = ":0" }
|
|
+type = "oneshot_async"
|
|
+respawn = true
|
|
"""
|
|
|
|
|
|
@@ -154,4 +202,3 @@ gid = 100
|
|
name = "messagebus"
|
|
home = "/nonexistent"
|
|
shell = "/usr/bin/false"
|
|
-
|
|
diff --git a/config/x86_64/ci.toml b/config/x86_64/ci.toml
|
|
index b22114c..23ce90a 100644
|
|
--- a/config/x86_64/ci.toml
|
|
+++ b/config/x86_64/ci.toml
|
|
@@ -29,6 +29,7 @@ adwaita-icon-theme = {}
|
|
autoconf = {}
|
|
automake = {}
|
|
base = {}
|
|
+base-initfs = {}
|
|
bash = {}
|
|
bash-completion = {}
|
|
binutils = {}
|
|
diff --git a/config/x86_64/demo.toml b/config/x86_64/demo.toml
|
|
index 37a0eed..3fb4d53 100644
|
|
--- a/config/x86_64/demo.toml
|
|
+++ b/config/x86_64/demo.toml
|
|
@@ -46,22 +46,23 @@ path = "/home/user/Welcome.txt"
|
|
data = """
|
|
##############################################################################
|
|
# #
|
|
-# Welcome to Redox! #
|
|
+# Welcome to Red Bear OS! #
|
|
# #
|
|
-# Redox is 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 (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. #
|
|
# #
|
|
-# Redox _is not_ just a kernel, it's a full-featured Operating System, #
|
|
+# 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://www.redox-os.org. #
|
|
+# The website can be found at https://github.com/vasilito/Red-Bear-OS-3. #
|
|
# #
|
|
-# For things to try on Redox, please see #
|
|
+# 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/x86_64/desktop-contain.toml b/config/x86_64/desktop-contain.toml
|
|
new file mode 100644
|
|
index 0000000..cca5dca
|
|
--- /dev/null
|
|
+++ b/config/x86_64/desktop-contain.toml
|
|
@@ -0,0 +1,69 @@
|
|
+# Desktop configuration using the Contain sandbox
|
|
+
|
|
+include = ["../desktop.toml"]
|
|
+
|
|
+# Override the default settings here
|
|
+
|
|
+# General settings
|
|
+[general]
|
|
+# Filesystem size in MiB
|
|
+# filesystem_size = 1024
|
|
+
|
|
+# Package settings
|
|
+[packages]
|
|
+# example = {}
|
|
+
|
|
+# Override orbital init to use contain_orblogin
|
|
+[[files]]
|
|
+path = "/usr/lib/init.d/20_orbital.service"
|
|
+data = """
|
|
+[unit]
|
|
+description = "Orbital display (contain sandbox)"
|
|
+requires_weak = ["00_base.target"]
|
|
+
|
|
+[service]
|
|
+cmd = "orbital"
|
|
+args = ["contain_orblogin", "launcher"]
|
|
+envs = { VT = "3" }
|
|
+type = "oneshot_async"
|
|
+"""
|
|
+
|
|
+# Override console init to use contain
|
|
+[[files]]
|
|
+path = "/usr/lib/init.d/30_console.service"
|
|
+data = """
|
|
+[unit]
|
|
+description = "Console terminals (contained)"
|
|
+requires_weak = ["20_orbital.service"]
|
|
+
|
|
+[service]
|
|
+cmd = "getty"
|
|
+args = ["--contain", "2"]
|
|
+type = "oneshot_async"
|
|
+respawn = true
|
|
+"""
|
|
+
|
|
+[[files]]
|
|
+path = "/usr/lib/init.d/31_debug_console.service"
|
|
+data = """
|
|
+[unit]
|
|
+description = "Debug console (contained)"
|
|
+requires_weak = ["30_console.service"]
|
|
+
|
|
+[service]
|
|
+cmd = "getty"
|
|
+args = ["--contain", "/scheme/debug/no-preserve", "-J"]
|
|
+type = "oneshot_async"
|
|
+respawn = true
|
|
+"""
|
|
+
|
|
+[[files]]
|
|
+path = "/etc/contain.toml"
|
|
+data = """
|
|
+pass_schemes = ["rand", "null", "tcp", "udp", "thisproc", "pty", "orbital", "display.vesa"]
|
|
+sandbox_schemes = ["file"]
|
|
+files = ["file:/dev/null"]
|
|
+rofiles = ["file:/etc/passwd", "file:/etc/hostname", "file:/etc/localtime"]
|
|
+dirs = ["file:/tmp"]
|
|
+rodirs = ["file:/bin", "file:/ui"]
|
|
+"""
|
|
diff --git a/config/x86_64/server-demo.toml b/config/x86_64/server-demo.toml
|
|
index ac775ef..9a22550 100644
|
|
--- a/config/x86_64/server-demo.toml
|
|
+++ b/config/x86_64/server-demo.toml
|
|
@@ -36,18 +36,30 @@ website = {}
|
|
|
|
|
|
[[files]]
|
|
-path = "/usr/lib/init.d/98_keygen_sh"
|
|
+path = "/usr/lib/init.d/98_keygen_sh.service"
|
|
data = """
|
|
-requires_weak 10_net.target
|
|
-bash /root/keygen.sh
|
|
+[unit]
|
|
+description = "SSH key generation"
|
|
+requires_weak = ["00_base.target"]
|
|
+
|
|
+[service]
|
|
+cmd = "bash"
|
|
+args = ["/root/keygen.sh"]
|
|
+type = "oneshot"
|
|
"""
|
|
|
|
[[files]]
|
|
-path = "/usr/lib/init.d/99_rustysd"
|
|
+path = "/usr/lib/init.d/99_rustysd.service"
|
|
data = """
|
|
-requires_weak 98_keygen_sh
|
|
-# Undocumented usage of rsdctl, pointing to notifications dir
|
|
-RSDCTL_ADDR=/var/run/rustysd/control.socket rustysd --conf /etc/rustysd
|
|
+[unit]
|
|
+description = "Rustysd service manager"
|
|
+requires_weak = ["98_keygen_sh.service"]
|
|
+
|
|
+[service]
|
|
+cmd = "rustysd"
|
|
+args = ["--conf", "/etc/rustysd"]
|
|
+envs = { RSDCTL_ADDR = "/var/run/rustysd/control.socket" }
|
|
+type = "oneshot_async"
|
|
"""
|
|
|
|
[[files]]
|
|
@@ -125,7 +137,7 @@ path = "/var/www/html/index.php"
|
|
data = """
|
|
<?php
|
|
|
|
-echo "Hello from PHP on Redox!";
|
|
+echo "Hello from PHP on Red Bear OS!";
|
|
"""
|
|
|
|
[[files]]
|
|
@@ -288,9 +300,9 @@ php-fpm --nodaemonize &
|
|
path = "/home/user/Welcome.txt"
|
|
data = """
|
|
##############################################################################
|
|
-# Welcome to Redox Server Demo!
|
|
+# Welcome to Red Bear OS Server Demo!
|
|
#
|
|
-# This is a quick demonstration of Redox used as server stack.
|
|
+# 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
|
|
@@ -303,7 +315,7 @@ data = """
|
|
# > sudo bash server.sh
|
|
#
|
|
# The server will start port 22 (ssh), 80 (static web) and 8081 (php)
|
|
-# If you use the Redox OS build system, starting QEMU with `net=redir`
|
|
+# 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`
|
|
#
|