Support distinct filesystem configs for each architecture

This commit is contained in:
Jeremy Soller 2022-08-26 11:26:05 -06:00
commit 1f339004d6
No known key found for this signature in database
GPG key ID: 87F211AF2BE4C2FE
11 changed files with 201 additions and 6 deletions

View file

@ -32,7 +32,7 @@ pull:
update: update:
cd cookbook && ./update.sh \ cd cookbook && ./update.sh \
"$$(cargo run --manifest-path ../installer/Cargo.toml -- --list-packages -c ../filesystem.toml)" "$$(cargo run --manifest-path ../installer/Cargo.toml -- --list-packages -c ../$(FILESYSTEM_CONFIG))"
cargo update --manifest-path cookbook/pkgutils/Cargo.toml cargo update --manifest-path cookbook/pkgutils/Cargo.toml
cargo update --manifest-path installer/Cargo.toml cargo update --manifest-path installer/Cargo.toml
cargo update --manifest-path redoxfs/Cargo.toml cargo update --manifest-path redoxfs/Cargo.toml
@ -41,7 +41,7 @@ update:
fetch: fetch:
cargo build --manifest-path cookbook/Cargo.toml --release cargo build --manifest-path cookbook/Cargo.toml --release
cd cookbook && ./fetch.sh \ cd cookbook && ./fetch.sh \
"$$(cargo run --manifest-path ../installer/Cargo.toml -- --list-packages -c ../filesystem.toml)" "$$(cargo run --manifest-path ../installer/Cargo.toml -- --list-packages -c ../$(FILESYSTEM_CONFIG))"
# Cross compiler recipes # Cross compiler recipes
include mk/prefix.mk include mk/prefix.mk

194
config/i686/desktop.toml Normal file
View file

