From 84eae1e507141fc841e772de9a5ec0d848eeff76 Mon Sep 17 00:00:00 2001 From: Wildan M Date: Sun, 1 Nov 2026 13:35:01 +0700 Subject: [PATCH] Improve install for bzip2, cmake, termcap, tcl, libicu, mupdf --- recipes/archives/bzip2/recipe.toml | 11 ++++++++- recipes/dev/cmake/recipe.toml | 29 +++++++++++++---------- recipes/libs/termcap/recipe.toml | 7 ++++++ recipes/wip/dev/other/tcl/recipe.toml | 8 +++++-- recipes/wip/dev/other/tcl/redox.patch | 23 ++++++++++++++++++ recipes/wip/libs/other/libicu/recipe.toml | 1 + recipes/wip/libs/text/mupdf/recipe.toml | 3 ++- src/cook/script.rs | 2 +- 8 files changed, 67 insertions(+), 17 deletions(-) create mode 100644 recipes/wip/dev/other/tcl/redox.patch diff --git a/recipes/archives/bzip2/recipe.toml b/recipes/archives/bzip2/recipe.toml index f4476d38b..01ea9858e 100644 --- a/recipes/archives/bzip2/recipe.toml +++ b/recipes/archives/bzip2/recipe.toml @@ -35,6 +35,15 @@ 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" +# Change symlinks in usr/bin as relative +find "${COOKBOOK_STAGE}/usr/bin" -type l | while read -r link; do + target=$(readlink "$link") + if [[ "$target" = /* ]]; then + ln -snfr "$target" "$link" + fi +done + +mkdir -p "${COOKBOOK_STAGE}/usr/lib/pkgconfig" "${COOKBOOK_STAGE}/usr/share/" cp "${COOKBOOK_RECIPE}/pkgconfig" "${COOKBOOK_STAGE}/usr/lib/pkgconfig/bzip2.pc" +mv "${COOKBOOK_STAGE}/usr/man" "${COOKBOOK_STAGE}/usr/share/" """ diff --git a/recipes/dev/cmake/recipe.toml b/recipes/dev/cmake/recipe.toml index a18e143e0..42390e9cb 100644 --- a/recipes/dev/cmake/recipe.toml +++ b/recipes/dev/cmake/recipe.toml @@ -3,7 +3,7 @@ tar = "https://github.com/Kitware/CMake/releases/download/v4.3.2/cmake-4.3.2.tar blake3 = "cbd0121189df1502f61e8f12f044b4a901b1ea16c74c016b85714e4661b8537f" [build] -template = "cmake" +template = "custom" dependencies = [ # "cppdap", "curl", @@ -17,14 +17,19 @@ dependencies = [ "zlib", "zstd", ] -cmakeflags = [ - "-DBUILD_TESTING=Off", - "-DCMAKE_USE_SYSTEM_BZIP2=On", - "-DCMAKE_USE_SYSTEM_CURL=On", - "-DCMAKE_USE_SYSTEM_EXPAT=On", - "-DCMAKE_USE_SYSTEM_LIBARCHIVE=On", - "-DCMAKE_USE_SYSTEM_LIBUV=On", - "-DCMAKE_USE_SYSTEM_NGHTTP2=On", - "-DCMAKE_USE_SYSTEM_ZLIB=On", - "-DCMAKE_USE_SYSTEM_ZSTD=On", -] +script = """ +DYNAMIC_INIT +COOKBOOK_CMAKE_FLAGS=( + -DBUILD_TESTING=Off + -DCMAKE_USE_SYSTEM_BZIP2=On + -DCMAKE_USE_SYSTEM_CURL=On + -DCMAKE_USE_SYSTEM_EXPAT=On + -DCMAKE_USE_SYSTEM_LIBARCHIVE=On + -DCMAKE_USE_SYSTEM_LIBUV=On + -DCMAKE_USE_SYSTEM_NGHTTP2=On + -DCMAKE_USE_SYSTEM_ZLIB=On + -DCMAKE_USE_SYSTEM_ZSTD=On +) +cookbook_cmake +mv "${COOKBOOK_STAGE}/usr/doc" "${COOKBOOK_STAGE}/usr/share/" +""" diff --git a/recipes/libs/termcap/recipe.toml b/recipes/libs/termcap/recipe.toml index acfe054cd..8135f42b7 100644 --- a/recipes/libs/termcap/recipe.toml +++ b/recipes/libs/termcap/recipe.toml @@ -6,13 +6,20 @@ patches = [ ] [build] template = "custom" +compiler = "no-lto" script = """ DYNAMIC_STATIC_INIT export ac_cv_header_stdc=yes COOKBOOK_CONFIGURE_FLAGS+=( --prefix="${COOKBOOK_STAGE}/usr" + --enable-install-termcap + --with-termcap="${COOKBOOK_STAGE}/etc/termcap" +) +COOKBOOK_MAKE_FLAGS=( + infodir="$COOKBOOK_STAGE/usr/share/info" ) # termcap only emit static object export CC+=" -fPIC" +mkdir -p "${COOKBOOK_STAGE}/etc" cookbook_configure """ diff --git a/recipes/wip/dev/other/tcl/recipe.toml b/recipes/wip/dev/other/tcl/recipe.toml index f02a4d05e..583764b28 100644 --- a/recipes/wip/dev/other/tcl/recipe.toml +++ b/recipes/wip/dev/other/tcl/recipe.toml @@ -1,7 +1,10 @@ #TODO compiled but not tested [source] -tar = "http://prdownloads.sourceforge.net/tcl/tcl8.6.13-src.tar.gz" -blake3 = "a44611c5d38d7dbc1e6ce49d6a78ae7d43817b861412b54b30357bc431510978" +tar = "http://prdownloads.sourceforge.net/tcl/tcl9.1.0-src.tar.gz" +blake3 = "a5c4860fdbd9e01f002ab2cf8508f912f43ab218a5035d93cad23d57ac8b8db3" +patches = [ + "redox.patch" +] [build] template = "custom" @@ -12,6 +15,7 @@ COOKBOOK_CONFIGURE_FLAGS+=( ac_cv_func_memcmp_working=yes tcl_cv_strstr_unbroken= tcl_cv_strtoul_unbroken= + --disable-zipfs ) cookbook_configure """ diff --git a/recipes/wip/dev/other/tcl/redox.patch b/recipes/wip/dev/other/tcl/redox.patch new file mode 100644 index 000000000..05246788c --- /dev/null +++ b/recipes/wip/dev/other/tcl/redox.patch @@ -0,0 +1,23 @@ +diff -ruwN source/generic/tclBasic.c source-new/generic/tclBasic.c +--- source/generic/tclBasic.c 2026-09-23 18:52:24.000000000 +0000 ++++ source-new/generic/tclBasic.c 2026-10-31 22:41:10.290905986 +0000 +@@ -8034,7 +8034,7 @@ + return TCL_ERROR; + } + errno = 0; +- return CheckDoubleResult(interp, fma(d1, d2, d3)); ++ return CheckDoubleResult(interp, d1 * d2 + d3); + } + + static int +diff -ruwN source/pkgs/sqlite3.53.4/compat/sqlite3/sqlite3.c source-new/pkgs/sqlite3.53.4/compat/sqlite3/sqlite3.c +--- source/pkgs/sqlite3.53.4/compat/sqlite3/sqlite3.c 2026-09-11 17:37:04.000000000 +0000 ++++ source-new/pkgs/sqlite3.53.4/compat/sqlite3/sqlite3.c 2026-10-31 22:44:08.440361284 +0000 +@@ -15688,6 +15688,7 @@ + + /************** End of parse.h ***********************************************/ + /************** Continuing where we left off in sqliteInt.h ******************/ ++#include + #include + #include + #include diff --git a/recipes/wip/libs/other/libicu/recipe.toml b/recipes/wip/libs/other/libicu/recipe.toml index e4e2dbb92..a1b984e84 100644 --- a/recipes/wip/libs/other/libicu/recipe.toml +++ b/recipes/wip/libs/other/libicu/recipe.toml @@ -16,6 +16,7 @@ CPPFLAGS+=" -fno-lto" COOKBOOK_CONFIGURE="${COOKBOOK_SOURCE}/source/configure" COOKBOOK_CONFIGURE_FLAGS+=( icu_cv_host_frag=mh-linux + --sbindir=/usr/bin ) if [ "$TARGET" != "$COOKBOOK_HOST_TARGET" ]; then COOKBOOK_CONFIGURE_FLAGS+=( diff --git a/recipes/wip/libs/text/mupdf/recipe.toml b/recipes/wip/libs/text/mupdf/recipe.toml index f8b2d83a0..0ddba45f0 100644 --- a/recipes/wip/libs/text/mupdf/recipe.toml +++ b/recipes/wip/libs/text/mupdf/recipe.toml @@ -14,10 +14,11 @@ dependencies = [ "libgumbo", # "freeglut", TODO: HAVE_GLUT=yes ] +compiler = "gcc" script = """ DYNAMIC_INIT cd $COOKBOOK_SOURCE mkdir -p $COOKBOOK_BUILD/shared-release -"${COOKBOOK_MAKE}" install-libs install-apps shared=yes build=release USE_SYSTEM_LIBS=yes \ +"${COOKBOOK_MAKE}" install-libs install-apps shared=yes build=release USE_SYSTEM_LIBS=yes prefix=/usr \ -j "${COOKBOOK_MAKE_JOBS}" DESTDIR="${COOKBOOK_STAGE}" "OUT=$COOKBOOK_BUILD/shared-release" """ diff --git a/src/cook/script.rs b/src/cook/script.rs index 5b940b59e..21a2981bf 100644 --- a/src/cook/script.rs +++ b/src/cook/script.rs @@ -220,7 +220,7 @@ COOKBOOK_MAKE="make" function cookbook_configure { "${COOKBOOK_CONFIGURE}" "${COOKBOOK_CONFIGURE_FLAGS[@]}" "$@" "${COOKBOOK_MAKE}" -j "${COOKBOOK_MAKE_JOBS}" "${COOKBOOK_MAKE_FLAGS[@]}" - "${COOKBOOK_MAKE}" install DESTDIR="${COOKBOOK_STAGE}" + "${COOKBOOK_MAKE}" install DESTDIR="${COOKBOOK_STAGE}" "${COOKBOOK_MAKE_FLAGS[@]}" } COOKBOOK_CMAKE="cmake"