mirror of
https://gitlab.redox-os.org/redox-os/redox.git
synced 2026-11-05 04:06:38 +08:00
Manual merge current master with missing-descriptions
This commit is contained in:
commit
82219270a9
2
Cargo.lock
generated
2
Cargo.lock
generated
@ -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",
|
||||
|
||||
@ -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
|
||||
"""
|
||||
|
||||
@ -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
|
||||
"""
|
||||
|
||||
@ -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"
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
[source]
|
||||
git = "https://github.com/pop-os/cosmic-monitor.git"
|
||||
rev = "epoch-1.2.0"
|
||||
branch = "master"
|
||||
|
||||
[build]
|
||||
template = "custom"
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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}"
|
||||
"""
|
||||
@ -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
|
||||
"""
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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
|
||||
"""
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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;
|
||||
|
||||
@ -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
|
||||
"""
|
||||
|
||||
@ -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
|
||||
|
||||
|
||||
@ -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"
|
||||
)
|
||||
|
||||
14
recipes/libs/termcap/redox.patch
Normal file
14
recipes/libs/termcap/redox.patch
Normal 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
|
||||
@ -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]
|
||||
|
||||
@ -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"
|
||||
"""
|
||||
|
||||
@ -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"
|
||||
|
||||
@ -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"
|
||||
"""
|
||||
|
||||
@ -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]
|
||||
|
||||
@ -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]
|
||||
|
||||
@ -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"
|
||||
|
||||
@ -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]
|
||||
|
||||
@ -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]
|
||||
|
||||
@ -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
|
||||
|
||||
6
recipes/wip/dev/git-tools/critter/recipe.toml
Normal file
6
recipes/wip/dev/git-tools/critter/recipe.toml
Normal file
@ -0,0 +1,6 @@
|
||||
#TODO compile and test
|
||||
[source]
|
||||
git = "https://github.com/andyhmltn/critter"
|
||||
shallow_clone = true
|
||||
[build]
|
||||
template = "cargo"
|
||||
25
recipes/wip/emu/pc/lightspark/recipe.toml
Normal file
25
recipes/wip/emu/pc/lightspark/recipe.toml
Normal 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",
|
||||
#]
|
||||
18
recipes/wip/fuse/btrfs-fuse/recipe.toml
Normal file
18
recipes/wip/fuse/btrfs-fuse/recipe.toml
Normal 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",
|
||||
]
|
||||
12
recipes/wip/fuse/zfs-fuse/recipe.toml
Normal file
12
recipes/wip/fuse/zfs-fuse/recipe.toml
Normal 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",
|
||||
]
|
||||
@ -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
|
||||
|
||||
@ -5,8 +5,3 @@ patches = ["redox.patch"]
|
||||
|
||||
[build]
|
||||
template = "meson"
|
||||
|
||||
[package]
|
||||
dependencies = [
|
||||
"librsvg" # adwaita contains svg icons
|
||||
]
|
||||
|
||||
@ -50,3 +50,8 @@ cookbook_meson \
|
||||
-Dintrospection=false \
|
||||
-Dtests=false
|
||||
"""
|
||||
|
||||
[package]
|
||||
dependencies = [
|
||||
"librsvg",
|
||||
]
|
||||
|
||||
7
recipes/wip/net/email/flectar-mail/recipe.toml
Normal file
7
recipes/wip/net/email/flectar-mail/recipe.toml
Normal 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"]
|
||||
13
recipes/wip/search/fzy/recipe.toml
Normal file
13
recipes/wip/search/fzy/recipe.toml
Normal 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"
|
||||
"""
|
||||
7
recipes/wip/search/tgrep/recipe.toml
Normal file
7
recipes/wip/search/tgrep/recipe.toml
Normal 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"]
|
||||
13
recipes/wip/sys/i2c-tools/recipe.toml
Normal file
13
recipes/wip/sys/i2c-tools/recipe.toml
Normal 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"
|
||||
"""
|
||||
8
recipes/wip/text/sauva/recipe.toml
Normal file
8
recipes/wip/text/sauva/recipe.toml
Normal 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"]
|
||||
14
recipes/wip/vid/editors/concat/recipe.toml
Normal file
14
recipes/wip/vid/editors/concat/recipe.toml
Normal 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",
|
||||
]
|
||||
@ -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]
|
||||
|
||||
@ -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;
|
||||
|
||||
|
||||
10
recipes/wip/web/webkitgtk3/webkit.desktop
Normal file
10
recipes/wip/web/webkitgtk3/webkit.desktop
Normal 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
|
||||
@ -4,4 +4,4 @@ blake3 = "fad667bb04e16dca5e816969f2641bb075929cd73564114cc1aabd87d1975dd3"
|
||||
patches = ["redox.patch"]
|
||||
|
||||
[build]
|
||||
template = "configure"
|
||||
template = "meson"
|
||||
|
||||
@ -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
|
||||
};
|
||||
|
||||
|
||||
@ -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" ]
|
||||
|
||||
127
src/recipe.rs
127
src/recipe.rs
@ -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());
|
||||
}
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user