From 57aa8339831d6ec46af3e0f73cb93c35226f3003 Mon Sep 17 00:00:00 2001 From: Wildan M Date: Sun, 7 Jun 2026 15:17:57 +0700 Subject: [PATCH 1/3] Merge libxkbcommon and disable gles on mesa-x11 --- recipes/wip/libs/gnome/libepoxy/recipe.toml | 4 +-- .../wip/libs/other/libxkbcommon/recipe.toml | 20 +++++++++++---- .../other/libxkbcommon}/redox.patch | 4 +-- .../net/onion-routing/tor-browser/recipe.toml | 2 +- recipes/wip/web/firefox-esr/recipe.toml | 2 +- recipes/wip/web/firefox/recipe.toml | 2 +- recipes/wip/x11/i3/i3/recipe.toml | 2 +- recipes/wip/x11/libxkbcommon-x11/recipe.toml | 25 ------------------- recipes/wip/x11/mesa-x11/recipe.toml | 4 ++- 9 files changed, 26 insertions(+), 39 deletions(-) rename recipes/wip/{x11/libxkbcommon-x11 => libs/other/libxkbcommon}/redox.patch (96%) delete mode 100644 recipes/wip/x11/libxkbcommon-x11/recipe.toml diff --git a/recipes/wip/libs/gnome/libepoxy/recipe.toml b/recipes/wip/libs/gnome/libepoxy/recipe.toml index d77fc9cb..f14bee50 100644 --- a/recipes/wip/libs/gnome/libepoxy/recipe.toml +++ b/recipes/wip/libs/gnome/libepoxy/recipe.toml @@ -13,7 +13,7 @@ dependencies = [ "libxext", "libxfixes", "libxxf86vm", - "mesa-x11", + "mesa", "x11proto", "zlib", ] @@ -21,6 +21,6 @@ script = """ DYNAMIC_INIT cookbook_meson \ -Degl=yes \ - -Dglx=yes \ + -Dglx=no \ -Dtests=false """ diff --git a/recipes/wip/libs/other/libxkbcommon/recipe.toml b/recipes/wip/libs/other/libxkbcommon/recipe.toml index d62aaec7..055b3310 100644 --- a/recipes/wip/libs/other/libxkbcommon/recipe.toml +++ b/recipes/wip/libs/other/libxkbcommon/recipe.toml @@ -2,15 +2,25 @@ [source] tar = "https://xkbcommon.org/download/libxkbcommon-1.7.0.tar.xz" blake3 = "5001ca0b8562feeef2010bf16c05657e3875fda3ed5fdedbf48b9135e5cdfcbc" +patches = [ + "redox.patch" +] [build] -template = "meson" -mesonflags = [ - "-Denable-wayland=false", - "-Denable-x11=false" -] +template = "custom" dependencies = [ "libxml2", "xz", "zlib", + "libpthread-stubs", + "libxau", + "x11proto", + "xcb-proto", + "libxcb", ] +script = """ +DYNAMIC_INIT +cookbook_meson \ + -Denable-wayland=false \ + -Denable-x11=true +""" diff --git a/recipes/wip/x11/libxkbcommon-x11/redox.patch b/recipes/wip/libs/other/libxkbcommon/redox.patch similarity index 96% rename from recipes/wip/x11/libxkbcommon-x11/redox.patch rename to recipes/wip/libs/other/libxkbcommon/redox.patch index 11a80ca9..0ec555c8 100644 --- a/recipes/wip/x11/libxkbcommon-x11/redox.patch +++ b/recipes/wip/libs/other/libxkbcommon/redox.patch @@ -1,4 +1,4 @@ -diff --color -ruwN source/meson.build source-new/meson.build +diff -ruwN source/meson.build source-new/meson.build --- source/meson.build 2024-03-24 04:23:43.000000000 +0700 +++ source-new/meson.build 2025-10-29 10:55:30.355297899 +0700 @@ -637,8 +637,6 @@ @@ -31,7 +31,7 @@ diff --color -ruwN source/meson.build source-new/meson.build if get_option('enable-xkbregistry') test( 'registry', -diff --color -ruwN source/src/x11/util.c source-new/src/x11/util.c +diff -ruwN source/src/x11/util.c source-new/src/x11/util.c --- source/src/x11/util.c 2024-03-24 04:23:43.000000000 +0700 +++ source-new/src/x11/util.c 2025-10-29 15:03:58.879274347 +0700 @@ -39,7 +39,7 @@ diff --git a/recipes/wip/net/onion-routing/tor-browser/recipe.toml b/recipes/wip/net/onion-routing/tor-browser/recipe.toml index 59e2e024..4c489a9d 100644 --- a/recipes/wip/net/onion-routing/tor-browser/recipe.toml +++ b/recipes/wip/net/onion-routing/tor-browser/recipe.toml @@ -15,7 +15,7 @@ dependencies = [ # "glib", "gtk3", "pango", - "libxkbcommon-x11", + "libxkbcommon", "libice", "mesa-x11", "x11proto-kb", diff --git a/recipes/wip/web/firefox-esr/recipe.toml b/recipes/wip/web/firefox-esr/recipe.toml index 54947da8..2ad0ebc0 100644 --- a/recipes/wip/web/firefox-esr/recipe.toml +++ b/recipes/wip/web/firefox-esr/recipe.toml @@ -17,7 +17,7 @@ dependencies = [ # "glib", "gtk3", "pango", - "libxkbcommon-x11", + "libxkbcommon", "libice", "mesa-x11", "x11proto-kb", diff --git a/recipes/wip/web/firefox/recipe.toml b/recipes/wip/web/firefox/recipe.toml index 24b5ff60..da4d72e4 100644 --- a/recipes/wip/web/firefox/recipe.toml +++ b/recipes/wip/web/firefox/recipe.toml @@ -13,7 +13,7 @@ dependencies = [ "freetype2", "gtk3", "pango", - "libxkbcommon-x11", + "libxkbcommon", "libice", "mesa-x11", "nspr", diff --git a/recipes/wip/x11/i3/i3/recipe.toml b/recipes/wip/x11/i3/i3/recipe.toml index 06758788..76dee3b5 100644 --- a/recipes/wip/x11/i3/i3/recipe.toml +++ b/recipes/wip/x11/i3/i3/recipe.toml @@ -7,7 +7,7 @@ blake3 = "3b54ed52759339e545a7a5f602946abc0164c37eb801e79c0cb40f93dbae53d2" dependencies = [ "cairo", "libev", - "libxkbcommon-x11", + "libxkbcommon", "pango", "pcre2", "startup-notification", diff --git a/recipes/wip/x11/libxkbcommon-x11/recipe.toml b/recipes/wip/x11/libxkbcommon-x11/recipe.toml deleted file mode 100644 index ea53a2ca..00000000 --- a/recipes/wip/x11/libxkbcommon-x11/recipe.toml +++ /dev/null @@ -1,25 +0,0 @@ -# TODO: Conflict with libxkbcommon-x11 -# TODO: Keyboard not working, see patches -[source] -tar = "https://xkbcommon.org/download/libxkbcommon-1.7.0.tar.xz" -blake3 = "5001ca0b8562feeef2010bf16c05657e3875fda3ed5fdedbf48b9135e5cdfcbc" -patches = [ "redox.patch" ] - -[build] -template = "custom" -dependencies = [ - "libxml2", - "xz", - "zlib", - "libpthread-stubs", - "libxau", - "x11proto", - "xcb-proto", - "libxcb", -] -script = """ -DYNAMIC_INIT -cookbook_meson \ - -Denable-wayland=false \ - -Denable-x11=true -""" diff --git a/recipes/wip/x11/mesa-x11/recipe.toml b/recipes/wip/x11/mesa-x11/recipe.toml index dfb07c14..2bcc4a38 100644 --- a/recipes/wip/x11/mesa-x11/recipe.toml +++ b/recipes/wip/x11/mesa-x11/recipe.toml @@ -24,9 +24,11 @@ script = """ DYNAMIC_INIT cookbook_meson \ -Ddri-drivers-path=/usr/lib/dri \ - -Degl=enabled \ + -Degl=disabled \ -Dglx=dri \ -Dllvm=enabled \ + -Dgles1=disabled \ + -Dgles2=disabled \ -Dplatforms=x11 \ -Dshader-cache=disabled """ From 112ff5f6530481bfa40600b55321302485693501 Mon Sep 17 00:00:00 2001 From: Wildan M Date: Tue, 9 Jun 2026 20:46:09 +0700 Subject: [PATCH 2/3] Change gtk to use git, always pass --export-dynamic for glib --- recipes/wip/libs/gnome/gtk3/recipe.toml | 28 ++++++++++--------- .../wip/libs/other/libxkbcommon/recipe.toml | 5 ++++ src/cook/script.rs | 2 +- 3 files changed, 21 insertions(+), 14 deletions(-) diff --git a/recipes/wip/libs/gnome/gtk3/recipe.toml b/recipes/wip/libs/gnome/gtk3/recipe.toml index 7e2b13a0..468ae198 100644 --- a/recipes/wip/libs/gnome/gtk3/recipe.toml +++ b/recipes/wip/libs/gnome/gtk3/recipe.toml @@ -1,8 +1,8 @@ #TODO promote [source] -tar = "https://download.gnome.org/sources/gtk+/3.24/gtk%2B-3.24.43.tar.xz" -blake3 = "5feab2bad81e6b5906895f70ddce6227cf96a6a14b16af0ef72c79991a48ddf4" -patches = ["redox.patch"] +git = "https://gitlab.redox-os.org/redox-os/gtk" +branch = "redox-3.24.43" +shallow_clone = true [build] dependencies = [ @@ -21,20 +21,21 @@ dependencies = [ "libffi", "libiconv", "libjpeg", + "liborbital", "libpng", "libpthread-stubs", "libwayland", - "libx11", - "libxau", + # "libx11", + # "libxau", "libxkbcommon", - "libxcb", - "libxext", - "libxfixes", - "libxi", - "libxrandr", - "libxrender", - "libxxf86vm", - "mesa-x11", + # "libxcb", + # "libxext", + # "libxfixes", + # "libxi", + # "libxrandr", + # "libxrender", + # "libxxf86vm", + "mesa", "pango", "pcre2", "pixman", @@ -49,6 +50,7 @@ DYNAMIC_INIT CFLAGS="${CFLAGS} -DM_SQRT2=1.41421356237309504880" cookbook_meson \ -Dexamples=false \ + -Dx11_backend=false \ -Dintrospection=false \ -Dtests=false """ diff --git a/recipes/wip/libs/other/libxkbcommon/recipe.toml b/recipes/wip/libs/other/libxkbcommon/recipe.toml index 055b3310..fae0ab88 100644 --- a/recipes/wip/libs/other/libxkbcommon/recipe.toml +++ b/recipes/wip/libs/other/libxkbcommon/recipe.toml @@ -24,3 +24,8 @@ cookbook_meson \ -Denable-wayland=false \ -Denable-x11=true """ + +[package] +dependencies = [ + "xkeyboard-config" +] diff --git a/src/cook/script.rs b/src/cook/script.rs index b40d39ae..8b0791f2 100644 --- a/src/cook/script.rs +++ b/src/cook/script.rs @@ -34,7 +34,7 @@ function DYNAMIC_INIT { ) # TODO: check paths for spaces - export LDFLAGS="${USER_LDFLAGS}-Wl,-rpath-link,${COOKBOOK_SYSROOT}/lib -L${COOKBOOK_SYSROOT}/lib" + 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" export COOKBOOK_DYNAMIC=1 From 3a9b48db9c61cf31139f0378b6484b4d79718a8a Mon Sep 17 00:00:00 2001 From: Wildan M Date: Thu, 11 Jun 2026 17:18:53 +0700 Subject: [PATCH 3/3] Enable gtk3 x11 again --- recipes/libs/cairo/recipe.toml | 24 ++++++++------------ recipes/libs/pango/recipe.toml | 22 +++--------------- recipes/wip/libs/gnome/gtk3/recipe.toml | 19 +++++----------- recipes/wip/libs/gnome/libepoxy/recipe.toml | 25 +++++++-------------- recipes/wip/libs/other/libicu/recipe.toml | 3 +-- recipes/wip/x11/libx11/recipe.toml | 5 +++-- recipes/wip/x11/libxft/recipe.toml | 13 +---------- recipes/wip/x11/libxrender/recipe.toml | 4 ---- 8 files changed, 30 insertions(+), 85 deletions(-) diff --git a/recipes/libs/cairo/recipe.toml b/recipes/libs/cairo/recipe.toml index 47b1d5eb..a158b74b 100644 --- a/recipes/libs/cairo/recipe.toml +++ b/recipes/libs/cairo/recipe.toml @@ -5,30 +5,24 @@ patches = ["redox.patch"] [build] dependencies = [ - "expat", - "freetype2", - "fontconfig", - "gettext", + "fontconfig", + "freetype2", "glib", - "libffi", - "libiconv", - "libpng", - "libpthread-stubs", + "libpng", "libx11", - "libxau", "libxcb", "libxext", - "pcre2", - "pixman", - "x11proto", - "zlib", + "libxrender", + "pixman", +] +dev-dependencies = [ + # xext and xrender is required by pkg-config, don't move them here ] template = "custom" script = """ DYNAMIC_INIT -#TODO: fix mutex implementation #TODO: why are math defines missing? -CFLAGS="${CFLAGS} -DCAIRO_NO_MUTEX=1 -DM_SQRT2=1.41421356237309504880 -DM_LN2=0.69314718055994530942" +CFLAGS="${CFLAGS} -DM_SQRT2=1.41421356237309504880 -DM_LN2=0.69314718055994530942" cookbook_meson \ -Dxlib-xcb=enabled \ -Dtests=disabled diff --git a/recipes/libs/pango/recipe.toml b/recipes/libs/pango/recipe.toml index 8080ad3c..45b97903 100644 --- a/recipes/libs/pango/recipe.toml +++ b/recipes/libs/pango/recipe.toml @@ -6,30 +6,14 @@ patches = ["redox.patch"] [build] dependencies = [ "cairo", - "expat", "fontconfig", "freetype2", "fribidi", - "gettext", "glib", "harfbuzz", - "libffi", - "libiconv", - "libpng", - "libpthread-stubs", - "libx11", - "libxau", - "libxcb", - "libxext", - "libxft", - "libxrender", - "pcre", - "pcre2", - "pixman", - "x11proto", - "xcb-proto", - "xextproto", - "zlib", + # "libx11", + # "libxft", + # "libxrender", ] template = "custom" script = """ diff --git a/recipes/wip/libs/gnome/gtk3/recipe.toml b/recipes/wip/libs/gnome/gtk3/recipe.toml index 468ae198..02631e99 100644 --- a/recipes/wip/libs/gnome/gtk3/recipe.toml +++ b/recipes/wip/libs/gnome/gtk3/recipe.toml @@ -23,25 +23,17 @@ dependencies = [ "libjpeg", "liborbital", "libpng", - "libpthread-stubs", - "libwayland", - # "libx11", - # "libxau", + "libxfixes", "libxkbcommon", - # "libxcb", - # "libxext", - # "libxfixes", - # "libxi", - # "libxrandr", - # "libxrender", - # "libxxf86vm", + "libxi", + "libxrandr", + "libx11", + "libwayland", "mesa", "pango", "pcre2", "pixman", - "shared-mime-info", "wayland-protocols", - "x11proto", "zlib", ] template = "custom" @@ -50,7 +42,6 @@ DYNAMIC_INIT CFLAGS="${CFLAGS} -DM_SQRT2=1.41421356237309504880" cookbook_meson \ -Dexamples=false \ - -Dx11_backend=false \ -Dintrospection=false \ -Dtests=false """ diff --git a/recipes/wip/libs/gnome/libepoxy/recipe.toml b/recipes/wip/libs/gnome/libepoxy/recipe.toml index f14bee50..7544bdc5 100644 --- a/recipes/wip/libs/gnome/libepoxy/recipe.toml +++ b/recipes/wip/libs/gnome/libepoxy/recipe.toml @@ -4,23 +4,14 @@ blake3 = "0ccee9635115fe417cfc4bc33ffd160bf1e2852bd6c03816b4af771d59462f53" patches = ["redox.patch"] [build] -template = "custom" -dependencies = [ - "libpthread-stubs", +template = "meson" +dev-dependencies = [ "libx11", - "libxau", - "libxcb", - "libxext", - "libxfixes", - "libxxf86vm", "mesa", - "x11proto", - "zlib", ] -script = """ -DYNAMIC_INIT -cookbook_meson \ - -Degl=yes \ - -Dglx=no \ - -Dtests=false -""" +mesonflags = [ + "-Degl=yes", +# we're forcing x11 backend via EGL + "-Dx11=true", + "-Dtests=false", +] diff --git a/recipes/wip/libs/other/libicu/recipe.toml b/recipes/wip/libs/other/libicu/recipe.toml index f779b82e..87f7c09f 100644 --- a/recipes/wip/libs/other/libicu/recipe.toml +++ b/recipes/wip/libs/other/libicu/recipe.toml @@ -5,7 +5,7 @@ blake3 = "5657d84c78549f198f1335ec9d2f1de2b0ac2771fe081cbf00016370872c13f3" patches = ["redox.patch"] [build] -dependencies = [ +dev-dependencies = [ "host:libicu" ] template = "custom" @@ -28,5 +28,4 @@ if [ "$TARGET" = "$COOKBOOK_HOST_TARGET" ]; then # this is not ideal, but there's no other better way rsync -a ./ "${COOKBOOK_STAGE}/usr" fi - """ diff --git a/recipes/wip/x11/libx11/recipe.toml b/recipes/wip/x11/libx11/recipe.toml index a56da978..04d6c029 100644 --- a/recipes/wip/x11/libx11/recipe.toml +++ b/recipes/wip/x11/libx11/recipe.toml @@ -7,9 +7,10 @@ autotools_recursive_regenerate [build] dependencies = [ - "libpthread-stubs", - "libxau", "libxcb", +] +dev-dependencies = [ + "libxau", "x11proto", "xtrans", ] diff --git a/recipes/wip/x11/libxft/recipe.toml b/recipes/wip/x11/libxft/recipe.toml index d671cadf..5edaef3e 100644 --- a/recipes/wip/x11/libxft/recipe.toml +++ b/recipes/wip/x11/libxft/recipe.toml @@ -7,20 +7,9 @@ autotools_recursive_regenerate [build] dependencies = [ - "expat", "fontconfig", "freetype2", - "libpng", - "libpthread-stubs", "libx11", - "libxau", - "libxcb", "libxrender", - "x11proto", - "zlib", ] -template = "custom" -script = """ -DYNAMIC_INIT -cookbook_configure -""" +template = "configure" diff --git a/recipes/wip/x11/libxrender/recipe.toml b/recipes/wip/x11/libxrender/recipe.toml index 4442e6a1..76f3467d 100644 --- a/recipes/wip/x11/libxrender/recipe.toml +++ b/recipes/wip/x11/libxrender/recipe.toml @@ -7,11 +7,7 @@ autotools_recursive_regenerate [build] dependencies = [ - "libpthread-stubs", "libx11", - "libxau", - "libxcb", - "x11proto", ] template = "custom" script = """