@ -0,0 +1,194 @@
# Default desktop configuration
# General settings
[general]
# Do not prompt if settings are not defined
prompt = false
# Package settings
[packages]
audiod = {}
bootloader = {}
bootstrap = {}
ca-certificates = {}
contain = {}
coreutils = {}
#dash = {} # relibc issues?
diffutils = {}
drivers = {}
escalated = {}
extrautils = {}
findutils = {}
#gdbserver = {} # needs updated redox_syscall
gnu-make = {}
initfs = {}
installer = {}
ion = {}
ipcd = {}
kernel = {}
netdb = {}
netstack = {}
#netsurf = {} # openssl issues
netutils = {}
orbdata = {}
orbital = {}
orbterm = {}
orbutils = {}
pkgutils = {}
ptyd = {}
redoxfs = {}
relibc = {}
resist = {}
smith = {}
#strace = {} # needs updated redox_syscall
terminfo = {}
userutils = {}
uutils = {}
#vim = {} # relibc issues?
# User settings
[users.root]
password = "password"
uid = 0
gid = 0
name = "root"
home = "/root"
[users.user]
# Password is unset
password = ""
[[files]]
path = "/etc/init.d/00_base"
data = """
ipcd
ptyd
pcid /etc/pcid.d/
escalated
"""
[[files]]
path = "/etc/init.d/10_net"
data = """
smolnetd
dnsd
dhcpd -b
"""
[[files]]
path = "/etc/init.d/20_orbital"
data = """
audiod
orbital display:3/activate orblogin launcher
"""
[[files]]
path = "/etc/init.d/30_console"
data = """
getty display:2
getty debug: -J
"""
[[files]]
path = "/etc/net/dns"
data = """
208.67.222.222
"""
[[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
"""
[[files]]
path = "/etc/net/mac"
data = """
54-52-00-ab-cd-ef
"""
[[files]]
path = "/etc/pkg.d/50_redox"
data = "https://static.redox-os.org/pkg"
[[files]]
path = "/etc/redox-release"
data = "0.7.0"
[[files]]
path = "/etc/group"
data = """
root;0;root
user;1000;user
sudo;1;user
"""
[[files]]
path = "/etc/hostname"
data = """
redox
"""
[[files]]
path = "/usr/bin"
data = "../bin"
symlink = true
[[files]]
path = "/usr/games"
data = "../games"
symlink = true
[[files]]
path = "/usr/include"
data = "../include"
symlink = true
[[files]]
path = "/usr/lib"
data = "../lib"
symlink = true
[[files]]
path = "/usr/share"
data = "../share"
symlink = true
[[files]]
path = "/tmp"
data = ""
directory= true
# 0o1777
mode = 1023
[[files]]
path = "/dev/null"
data = "null:"
symlink = true
[[files]]
path = "/dev/random"
data = "rand:"
symlink = true
[[files]]
path = "/dev/urandom"
data = "rand:"
symlink = true
[[files]]
path = "/dev/zero"
data = "zero:"
symlink = true

84
config/x86_64/acid.toml Normal file
View file

@ -0,0 +1,84 @@
# Configuration for using acid
# General settings
[general]
# Do not prompt if settings are not defined
prompt = false
# Package settings
[packages]
bootloader = {}
bootstrap = {}
acid = {}
coreutils = {}
# TODO: Does this need escalated?
escalated = {}
initfs = {}
ion = {}
ipcd = {}
kernel = {}
ptyd = {}
# User settings
[users.root]
password = "password"
uid = 0
gid = 0
name = "root"
home = "/root"
[users.user]
# Password is unset
password = ""
[[files]]
path = "/etc/init.d/00_base"
data = """
ipcd
ptyd
escalated
"""
[[files]]
path = "/etc/init.d/10_acid"
data = """
export RUST_BACKTRACE full
acid
acid create_test
acid switch
acid tls
acid thread
shutdown
"""
[[files]]
path = "/usr/bin"
data = "../bin"
symlink = true
[[files]]
path = "/usr/games"
data = "../games"
symlink = true
[[files]]
path = "/usr/include"
data = "../include"
symlink = true
[[files]]
path = "/usr/lib"
data = "../lib"
symlink = true
[[files]]
path = "/usr/share"
data = "../share"
symlink = true
[[files]]
path = "/tmp"
data = ""
directory= true
# 0o1777
mode = 1023

194
config/x86_64/desktop.toml Normal file
View file

@ -0,0 +1,194 @@
# Default desktop configuration
# General settings
[general]
# Do not prompt if settings are not defined
prompt = false
# Package settings
[packages]
audiod = {}
bootloader = {}
bootstrap = {}
ca-certificates = {}
contain = {}
coreutils = {}
dash = {}
diffutils = {}
drivers = {}
escalated = {}
extrautils = {}
findutils = {}
gdbserver = {}
gnu-make = {}
initfs = {}
installer = {}
ion = {}
ipcd = {}
kernel = {}
netdb = {}
netstack = {}
netsurf = {}
netutils = {}
orbdata = {}
orbital = {}
orbterm = {}
orbutils = {}
pkgutils = {}
ptyd = {}
redoxfs = {}
relibc = {}
resist = {}
smith = {}
strace = {}
terminfo = {}
userutils = {}
uutils = {}
vim = {}
# User settings
[users.root]
password = "password"
uid = 0
gid = 0
name = "root"
home = "/root"
[users.user]
# Password is unset
password = ""
[[files]]
path = "/etc/init.d/00_base"
data = """
ipcd
ptyd
pcid /etc/pcid.d/
escalated
"""
[[files]]
path = "/etc/init.d/10_net"
data = """
smolnetd
dnsd
dhcpd -b
"""
[[files]]
path = "/etc/init.d/20_orbital"
data = """
audiod
orbital display:3/activate orblogin launcher
"""
[[files]]
path = "/etc/init.d/30_console"
data = """
getty display:2
getty debug: -J
"""
[[files]]
path = "/etc/net/dns"
data = """
208.67.222.222
"""
[[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
"""
[[files]]
path = "/etc/net/mac"
data = """
54-52-00-ab-cd-ef
"""
[[files]]
path = "/etc/pkg.d/50_redox"
data = "https://static.redox-os.org/pkg"
[[files]]
path = "/etc/redox-release"
data = "0.7.0"
[[files]]
path = "/etc/group"
data = """
root;0;root
user;1000;user
sudo;1;user
"""
[[files]]
path = "/etc/hostname"
data = """
redox
"""
[[files]]
path = "/usr/bin"
data = "../bin"
symlink = true
[[files]]
path = "/usr/games"
data = "../games"
symlink = true
[[files]]
path = "/usr/include"
data = "../include"
symlink = true
[[files]]
path = "/usr/lib"
data = "../lib"
symlink = true
[[files]]
path = "/usr/share"
data = "../share"
symlink = true
[[files]]
path = "/tmp"
data = ""
directory= true
# 0o1777
mode = 1023
[[files]]
path = "/dev/null"
data = "null:"
symlink = true
[[files]]
path = "/dev/random"
data = "rand:"
symlink = true
[[files]]
path = "/dev/urandom"
data = "rand:"
symlink = true
[[files]]
path = "/dev/zero"
data = "zero:"
symlink = true

264
config/x86_64/jeremy.toml Normal file
View file

@ -0,0 +1,264 @@
# Jeremy's configuration
# General settings
[general]
# Do not prompt if settings are not defined
prompt = false
# Package settings
[packages]
audiod = {}
bootloader = {}
bootstrap = {}
ca-certificates = {}
contain = {}
coreutils = {}
dash = {}
diffutils = {}
drivers = {}
escalated = {}
extrautils = {}
findutils = {}
gdbserver = {}
gnu-make = {}
initfs = {}
installer = {}
ion = {}
ipcd = {}
kernel = {}
netdb = {}
netstack = {}
netsurf = {}
netutils = {}
orbdata = {}
orbital = {}
orbterm = {}
orbutils = {}
pkgutils = {}
ptyd = {}
redoxfs = {}
resist = {}
smith = {}
strace = {}
terminfo = {}
userutils = {}
uutils = {}
vim = {}
# apps
periodictable = {}
pixelcannon = {}
schismtracker = {}
sodium = {}
# cli
acid = {}
bash = {}
cleye = {}
curl = {}
ffmpeg = {}
git = {}
gnu-grep = {}
ripgrep = {}
sed = {}
xz = {}
# demos
cairodemo = {}
cmatrix = {} # slow in terminal
cpal = {}
gears = {}
glium = {} # does not show anything
glutin = {}
orbclient = {}
osdemo = {} # does not show anything
rodioplay = {}
rust-cairo = {}
rust-cairo-demo = {}
sdl2_gears = {}
vttest = {}
winit = {}
# dev
autoconf = {}
automake = {}
gcc = {}
gnu-binutils = {}
nasm = {}
patch = {}
pkg-config = {}
#rust = {}
# games
dosbox = {}
eduke32 = {}
freedoom = {}
games = {}
gigalomania = {}
mgba = {}
neverball = {}
openjazz = {}
openttd = {}
openttd-opengfx = {}
openttd-openmsx = {}
openttd-opensfx = {}
prboom = {}
retroarch = {} # need to package cores
rs-nes = {} # need game for testing
rust64 = {} # need roms
rustual-boy = {} # need game for testing
scummvm = {} # need game for testing
sm64ex = {}
sopwith = {}
syobonaction = {}
vice = {}
vvvvvv = {}
# stuff
generaluser-gs = {}
jeremy = {}
keyboard-sfx = {}
libc-bench = {}
timidity = {}
ttf-hack = {}
# User settings
[users.root]
password = "password"
uid = 0
gid = 0
name = "root"
home = "/root"
[users.user]
# Password is unset
password = ""
[[files]]
path = "/etc/init.d/00_base"
data = """
ipcd
ptyd
pcid /etc/pcid.d/
escalated
"""
[[files]]
path = "/etc/init.d/10_net"
data = """
smolnetd
dnsd
dhcpd -b
"""
[[files]]
path = "/etc/init.d/20_orbital"
data = """
audiod
orbital display:3/activate orblogin launcher
"""
[[files]]
path = "/etc/init.d/30_console"
data = """
getty display:2
getty debug: -J
"""
[[files]]
path = "/etc/net/dns"
data = """
208.67.222.222
"""
[[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
"""
[[files]]
path = "/etc/net/mac"
data = """
54-52-00-ab-cd-ef
"""
[[files]]
path = "/etc/pkg.d/50_redox"
data = "https://static.redox-os.org/pkg"
[[files]]
path = "/etc/redox-release"
data = "0.7.0"
[[files]]
path = "/etc/group"
data = """
root;0;root
user;1000;user
sudo;1;user
"""
[[files]]
path = "/etc/hostname"
data = """
redox
"""
[[files]]
path = "/usr/bin"
data = "../bin"
symlink = true
[[files]]
path = "/usr/games"
data = "../games"
symlink = true
[[files]]
path = "/usr/include"
data = "../include"
symlink = true
[[files]]
path = "/usr/lib"
data = "../lib"
symlink = true
[[files]]
path = "/usr/share"
data = "../share"
symlink = true
[[files]]
path = "/tmp"
data = ""
directory= true
# 0o1777
mode = 1023
[[files]]
path = "/dev/null"
data = "null:"
symlink = true
[[files]]
path = "/dev/random"
data = "rand:"
symlink = true
[[files]]
path = "/dev/urandom"
data = "rand:"
symlink = true
[[files]]
path = "/dev/zero"
data = "zero:"
symlink = true

174
config/x86_64/resist.toml Normal file
View file

@ -0,0 +1,174 @@
# Configuration for using resist
# General settings
[general]
# Do not prompt if settings are not defined
prompt = false
# Package settings
[packages]
bootloader = {}
bootstrap = {}
coreutils = {}
dash = {}
diffutils = {}
drivers = {}
escalated = {}
extrautils = {}
findutils = {}
gcc = {}
gnu-binutils = {}
gnu-make = {}
initfs = {}
ipcd = {}
kernel = {}
netdb = {}
netstack = {}
netutils = {}
ptyd = {}
resist = {}
userutils = {}
uutils = {}
# User settings
[users.root]
password = "password"
uid = 0
gid = 0
name = "root"
home = "/root"
[users.user]
# Password is unset
password = ""
[[files]]
path = "/etc/init.d/00_base"
data = """
ipcd
ptyd
pcid /etc/pcid.d/
escalated
"""
[[files]]
path = "/etc/init.d/10_net"
data = """
smolnetd
dnsd
dhcpd
"""
[[files]]
path = "/etc/init.d/20_resist"
data = """
export RUST_BACKTRACE full
resist /share/resist/redox/spec.toml
resist /share/resist/posix/base.toml
resist /share/resist/posix/shell.toml
shutdown
"""
[[files]]
path = "/etc/net/dns"
data = """
208.67.222.222
"""
[[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
"""
[[files]]
path = "/etc/net/mac"
data = """
54-52-00-ab-cd-ef
"""
[[files]]
path = "/etc/pkg.d/50_redox"
data = "https://static.redox-os.org/pkg"
[[files]]
path = "/etc/redox-release"
data = "0.7.0"
[[files]]
path = "/etc/group"
data = """
root;0;root
user;1000;user
sudo;1;user
"""
[[files]]
path = "/etc/hostname"
data = """
redox
"""
[[files]]
path = "/usr/bin"
data = "../bin"
symlink = true
[[files]]
path = "/usr/games"
data = "../games"
symlink = true
[[files]]
path = "/usr/include"
data = "../include"
symlink = true
[[files]]
path = "/usr/lib"
data = "../lib"
symlink = true
[[files]]
path = "/usr/share"
data = "../share"
symlink = true
[[files]]
path = "/tmp"
data = ""
directory= true
# 0o1777
mode = 1023
[[files]]
path = "/dev/null"
data = "null:"
symlink = true
[[files]]
path = "/dev/random"
data = "rand:"
symlink = true
[[files]]
path = "/dev/urandom"
data = "rand:"
symlink = true
[[files]]
path = "/dev/zero"
data = "zero:"
symlink = true

187
config/x86_64/rustc.toml Normal file
View file

@ -0,0 +1,187 @@
# Configuration for using rustc
# General settings
[general]
# Do not prompt if settings are not defined
prompt = false
# Package settings
[packages]
bootloader = {}
bootstrap = {}
ca-certificates = {}
contain = {}
coreutils = {}
dash = {}
diffutils = {}
drivers = {}
escalated = {}
extrautils = {}
findutils = {}
gcc = {}
gnu-binutils = {}
gnu-make = {}
installer = {}
ion = {}
initfs = {}
ipcd = {}
kernel = {}
netdb = {}
netstack = {}
netutils = {}
pkgutils = {}
ptyd = {}
redoxfs = {}
relibc = {}
rust = {}
smith = {}
userutils = {}
uutils = {}
# User settings
[users.root]
password = "password"
uid = 0
gid = 0
name = "root"
home = "/root"
[users.user]
# Password is unset
password = ""
[[files]]
path = "/home/user/example.rs"
data = """
fn main() {
println!("Hello, Redox!");
}
"""
[[files]]
path = "/etc/init.d/00_base"
data = """
ipcd
ptyd
pcid /etc/pcid.d/
escalated
"""
[[files]]
path = "/etc/init.d/10_net"
data = """
smolnetd
dnsd
dhcpd -b
"""
[[files]]
path = "/etc/init.d/30_console"
data = """
getty display:2/activate
getty debug: -J
"""
[[files]]
path = "/etc/net/dns"
data = """
208.67.222.222
"""
[[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
"""
[[files]]
path = "/etc/net/mac"
data = """
54-52-00-ab-cd-ef
"""
[[files]]
path = "/etc/pkg.d/50_redox"
data = "https://static.redox-os.org/pkg"
[[files]]
path = "/etc/redox-release"
data = "0.7.0"
[[files]]
path = "/etc/group"
data = """
root;0;root
user;1000;user
sudo;1;user
"""
[[files]]
path = "/etc/hostname"
data = """
redox
"""
[[files]]
path = "/usr/bin"
data = "../bin"
symlink = true
[[files]]
path = "/usr/games"
data = "../games"
symlink = true
[[files]]
path = "/usr/include"
data = "../include"
symlink = true
[[files]]
path = "/usr/lib"
data = "../lib"
symlink = true
[[files]]
path = "/usr/share"
data = "../share"
symlink = true
[[files]]
path = "/tmp"
data = ""
directory= true
# 0o1777
mode = 1023
[[files]]
path = "/dev/null"
data = "null:"
symlink = true
[[files]]
path = "/dev/random"
data = "rand:"
symlink = true
[[files]]
path = "/dev/urandom"
data = "rand:"
symlink = true
[[files]]
path = "/dev/zero"
data = "zero:"
symlink = true

176
config/x86_64/server.toml Normal file
View file

@ -0,0 +1,176 @@
# Default server configuration
# General settings
[general]
# Do not prompt if settings are not defined
prompt = false
# Package settings
[packages]
bootloader = {}
bootstrap = {}
ca-certificates = {}
contain = {}
coreutils = {}
dash = {}
diffutils = {}
drivers = {}
escalated = {}
extrautils = {}
findutils = {}
gnu-make = {}
installer = {}
ion = {}
initfs = {}
ipcd = {}
kernel = {}
netdb = {}
netstack = {}
netutils = {}
pkgutils = {}
ptyd = {}
redoxfs = {}
resist = {}
smith = {}
userutils = {}
uutils = {}
# User settings
[users.root]
password = "password"
uid = 0
gid = 0
name = "root"
home = "/root"
[users.user]
# Password is unset
password = ""
[[files]]
path = "/etc/init.d/00_base"
data = """
ipcd
ptyd
pcid /etc/pcid.d/
escalated
"""
[[files]]
path = "/etc/init.d/10_net"
data = """
smolnetd
dnsd
dhcpd -b
"""
[[files]]
path = "/etc/init.d/30_console"
data = """
getty display:2/activate
getty debug: -J
"""
[[files]]
path = "/etc/net/dns"
data = """
208.67.222.222
"""
[[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
"""
[[files]]
path = "/etc/net/mac"
data = """
54-52-00-ab-cd-ef
"""
[[files]]
path = "/etc/pkg.d/50_redox"
data = "https://static.redox-os.org/pkg"
[[files]]
path = "/etc/redox-release"
data = "0.7.0"
[[files]]
path = "/etc/group"
data = """
root;0;root
user;1000;user
sudo;1;user
"""
[[files]]
path = "/etc/hostname"
data = """
redox
"""
[[files]]
path = "/usr/bin"
data = "../bin"
symlink = true
[[files]]
path = "/usr/games"
data = "../games"
symlink = true
[[files]]
path = "/usr/include"
data = "../include"
symlink = true
[[files]]
path = "/usr/lib"
data = "../lib"
symlink = true
[[files]]
path = "/usr/share"
data = "../share"
symlink = true
[[files]]
path = "/tmp"
data = ""
directory= true
# 0o1777
mode = 1023
[[files]]
path = "/dev/null"
data = "null:"
symlink = true
[[files]]
path = "/dev/random"
data = "rand:"
symlink = true
[[files]]
path = "/dev/urandom"
data = "rand:"
symlink = true
[[files]]
path = "/dev/zero"
data = "zero:"
symlink = true

View file

@ -1 +0,0 @@
config/desktop.toml

View file

@ -7,6 +7,8 @@ ARCH?=x86_64
INSTALLER_FLAGS?=--cookbook=cookbook INSTALLER_FLAGS?=--cookbook=cookbook
## Enabled to use binary prefix (much faster) ## Enabled to use binary prefix (much faster)
PREFIX_BINARY?=1 PREFIX_BINARY?=1
## Select filesystem config
FILESYSTEM_CONFIG?=config/$(ARCH)/desktop.toml
## Filesystem size in MB (256 is the default) ## Filesystem size in MB (256 is the default)
FILESYSTEM_SIZE?=256 FILESYSTEM_SIZE?=256
## Flags to pass to redoxfs-mkfs. Add --encrypt to set up disk encryption ## Flags to pass to redoxfs-mkfs. Add --encrypt to set up disk encryption

View file

@ -1,4 +1,4 @@
build/filesystem.bin: prefix filesystem.toml build/filesystem.bin: prefix $(FILESYSTEM_CONFIG)
$(HOST_CARGO) build --manifest-path cookbook/Cargo.toml --release $(HOST_CARGO) build --manifest-path cookbook/Cargo.toml --release
$(HOST_CARGO) build --manifest-path installer/Cargo.toml --release $(HOST_CARGO) build --manifest-path installer/Cargo.toml --release
$(HOST_CARGO) build --manifest-path redoxfs/Cargo.toml --release $(HOST_CARGO) build --manifest-path redoxfs/Cargo.toml --release
@ -13,8 +13,8 @@ build/filesystem.bin: prefix filesystem.toml
redoxfs/target/release/redoxfs $@.partial build/filesystem/ redoxfs/target/release/redoxfs $@.partial build/filesystem/
sleep 2 sleep 2
pgrep redoxfs pgrep redoxfs
$(INSTALLER) -c filesystem.toml build/filesystem/ $(INSTALLER) -c $(FILESYSTEM_CONFIG) build/filesystem/
cp -v filesystem.toml build/filesystem/filesystem.toml cp -v $(FILESYSTEM_CONFIG) build/filesystem/filesystem.toml
mkdir -pv build/filesystem/pkg mkdir -pv build/filesystem/pkg
cp -v cookbook/build/id_ed25519.pub.toml build/filesystem/pkg/id_ed25519.pub.toml cp -v cookbook/build/id_ed25519.pub.toml build/filesystem/pkg/id_ed25519.pub.toml
sync sync