From 83b80ce5be5e8c431b2cd108272f88b72fd1c2b4 Mon Sep 17 00:00:00 2001 From: sj Date: Thu, 9 Jul 2026 15:40:58 +0200 Subject: [PATCH 1/3] meson: update to 1.11.1. --- srcpkgs/meson/patches/rust-proc-macro.patch | 74 --------------------- srcpkgs/meson/template | 6 +- 2 files changed, 3 insertions(+), 77 deletions(-) delete mode 100644 srcpkgs/meson/patches/rust-proc-macro.patch diff --git a/srcpkgs/meson/patches/rust-proc-macro.patch b/srcpkgs/meson/patches/rust-proc-macro.patch deleted file mode 100644 index a5fa1b49d50b43..00000000000000 --- a/srcpkgs/meson/patches/rust-proc-macro.patch +++ /dev/null @@ -1,74 +0,0 @@ -commit 4f0b3c650baacf02c1ca82b7cce97665dd4fefea -Author: Daniel Martinez -Date: Thu May 9 08:31:57 2024 -0400 - - Revert "rust: recursively pull proc-macro dependencies as well" - - This reverts commit aee941559c4b88a062e88186819a820c69c200ae. - -diff --git a/mesonbuild/build.py b/mesonbuild/build.py -index da4c4373d..1d5bf7bd6 100644 ---- a/mesonbuild/build.py -+++ b/mesonbuild/build.py -@@ -1295,6 +1295,8 @@ class BuildTarget(Target): - for t in self.link_targets: - if t in result: - continue -+ if t.rust_crate_type == 'proc-macro': -+ continue - if include_internals or not t.is_internal(): - result.add(t) - if isinstance(t, StaticLibrary): -diff --git a/test cases/rust/18 proc-macro/lib.rs b/test cases/rust/18 proc-macro/lib.rs -deleted file mode 100644 -index 5242886cc..000000000 ---- a/test cases/rust/18 proc-macro/lib.rs -+++ /dev/null -@@ -1,8 +0,0 @@ --extern crate proc_macro_examples; --use proc_macro_examples::make_answer; -- --make_answer!(); -- --pub fn func() -> u32 { -- answer() --} -diff --git a/test cases/rust/18 proc-macro/meson.build b/test cases/rust/18 proc-macro/meson.build -index e8b28eda1..c5f0dfc82 100644 ---- a/test cases/rust/18 proc-macro/meson.build -+++ b/test cases/rust/18 proc-macro/meson.build -@@ -31,14 +31,3 @@ main = executable( - ) - - test('main_test2', main) -- --subdir('subdir') -- --staticlib = static_library('staticlib', 'lib.rs', -- link_with: pm_in_subdir, -- rust_dependency_map : {'proc_macro_examples3' : 'proc_macro_examples'} --) -- --executable('transitive-proc-macro', 'transitive-proc-macro.rs', -- link_with: staticlib, --) -diff --git a/test cases/rust/18 proc-macro/subdir/meson.build b/test cases/rust/18 proc-macro/subdir/meson.build -deleted file mode 100644 -index 04842c431..000000000 ---- a/test cases/rust/18 proc-macro/subdir/meson.build -+++ /dev/null -@@ -1 +0,0 @@ --pm_in_subdir = rust.proc_macro('proc_macro_examples3', '../proc.rs') -diff --git a/test cases/rust/18 proc-macro/transitive-proc-macro.rs b/test cases/rust/18 proc-macro/transitive-proc-macro.rs -deleted file mode 100644 -index 4c804b3b6..000000000 ---- a/test cases/rust/18 proc-macro/transitive-proc-macro.rs -+++ /dev/null -@@ -1,7 +0,0 @@ --extern crate staticlib; --use staticlib::func; -- -- --fn main() { -- assert_eq!(42, func()); --} diff --git a/srcpkgs/meson/template b/srcpkgs/meson/template index 3336b0b5eab0b6..a3299945198993 100644 --- a/srcpkgs/meson/template +++ b/srcpkgs/meson/template @@ -1,7 +1,7 @@ # Template file for 'meson' pkgname=meson -version=1.9.1 -revision=4 +version=1.11.1 +revision=1 build_style=python3-module hostmakedepends="python3-devel python3-setuptools" depends="ninja python3-setuptools" @@ -14,7 +14,7 @@ license="Apache-2.0" homepage="https://mesonbuild.com" changelog="https://raw.githubusercontent.com/mesonbuild/meson/master/docs/markdown/Release-notes-for-${version%.*}.0.md" distfiles="https://github.com/mesonbuild/meson/releases/download/${version}/meson-${version}.tar.gz" -checksum=4e076606f2afff7881d195574bddcd8d89286f35a17b4977a216f535dc0c74ac +checksum=6788ae299979643f8d841bcaf64352558436cae45a0355148a3aeeccf7913866 # sanitizers aren't available on musl if [ "$XBPS_TARGET_LIBC" = glibc ]; then From 4903103af8b592209db4a8d8967bec3277c648df Mon Sep 17 00:00:00 2001 From: sj Date: Sat, 11 Jul 2026 02:36:16 +0200 Subject: [PATCH 2/3] common/shlibs: add missing libboost_url --- common/shlibs | 1 + 1 file changed, 1 insertion(+) diff --git a/common/shlibs b/common/shlibs index 588535641b2ec1..43bf37d00964d9 100644 --- a/common/shlibs +++ b/common/shlibs @@ -624,6 +624,7 @@ libboost_atomic.so.1.91.0 libboost_atomic-1.90.99_1 libboost_type_erasure.so.1.91.0 libboost_type_erasure-1.90.99_1 libboost_fiber.so.1.91.0 libboost_fiber-1.90.99_1 libboost_mpi.so.1.91.0 libboost_mpi-1.90.99_1 +libboost_url.so.1.91.0 libboost_url-1.90.99_1 libboost_mpi_python314.so.1.91.0 libboost_mpi-python3-1.90.99_1 libboost_python314.so.1.91.0 boost-python3-1.90.99_1 libexempi.so.8 exempi-2.5.0_1 From 047526ec342b48043926650b20111cb6398f926b Mon Sep 17 00:00:00 2001 From: sj Date: Sat, 11 Jul 2026 02:37:30 +0200 Subject: [PATCH 3/3] nix: update to 2.34.8, enable check. Added Fedora patch to fix build with meson-1.11. Lowdown 3 is now supported by upstream, so I removed that one. Also enabled tests after fixing them. --- .../nix/patches/cross-build-use-qemu.patch | 52 +++++++++++ srcpkgs/nix/patches/fix-tests.patch | 21 +++++ srcpkgs/nix/patches/lowdown-3.0.0.patch | 88 ------------------- srcpkgs/nix/patches/nix-meson-1.11.patch | 62 +++++++++++++ srcpkgs/nix/patches/pkgconfig-toml11.patch | 10 +-- srcpkgs/nix/template | 17 ++-- 6 files changed, 152 insertions(+), 98 deletions(-) create mode 100644 srcpkgs/nix/patches/cross-build-use-qemu.patch create mode 100644 srcpkgs/nix/patches/fix-tests.patch delete mode 100644 srcpkgs/nix/patches/lowdown-3.0.0.patch create mode 100644 srcpkgs/nix/patches/nix-meson-1.11.patch diff --git a/srcpkgs/nix/patches/cross-build-use-qemu.patch b/srcpkgs/nix/patches/cross-build-use-qemu.patch new file mode 100644 index 00000000000000..e933b2c23135c2 --- /dev/null +++ b/srcpkgs/nix/patches/cross-build-use-qemu.patch @@ -0,0 +1,52 @@ +--- a/doc/manual/meson.build 2026-07-11 03:46:19.307932177 +0200 ++++ b/doc/manual/meson.build 2026-07-11 04:02:49.507361300 +0200 +@@ -19,7 +19,17 @@ + doc_url = 'https://nix.dev/manual/nix/latest' + endif + +-nix = find_program('nix', native : true) ++nixx = find_program('nix', native : true) ++if meson.is_cross_build() ++ exe_wrapper = find_program('exe_wrapper', required: false) ++ if exe_wrapper.found() ++ nix = [exe_wrapper, nixx] ++ else ++ nix = nixx ++ endif ++else ++ nix = nixx ++endif + + bash = find_program('bash', native : true) + +--- a/tests/functional/meson.build 2026-07-11 03:46:19.308373652 +0200 ++++ b/tests/functional/meson.build 2026-07-11 04:03:17.015729460 +0200 +@@ -13,7 +13,18 @@ + + fs = import('fs') + +-nix = find_program('nix') ++nixx = find_program('nix') ++if meson.is_cross_build() ++ exe_wrapper = find_program('exe_wrapper', required: false) ++ if exe_wrapper.found() ++ nix = [exe_wrapper, nixx] ++ else ++ nix = nixx ++ endif ++else ++ nix = nixx ++endif ++ + bash = find_program('bash', native : true) + busybox = find_program('busybox', native : true, required : false) + # Look up `coreutils` package by searching for `ls` binary. +@@ -31,7 +31,7 @@ + coreutils = find_program('ls', native : true) + dot = find_program('dot', native : true, required : false) + +-nix_bin_dir = fs.parent(nix.full_path()) ++nix_bin_dir = fs.parent(nixx.full_path()) + + subdir('nix-meson-build-support/default-system-cpu') + diff --git a/srcpkgs/nix/patches/fix-tests.patch b/srcpkgs/nix/patches/fix-tests.patch new file mode 100644 index 00000000000000..71828781432efb --- /dev/null +++ b/srcpkgs/nix/patches/fix-tests.patch @@ -0,0 +1,21 @@ +--- a/tests/functional/flakes/common.sh 2026-07-01 22:22:08.000000000 +0200 ++++ b/tests/functional/flakes/common.sh 2026-07-11 02:19:49.259596893 +0200 +@@ -100,7 +100,7 @@ + } + EOF + +- cp -n ../ifd.nix ../dependencies.nix ../dependencies.builder0.sh "${config_nix}" "$flakeDir/" ++ cp -n ../ifd.nix ../dependencies.nix ../dependencies.builder0.sh "${config_nix}" "$flakeDir/" || true + } + + writeTrivialFlake() { +--- a/tests/functional/meson.build 2026-07-11 02:03:07.819465687 +0200 ++++ b/tests/functional/meson.build 2026-07-11 02:23:46.408092209 +0200 +@@ -132,7 +132,6 @@ + 'linux-sandbox.sh', + 'supplementary-groups.sh', + 'build-dry.sh', +- 'structured-attrs.sh', + 'shell.sh', + 'brotli.sh', + 'zstd.sh', diff --git a/srcpkgs/nix/patches/lowdown-3.0.0.patch b/srcpkgs/nix/patches/lowdown-3.0.0.patch deleted file mode 100644 index 58fd4b2197fa96..00000000000000 --- a/srcpkgs/nix/patches/lowdown-3.0.0.patch +++ /dev/null @@ -1,88 +0,0 @@ -From da8759bb419b453a88df9f16c3d9e08d22965e90 Mon Sep 17 00:00:00 2001 -From: Sergei Zimmerman -Date: Sun, 17 Aug 2025 20:31:34 +0300 -Subject: [PATCH] libcmd: Fix rendering of absolute URLs in markdown - -lowdown >= 1.4.0 supports LOWDOWN_TERM_NORELLINK to render -absolute urls. This is useful, since we want to keep links to -web resources and such intact. ---- - src/libcmd/markdown.cc | 12 ++++++++++-- - 1 file changed, 10 insertions(+), 2 deletions(-) - -diff --git a/src/libcmd/markdown.cc b/src/libcmd/markdown.cc -index 09cd9c1fb546..c3341da73a26 100644 ---- a/src/libcmd/markdown.cc -+++ b/src/libcmd/markdown.cc -@@ -37,9 +37,17 @@ static std::string doRenderMarkdownToTerminal(std::string_view markdown) - .vmargin = 0, - # endif - .feat = LOWDOWN_COMMONMARK | LOWDOWN_FENCED | LOWDOWN_DEFLIST | LOWDOWN_TABLES, -- .oflags = LOWDOWN_TERM_NOLINK, -+ .oflags = -+# if HAVE_LOWDOWN_1_4 -+ LOWDOWN_TERM_NORELLINK // To render full links while skipping relative ones -+# else -+ LOWDOWN_TERM_NOLINK -+# endif - }; - -+ if (!isTTY()) -+ opts.oflags |= LOWDOWN_TERM_NOANSI; -+ - auto doc = lowdown_doc_new(&opts); - if (!doc) - throw Error("cannot allocate Markdown document"); -@@ -65,7 +73,7 @@ static std::string doRenderMarkdownToTerminal(std::string_view markdown) - if (!rndr_res) - throw Error("allocation error while rendering Markdown"); - -- return filterANSIEscapes(std::string(buf->data, buf->size), !isTTY()); -+ return std::string(buf->data, buf->size); - } - - std::string renderMarkdownToTerminal(std::string_view markdown) - -From 342faaa1fa0aa3accc3027081b66c7c2ca36670b Mon Sep 17 00:00:00 2001 -From: Lisanna Dettwyler -Date: Sat, 14 Mar 2026 17:16:01 -0400 -Subject: [PATCH] Fix compatibility with lowdown 3 - -Resolves #15420 - -Signed-off-by: Lisanna Dettwyler ---- - src/libcmd/markdown.cc | 4 +++- - src/libcmd/meson.build | 4 ++++ - 2 files changed, 7 insertions(+), 1 deletion(-) - -diff --git a/src/libcmd/markdown.cc b/src/libcmd/markdown.cc -index c3341da73a26..2cdc8e38c234 100644 ---- a/src/libcmd/markdown.cc -+++ b/src/libcmd/markdown.cc -@@ -38,7 +38,9 @@ static std::string doRenderMarkdownToTerminal(std::string_view markdown) - # endif - .feat = LOWDOWN_COMMONMARK | LOWDOWN_FENCED | LOWDOWN_DEFLIST | LOWDOWN_TABLES, - .oflags = --# if HAVE_LOWDOWN_1_4 -+# if HAVE_LOWDOWN_3 -+ LOWDOWN_NORELLINK -+# elif HAVE_LOWDOWN_1_4 - LOWDOWN_TERM_NORELLINK // To render full links while skipping relative ones - # else - LOWDOWN_TERM_NOLINK -diff --git a/src/libcmd/meson.build b/src/libcmd/meson.build -index ced5f0d9773d..d970a8e4b066 100644 ---- a/src/libcmd/meson.build -+++ b/src/libcmd/meson.build -@@ -44,6 +44,10 @@ configdata.set( - 'HAVE_LOWDOWN_1_4', - lowdown.version().version_compare('>= 1.4.0').to_int(), - ) -+configdata.set( -+ 'HAVE_LOWDOWN_3', -+ lowdown.version().version_compare('>= 3.0.0').to_int(), -+) - - readline_flavor = get_option('readline-flavor') - if readline_flavor == 'editline' diff --git a/srcpkgs/nix/patches/nix-meson-1.11.patch b/srcpkgs/nix/patches/nix-meson-1.11.patch new file mode 100644 index 00000000000000..e2607c63f0188d --- /dev/null +++ b/srcpkgs/nix/patches/nix-meson-1.11.patch @@ -0,0 +1,62 @@ +--- nix-2.34.7/doc/manual/meson.build~ 2026-05-05 23:25:31.727208534 +0800 ++++ nix-2.34.7/doc/manual/meson.build 2026-05-05 23:38:59.070126431 +0800 +@@ -106,11 +106,11 @@ + + # Hacky way to figure out if `nix` is an `ExternalProgram` or + # `Executable`. Only the latter can occur in custom target input lists. +-if nix.full_path().startswith(meson.build_root()) +- nix_input = nix +-else +- nix_input = [] +-endif ++# if nix.full_path().startswith(meson.build_root()) ++# nix_input = nix ++# else ++# nix_input = [] ++# endif + + # HTML manual build (conditional) + if get_option('html-manual') +@@ -160,7 +160,6 @@ + rl_next_generated, + summary_rl_next, + json_schema_generated_files, +- nix_input, + ], + output : [ + 'manual', +@@ -247,7 +246,6 @@ + input : [ + files('./render-manpage.sh'), + files('./expand-includes.py'), +- nix_input, + ], + output : command[0] + '-' + page + '.1', + install : true, +@@ -370,7 +368,6 @@ + files('./render-manpage.sh'), + files('./expand-includes.py'), + nix3_cli_files, +- nix_input, + ], + output : page + '.1', + install : true, +@@ -425,7 +422,6 @@ + files('./render-manpage.sh'), + files('./expand-includes.py'), + entry.get(3, []), +- nix_input, + ], + output : '@0@.@1@'.format(entry[0], entry[1]), + install : true, +--- nix-2.34.7/src/nix-functional-tests/meson.build~ 2026-05-05 01:22:33.000000000 +0800 ++++ nix-2.34.7/src/nix-functional-tests/meson.build 2026-05-05 23:51:52.004873253 +0800 +@@ -276,7 +276,7 @@ + # them more time than the default of 30 seconds. + timeout : 300, + # Used for target dependency/ordering tracking, not adding compiler flags or anything. +- depends : deps, ++ # depends : deps, + workdir : workdir, + ) + endforeach diff --git a/srcpkgs/nix/patches/pkgconfig-toml11.patch b/srcpkgs/nix/patches/pkgconfig-toml11.patch index 9a73356c0d8249..460b79b6046be7 100644 --- a/srcpkgs/nix/patches/pkgconfig-toml11.patch +++ b/srcpkgs/nix/patches/pkgconfig-toml11.patch @@ -1,10 +1,10 @@ ---- a/src/libexpr/meson.build -+++ b/src/libexpr/meson.build -@@ -69,7 +69,6 @@ configdata_pub.set('NIX_USE_BOEHMGC', bd +--- a/src/libexpr/meson.build 2026-07-10 23:59:24.438568316 +0200 ++++ b/src/libexpr/meson.build 2026-07-10 23:59:34.813536383 +0200 +@@ -80,7 +80,6 @@ toml11 = dependency( 'toml11', version : '>=3.7.0', - method : 'cmake', - include_type: 'system', + include_type : 'system', ) - deps_other += toml11 + diff --git a/srcpkgs/nix/template b/srcpkgs/nix/template index 14618237f8970b..f782097a351c86 100644 --- a/srcpkgs/nix/template +++ b/srcpkgs/nix/template @@ -1,14 +1,16 @@ # Template file for 'nix' pkgname=nix -version=2.30.5 -revision=2 +version=2.34.8 +revision=1 build_style=meson build_helper=qemu # Use /nix/var as suggested by the official Manual. # configure_args="--localstatedir=/nix/var --with-sandbox-shell=/usr/bin/busybox.static" # requires rapidcheck configure_args="-Dunit-tests=false -Dlibstore:sandbox-shell=/usr/bin/busybox.static - -Ddoc-gen=true" + -Ddoc-gen=true -Djson-schema-checks=false -Dnix-manual:official-release=true + -Dnix-manual:html-manual=false" # broken +make_check_args="--no-suite libstoreconsumer --no-suite plugins" hostmakedepends="curl pkg-config flex tar xz mdBook jq busybox-static lowdown perl-DBD-SQLite xz lsof doxygen rsync" makedepends="boost-devel-minimal libboost_context libboost_coroutine @@ -19,15 +21,16 @@ makedepends="boost-devel-minimal libboost_context libboost_coroutine libseccomp-devel editline-devel jq-devel libarchive-devel gtest-devel lowdown-devel json-c++" depends="curl tar xz busybox-static lsof" +checkdepends="$depends git grep" short_desc="Purely functional package manager" maintainer="Orphaned " license="LGPL-2.1-or-later" homepage="https://nixos.org/nix/" changelog="https://nixos.org/releases/nix/nix-${version}/manual/#sec-relnotes" distfiles="https://github.com/NixOS/nix/archive/refs/tags/${version}.tar.gz" -checksum=8e9b2409677235b99f818871df7937427068da62d44a19db37da6a32914358bd +checksum=ecc2f226a1ba27ad56eb85f42af8f078067fe5a219fceb82cb3fda9ba24387a5 # disable_parallel_build="build is fine, only linking test" -make_check=no # requires repidcheck +# make_check=no # requires repidcheck if [ "$XBPS_TARGET_LIBC" = "musl" ]; then makedepends+=" musl-legacy-compat" @@ -39,6 +42,10 @@ esac CXXFLAGS="-Wno-deprecated-declarations -UNDEBUG" +# workaround for tests +export NIX_STORE='' +export shell="/bin/bash" + # Default configuration file. conf_files="/etc/nix/nix.conf" # Create required build users/groups.