Manual merge current master with missing-descriptions

This commit is contained in:
mcc 2026-09-29 19:47:03 -04:00
commit 82219270a9
57 changed files with 394 additions and 104 deletions

2
Cargo.lock generated
View File

@ -918,7 +918,7 @@ dependencies = [
[[package]]
name = "redoxer"
version = "0.2.63"
source = "git+https://gitlab.redox-os.org/redox-os/redoxer.git#f50e0d7f490b60110ee6494a06d9b2f9981f8a5a"
source = "git+https://gitlab.redox-os.org/redox-os/redoxer.git#9281d1d591adf2db028e06a7d75767ad9b55d54f"
dependencies = [
"anyhow",
"dirs",

View File

@ -25,7 +25,7 @@ path = "/usr/lib/run_acid.ion"
data = """
#!/usr/bin/env ion
export RUST_BACKTRACE=full
cd /home/user/acid
cargo test
export HOME=/home/root
acid-runner
shutdown
"""

View File

@ -24,9 +24,9 @@ path = "/usr/lib/run_tests.ion"
data = """
#!/usr/bin/env ion
export RUST_BACKTRACE=full
cd /home/user/acid
cargo test
bash /root/relibc-tests/run.sh
export HOME=/home/root
acid-runner
bash /usr/share/relibc-tests/run.sh
os-test-runner
shutdown
"""

View File

@ -20,6 +20,7 @@ rsync -av --delete "${COOKBOOK_SOURCE}/" ./
PREFIX="${COOKBOOK_STAGE}/usr" \
install
if [ "${COOKBOOK_DYNAMIC}" = "1" ]; then
# However, distros distribute libbz2 as well so we'll support it too
# Linking the lib fails if we don't rebuild the objects from earlier
"${COOKBOOK_MAKE}" clean
@ -35,6 +36,7 @@ rsync -av --delete "${COOKBOOK_SOURCE}/" ./
cp -av libbz2.so* "${COOKBOOK_STAGE}/usr/lib"
ln -s "libbz2.so.1.0" "${COOKBOOK_STAGE}/usr/lib/libbz2.so.1"
ln -s "libbz2.so.1.0" "${COOKBOOK_STAGE}/usr/lib/libbz2.so"
fi
mkdir -p "${COOKBOOK_STAGE}/usr/lib/pkgconfig"
cp "${COOKBOOK_RECIPE}/pkgconfig" "${COOKBOOK_STAGE}/usr/lib/pkgconfig/bzip2.pc"

View File

@ -1,6 +1,6 @@
name=COSMIC Text Editor
binary=/bin/cosmic-edit
icon=/ui/icons/apps/accessories-text-editor.png
icon=/usr/share/ui/icons/apps/accessories-text-editor.png
accept=*.asm
accept=*.c
accept=*.conf

View File

@ -1,5 +1,5 @@
name=COSMIC File Manager
binary=/bin/cosmic-files
icon=/ui/icons/apps/system-file-manager.png
icon=/usr/share/ui/icons/apps/system-file-manager.png
author=Jeremy Soller
description=COSMIC File Manager

View File

@ -1,6 +1,6 @@
[source]
git = "https://github.com/pop-os/cosmic-monitor.git"
rev = "epoch-1.2.0"
branch = "master"
[build]
template = "custom"

View File

@ -1,6 +1,6 @@
name=COSMIC Reader
binary=/bin/cosmic-reader
icon=/ui/icons/apps/accessories-text-editor.png
icon=/usr/share/ui/icons/apps/accessories-text-editor.png
accept=*.pdf
accept=*.epub
accept=*.cbz

View File

@ -1,5 +1,5 @@
name=COSMIC Terminal
binary=/bin/cosmic-term
icon=/ui/icons/apps/utilities-terminal.png
icon=/usr/share/ui/icons/apps/utilities-terminal.png
author=Jeremy Soller
description=COSMIC Terminal

View File

@ -1,14 +0,0 @@
[package]
description = "Metadata for Rust cargo, to download crates and resolve their dependencies"
[source]
git = "https://github.com/rust-lang/crates.io-index.git"
shallow_clone = true
[build]
template = "custom"
script = """
dir="${COOKBOOK_STAGE}/home/user/.cargo/registry/index/github.com-1ecc6299db9ec823"
mkdir -pv "${dir}"
cp -rv "${COOKBOOK_SOURCE}/.git" "${dir}"
"""

View File

@ -7,6 +7,6 @@ shallow_clone = true
[build]
template = "custom"
script = """
mkdir -pv "${COOKBOOK_STAGE}"/home/user/hello-world-examples
cp -rv "${COOKBOOK_SOURCE}"/[#,a-z] "${COOKBOOK_STAGE}"/home/user/hello-world-examples
mkdir -pv "${COOKBOOK_STAGE}"/usr/share/hello-world-examples
cp -rv "${COOKBOOK_SOURCE}"/[#,a-z] "${COOKBOOK_STAGE}"/usr/share/hello-world-examples
"""

View File

@ -63,6 +63,7 @@ COOKBOOK_CMAKE_FLAGS+=(
-DLLVM_BUILD_EXAMPLES=Off
-DLLVM_BUILD_TESTS=Off
-DLLVM_DEFAULT_TARGET_TRIPLE="${TARGET}"
-DLLVM_HOST_TRIPLE="${TARGET}"
-DLLVM_ENABLE_LTO=Off
-DLLVM_ENABLE_RTTI=On
-DLLVM_ENABLE_THREADS=On

View File

@ -1,4 +1,4 @@
name=DOSBox
category=Games
binary=/bin/dosbox
icon=/ui/icons/apps/dosbox.png
icon=/usr/share/ui/icons/apps/dosbox.png

View File

@ -21,8 +21,7 @@ dev-dependencies = [
script = """
DYNAMIC_INIT
COOKBOOK_NOSTRIP=1
# TODO: remove DTARGET_NO_REC to enable JIT
export CPPFLAGS+=" -D_GNU_SOURCE=1 -DTARGET_NO_REC"
export CPPFLAGS+=" -D_GNU_SOURCE=1"
COOKBOOK_CMAKE_FLAGS+=(
-DREDOX=1
-DUNIX=1
@ -35,8 +34,4 @@ COOKBOOK_CMAKE_FLAGS+=(
-DWITH_SYSTEM_ZSTD=ON
)
cookbook_cmake
# for some reason flycast require local dir already set up
mkdir -p ${COOKBOOK_STAGE}/home/user/.local/share/flycast
touch ${COOKBOOK_STAGE}/home/user/.local/share/flycast/.tmp
"""

View File

@ -77,6 +77,18 @@ index 61ee752..4b140b9 100644
// POSIX threads.
#if !defined(ASIO_HAS_PTHREADS)
# if defined(ASIO_HAS_THREADS)
diff --git a/core/deps/picotcp/modules/pico_dev_ppp.c b/core/deps/picotcp/modules/pico_dev_ppp.c
index dcffacee..121ac27f 100644
--- a/core/deps/picotcp/modules/pico_dev_ppp.c
+++ b/core/deps/picotcp/modules/pico_dev_ppp.c
@@ -7,6 +7,7 @@
*********************************************************************/
+#include <alloca.h>
#include <stdint.h>
#include <stdlib.h>
#include <string.h>
diff --git a/core/hw/sh4/modules/mmu.cpp b/core/hw/sh4/modules/mmu.cpp
index af9de30e..6f839fc7 100644
--- a/core/hw/sh4/modules/mmu.cpp

View File

@ -1,4 +1,4 @@
name=ClassiCube
category=Games
binary=/usr/games/classicube/ClassiCube
icon=/ui/icons/apps/classicube.png
icon=/usr/share/ui/icons/apps/classicube.png

View File

@ -1,4 +1,4 @@
name=EDuke32
category=Games
binary=/usr/games/eduke32
icon=/ui/icons/apps/eduke32.png
icon=/usr/share/ui/icons/apps/eduke32.png

View File

@ -1,4 +1,4 @@
name=Gigalomania
category=Games
binary=/usr/games/gigalomania/gigalomania
icon=/ui/icons/apps/gigalomania.png
icon=/usr/share/ui/icons/apps/gigalomania.png

View File

@ -1,4 +1,4 @@
name=Neverball
category=Games
binary=/usr/games/neverball/neverball
icon=/ui/icons/apps/neverball.png
icon=/usr/share/ui/icons/apps/neverball.png

View File

@ -1,4 +1,4 @@
name=Neverputt
category=Games
binary=/usr/games/neverball/neverputt
icon=/ui/icons/apps/neverputt.png
icon=/usr/share/ui/icons/apps/neverputt.png

View File

@ -1,4 +1,4 @@
name=QuakeSpasm
category=Games
binary=/usr/games/quakespasm
icon=/ui/icons/apps/quakespasm.png
icon=/usr/share/ui/icons/apps/quakespasm.png

View File

@ -1,4 +1,4 @@
name=Super Mario 64 EX
category=Games
binary=/bin/sm64
icon=/ui/icons/apps/sm64ex.png
icon=/usr/share/ui/icons/apps/sm64ex.png

View File

@ -1,6 +1,6 @@
diff -ruw gstreamer-1.24.12/subprojects/gst-plugins-bad/ext/dtls/gstdtlsconnection.c source/subprojects/gst-plugins-bad/ext/dtls/gstdtlsconnection.c
--- gstreamer-1.24.12/subprojects/gst-plugins-bad/ext/dtls/gstdtlsconnection.c 2025-01-29 13:12:29.000000000 -0700
+++ source/subprojects/gst-plugins-bad/ext/dtls/gstdtlsconnection.c 2026-02-10 19:13:12.530288659 -0700
diff -ruwN source/subprojects/gst-plugins-bad/ext/dtls/gstdtlsconnection.c source-new/subprojects/gst-plugins-bad/ext/dtls/gstdtlsconnection.c
--- source/subprojects/gst-plugins-bad/ext/dtls/gstdtlsconnection.c 2025-01-29 20:12:29.000000000 +0000
+++ source-new/subprojects/gst-plugins-bad/ext/dtls/gstdtlsconnection.c 2026-09-13 01:22:57.407426034 +0000
@@ -49,6 +49,10 @@
#include <errno.h>
#endif
@ -12,9 +12,9 @@ diff -ruw gstreamer-1.24.12/subprojects/gst-plugins-bad/ext/dtls/gstdtlsconnecti
GST_DEBUG_CATEGORY_STATIC (gst_dtls_connection_debug);
#define GST_CAT_DEFAULT gst_dtls_connection_debug
diff -ruw gstreamer-1.24.12/subprojects/gst-plugins-base/gst-libs/gst/tag/meson.build source/subprojects/gst-plugins-base/gst-libs/gst/tag/meson.build
--- gstreamer-1.24.12/subprojects/gst-plugins-base/gst-libs/gst/tag/meson.build 2025-01-29 13:12:29.000000000 -0700
+++ source/subprojects/gst-plugins-base/gst-libs/gst/tag/meson.build 2026-02-10 19:09:53.259120404 -0700
diff -ruwN source/subprojects/gst-plugins-base/gst-libs/gst/tag/meson.build source-new/subprojects/gst-plugins-base/gst-libs/gst/tag/meson.build
--- source/subprojects/gst-plugins-base/gst-libs/gst/tag/meson.build 2025-01-29 20:12:29.000000000 +0000
+++ source-new/subprojects/gst-plugins-base/gst-libs/gst/tag/meson.build 2026-09-13 01:22:57.408426091 +0000
@@ -136,10 +136,10 @@
install: false)
endif
@ -31,4 +31,16 @@ diff -ruw gstreamer-1.24.12/subprojects/gst-plugins-base/gst-libs/gst/tag/meson.
+# install : false)
gst_tag_dir = meson.current_source_dir()
Only in source/subprojects/gst-plugins-base/gst-libs/gst/tag: meson.build.orig
diff -ruwN source/subprojects/gstreamer/gst/gstregistry.c source-new/subprojects/gstreamer/gst/gstregistry.c
--- source/subprojects/gstreamer/gst/gstregistry.c 2025-01-29 20:12:29.000000000 +0000
+++ source-new/subprojects/gstreamer/gst/gstregistry.c 2026-09-29 02:59:06.518249721 +0000
@@ -174,7 +174,8 @@
static GstRegistry *_gst_registry_default = NULL;
/* defaults */
-#define DEFAULT_FORK TRUE
+/* redox: forking result in hang */
+#define DEFAULT_FORK FALSE
/* control the behaviour of registry rebuild */
static gboolean _gst_enable_registry_fork = DEFAULT_FORK;

View File

@ -13,6 +13,4 @@ template = "custom"
script = """
DYNAMIC_INIT
cookbook_configure
# TODO: fini arrays causes hang in uutils
${OBJCOPY} --remove-section=.fini_array --remove-section=.fini ${COOKBOOK_STAGE}/usr/lib/libonig.so.5
"""

View File

@ -15,7 +15,7 @@ dependencies = [
"llvm21",
"zlib",
# disabled, see https://gitlab.redox-os.org/redox-os/redox/-/work_items/1883
# "libglvnd",
# "libglvnd",
]
dev-dependencies = [
"llvm21.dev",
@ -41,7 +41,6 @@ cookbook_meson \
-Dglx=disabled \
-Dllvm=enabled \
-Dosmesa=true \
-Dglvnd=true \
-Dshader-cache=disabled \
-Dgallium-drivers=swrast

View File

@ -4,10 +4,14 @@ description = "GNU library for rich terminal interfaces"
[source]
tar = "https://ftp.gnu.org/gnu/termcap/termcap-1.3.1.tar.gz"
blake3 = "57c095e0bb6e60e7b4a0597f51f7ac15b501ca0f95d37424d8d13978d28b8da3"
patches = [
"redox.patch"
]
[build]
template = "custom"
script = """
DYNAMIC_STATIC_INIT
export ac_cv_header_stdc=yes
COOKBOOK_CONFIGURE_FLAGS+=(
--prefix="${COOKBOOK_STAGE}/usr"
)

View File

@ -0,0 +1,14 @@
diff -ruwN source/tparam.c source-new/tparam.c
--- source/tparam.c 2002-02-25 17:37:24.000000000 +0000
+++ source-new/tparam.c 2026-09-22 15:11:03.072524045 +0000
@@ -38,6 +38,10 @@
#define bcopy(s, d, n) memcpy ((d), (s), (n))
#endif
+#ifdef HAVE_UNISTD_H
+#include <unistd.h>
+#endif
+
#endif /* not emacs */
#ifndef NULL

View File

@ -7,8 +7,8 @@ script = """
DYNAMIC_INIT
cookbook_cargo
mkdir -pv "${COOKBOOK_STAGE}/home/user/cookbook"
cp -rv "${COOKBOOK_SOURCE}"/* "${COOKBOOK_STAGE}/home/user/cookbook"
mkdir -pv "${COOKBOOK_STAGE}/usr/share/cookbook"
cp -rv "${COOKBOOK_SOURCE}"/* "${COOKBOOK_STAGE}/usr/share/cookbook"
"""
[package]

View File

@ -7,6 +7,6 @@ git = "https://github.com/jackpot51/rustconf2025.git"
[build]
template = "custom"
script = """
mkdir -p "${COOKBOOK_STAGE}/home/user"
cp -v "${COOKBOOK_SOURCE}/"*.pdf "${COOKBOOK_STAGE}/home/user"
mkdir -p "${COOKBOOK_STAGE}/usr/share"
cp -v "${COOKBOOK_SOURCE}/"*.pdf "${COOKBOOK_STAGE}/usr/share"
"""

View File

@ -1,21 +1,19 @@
# Due to necessary write permission for compilation the filesystem path of source code installation is an exception
# where the package manager can't switch between system-wide and user paths
[source]
git = "https://gitlab.redox-os.org/redox-os/acid.git"
shallow_clone = true
[build]
template = "custom"
script = """
mkdir -pv "${COOKBOOK_STAGE}/home/user/acid"
cp -rv "${COOKBOOK_SOURCE}"/* "${COOKBOOK_STAGE}/home/user/acid"
mkdir -pv "${COOKBOOK_STAGE}/usr/share/acid"
cp -rv "${COOKBOOK_SOURCE}"/* "${COOKBOOK_STAGE}/usr/share/acid"
# Create runner script
mkdir -p "${COOKBOOK_STAGE}/usr/bin"
cat > "${COOKBOOK_STAGE}/usr/bin/acid-runner" <<EOF
#!/usr/bin/env bash
#!/usr/bin/ion
set -e
cd /home/user/acid
cargo test
mkdir -p ~/.cache/acid
cargo test --manifest-path /usr/share/acid/Cargo.toml --target-dir ~/.cache/acid
EOF
chmod +x "${COOKBOOK_STAGE}/usr/bin/acid-runner"

View File

@ -1,11 +1,9 @@
[package]
description = "Minimal \"Hello world\" programs in nine common languages"
# Due to necessary write permission for compilation the filesystem path of source code installation is an exception
# where the package manager can't switch between system-wide and user paths
[build]
template = "custom"
script = """
mkdir -pv "${COOKBOOK_STAGE}/home/user/hello-redox"
cp -rv "${COOKBOOK_RECIPE}"/files/* "${COOKBOOK_STAGE}/home/user/hello-redox"
mkdir -pv "${COOKBOOK_STAGE}/usr/share/hello-redox"
cp -rv "${COOKBOOK_RECIPE}"/files/* "${COOKBOOK_STAGE}/usr/share/hello-redox"
"""

View File

@ -1,5 +1,3 @@
# Due to necessary write permission for compilation the filesystem path of source code installation is an exception
# where the package manager can't switch between system-wide and user paths
[source]
git = "https://gitlab.redox-os.org/redox-os/openposixtestsuite.git"
branch = "redox"
@ -7,8 +5,8 @@ branch = "redox"
[build]
template = "custom"
script = """
mkdir -pv "${COOKBOOK_STAGE}/home/user/openposixtestsuite"
cp -rv "${COOKBOOK_SOURCE}"/* "${COOKBOOK_STAGE}/home/user/openposixtestsuite"
mkdir -pv "${COOKBOOK_STAGE}/usr/share/openposixtestsuite"
cp -rv "${COOKBOOK_SOURCE}"/* "${COOKBOOK_STAGE}/usr/share/openposixtestsuite"
"""
[package]

View File

@ -5,8 +5,8 @@ git = "https://gitlab.redox-os.org/redox-os/redox-posix-tests.git"
[build]
template = "custom"
script = """
mkdir -pv "${COOKBOOK_STAGE}/home/user/redox-posix-tests"
cp -rv "${COOKBOOK_SOURCE}"/* "${COOKBOOK_STAGE}/home/user/redox-posix-tests"
mkdir -pv "${COOKBOOK_STAGE}/usr/share/redox-posix-tests"
cp -rv "${COOKBOOK_SOURCE}"/* "${COOKBOOK_STAGE}/usr/share/redox-posix-tests"
"""
[package]

View File

@ -6,10 +6,10 @@ template = "custom"
script = """
rsync -av --delete "${COOKBOOK_SOURCE}/" ./
make install-tests DESTDIR="${COOKBOOK_STAGE}/home/user" NATIVE_LIBC=1 IS_REDOX=1
make install-tests DESTDIR="${COOKBOOK_STAGE}/usr/share" NATIVE_LIBC=1 IS_REDOX=1
if [ -n "$TESTBIN" ]; then
"${COOKBOOK_REDOXER}" write-exec sh -c "cd /home/user/relibc-tests; make run-once TESTBIN=bins_dynamic/$TESTBIN"
"${COOKBOOK_REDOXER}" write-exec sh -c "cd /usr/share/relibc-tests; make run-once TESTBIN=bins_dynamic/$TESTBIN"
fi
# Create runner script
@ -17,8 +17,8 @@ mkdir -p "${COOKBOOK_STAGE}/usr/bin"
cat > "${COOKBOOK_STAGE}/usr/bin/relibc-tests-runner" <<EOF
#!/usr/bin/env bash
set -e
cd /home/user/relibc-tests
make run IS_REDOX=1
cd /usr/share/relibc-tests
make run IS_REDOX=1 # FIXME use a user writable dir as build dir
EOF
chmod +x "${COOKBOOK_STAGE}/usr/bin/relibc-tests-runner"

View File

@ -1,13 +1,11 @@
# Due to necessary write permission for compilation the filesystem path of source code installation is an exception
# where the package manager can't switch between system-wide and user paths
[source]
same_as = "../../core/relibc"
[build]
template = "custom"
script = """
mkdir -pv "${COOKBOOK_STAGE}/home/user/relibc-tests"
cp -rv "${COOKBOOK_SOURCE}/tests" "${COOKBOOK_STAGE}/home/user/relibc-tests"
mkdir -pv "${COOKBOOK_STAGE}/usr/share/relibc-tests"
cp -rv "${COOKBOOK_SOURCE}/tests" "${COOKBOOK_STAGE}/usr/share/relibc-tests"
"""
[package]

View File

@ -5,8 +5,8 @@ branch = "prod/testsuite-base"
[build]
template = "custom"
script = """
mkdir -pv "${COOKBOOK_STAGE}/home/user/wasi-testsuite"
cp -rv "${COOKBOOK_SOURCE}"/* "${COOKBOOK_STAGE}/home/user/wasi-testsuite"
mkdir -pv "${COOKBOOK_STAGE}/usr/share/wasi-testsuite"
cp -rv "${COOKBOOK_SOURCE}"/* "${COOKBOOK_STAGE}/usr/share/wasi-testsuite"
"""
[package]

View File

@ -1,6 +1,6 @@
name=COSMIC Media Player
binary=/usr/bin/cosmic-player
icon=/ui/icons/apps/multimedia-photo-viewer.png
icon=/usr/share/ui/icons/apps/multimedia-photo-viewer.png
author=Jeremy Soller
description=COSMIC Media Player
accept=*.avi

View File

@ -0,0 +1,6 @@
#TODO compile and test
[source]
git = "https://github.com/andyhmltn/critter"
shallow_clone = true
[build]
template = "cargo"

View File

@ -0,0 +1,25 @@
#TODO compile and test
[source]
git = "https://github.com/lightspark/lightspark"
rev = "ff478b8a6a349a6d919e342d04793dad454fdf5c"
shallow_clone = true
[build]
template = "cmake"
cmakeflags = [
"-DCOMPILE_NPAPI_PLUGIN=FALSE",
"-DCOMPILE_PPAPI_PLUGIN=FALSE",
"-DENABLE_GLES2=TRUE",
"-DENABLE_LIBAVCODEC=FALSE",
"-DENABLE_RTMP=FALSE",
]
#dependencies = [
#"mesa",
#"curl",
#"zlib",
#"ffmpeg6",
#"rtmpdump",
#"sdl2",
#"libjpeg",
#"xz",
#"fontconfig",
#]

View File

@ -0,0 +1,18 @@
#TODO compile and test
[source]
git = "https://github.com/adam900710/btrfs-fuse"
rev = "b03483b6cc0599c6a940042ff5d31434239b4874"
shallow_clone = true
[build]
template = "meson"
mesonflags = ["-Dtests=false"]
dependencies = [
"libfuse3",
#"libuuid",
#"libb2",
#"openssl3",
#"xxhash",
#"zlib",
#"lz4",
#"zstd",
]

View File

@ -0,0 +1,12 @@
#TODO add script for scons: https://github.com/gordan-bobic/zfs-fuse/blob/master/INSTALL#L37
[source]
git = "https://github.com/gordan-bobic/zfs-fuse"
rev = "d286672f25602583aaf91ef0fa511d03ab4d3aab"
shallow_clone = true
[build]
template = "custom"
dependencies = [
"libfuse2",
#"libaio",
"zlib",
]

View File

@ -1,4 +1,4 @@
name=Jazz Jackrabbit (shareware)
category=Games
binary=/usr/games/OpenJazz
icon=/ui/icons/apps/OpenJazz.png
icon=/usr/share/ui/icons/apps/OpenJazz.png

View File

@ -5,8 +5,3 @@ patches = ["redox.patch"]
[build]
template = "meson"
[package]
dependencies = [
"librsvg" # adwaita contains svg icons
]

View File

@ -50,3 +50,8 @@ cookbook_meson \
-Dintrospection=false \
-Dtests=false
"""
[package]
dependencies = [
"librsvg",
]

View File

@ -0,0 +1,7 @@
#TODO compile and test
[source]
git = "https://github.com/flectar/mail"
shallow_clone = true
[build]
template = "cargo"
cargoflags = ["--no-default-features"]

View File

@ -0,0 +1,13 @@
#TODO compile and test
[source]
git = "https://github.com/jhawthorn/fzy"
rev = "v1.1"
shallow_clone = true
[build]
template = "custom"
script = """
rsync -av --delete "${COOKBOOK_SOURCE}/" ./
DYNAMIC_INIT
"${COOKBOOK_MAKE}" fzy -j "${COOKBOOK_MAKE_JOBS}"
"${COOKBOOK_MAKE}" install DESTDIR="${COOKBOOK_STAGE}/usr"
"""

View File

@ -0,0 +1,7 @@
#TODO compile and test
[source]
git = "https://github.com/microsoft/tgrep"
shallow_clone = true
[build]
template = "cargo"
cargopackages = ["tgrep-cli"]

View File

@ -0,0 +1,13 @@
#TODO compile and test
# freebsd probably have a native port: https://github.com/freebsd/freebsd-ports/tree/main/sysutils/i2c-tools/files
# build instructions: https://git.kernel.org/pub/scm/utils/i2c-tools/i2c-tools.git/tree/README#n62
[source]
tar = "https://www.kernel.org/pub/software/utils/i2c-tools/i2c-tools-4.4.tar.gz"
[build]
template = "custom"
script = """
rsync -av --delete "${COOKBOOK_SOURCE}/" ./
DYNAMIC_INIT
"${COOKBOOK_MAKE}" -j "${COOKBOOK_MAKE_JOBS}"
"${COOKBOOK_MAKE}" install DESTDIR="${COOKBOOK_STAGE}/usr"
"""

View File

@ -0,0 +1,8 @@
#TODO compile and test
#TODO fix dlopen to use fontconfig dependency
[source]
git = "https://github.com/lusingander/sauva"
shallow_clone = true
[build]
template = "cargo"
#dependencies = ["fontconfig"]

View File

@ -0,0 +1,14 @@
#TODO need ffmpeg +7.x
[source]
git = "https://github.com/jub0t/Concat"
shallow_clone = true
[build]
template = "cargo"
cargopath = "src"
cargopackages = [
"concat",
"concat-cli",
]
dependencies = [
"ffmpeg",
]

View File

@ -41,10 +41,6 @@ COOKBOOK_CMAKE_FLAGS+=(
-DENABLE_BUBBLEWRAP_SANDBOX=OFF
-DENABLE_INTROSPECTION=OFF
-DENABLE_JOURNALD_LOG=OFF
# jit issues
-DENABLE_JIT=OFF
-DENABLE_DFG_JIT=OFF
-DENABLE_FTL_JIT=OFF
# hardware/library issues
-DENABLE_SPEECH_SYNTHESIS=OFF
-DENABLE_SPELLCHECK=OFF # libenchant
@ -61,8 +57,9 @@ cookbook_cmake
patchelf --replace-needed "${COOKBOOK_SYSROOT}/usr/lib/libsqlite3.so" "libsqlite3.so" "${COOKBOOK_STAGE}/usr/lib/libwebkit2gtk-4.1.so"
patchelf --replace-needed "${COOKBOOK_SYSROOT}/usr/lib/libsqlite3.so" "libsqlite3.so" "${COOKBOOK_STAGE}/usr/libexec/webkit2gtk-4.1/MiniBrowser"
mkdir -p "${COOKBOOK_STAGE}/usr/bin"
mkdir -p "${COOKBOOK_STAGE}/usr/bin" "${COOKBOOK_STAGE}/usr/share/applications"
ln -sr "${COOKBOOK_STAGE}/usr/libexec/webkit2gtk-4.1/MiniBrowser" "${COOKBOOK_STAGE}/usr/bin/MiniBrowser"
cp "${COOKBOOK_RECIPE}/webkit.desktop" "${COOKBOOK_STAGE}/usr/share/applications/webkit.desktop"
"""
[package]

View File

@ -670,3 +670,17 @@ diff -ruwN source/Source/WTF/wtf/posix/ThreadingPOSIX.cpp source-new/Source/WTF/
Locker locker { m_mutex };
int policy;
diff -ruwN source/Source/WebKit/UIProcess/gtk/AcceleratedBackingStoreDMABuf.cpp source-new/Source/WebKit/UIProcess/gtk/AcceleratedBackingStoreDMABuf.cpp
--- source/Source/WebKit/UIProcess/gtk/AcceleratedBackingStoreDMABuf.cpp 2025-03-07 11:11:01.594008200 +0000
+++ source-new/Source/WebKit/UIProcess/gtk/AcceleratedBackingStoreDMABuf.cpp 2026-09-27 19:45:00.480807469 +0000
@@ -82,7 +82,9 @@
static OptionSet<RendererBufferTransportMode> mode;
static std::once_flag onceFlag;
std::call_once(onceFlag, [] {
- const char* disableDMABuf = getenv("WEBKIT_DISABLE_DMABUF_RENDERER");
+ // redox: the mesa implementation for dma-buf renderer is incomplete
+ // https://blogs.igalia.com/carlosgc/2023/04/03/webkitgtk-accelerated-compositing-rendering/
+ const char* disableDMABuf = "1";// getenv("WEBKIT_DISABLE_DMABUF_RENDERER");
if (disableDMABuf && strcmp(disableDMABuf, "0"))
return;

View File

@ -0,0 +1,10 @@
[Desktop Entry]
Name=WebKit
Comment=WebKit GTK Browser
Exec=MiniBrowser
Icon=/usr/share/ui/icons/apps/internet-web-browser.png
Terminal=false
Type=Application
StartupNotify=true
Categories=Network
NoDisplay=true

View File

@ -4,4 +4,4 @@ blake3 = "fad667bb04e16dca5e816969f2641bb075929cd73564114cc1aabd87d1975dd3"
patches = ["redox.patch"]
[build]
template = "configure"
template = "meson"

View File

@ -12,6 +12,7 @@ use cookbook::cook::tui::join_logs;
use cookbook::cook::{fetch_repo, ident};
use cookbook::recipe::{
CookRecipe, SourceRecipe, recipes_flatten_package_names, recipes_mark_as_deps,
validate_filesystem_rules,
};
use cookbook::{Error, Result, staged_pkg};
use pkg::{PackageName, PackageState};
@ -685,7 +686,7 @@ fn parse_args(args: Vec<String>) -> Result<(CliConfig, CliCommand, Vec<CookRecip
}
}
{
if command.is_building() || command.is_pushing() {
source_recipe_names =
CookRecipe::get_package_deps_recursive(&source_recipe_names, true)?;
binary_recipe_names =
@ -764,6 +765,8 @@ fn parse_args(args: Vec<String>) -> Result<(CliConfig, CliCommand, Vec<CookRecip
recipe.apply_filesystem_config(rule)?;
}
validate_filesystem_rules(&recipes)?;
recipes
};

View File

@ -5,7 +5,7 @@ pub(crate) static SHARED_PRESCRIPT: &str = r#"
# Build dynamically
function DYNAMIC_INIT {
case "${TARGET}" in
"i586-unknown-redox" | "riscv64gc-unknown-redox")
"riscv64gc-unknown-redox")
[ -z "${COOKBOOK_VERBOSE}" ] || echo "WARN: ${TARGET} does not support dynamic linking." >&2
return
;;
@ -35,7 +35,8 @@ function DYNAMIC_INIT {
# TODO: check paths for spaces
export LDFLAGS="${USER_LDFLAGS}-Wl,-rpath-link,${COOKBOOK_SYSROOT}/lib -L${COOKBOOK_SYSROOT}/lib -Wl,--export-dynamic"
export RUSTFLAGS="-C target-feature=-crt-static -L native=${COOKBOOK_SYSROOT}/lib -C link-arg=-Wl,-rpath-link,${COOKBOOK_SYSROOT}/lib"
rustflags="-C target-feature=-crt-static -L native=${COOKBOOK_SYSROOT}/lib -C link-arg=-Wl,-rpath-link,${COOKBOOK_SYSROOT}/lib"
export "${REDOXER_RUSTFLAGS_KEY}=${!REDOXER_RUSTFLAGS_KEY} ${rustflags}"
export COOKBOOK_DYNAMIC=1
if [ "function" = "$(type -t reexport_flags)" ]; then
@ -234,12 +235,12 @@ function generate_cookbook_cmake_file {
gcc_prefix=$2
sysroot=$3
file=$4
ARCH=$(echo "$target" | cut -d - -f1)
arch=$(echo "$target" | cut -d - -f1)
if [[ "$target" == *"-linux-"* ]]; then
SYSTEM_NAME="Linux"
system_name="Linux"
else
SYSTEM_NAME="UnixPaths"
system_name="UnixPaths"
fi
if [[ "$REDOXER_USE_CLANG" != "1" && "$REDOXER_USE_CLANG" != "true" ]]; then
@ -278,8 +279,8 @@ set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
set(CMAKE_PLATFORM_USES_PATH_WHEN_NO_SONAME 1)
set(CMAKE_PREFIX_PATH, ${sysroot})
set(CMAKE_SHARED_LIBRARY_SONAME_C_FLAG "-Wl,-soname,")
set(CMAKE_SYSTEM_NAME ${SYSTEM_NAME})
set(CMAKE_SYSTEM_PROCESSOR ${ARCH})
set(CMAKE_SYSTEM_NAME ${system_name})
set(CMAKE_SYSTEM_PROCESSOR ${arch})
EOF
if [ "$target" = "$GNU_TARGET" ]

View File

@ -636,6 +636,51 @@ pub fn recipes_flatten_package_names(packages: Vec<CookRecipe>) -> Vec<CookRecip
}
new_packages
}
/// Fail early if a recipe configured as `ignore` is still required as a
/// build dependency of another recipe that will be built.
pub fn validate_filesystem_rules(recipes: &[CookRecipe]) -> crate::Result<()> {
let ignored: BTreeSet<String> = recipes
.iter()
.filter(|r| r.rule == "ignore")
.map(|r| r.canon_recipe_name().without_prefix().to_string())
.collect();
if ignored.is_empty() {
return Ok(());
}
for recipe in recipes {
if recipe.rule == "ignore" {
continue;
}
if recipe.recipe.build.kind == BuildKind::None
|| recipe.recipe.build.kind == BuildKind::Remote
{
// Not built from source, so build dependencies are irrelevant.
continue;
}
let mut ignored_dependencies: Vec<&str> = Vec::new();
for dep in recipe
.recipe
.build
.dependencies
.iter()
.chain(recipe.recipe.build.dev_dependencies.iter())
{
let dep = dep.without_prefix();
if ignored.contains(dep) {
ignored_dependencies.push(dep);
}
}
if !ignored_dependencies.is_empty() {
bail_other_err!(
"Invalid filesystem config: the following packages are configured as \"ignore\" but are required as build dependencies by {:?}: {:?}",
ignored_dependencies,
recipe.name.as_str(),
);
}
}
Ok(())
}
#[derive(Serialize, Deserialize)]
pub struct AutoDeps {
@ -799,4 +844,86 @@ mod tests {
}
);
}
#[test]
fn ignore_required_by_build_dep_is_rejected() {
use crate::recipe::{BuildKind, BuildRecipe, CookRecipe, validate_filesystem_rules};
let mut ignored = CookRecipe::dummy(&PackageName::new("libogg").unwrap());
ignored.rule = "ignore".into();
let mut dependent = CookRecipe::dummy(&PackageName::new("libvorbis").unwrap());
dependent.recipe.build = BuildRecipe::new(BuildKind::Custom {
script: "make".to_string(),
});
dependent.recipe.build.dependencies = vec![PackageName::new("libogg").unwrap()];
let err = validate_filesystem_rules(&[ignored, dependent]).unwrap_err();
let msg = format!("{}", err);
assert!(
msg.contains("libogg") && msg.contains("libvorbis"),
"unexpected error: {msg}"
);
}
#[test]
fn ignore_multiple_required_by_build_dep_are_rejected() {
use crate::recipe::{BuildKind, BuildRecipe, CookRecipe, validate_filesystem_rules};
let mut ignored_ogg = CookRecipe::dummy(&PackageName::new("libogg").unwrap());
ignored_ogg.rule = "ignore".into();
let mut ignored_foo = CookRecipe::dummy(&PackageName::new("libfoo").unwrap());
ignored_foo.rule = "ignore".into();
let mut dependent = CookRecipe::dummy(&PackageName::new("libvorbis").unwrap());
dependent.recipe.build = BuildRecipe::new(BuildKind::Custom {
script: "make".to_string(),
});
dependent.recipe.build.dependencies = vec![
PackageName::new("libogg").unwrap(),
PackageName::new("libfoo").unwrap(),
];
let err = validate_filesystem_rules(&[ignored_ogg, ignored_foo, dependent]).unwrap_err();
let msg = format!("{err}");
assert!(msg.contains("libogg"), "unexpected error: {msg}");
assert!(msg.contains("libfoo"), "unexpected error: {msg}");
assert!(msg.contains("libvorbis"), "unexpected error: {msg}");
}
#[test]
fn ignore_required_by_dev_dep_is_rejected() {
use crate::recipe::{BuildKind, BuildRecipe, CookRecipe, validate_filesystem_rules};
let mut ignored = CookRecipe::dummy(&PackageName::new("libogg").unwrap());
ignored.rule = "ignore".into();
let mut dependent = CookRecipe::dummy(&PackageName::new("libvorbis").unwrap());
dependent.recipe.build = BuildRecipe::new(BuildKind::Custom {
script: "make".to_string(),
});
dependent.recipe.build.dev_dependencies = vec![PackageName::new("libogg").unwrap()];
let err = validate_filesystem_rules(&[ignored, dependent]).unwrap_err();
assert!(format!("{}", err).contains("libogg"));
}
#[test]
fn ignore_leaf_is_allowed() {
use crate::recipe::{BuildKind, BuildRecipe, CookRecipe, validate_filesystem_rules};
// e.g. pruning `orbterm` from a metapackage: nothing references it.
let mut ignored = CookRecipe::dummy(&PackageName::new("orbterm").unwrap());
ignored.rule = "ignore".into();
let mut meta = CookRecipe::dummy(&PackageName::new("desktop-minimal").unwrap());
meta.recipe.build = BuildRecipe::new(BuildKind::None);
meta.recipe.package.dependencies = vec![PackageName::new("orbital").unwrap()];
assert!(validate_filesystem_rules(&[ignored, meta]).is_ok());
assert!(validate_filesystem_rules(&[]).is_ok());
}
}