diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 427fd5123..23aeaeaed 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -165,13 +165,19 @@ For those who want to contribute to the Redox GUI, our GUI strategy has recently ## Priorities -You can use the following GitLab label filters to know our development priorities on the moment: +You can use the following GitLab issue label filters to know our development priorities on the moment: - [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) +## Roadmap + +We use tracking issues for the goals in our roadmap, you can see them in the filter below: + +- [Tracking issues](https://gitlab.redox-os.org/groups/redox-os/-/issues/?label_name[]=tracking%20issue) + ## RFCs For more significant changes that affect Redox's architecture, we use the [Request for Comments](https://gitlab.redox-os.org/redox-os/rfcs) repository. diff --git a/config/aarch64/tests.toml b/config/aarch64/tests.toml new file mode 100644 index 000000000..9af06ab91 --- /dev/null +++ b/config/aarch64/tests.toml @@ -0,0 +1,14 @@ +# Configuration for testing + +include = ["../tests.toml"] + +# Override the default settings here + +# General settings +[general] +# Filesystem size in MiB +# filesystem_size = 10000 + +# Package settings +[packages] +# example = {} diff --git a/config/base.toml b/config/base.toml index a4e705605..8f2e64e18 100644 --- a/config/base.toml +++ b/config/base.toml @@ -162,6 +162,12 @@ data = "" directory = true mode = 0o755 +[[files]] +path = "/var/run" +data = "" +directory = true +mode = 0o755 + [[files]] path = "/var/tmp" data = "" diff --git a/config/dev.toml b/config/dev.toml index c3fa5bf94..8f92fb2cc 100644 --- a/config/dev.toml +++ b/config/dev.toml @@ -12,44 +12,4 @@ prompt = false # Package settings [packages] dev-redox = {} - -[[files]] -path = "/home/user/test.rs" -data = """ -fn main() { - println!("Hello, Redox!"); -} -""" - -[[files]] -path = "/home/user/test.c" -data = """ -#include - -int main(void) { - printf("Hello, Redox!\\n"); -} -""" - -[[files]] -path = "/home/user/test.cpp" -data = """ -#include - -int main() -{ - std::cout << "Hello, Redox!" << std::endl; -} -""" - -[[files]] -path = "/home/user/test.py" -data = """ -print("Hello, Redox!") -""" - -[[files]] -path = "/home/user/test.lua" -data = """ -print("Hello, Redox!") -""" +hello-redox = {} diff --git a/config/i686/ci.toml b/config/i686/ci.toml index e67944146..66828b9c2 100644 --- a/config/i686/ci.toml +++ b/config/i686/ci.toml @@ -41,6 +41,7 @@ redoxfs = {} relibc = {} resist = {} smith = {} +terminfo = {} userutils = {} uutils = {} #vim = {} # conflicting types diff --git a/config/i686/jeremy.toml b/config/i686/jeremy.toml index d76b88d7c..4c0c08c4c 100644 --- a/config/i686/jeremy.toml +++ b/config/i686/jeremy.toml @@ -9,6 +9,8 @@ filesystem_size = 4000 # Package settings [packages] +rustpython = "ignore" # https://github.com/Alexhuszagh/rust-lexical/issues/218 + # apps cosmic-text = {} pixelcannon = {} diff --git a/config/i686/tests.toml b/config/i686/tests.toml new file mode 100644 index 000000000..9af06ab91 --- /dev/null +++ b/config/i686/tests.toml @@ -0,0 +1,14 @@ +# Configuration for testing + +include = ["../tests.toml"] + +# Override the default settings here + +# General settings +[general] +# Filesystem size in MiB +# filesystem_size = 10000 + +# Package settings +[packages] +# example = {} diff --git a/config/net.toml b/config/net.toml index a6a472e37..87497b760 100644 --- a/config/net.toml +++ b/config/net.toml @@ -5,6 +5,7 @@ include = ["base.toml"] # Package settings [packages] +netdb = {} netutils = {} ## Network init diff --git a/config/riscv64gc/tests.toml b/config/riscv64gc/tests.toml new file mode 100644 index 000000000..9af06ab91 --- /dev/null +++ b/config/riscv64gc/tests.toml @@ -0,0 +1,14 @@ +# Configuration for testing + +include = ["../tests.toml"] + +# Override the default settings here + +# General settings +[general] +# Filesystem size in MiB +# filesystem_size = 10000 + +# Package settings +[packages] +# example = {} diff --git a/config/server.toml b/config/server.toml index e5dd11790..d4ead4413 100644 --- a/config/server.toml +++ b/config/server.toml @@ -21,10 +21,8 @@ git = {} installer = {} ion = {} kibi = {} -netdb = {} pkgutils = {} redoxfs = {} -resist = {} [[files]] path = "/usr/lib/init.d/30_console" diff --git a/config/tests.toml b/config/tests.toml new file mode 100644 index 000000000..f47a0c72f --- /dev/null +++ b/config/tests.toml @@ -0,0 +1,22 @@ +# Configuration for testing + +include = ["server.toml"] + +# General settings +[general] +# Filesystem size in MiB +filesystem_size = 10000 +# Do not prompt if settings are not defined +prompt = false + +# Package settings +[packages] +acid = {} +resist = {} +relibc-tests = {} +os-test = {} +openposixtestsuite = {} +redox-posix-tests = {} +vttest = {} +benchmarks = {} +hello-redox = {} diff --git a/config/x11.toml b/config/x11.toml index 6326e6f5a..0fab62709 100644 --- a/config/x11.toml +++ b/config/x11.toml @@ -33,6 +33,10 @@ xterm = {} path = "/usr/lib/init.d/20_xenv" data = """ export DISPLAY :0 +export G_MESSAGES_DEBUG all +export LD_DEBUG all +export WEBKIT_DEBUG all +glib-compile-schemas /usr/share/glib-2.0/schemas/ """ [[files]] diff --git a/config/x86_64/ci.toml b/config/x86_64/ci.toml index 04ea65ecd..ad4d8792f 100644 --- a/config/x86_64/ci.toml +++ b/config/x86_64/ci.toml @@ -27,6 +27,8 @@ base-initfs = {} bash = {} binutils = {} bootloader = {} +bottom = {} +bzip2 = {} ca-certificates = {} cairo = {} #cairodemo = {} # linking errors @@ -34,6 +36,7 @@ cairo = {} cargo = {} cleye = {} #cmatrix = {} # needs ncursesw now +composer = {} contain = {} coreutils = {} cosmic-edit = {} @@ -85,6 +88,7 @@ gnu-make = {} #harfbuzz = {} # depends on glib which does not build #hematite = {} # needs crate patches for redox-unix hicolor-icon-theme = {} +htop = {} installer = {} installer-gui = {} intel-one-mono = {} @@ -94,22 +98,29 @@ kernel = {} kibi = {} lci = {} libc-bench = {} +libavif = {} +libedit = {} libffi = {} libgcc = {} libgmp = {} libiconv = {} +libicu = {} libjpeg = {} libogg = {} +libonig = {} liborbital = {} libpng = {} libstdcxx = {} libsodium = {} libvorbis = {} +libwebp = {} libxkbcommon = {} +libuuid = {} libxml2 = {} llvm18 = {} lsd = {} lua54 = {} +lz4 = {} #mdp = {} # gcc hangs mednafen = {} mesa = {} @@ -128,10 +139,13 @@ neverball = {} #newlib = {} # obsolete #newlibtest = {} # obsolete nghttp2 = {} +nginx = {} #nushell = {} # needs cargo update onefetch = {} openjazz = {} +openssh = {} openssl1 = {} +openssl3 = {} openttd = {} openttd-opengfx = {} openttd-openmsx = {} @@ -154,6 +168,7 @@ patchelf = {} pcre = {} perg = {} periodictable = {} +php84 = {} #perl5 = {} # ctermid, tempnam, ttyname pixelcannon = {} #pixman = {} # depends on glib which does not build @@ -164,7 +179,7 @@ pop-icon-theme = {} #powerline = {} # dirs prboom = {} procedural-wallpapers-rs = {} -#python37 = {} # getaddrinfo +python312 = {} #qemu = {} # can be built, but not working readline = {} redoxerd = {} @@ -179,6 +194,7 @@ resist = {} ripgrep = {} rodioplay = {} rs-nes = {} +rsync = {} rust = {} rust64 = {} #rust-cairo = {} # linking errors @@ -207,7 +223,7 @@ simple-http-server = {} smith = {} sodium = {} sopwith = {} -#openssh = {} +sqlite3 = {} strace = {} #syobonaction = {} # linking errors terminfo = {} @@ -224,5 +240,7 @@ vttest = {} #webrender = {} # unwind #wesnoth = {} winit = {} +xxhash = {} xz = {} zlib = {} +zstd = {} diff --git a/config/x86_64/demo.toml b/config/x86_64/demo.toml index f951724c4..80d222a9a 100644 --- a/config/x86_64/demo.toml +++ b/config/x86_64/demo.toml @@ -16,9 +16,11 @@ periodictable = {} intel-one-mono = {} # Shell Apps +bottom = {} curl = {} git = {} gnu-grep = {} +htop = {} ripgrep = {} sodium = {} terminfo = {} diff --git a/config/x86_64/jeremy.toml b/config/x86_64/jeremy.toml index 931599743..dc8eef32e 100644 --- a/config/x86_64/jeremy.toml +++ b/config/x86_64/jeremy.toml @@ -14,10 +14,10 @@ filesystem_size = 8192 cosmic-player = {} cosmic-reader = {} #cosmic-settings = {} # requires recvmsg/sendmsg -cosmic-store = {} +#cosmic-store = {} # requires recvmsg/sendmsg cosmic-term = {} cosmic-text = {} -qemu = {} +#qemu = {} # not building schismtracker = {} # cli @@ -56,13 +56,14 @@ winit = {} autoconf = {} automake = {} cargo = {} +cookbook = {} gcc13 = {} gnu-binutils = {} gnu-make = {} nasm = {} patch = {} pkg-config = {} -#rust = {} +rust = {} #rustpython = {} # games @@ -71,7 +72,7 @@ eduke32 = {} flycast = {} freeciv = {} gigalomania = {} -love = {} +#love = {} # not building mednafen = {} mgba = {} openjazz = {} @@ -86,8 +87,8 @@ rs-nes = {} # need game for testing rust64 = {} # need roms rustual-boy = {} # need game for testing scummvm = {} # need game for testing -sm64ex = {} -spacecadetpinball = {} +#sm64ex = {} # not building +#spacecadetpinball = {} # not building #syobonaction = {} #vice = {} # broken on new toolchain #vvvvvv = {} # cannot find -lgcc_s diff --git a/config/x86_64/server-demo.toml b/config/x86_64/server-demo.toml new file mode 100644 index 000000000..42d7c5bff --- /dev/null +++ b/config/x86_64/server-demo.toml @@ -0,0 +1,199 @@ +# Configuration for server stack demonstration + +include = ["../server.toml"] + +# General settings +[general] +# Filesystem size in MiB +filesystem_size = 4096 + +# Package settings +[packages] +# Daemons +openssh = {} +nginx = {} + +# Backends +php84 = {} +composer = {} +luajit = {} +python312 = {} +# go = {} +# zig = {} + +# Tools +nano = {} +neovim = {} +rsync = {} +vim = {} +sqlite3 = {} +# tmux = {} +# htop = {} + +# Content +website = {} + +[[files]] +path = "/home/user/public_html/index.php" +data = """ + php /bin/composer install +""" + +[[files]] +postinstall = true +data = "" +path = "/etc/nginx/conf.d" +directory = true + +[[files]] +postinstall = true +path = "/etc/nginx/nginx.conf" +data = """ +user nginx; +worker_processes auto; +error_log /var/log/nginx/error.log; +pid /var/run/nginx.pid; + +events { + worker_connections 1024; +} +http { + log_format main '$remote_addr - $remote_user [$time_local] "$request" ' + '$status $body_bytes_sent "$http_referer" ' + '"$http_user_agent" "$http_x_forwarded_for"'; + access_log /var/log/nginx/access.log main; + + include mime.types; + include fastcgi.conf; + default_type application/octet-stream; + + include /etc/nginx/conf.d/*.conf; +} +""" + +[[files]] +postinstall = true +path = "/etc/nginx/conf.d/localhost.conf" +data = """ +server { + listen 80; + server_name localhost; + root /usr/share/website; + + location / { + index index.html index.htm; + } +} +""" + +[[files]] +postinstall = true +path = "/etc/nginx/conf.d/php-www.conf" +data = """ +server { + listen 8081; + server_name localhost; + root /home/user/public_html; + + index index.php index.html index.htm; + + location / { + try_files $uri $uri/ =404; + } + + location ~ \\.php$ { + include fastcgi_params; + fastcgi_pass 127.0.0.1:9000; + fastcgi_index index.php; + fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; + } +} +""" + +[[files]] +postinstall = true +path = "/etc/php/84/php-fpm.conf" +data = """ + +include=/etc/php/84/php-fpm.d/*.conf +""" + +[[files]] +postinstall = true +path = "/etc/php/84/php-fpm.d/www.conf" +data = """ +[www] +user = user +group = user +listen = 127.0.0.1:9000 +pm = static +pm.max_children = 1 +""" + +[[files]] +postinstall = true +path = "/etc/ssh/sshd_config" +data = """ +Port 22 +AddressFamily inet +AuthorizedKeysFile .ssh/authorized_keys +PermitRootLogin yes +PasswordAuthentication yes +PermitEmptyPasswords yes +Subsystem sftp /usr/libexec/sftp-server +""" + +[users.nobody] +password = "" +shell = "/usr/bin/ion" #TODO: nologin? + +[users.nginx] +password = "" +shell = "/usr/bin/ion" #TODO: nologin? + +[[files]] +path = "/home/user/server.sh" +data = """ +#!/usr/bin/env bash + +/bin/sshd -D & +nginx -g "daemon off;" & +php-fpm --nodaemonize & +""" + +[[files]] +path = "/home/user/Welcome.txt" +data = """ +############################################################################## +# Welcome to Redox Server Demo! +# +# This is a quick demonstration of Redox used as server stack. +# At the moment we support SSH, NGINX, Python, PHP. There's more to come +# +# This server demo is insecure by design, we encourage you to get familiar into +# basics of server security if you wish to use this as a production server. +# +# To start the daemon, run +# > sudo bash server.sh +# +# The server will start port 22 (ssh), 80 (static web) and 8080 (php) +############################################################################## +""" diff --git a/config/x86_64/tests.toml b/config/x86_64/tests.toml new file mode 100644 index 000000000..9af06ab91 --- /dev/null +++ b/config/x86_64/tests.toml @@ -0,0 +1,14 @@ +# Configuration for testing + +include = ["../tests.toml"] + +# Override the default settings here + +# General settings +[general] +# Filesystem size in MiB +# filesystem_size = 10000 + +# Package settings +[packages] +# example = {} diff --git a/cookbook b/cookbook index 5c17b6b07..7224ca070 160000 --- a/cookbook +++ b/cookbook @@ -1 +1 @@ -Subproject commit 5c17b6b073aa75f4b649f78cf197b0e2f68f4eb7 +Subproject commit 7224ca070722fd4d0ae131c503c72d3b2e0234cb diff --git a/installer b/installer index 01a3adb66..97dd77918 160000 --- a/installer +++ b/installer @@ -1 +1 @@ -Subproject commit 01a3adb66269648732dbb8e130130d8ca2d3e23f +Subproject commit 97dd77918e7027c6c57d537b7eb732bbd22739af diff --git a/mk/config.mk b/mk/config.mk index e625b1a57..a96bb1954 100644 --- a/mk/config.mk +++ b/mk/config.mk @@ -72,6 +72,9 @@ endif ifeq ($(REPO_DEBUG),1) export COOKBOOK_NOSTRIP=true export COOKBOOK_DEBUG=true +#TODO: https://gitlab.redox-os.org/redox-os/relibc/-/issues/226 +# export PROFILE=debug +# export RUSTCFLAGS="-Cdebuginfo=2" endif UNAME := $(shell uname) diff --git a/mk/disk.mk b/mk/disk.mk index 3e0724c68..065f6829d 100644 --- a/mk/disk.mk +++ b/mk/disk.mk @@ -70,6 +70,12 @@ mount_extra: $(HOST_FSTOOLS) FORCE sleep 2 pgrep redoxfs +mount_live: $(HOST_FSTOOLS) FORCE + mkdir -p $(MOUNT_DIR) + $(REDOXFS) $(BUILD)/redox-live.iso $(MOUNT_DIR) + sleep 2 + pgrep redoxfs + unmount: FORCE sync -$(FUMOUNT) $(MOUNT_DIR) || true diff --git a/mk/fstools.mk b/mk/fstools.mk index 44a5884d7..78bd89845 100644 --- a/mk/fstools.mk +++ b/mk/fstools.mk @@ -1,6 +1,6 @@ # Configuration file for redox-installer, Cookbook and RedoxFS FUSE -fstools: $(FSTOOLS_TAG) +fstools: $(FSTOOLS_TAG) $(HOST_FSTOOLS) # These tools run inside Podman if it is used, or on the host if Podman is not used $(FSTOOLS_TAG): cookbook installer $(CONTAINER_TAG) diff --git a/mk/qemu.mk b/mk/qemu.mk index b9740e619..688526a9e 100644 --- a/mk/qemu.mk +++ b/mk/qemu.mk @@ -200,9 +200,13 @@ else ifneq ($(bridge),) QEMUFLAGS+=-netdev bridge,br=$(bridge),id=net0 else ifeq ($(net),redir) - # port 8080 and 8083 - webservers + # port 8022 - ssh + # port 8080-8083 - webservers # port 64126 - our gdbserver implementation - QEMUFLAGS+=-netdev user,id=net0,hostfwd=tcp::8080-:8080,hostfwd=tcp::8083-:8083,hostfwd=tcp::64126-:64126$(EXTRANETARGS) + FWD_PORTS := 8081 8082 8083 64126 + FWD_FLAGS := hostfwd=tcp::8022-:22,hostfwd=tcp::8080-:80 + FWD_FLAGS2 := $(foreach p,$(FWD_PORTS),,hostfwd=tcp::$(p)-:$(p)) + QEMUFLAGS += -netdev user,id=net0,$(FWD_FLAGS)$(subst $(eval ) ,,$(FWD_FLAGS2))$(EXTRANETARGS) else ifeq ($(net),windows) QEMUFLAGS+=-netdev user,id=net0$(EXTRANETARGS) else diff --git a/mk/repo.mk b/mk/repo.mk index dfbcacfe4..5535bfb9c 100644 --- a/mk/repo.mk +++ b/mk/repo.mk @@ -166,14 +166,44 @@ else $(MAKE) f.$* endif +# Invoke repo.sh and push for one of more targets separated by comma +rp.%: $(FSTOOLS_TAG) FORCE +ifeq ($(PODMAN_BUILD),1) + $(PODMAN_RUN) make $@ +else + $(MAKE) r.$* + $(MAKE) p.$* +endif + +# Invoke clean.sh, repo.sh and push for one of more targets separated by comma +crp.%: $(FSTOOLS_TAG) FORCE +ifeq ($(PODMAN_BUILD),1) + $(PODMAN_RUN) make $@ +else + $(MAKE) c.$* + $(MAKE) r.$* + $(MAKE) p.$* +endif + +# Invoke unfetch.sh. clean.sh, repo.sh and push for one of more targets separated by comma +ucrp.%: $(FSTOOLS_TAG) FORCE +ifeq ($(PODMAN_BUILD),1) + $(PODMAN_RUN) make $@ +else + $(MAKE) u.$* + $(MAKE) c.$* + $(MAKE) r.$* + $(MAKE) p.$* +endif export DEBUG_BIN?= -# Debug a recipe with gdbgui inside podman, for example: debug.drivers-initfs DEBUG_BIN=pcid -# Please set REPO_DEBUG=1 to your .config to enable debug symbols and run `make cr.recipe rebuild` -# Also, before opening gdbgui at http://localhost:5000, start qemu with `make qemu gdb=yes` -# Experimental and may not work if ARCH is different with what podman is running +# Debug a statically linked program with gdbgui, for example: debug.drivers-initfs DEBUG_BIN=pcid +# Enable debug symbols with `REPO_DEBUG=1 make cr.recipe rebuild`, make sure `file` outputs "debug_info, not stripped" +# Open http://localhost:5000/dashboard, start QEMU with `make qemu kvm=no QEMU_SMP=1 gdb=yes` before opening a session +# Experimental, may not work if ARCH is different with what host is running debug.%: $(FSTOOLS_TAG) FORCE +ifeq ($(PODMAN_BUILD),1) @cd cookbook/$(shell make find.$* | grep ^recipes) && \ export RECIPE_STAGE=target/$(TARGET)/stage && \ export BIN_PATH=$$(find $$RECIPE_STAGE -type f -name "$(DEBUG_BIN)" -or -type f -name "$*") && \ @@ -186,3 +216,13 @@ debug.%: $(FSTOOLS_TAG) FORCE redox-kernel-debug --gdb-cmd "gdb -ex 'set confirm off' \ -ex 'add-symbol-file /binary' \ -ex 'target remote host.containers.internal:1234'" +else + @cd cookbook/$(shell make find.$* | grep ^recipes) && \ + export RECIPE_STAGE=target/$(TARGET)/stage && \ + export BIN_PATH=$$(find $$RECIPE_STAGE -type f -name "$(DEBUG_BIN)" -or -type f -name "$*") && \ + file $$BIN_PATH 2> /dev/null || ( echo "Binary is not found, please set DEBUG_BIN" && exit 1 ) && \ + echo "Opening gdbgui for debugging $* with binary '$$BIN_PATH'" && echo "----------" && \ + gdbgui.pex --gdb-cmd "gdb -ex 'set confirm off' \ + -ex 'add-symbol-file $$BIN_PATH' \ + -ex 'target remote localhost:1234'" +endif diff --git a/native_bootstrap.sh b/native_bootstrap.sh index b75508631..0b348ce90 100755 --- a/native_bootstrap.sh +++ b/native_bootstrap.sh @@ -410,35 +410,46 @@ ubuntu() echo "Installing required packages..." pkgs="\ ant \ + appstream \ + appstream-compose \ autoconf \ + autoconf2.69 \ automake \ autopoint \ bison \ + bsdextrautils \ build-essential \ clang \ cmake \ curl \ dos2unix \ doxygen \ + expect \ file \ flex \ fuse3 \ g++ \ genisoimage \ git \ + git-lfs \ gperf \ + gtk-doc-tools \ help2man \ intltool \ + libc6-dev-i386 \ libexpat-dev \ + libfontconfig1-dev \ libfuse3-dev \ + libgdk-pixbuf2.0-bin \ + libglib2.0-dev-bin \ libgmp-dev \ libhtml-parser-perl \ libjpeg-dev \ libmpfr-dev \ + libparse-yapp-perl \ libpng-dev \ libsdl1.2-dev \ libsdl2-ttf-dev \ - libtool \ llvm \ lua5.4 \ lzip \ @@ -454,15 +465,25 @@ ubuntu() po4a \ protobuf-compiler \ python3 \ + python3-dev \ python3-mako \ + python3-venv \ rsync \ + ruby \ scons \ + ssh \ + syslinux-utils \ texinfo \ + unifdef \ unzip \ wget \ xdg-utils \ + xfonts-utils \ + xorg-dev \ + xutils-dev \ xxd \ zip \ + zlib1g-dev \ zstd \ gdb-multiarch" # Not availible for at least ARM hosts @@ -1096,8 +1117,8 @@ else fi cargoInstall cargo-config 0.1.1 -cargoInstall just 1.16.0 -cargoInstall cbindgen 0.27.0 +cargoInstall just 1.42.4 +cargoInstall cbindgen 0.29.0 if [ "$dependenciesonly" = false ]; then boot diff --git a/podman/redox-base-containerfile b/podman/redox-base-containerfile index cee4a38f9..4dd833e09 100644 --- a/podman/redox-base-containerfile +++ b/podman/redox-base-containerfile @@ -4,79 +4,79 @@ FROM debian:trixie RUN apt-get update \ && apt-get install -y --no-install-recommends \ - ant \ - appstream \ - appstream-compose \ - autoconf \ - autoconf2.69 \ - automake \ - autopoint \ - bison \ - bsdextrautils \ - build-essential \ - clang \ - cmake \ - curl \ - dos2unix \ - doxygen \ - expect \ - file \ - flex \ - fuse3 \ - g++ \ - genisoimage \ - git \ - git-lfs \ - gperf \ - gtk-doc-tools \ - help2man \ - intltool \ - libexpat-dev \ - libfontconfig1-dev \ - libfuse3-dev \ - libgdk-pixbuf2.0-bin \ - libglib2.0-dev-bin \ - libgmp-dev \ - libhtml-parser-perl \ - libjpeg-dev \ - libmpfr-dev \ - libparse-yapp-perl \ - libpng-dev \ - libsdl1.2-dev \ - libsdl2-ttf-dev \ - llvm \ - lua5.4 \ - lzip \ - m4 \ - make \ - meson \ - nasm \ - ninja-build \ - patch \ - patchelf \ - perl \ - pkg-config \ - po4a \ - protobuf-compiler \ - python3 \ - python3-dev \ - python3-mako \ - python3-venv \ - rsync \ - ruby \ - scons \ - ssh \ - texinfo \ - unifdef \ - unzip \ - wget \ - xdg-utils \ - xfonts-utils \ - xorg-dev \ - xutils-dev \ - xxd \ - zip \ - zlib1g-dev \ - zstd; \ + ant \ + appstream \ + appstream-compose \ + autoconf \ + autoconf2.69 \ + automake \ + autopoint \ + bison \ + bsdextrautils \ + build-essential \ + clang \ + cmake \ + curl \ + dos2unix \ + doxygen \ + expect \ + file \ + flex \ + fuse3 \ + g++ \ + genisoimage \ + git \ + git-lfs \ + gperf \ + gtk-doc-tools \ + help2man \ + intltool \ + libexpat-dev \ + libfontconfig1-dev \ + libfuse3-dev \ + libgdk-pixbuf2.0-bin \ + libglib2.0-dev-bin \ + libgmp-dev \ + libhtml-parser-perl \ + libjpeg-dev \ + libmpfr-dev \ + libparse-yapp-perl \ + libpng-dev \ + libsdl1.2-dev \ + libsdl2-ttf-dev \ + llvm \ + lua5.4 \ + lzip \ + m4 \ + make \ + meson \ + nasm \ + ninja-build \ + patch \ + patchelf \ + perl \ + pkg-config \ + po4a \ + protobuf-compiler \ + python3 \ + python3-dev \ + python3-mako \ + python3-venv \ + rsync \ + ruby \ + scons \ + ssh \ + texinfo \ + unifdef \ + unzip \ + wget \ + xdg-utils \ + xfonts-utils \ + xorg-dev \ + xutils-dev \ + xxd \ + zip \ + zlib1g-dev \ + zstd; \ if [ "$(dpkg --print-architecture)" = "amd64" ]; then \ apt-get install -y --no-install-recommends libc6-dev-i386 syslinux-utils; fi diff --git a/redoxfs b/redoxfs index 0cb6f3cad..84288a2f5 160000 --- a/redoxfs +++ b/redoxfs @@ -1 +1 @@ -Subproject commit 0cb6f3cad583f7b0fd958094f35187f49077f154 +Subproject commit 84288a2f5dd35d7d64bf3c0aba063f9f81ff48c2 diff --git a/relibc b/relibc index 2f0d5eb97..9a56f7845 160000 --- a/relibc +++ b/relibc @@ -1 +1 @@ -Subproject commit 2f0d5eb970337f595128505d1435a1086f998600 +Subproject commit 9a56f784567d08d3cf188c36e45d997ebd13cdda diff --git a/rust b/rust index 675042b53..687c5fa2c 160000 --- a/rust +++ b/rust @@ -1 +1 @@ -Subproject commit 675042b53266e5fb2e1933355782f098c5406e3a +Subproject commit 687c5fa2c385b8d169fdf95424f755588f95e174 diff --git a/rust-toolchain.toml b/rust-toolchain.toml index 65eb22714..306bdf6fc 100644 --- a/rust-toolchain.toml +++ b/rust-toolchain.toml @@ -1,4 +1,4 @@ [toolchain] -channel = "nightly-2025-01-12" +channel = "nightly-2025-10-03" components = ["rust-src", "rustfmt", "clippy"] profile = "minimal" diff --git a/targets/i686-unknown-redox.json b/targets/i686-unknown-redox.json new file mode 100644 index 000000000..889e1eeb9 --- /dev/null +++ b/targets/i686-unknown-redox.json @@ -0,0 +1,49 @@ +{ + "arch": "x86", + "cpu": "pentiumpro", + "crt-objects-fallback": "false", + "crt-static-allows-dylibs": true, + "crt-static-default": true, + "crt-static-respected": true, + "data-layout": "e-m:e-p:32:32-p270:32:32-p271:32:32-p272:64:64-i128:128-f64:32:64-f80:32-n8:16:32-S128", + "dynamic-linking": true, + "env": "relibc", + "has-rpath": true, + "has-thread-local": true, + "late-link-args": { + "gnu-cc": [ + "-lgcc" + ], + "gnu-lld-cc": [ + "-lgcc" + ] + }, + "linker-flavor": "gnu-cc", + "llvm-target": "i686-unknown-redox", + "max-atomic-width": 64, + "metadata": { + "description": null, + "host_tools": null, + "std": null, + "tier": null + }, + "os": "redox", + "plt-by-default": false, + "position-independent-executables": true, + "pre-link-args": { + "gnu-cc": [ + "-m32" + ], + "gnu-lld-cc": [ + "-m32" + ] + }, + "relro-level": "full", + "stack-probes": { + "kind": "call" + }, + "target-family": [ + "unix" + ], + "target-pointer-width": 32 +} diff --git a/targets/riscv64gc-unknown-redox.json b/targets/riscv64gc-unknown-redox.json index bf46961c4..97d191578 100644 --- a/targets/riscv64gc-unknown-redox.json +++ b/targets/riscv64gc-unknown-redox.json @@ -37,5 +37,5 @@ "target-family": [ "unix" ], - "target-pointer-width": "64" + "target-pointer-width": 64 }