Merge branch redox:master into patch-make-macos

This commit is contained in:
Wildan Mubarok 2025-09-11 10:20:16 +00:00
commit 74f9f91ba3
20 changed files with 116 additions and 177 deletions

View File

@ -81,12 +81,14 @@ Once your GitLab account is created, you should add your Matrix or Discord usern
### Issues
To know how to create issues on the Redox GitLab, read the [Filing Issues](https://doc.redox-os.org/book/filing-issues.html) page.
We use issues to organize and track our current and pending work, to know how to create issues on the Redox GitLab read the [Filing Issues](https://doc.redox-os.org/book/filing-issues.html) page.
Once you create an issue don't forget to post the link on the Dev or Support rooms of the chat, because the GitLab email notifications have distractions (service messages or spam) and most developers don't left their GitLab pages open to receive desktop notifications from the web browser (which require a custom setting to receive issue notifications).
By doing this you help us to pay attention to your issues and avoid them to be accidentally forgotten.
You can see all issues on [this](https://gitlab.redox-os.org/groups/redox-os/-/issues) link.
### Pull Requests
Please follow [our process](https://doc.redox-os.org/book/creating-proper-pull-requests.html) for creating proper pull requests.
@ -135,7 +137,9 @@ If you don't know how to code in Rust, but know other programming languages:
If you know how to code in Rust, but don't know operating system development:
- Look for issues labeled "good first issue", "easy", and/or "help wanted", e.g. [this GitLab filter](https://gitlab.redox-os.org/groups/redox-os/-/issues/?sort=updated_desc&state=opened&or%5Blabel_name%5D%5B%5D=good%20first%20issue&or%5Blabel_name%5D%5B%5D=Easy&or%5Blabel_name%5D%5B%5D=easy&or%5Blabel_name%5D%5B%5D=help%20wanted&first_page_size=20]). Worth noting the skill level varies between projects, but a large subset of these should be approachable by contributors familiar with regular Rust/Unix application programming.
- See the [easy](https://gitlab.redox-os.org/groups/redox-os/-/issues/?label_name[]=easy) issues
- See the "[good first issue](https://gitlab.redox-os.org/groups/redox-os/-/issues/?label_name[]=good%20first%20issue)" issues
- See the [help wanted](https://gitlab.redox-os.org/groups/redox-os/-/issues/?label_name[]=help%20wanted) issues (it's worth noting the skill level varies between projects, but a large subset of these should be approachable by contributors familiar with regular Rust/Unix application programming)
- Improve the package manager, or other meta-tools like `redoxer` or `installer`
- Improve the [Ion](https://gitlab.redox-os.org/redox-os/ion) shell, or other high-level or mid-level projects
- Port Rust programs to Redox, possibly including dependencies, and C library extensions if necessary (also look for issues with the `port` label)
@ -163,10 +167,10 @@ For those who want to contribute to the Redox GUI, our GUI strategy has recently
You can use the following GitLab label filters to know our development priorities on the moment:
- [Critical](https://gitlab.redox-os.org/redox-os/redox/-/issues/?sort=created_date&state=opened&label_name%5B%5D=critical&first_page_size=20)
- [High-priority](https://gitlab.redox-os.org/redox-os/redox/-/issues/?sort=created_date&state=opened&label_name%5B%5D=high-priority&first_page_size=20)
- [Medium-priority](https://gitlab.redox-os.org/redox-os/redox/-/issues/?sort=created_date&state=opened&label_name%5B%5D=medium-priority&first_page_size=20)
- [Low-priority](https://gitlab.redox-os.org/redox-os/redox/-/issues/?sort=created_date&state=opened&label_name%5B%5D=low-priority&first_page_size=20)
- [Critical](https://gitlab.redox-os.org/groups/redox-os/-/issues/?label_name[]=critical)
- [High-priority](https://gitlab.redox-os.org/groups/redox-os/-/issues/?label_name[]=high-priority)
- [Medium-priority](https://gitlab.redox-os.org/groups/redox-os/-/issues/?label_name[]=medium-priority)
- [Low-priority](https://gitlab.redox-os.org/groups/redox-os/-/issues/?label_name[]=low-priority)
## RFCs

View File

@ -9,6 +9,8 @@ filesystem_size = 768
# Package settings
[packages]
rustpython = "ignore" # https://github.com/Alexhuszagh/rust-lexical/issues/218
# Games
dosbox = {}
freedoom = {}

View File

@ -11,4 +11,5 @@ include = ["../desktop.toml"]
# Package settings
[packages]
# example = {}
# example = {}
rustpython = "ignore" # https://github.com/Alexhuszagh/rust-lexical/issues/218

View File

@ -11,4 +11,5 @@ include = ["../dev.toml"]
# Package settings
[packages]
# example = {}
# example = {}
rustpython = "ignore" # https://github.com/Alexhuszagh/rust-lexical/issues/218

View File

@ -1,35 +1,3 @@
# Minimal network configuration
# Configuration for demonstration
include = ["../minimal-net.toml"]
# Override the default settings here
# General settings
[general]
# Filesystem size in MiB
filesystem_size = 256
# Package settings
[packages]
orbdata = {}
orbital = {}
orbterm = {}
orbutils-background = {}
orbutils-launcher = {}
orbutils-orblogin = {}
[[files]]
path = "/usr/lib/init.d/20_orbital"
data = """
export VT 3
orbital orblogin launcher
unset VT
"""
# Override console config to not switch to VT 2
[[files]]
path = "/usr/lib/init.d/30_console"
data = """
getty 2
getty /scheme/debug/no-preserve -J
"""
include = ["desktop.toml"]

View File

@ -1,35 +1,14 @@
# Minimal network configuration
# Minimal desktop configuration
include = ["../minimal-net.toml"]
include = ["../desktop-minimal.toml"]
# Override the default settings here
# General settings
[general]
# Filesystem size in MiB
filesystem_size = 256
# filesystem_size = 1024
# Package settings
[packages]
orbdata = {}
orbital = {}
orbterm = {}
orbutils-background = {}
orbutils-launcher = {}
orbutils-orblogin = {}
[[files]]
path = "/usr/lib/init.d/20_orbital"
data = """
export VT 3
orbital orblogin launcher
unset VT
"""
# Override console config to not switch to VT 2
[[files]]
path = "/usr/lib/init.d/30_console"
data = """
getty 2
getty /scheme/debug/no-preserve -J
"""
# example = {}

View File

@ -1,35 +1,15 @@
# Minimal network configuration
# Default build system configuration
include = ["../minimal-net.toml"]
include = ["../desktop.toml"]
# Override the default settings here
# General settings
[general]
# Filesystem size in MiB
filesystem_size = 256
# filesystem_size = 1024
# Package settings
[packages]
orbdata = {}
orbital = {}
orbterm = {}
orbutils-background = {}
orbutils-launcher = {}
orbutils-orblogin = {}
[[files]]
path = "/usr/lib/init.d/20_orbital"
data = """
export VT 3
orbital orblogin launcher
unset VT
"""
# Override console config to not switch to VT 2
[[files]]
path = "/usr/lib/init.d/30_console"
data = """
getty 2
getty /scheme/debug/no-preserve -J
"""
# example = {}
netsurf = "ignore" # liborbital fails to link in due to mismatching float ABI

View File

@ -1,35 +1,3 @@
# Minimal network configuration
# Configuration for Jeremy Soller
include = ["../minimal-net.toml"]
# Override the default settings here
# General settings
[general]
# Filesystem size in MiB
filesystem_size = 256
# Package settings
[packages]
orbdata = {}
orbital = {}
orbterm = {}
orbutils-background = {}
orbutils-launcher = {}
orbutils-orblogin = {}
[[files]]
path = "/usr/lib/init.d/20_orbital"
data = """
export VT 3
orbital orblogin launcher
unset VT
"""
# Override console config to not switch to VT 2
[[files]]
path = "/usr/lib/init.d/30_console"
data = """
getty 2
getty /scheme/debug/no-preserve -J
"""
include = ["desktop.toml"]

View File

@ -1,6 +1,6 @@
# Minimal network configuration
# Server configuration
include = ["../minimal-net.toml"]
include = ["../server.toml"]
# Override the default settings here
@ -11,4 +11,4 @@ include = ["../minimal-net.toml"]
# Package settings
[packages]
# example = {}
# example = {}

View File

@ -11,7 +11,7 @@ filesystem_size = 512
[packages]
bash = {}
ca-certificates = {}
contain = {}
#contain = {} # needs to update dependencies
coreutils = {}
curl = {}
diffutils = {}

View File

@ -1,6 +1,6 @@
# Configuration for Jeremy Soller
include = ["../desktop.toml"]
include = ["demo.toml"]
# General settings
[general]
@ -10,31 +10,31 @@ filesystem_size = 8192
# Package settings
[packages]
# apps
#boxedwine = {} # not building
#boxedwine = {}
cosmic-player = {}
cosmic-reader = {}
#cosmic-settings = {} # requires recvmsg/sendmsg
cosmic-store = {}
cosmic-term = {}
cosmic-text = {}
periodictable = {}
pixelcannon = {}
qemu = {}
schismtracker = {}
sodium = {}
# cli
acid = {}
cleye = {}
ffmpeg6 = {}
gnu-grep = {}
lua54 = {}
nano = {}
nushell = {}
#nushell = {}
perg = {}
relibc-tests = {}
ripgrep = {}
#relibc-tests = {}
russh = {}
sed = {}
shellharden = {}
xz = {}
# demos
cairodemo = {}
#cairodemo = {}
#cmatrix = {} # addwstr
cpal = {}
gears = {}
@ -42,16 +42,14 @@ glutin = {}
#hematite = {} # not building
iced = {}
libcosmic = {}
orbclient = {}
osdemo = {} # does not show anything
#pathfinder = {} # not building
procedural-wallpapers-rs = {}
rodioplay = {}
rust-cairo = {}
rust-cairo-demo = {}
#rust-cairo = {}
#rust-cairo-demo = {}
sdl2-gears = {}
vttest = {}
webrender = {}
#webrender = {}
winit = {}
# dev
@ -64,43 +62,38 @@ gnu-make = {}
nasm = {}
patch = {}
pkg-config = {}
rust = {}
rustpython = {}
#rust = {}
#rustpython = {}
# games
devilutionx = {}
dosbox = {}
eduke32 = {}
flycast = {}
freedoom = {}
freeciv = {}
gigalomania = {}
love = {}
mednafen = {}
mgba = {}
neverball = {}
openjazz = {}
openjk = {}
openttd = {}
openttd-opengfx = {}
openttd-openmsx = {}
openttd-opensfx = {}
prboom = {}
redox-games = {}
quakespasm = {}
#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 = {}
spacecadetpinball = {}
syobonaction = {}
#syobonaction = {}
#vice = {} # broken on new toolchain
#vvvvvv = {} # cannot find -lgcc_s
# stuff
freepats = {}
generaluser-gs = {}
intel-one-mono = {}
jeremy = {}
libc-bench = {}
noto-color-emoji = {}

View File

@ -0,0 +1,13 @@
# Configuration for demonstration
include = ["demo.toml"]
# General settings
[general]
# Filesystem size in MiB
filesystem_size = 1536
# Package settings
[packages]
cosmic-reader = {}
rustconf2025 = {}

@ -1 +1 @@
Subproject commit fc48fb9cf460833a91d0fd76911b39c1ef9d57bf
Subproject commit 5c17b6b073aa75f4b649f78cf197b0e2f68f4eb7

View File

@ -31,7 +31,7 @@ else
$(HOST_CARGO) build --manifest-path installer/Cargo.toml --release
export PATH="$(PREFIX_PATH):$$PATH" && \
export COOKBOOK_HOST_SYSROOT="$(ROOT)/$(PREFIX_INSTALL)" && \
PACKAGES="$$($(LIST_PACKAGES) $(LIST_PACKAGES_OPTS) -c config/$(ARCH)/ci.toml)" && \
PACKAGES="$$($(LIST_PACKAGES) $(LIST_PACKAGES_OPTS) --short -c config/$(ARCH)/ci.toml)" && \
cd cookbook && \
./fetch.sh "$${PACKAGES}" && \
./repo.sh $(REPO_NONSTOP) "$${PACKAGES}"

View File

@ -109,6 +109,7 @@ else
export GNU_TARGET=$(TARGET)
endif
BUILD=build/$(ARCH)/$(CONFIG_NAME)
MOUNT_DIR=$(BUILD)/filesystem
HOST_FSTOOLS=build/fstools
INSTALLER=$(HOST_FSTOOLS)/bin/redox_installer
INSTALLER_OPTS=

View File

@ -38,8 +38,8 @@ ifeq ($(PODMAN_BUILD),1)
$(PODMAN_RUN) make $@
else
mkdir -p $(BUILD)
-$(FUMOUNT) $(BUILD)/filesystem/ || true
rm -rf $@ $@.partial $(BUILD)/filesystem/
-$(FUMOUNT) $(MOUNT_DIR) || true
rm -rf $@ $@.partial $(MOUNT_DIR)
-$(FUMOUNT) /tmp/redox_installer || true
FILESYSTEM_SIZE=$(FILESYSTEM_SIZE) && \
if [ -z "$$FILESYSTEM_SIZE" ] ; then \
@ -47,31 +47,31 @@ else
fi && \
truncate -s "$$FILESYSTEM_SIZE"m $@.partial
$(REDOXFS_MKFS) $(REDOXFS_MKFS_FLAGS) $@.partial
mkdir -p $(BUILD)/filesystem/
$(REDOXFS) $@.partial $(BUILD)/filesystem/
mkdir -p $(MOUNT_DIR)
$(REDOXFS) $@.partial $(MOUNT_DIR)
sleep 1
pgrep redoxfs
umask 002 && $(INSTALLER) $(INSTALLER_OPTS) -c $(FILESYSTEM_CONFIG) $(BUILD)/filesystem/
umask 002 && $(INSTALLER) $(INSTALLER_OPTS) -c $(FILESYSTEM_CONFIG) $(MOUNT_DIR)
sync
-$(FUMOUNT) $(BUILD)/filesystem/ || true
rm -rf $(BUILD)/filesystem/
-$(FUMOUNT) $(MOUNT_DIR) || true
rm -rf $(MOUNT_DIR)
mv $@.partial $@
endif
mount: $(HOST_FSTOOLS) FORCE
mkdir -p $(BUILD)/filesystem/
$(REDOXFS) $(BUILD)/harddrive.img $(BUILD)/filesystem/
mkdir -p $(MOUNT_DIR)
$(REDOXFS) $(BUILD)/harddrive.img $(MOUNT_DIR)
sleep 2
pgrep redoxfs
mount_extra: $(HOST_FSTOOLS) FORCE
mkdir -p $(BUILD)/filesystem/
$(REDOXFS) $(BUILD)/extra.img $(BUILD)/filesystem/
mkdir -p $(MOUNT_DIR)
$(REDOXFS) $(BUILD)/extra.img $(MOUNT_DIR)
sleep 2
pgrep redoxfs
unmount: FORCE
sync
-$(FUMOUNT) $(BUILD)/filesystem/ || true
rm -rf $(BUILD)/filesystem/
-$(FUMOUNT) $(MOUNT_DIR) || true
rm -rf $(MOUNT_DIR)
-$(FUMOUNT) /tmp/redox_installer || true

View File

@ -5,7 +5,7 @@ ifeq ($(PODMAN_BUILD),1)
$(PODMAN_RUN) make $@
else
export PATH="$(PREFIX_PATH):$$PATH" && \
PACKAGES="$$($(LIST_PACKAGES) $(LIST_PACKAGES_OPTS) -c $(FILESYSTEM_CONFIG))" && \
PACKAGES="$$($(LIST_PACKAGES) $(LIST_PACKAGES_OPTS) --short -c $(FILESYSTEM_CONFIG))" && \
export COOKBOOK_HOST_SYSROOT="$(ROOT)/$(PREFIX_INSTALL)" && \
cd cookbook && \
./fetch.sh $(REPO_NONSTOP) $(REPO_OFFLINE) "$${PACKAGES}"
@ -19,7 +19,7 @@ ifeq ($(PODMAN_BUILD),1)
else
export PATH="$(PREFIX_PATH):$$PATH" && \
export COOKBOOK_HOST_SYSROOT="$(ROOT)/$(PREFIX_INSTALL)" && \
PACKAGES="$$($(LIST_PACKAGES) $(LIST_PACKAGES_OPTS) -c $(FILESYSTEM_CONFIG))" && \
PACKAGES="$$($(LIST_PACKAGES) $(LIST_PACKAGES_OPTS) --short -c $(FILESYSTEM_CONFIG))" && \
cd cookbook && \
./repo.sh $(REPO_NONSTOP) $(REPO_OFFLINE) --with-package-deps "$${PACKAGES}"
mkdir -p $(BUILD)
@ -87,6 +87,34 @@ else
fi
endif
MOUNTED_TAG=$(MOUNT_DIR)~
# Push compiled package into existing image
# DO NOT RUN THIS WHILE QEMU ALIVE, THE DISK MIGHT CORRUPT IN DOING SO
p.%: $(FSTOOLS_TAG) FORCE
@rm -f $(MOUNTED_TAG)
@if [ ! -d "$(MOUNT_DIR)" ]; then \
$(MAKE) mount; \
touch $(MOUNTED_TAG); \
fi
ifeq ($(PODMAN_BUILD),1)
$(PODMAN_RUN) make $@
else
@if echo "$*" | grep -q ','; then \
$(MAKE) $(foreach f,$(subst $(comma), ,$*),p.$(f)); \
else \
export RECIPE_PATH=cookbook/$(shell make find.$* | grep ^recipes) && \
export RECIPE_STAGE=$$RECIPE_PATH/target/$(TARGET)/stage.pkgar && \
./cookbook/pkgar/target/release/pkgar extract $(MOUNT_DIR)/ --archive $$RECIPE_STAGE \
--pkey ./cookbook/build/id_ed25519.pub.toml && \
echo "extracted $$RECIPE_PATH"; \
fi
endif
@if [ -f $(MOUNTED_TAG) ]; then \
$(MAKE) unmount && rm -f $(MOUNTED_TAG); \
else echo "Not unmounting by ourself, don't forget to do it"; \
fi
# Invoke unfetch.sh for one or more targets separated by comma
u.%: $(FSTOOLS_TAG) FORCE
ifeq ($(PODMAN_BUILD),1)

View File

@ -3,7 +3,7 @@
# This script install the Rust toolchain and the build system dependencies
# in Podman after the image has been built
curl https://sh.rustup.rs -sSf | sh -s -- -y --default-toolchain stable
curl https://sh.rustup.rs -sSf | sh -s -- -y --default-toolchain stable --profile minimal
curl -sSLf https://raw.githubusercontent.com/cargo-bins/cargo-binstall/main/install-from-binstall-release.sh | bash
cargo +stable binstall --no-confirm --force --version 0.10.0 sccache

2
relibc

@ -1 +1 @@
Subproject commit fd9a1c9668c10d122eab9839d0f0f7f4d88703ab
Subproject commit 2f0d5eb970337f595128505d1435a1086f998600

View File

@ -1,3 +1,4 @@
[toolchain]
channel = "nightly-2025-01-12"
components = ["rust-src"]
components = ["rust-src", "rustfmt", "clippy"]
profile = "minimal"