Merge branch redox:master into upstream-rustc

This commit is contained in:
Wildan Mubarok 2025-10-04 15:59:44 +00:00
commit 745ae33274
20 changed files with 429 additions and 98 deletions

View File

@ -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.

View File

@ -162,6 +162,12 @@ data = ""
directory = true
mode = 0o755
[[files]]
path = "/var/run"
data = ""
directory = true
mode = 0o755
[[files]]
path = "/var/tmp"
data = ""

View File

@ -41,6 +41,7 @@ redoxfs = {}
relibc = {}
resist = {}
smith = {}
terminfo = {}
userutils = {}
uutils = {}
#vim = {} # conflicting types

View File

@ -9,6 +9,8 @@ filesystem_size = 4000
# Package settings
[packages]
rustpython = "ignore" # https://github.com/Alexhuszagh/rust-lexical/issues/218
# apps
cosmic-text = {}
pixelcannon = {}

View File

@ -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]]

View File

@ -27,6 +27,7 @@ base-initfs = {}
bash = {}
binutils = {}
bootloader = {}
bzip2 = {}
ca-certificates = {}
cairo = {}
#cairodemo = {} # linking errors
@ -34,6 +35,7 @@ cairo = {}
cargo = {}
cleye = {}
#cmatrix = {} # needs ncursesw now
composer = {}
contain = {}
coreutils = {}
cosmic-edit = {}
@ -94,22 +96,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 +137,13 @@ neverball = {}
#newlib = {} # obsolete
#newlibtest = {} # obsolete
nghttp2 = {}
nginx = {}
#nushell = {} # needs cargo update
onefetch = {}
openjazz = {}
openssh = {}
openssl1 = {}
openssl3 = {}
openttd = {}
openttd-opengfx = {}
openttd-openmsx = {}
@ -154,6 +166,7 @@ patchelf = {}
pcre = {}
perg = {}
periodictable = {}
php84 = {}
#perl5 = {} # ctermid, tempnam, ttyname
pixelcannon = {}
#pixman = {} # depends on glib which does not build
@ -164,7 +177,7 @@ pop-icon-theme = {}
#powerline = {} # dirs
prboom = {}
procedural-wallpapers-rs = {}
#python37 = {} # getaddrinfo
python312 = {}
#qemu = {} # can be built, but not working
readline = {}
redoxerd = {}
@ -179,6 +192,7 @@ resist = {}
ripgrep = {}
rodioplay = {}
rs-nes = {}
rsync = {}
rust = {}
rust64 = {}
#rust-cairo = {} # linking errors
@ -207,7 +221,7 @@ simple-http-server = {}
smith = {}
sodium = {}
sopwith = {}
#openssh = {}
sqlite3 = {}
strace = {}
#syobonaction = {} # linking errors
terminfo = {}
@ -224,5 +238,7 @@ vttest = {}
#webrender = {} # unwind
#wesnoth = {}
winit = {}
xxhash = {}
xz = {}
zlib = {}
zstd = {}

View File

@ -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

View File

@ -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
echo "Hello from PHP on Redox!";
"""
[[files]]
path = "/home/user/public_html/phpinfo.php"
data = """
<?php phpinfo();
"""
[[files]]
path = "/home/user/public_html/README"
data = """
This is a demonstration into PHP server.
At the moment to run composer you have to run it like:
> 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)
##############################################################################
"""

@ -1 +1 @@
Subproject commit ad5c9523350ae3640acf9fb80a1d37ac05a3c893
Subproject commit ae06273f81ac0eb488c8b8b5d85f5deb38df72cc

@ -1 +1 @@
Subproject commit 01a3adb66269648732dbb8e130130d8ca2d3e23f
Subproject commit 97dd77918e7027c6c57d537b7eb732bbd22739af

View File

@ -74,6 +74,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)

View File

@ -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

View File

@ -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

View File

@ -9,79 +9,79 @@ RUN useradd --create-home --no-log-init --uid _UID_ poduser \
&& chown -R root:root /home \
&& 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 \
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 \
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 \
syslinux-utils \
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 \
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 \
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 \
syslinux-utils \
texinfo \
unifdef \
unzip \
wget \
xdg-utils \
xfonts-utils \
xorg-dev \
xutils-dev \
xxd \
zip \
zlib1g-dev \
zstd

@ -1 +1 @@
Subproject commit 0cb6f3cad583f7b0fd958094f35187f49077f154
Subproject commit 84288a2f5dd35d7d64bf3c0aba063f9f81ff48c2

2
relibc

@ -1 +1 @@
Subproject commit 2f0d5eb970337f595128505d1435a1086f998600
Subproject commit 7ed934a01d2ac8ab603b6dc24e918d8197192068

2
rust

@ -1 +1 @@
Subproject commit 675042b53266e5fb2e1933355782f098c5406e3a
Subproject commit 687c5fa2c385b8d169fdf95424f755588f95e174

View File

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

View File

@ -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
}

View File

@ -37,5 +37,5 @@
"target-family": [
"unix"
],
"target-pointer-width": "64"
"target-pointer-width": 64
}