[vlc-commits] [Git][videolan/vlc][3.0.x] 3 commits: extras: tools: update Kitware ninja to 1.13.2

Steve Lhomme (@robUx4) gitlab at videolan.org
Tue Aug 25 06:29:56 UTC 2026



Steve Lhomme pushed to branch 3.0.x at VideoLAN / VLC


Commits:
caefea9b by Steve Lhomme at 2026-08-25T06:35:26+02:00
extras: tools: update Kitware ninja to 1.13.2

It is used when GNU make 4.4+ is not found to share jobs properly with make
when building contribs.

- - - - -
575cb910 by Steve Lhomme at 2026-08-25T06:56:43+02:00
extras: tools: build ninja with CMake

It's a C++ project, it should not require python.
And it enables LTO when possible, unlike the python script.

- - - - -
02731dc5 by Steve Lhomme at 2026-08-25T07:13:52+02:00
extras: tools: use the original ninja Kitware tarball name

So we don't mix up the official version tarball and the kitware one.

- - - - -


7 changed files:

- Makefile.am
- − extras/tools/0001-CanonicalizePath-Remove-kMaxComponents-limit.patch
- − extras/tools/0002-CanonicalizePath-fix-a-b-._foo-a-replacement.patch
- extras/tools/SHA512SUMS
- − extras/tools/ninja-1.11.1-replace-pipes-quote-with-shlex-quote.patch
- extras/tools/packages.mak
- extras/tools/tools.mak


Changes:

=====================================
Makefile.am
=====================================
@@ -66,9 +66,6 @@ EXTRA_DIST += \
 	extras/tools/libtool-2.6.2-embed-bitcode.patch \
 	extras/tools/libtool-2.5.4-ltmain.in-reference-MAGIC_EXE-in-the-main.patch \
 	extras/tools/libtool-2.5.4-libtool.m4-respect-the-provided-LTCFLAGS-LTCC-during.patch \
-	extras/tools/ninja-1.11.1-replace-pipes-quote-with-shlex-quote.patch \
-	extras/tools/0001-CanonicalizePath-Remove-kMaxComponents-limit.patch \
-	extras/tools/0002-CanonicalizePath-fix-a-b-._foo-a-replacement.patch \
 	extras/tools/pkg-config-stdc23-port.patch
 
 ###############################################################################


=====================================
extras/tools/0001-CanonicalizePath-Remove-kMaxComponents-limit.patch deleted
=====================================
@@ -1,424 +0,0 @@
-From 9941df614f2c08093eb76f5cfa402afbd7475a39 Mon Sep 17 00:00:00 2001
-From: David 'Digit' Turner <digit at google.com>
-Date: Mon, 4 Dec 2023 22:47:37 +0100
-Subject: [PATCH 1/2] CanonicalizePath: Remove kMaxComponents limit
-
-This patch refactors the CanonicalizePath() to fix
-two issues and improve performance. This is achieved
-through the following:
-
-- Remove the kMaxPathComponents limit entirely,
-  which fixes ninja-build#1732, by dropping the
-  `components` array entirely, in favor of
-  back-tracking the destination pointer.
-
-- Properly handle '/' and '\' which were incorrectly
-  converted into an empty string. This fixes
-  ninja-build#2008.
-
-- Skip initial '../' components in relative paths,
-  as these are common when referencing source files
-  in build plans, and doing so make the loop after
-  this step run faster in practice since most
-  source files do not need adjustments.
-
-- Simplify the inner loop logic by handling the
-  last component (which is not followed by a
-  trailing directory separator) separately.
-
-  This noticeably improves performance because
-  the inner loop becomes smaller with less branch
-  mis-predictions in the general case.
-
-- Never access or copy the caharacter after the
-  end of the input string.
-
-- Use memchr() to find the next '/' on Posix, which
-  allows the use of SIMD implementations provided by
-  the C runtime (e.g. through IFUNC functions on Linux),
-  resulting in very noticeable speedup. This is also
-  why a statically Ninja executable will be slower
-  than one that links to the C library dynamically :-/
-
-- Avoid performing any writes when the input path
-  doesn't need any adjustment, which is also quite
-  common.
-
-Note that this patch does _not_ remove the 64-bit
-limit for the `slash_bits`  value, which is only
-used on Win32.
-
-Benchmarking was done in several ways:
-
-- On Linux, running `hyperfine canon-perftest` to run the
-  canonicalization benchmark program and measure its total
-  running time. Three compilers were used to generate
-  dynamically-linked executables.
-
-  ```
-               BEFORE (ms)  AFTER (ms)
-
-  GCC 13.2.0      651         369
-  Clang 14.0      591         402
-  Clang 18,0      653         400
-  ```
-
-- On Windows, running `canon-perftest` 5 times and keeping
-  the best reported average result. The number are slower
-  since they only measure the benched function.
-
-  ```
-                   BEFORE (ms)  AFTER (ms)
-
-  Mingw64 GCC 12      246         195
-  ```
-
-- On Linux, run `hyperfine ninja -C out/default -n --quiet`
-  on a large Fuchsia build plan, once with 70000+ pending
-  commands, and once after the build (i.e. `ninja: no work to do`).
-
-  ````
-               BEFORE (s)  AFTER (s)
-
-  pre_build       8.789    8.647
-  post_build      6.703    6.590
-  ```
----
- src/util.cc      | 149 +++++++++++++++++++++++++++++++++++------------
- src/util_test.cc | 101 ++++++++++++++++++++++++++++++--
- 2 files changed, 208 insertions(+), 42 deletions(-)
-
-diff --git a/src/util.cc b/src/util.cc
-index ef5f103..dcb6abc 100644
---- a/src/util.cc
-+++ b/src/util.cc
-@@ -143,20 +143,19 @@ void CanonicalizePath(char* path, size_t* len, uint64_t* slash_bits) {
-     return;
-   }
- 
--  const int kMaxPathComponents = 60;
--  char* components[kMaxPathComponents];
--  int component_count = 0;
--
-   char* start = path;
-   char* dst = start;
-+  char* dst_start = dst;
-   const char* src = start;
-   const char* end = start + *len;
-+  const char* src_next;
- 
-+  // For absolute paths, skip the leading directory separator
-+  // as this one should never be removed from the result.
-   if (IsPathSeparator(*src)) {
- #ifdef _WIN32
--
--    // network path starts with //
--    if (*len > 1 && IsPathSeparator(*(src + 1))) {
-+    // Windows network path starts with //
-+    if (src + 2 <= end && IsPathSeparator(src[1])) {
-       src += 2;
-       dst += 2;
-     } else {
-@@ -167,50 +166,126 @@ void CanonicalizePath(char* path, size_t* len, uint64_t* slash_bits) {
-     ++src;
-     ++dst;
- #endif
-+    dst_start = dst;
-+  } else {
-+    // For relative paths, skip any leading ../ as these are quite common
-+    // to reference source files in build plans, and doing this here makes
-+    // the loop work below faster in general.
-+    while (src + 3 <= end && src[0] == '.' && src[1] == '.' &&
-+           IsPathSeparator(src[2])) {
-+      src += 3;
-+      dst += 3;
-+    }
-   }
- 
--  while (src < end) {
--    if (*src == '.') {
--      if (src + 1 == end || IsPathSeparator(src[1])) {
--        // '.' component; eliminate.
--        src += 2;
--        continue;
--      } else if (src[1] == '.' && (src + 2 == end || IsPathSeparator(src[2]))) {
--        // '..' component.  Back up if possible.
-+  // Loop over all components of the paths _except_ the last one, in
-+  // order to simplify the loop's code and make it faster.
-+  int component_count = 0;
-+  char* dst0 = dst;
-+  for (; src < end; src = src_next) {
-+#ifndef _WIN32
-+    // Use memchr() for faster lookups thanks to optimized C library
-+    // implementation. `hyperfine canon_perftest` shows a significant
-+    // difference (e,g, 484ms vs 437ms).
-+    const char* next_sep =
-+        static_cast<const char*>(::memchr(src, '/', end - src));
-+    if (!next_sep) {
-+      // This is the last component, will be handled out of the loop.
-+      break;
-+    }
-+#else
-+    // Need to check for both '/' and '\\' so do not use memchr().
-+    // Cannot use strpbrk() because end[0] can be \0 or something else!
-+    const char* next_sep = src;
-+    while (next_sep != end && !IsPathSeparator(*next_sep))
-+      ++next_sep;
-+    if (next_sep == end) {
-+      // This is the last component, will be handled out of the loop.
-+      break;
-+    }
-+#endif
-+    // Position for next loop iteration.
-+    src_next = next_sep + 1;
-+    // Length of the component, excluding trailing directory.
-+    size_t component_len = next_sep - src;
-+
-+    if (component_len <= 2) {
-+      if (component_len == 0) {
-+        continue;  // Ignore empty component, e.g. 'foo//bar' -> 'foo/bar'.
-+      }
-+      if (src[0] == '.') {
-+        if (component_len == 1) {
-+          continue;  // Ignore '.' component, e.g. './foo' -> 'foo'.
-+        } else if (src[1] == '.') {
-+          // Process the '..' component if found. Back up if possible.
-+          if (component_count > 0) {
-+            // Move back to start of previous component.
-+            --component_count;
-+            while (--dst > dst0 && !IsPathSeparator(dst[-1])) {
-+              // nothing to do here, decrement happens before condition check.
-+            }
-+          } else {
-+            dst[0] = '.';
-+            dst[1] = '.';
-+            dst[2] = src[2];
-+            dst += 3;
-+          }
-+          continue;
-+        }
-+      }
-+    }
-+    ++component_count;
-+
-+    // Copy or skip component, including trailing directory separator.
-+    if (dst != src) {
-+      ::memmove(dst, src, src_next - src);
-+    }
-+    dst += src_next - src;
-+  }
-+
-+  // Handling the last component that does not have a trailing separator.
-+  // The logic here is _slightly_ different since there is no trailing
-+  // directory separator.
-+  size_t component_len = end - src;
-+  do {
-+    if (component_len == 0)
-+      break;  // Ignore empty component (e.g. 'foo//' -> 'foo/')
-+    if (src[0] == '.') {
-+      if (component_len == 1)
-+        break;  // Ignore trailing '.' (e.g. 'foo/.' -> 'foo/')
-+      if (src[1] == '.') {
-+        // Handle '..'. Back up if possible.
-         if (component_count > 0) {
--          dst = components[component_count - 1];
--          src += 3;
--          --component_count;
-+          while (--dst > dst0 && !IsPathSeparator(dst[-1])) {
-+            // nothing to do here, decrement happens before condition check.
-+          }
-         } else {
--          *dst++ = *src++;
--          *dst++ = *src++;
--          *dst++ = *src++;
-+          dst[0] = '.';
-+          dst[1] = '.';
-+          dst += 2;
-+          // No separator to add here.
-         }
--        continue;
-+        break;
-       }
-     }
--
--    if (IsPathSeparator(*src)) {
--      src++;
--      continue;
-+    // Skip or copy last component, no trailing separator.
-+    if (dst != src) {
-+      ::memmove(dst, src, component_len);
-     }
-+    dst += component_len;
-+  } while (0);
- 
--    if (component_count == kMaxPathComponents)
--      Fatal("path has too many components : %s", path);
--    components[component_count] = dst;
--    ++component_count;
--
--    while (src != end && !IsPathSeparator(*src))
--      *dst++ = *src++;
--    *dst++ = *src++;  // Copy '/' or final \0 character as well.
--  }
-+  // Remove trailing path separator if any, but keep the initial
-+  // path separator(s) if there was one (or two on Windows).
-+  if (dst > dst_start && IsPathSeparator(dst[-1]))
-+    dst--;
- 
-   if (dst == start) {
-+    // Handle special cases like "aa/.." -> "."
-     *dst++ = '.';
--    *dst++ = '\0';
-   }
- 
--  *len = dst - start - 1;
-+  *len = dst - start;  // dst points after the trailing char here.
- #ifdef _WIN32
-   uint64_t bits = 0;
-   uint64_t bits_mask = 1;
-diff --git a/src/util_test.cc b/src/util_test.cc
-index d58b170..8467e2a 100644
---- a/src/util_test.cc
-+++ b/src/util_test.cc
-@@ -89,13 +89,57 @@ TEST(CanonicalizePath, PathSamples) {
-   EXPECT_EQ("/foo", path);
- #endif
- 
-+  path = "..";
-+  CanonicalizePath(&path);
-+  EXPECT_EQ("..", path);
-+
-+  path = "../";
-+  CanonicalizePath(&path);
-+  EXPECT_EQ("..", path);
-+
-+  path = "../foo";
-+  CanonicalizePath(&path);
-+  EXPECT_EQ("../foo", path);
-+
-+  path = "../foo/";
-+  CanonicalizePath(&path);
-+  EXPECT_EQ("../foo", path);
-+
-+  path = "../..";
-+  CanonicalizePath(&path);
-+  EXPECT_EQ("../..", path);
-+
-+  path = "../../";
-+  CanonicalizePath(&path);
-+  EXPECT_EQ("../..", path);
-+
-+  path = "./../";
-+  CanonicalizePath(&path);
-+  EXPECT_EQ("..", path);
-+
-+  path = "/..";
-+  CanonicalizePath(&path);
-+  EXPECT_EQ("/..", path);
-+
-+  path = "/../";
-+  CanonicalizePath(&path);
-+  EXPECT_EQ("/..", path);
-+
-+  path = "/../..";
-+  CanonicalizePath(&path);
-+  EXPECT_EQ("/../..", path);
-+
-+  path = "/../../";
-+  CanonicalizePath(&path);
-+  EXPECT_EQ("/../..", path);
-+
-   path = "/";
-   CanonicalizePath(&path);
--  EXPECT_EQ("", path);
-+  EXPECT_EQ("/", path);
- 
-   path = "/foo/..";
-   CanonicalizePath(&path);
--  EXPECT_EQ("", path);
-+  EXPECT_EQ("/", path);
- 
-   path = ".";
-   CanonicalizePath(&path);
-@@ -171,7 +215,7 @@ TEST(CanonicalizePath, PathSamplesWindows) {
- 
-   path = "\\";
-   CanonicalizePath(&path);
--  EXPECT_EQ("", path);
-+  EXPECT_EQ("/", path);
- }
- 
- TEST(CanonicalizePath, SlashTracking) {
-@@ -321,8 +365,53 @@ TEST(CanonicalizePath, TooManyComponents) {
-   EXPECT_EQ(58, std::count(path.begin(), path.end(), '\\'));
-   CanonicalizePath(&path, &slash_bits);
-   EXPECT_EQ(slash_bits, 0x3ffffffffffffff);
-+
-+  // More than 60 components is now completely ok too.
-+  path =
-+      "a\\a\\a\\a\\a\\a\\a\\a\\a\\a\\a\\a\\a\\a\\a\\a\\"
-+      "a\\a\\a\\a\\a\\a\\a\\a\\a\\a\\a\\a\\a\\a\\a\\a\\"
-+      "a\\a\\a\\a\\a\\a\\a\\a\\a\\a\\a\\a\\a\\a\\a\\a\\"
-+      "a\\a\\a\\a\\a\\a\\a\\a\\a\\a\\a\\a\\a\\a\\a\\a\\"
-+      "a\\a\\a\\a\\a\\a\\a\\a\\a\\a\\a\\a\\a\\a\\a\\a\\"
-+      "a\\a\\a\\a\\a\\a\\a\\a\\a\\a\\a\\a\\a\\a\\a\\a\\"
-+      "a\\a\\a\\a\\a\\a\\a\\a\\a\\a\\a\\a\\a\\a\\a\\a\\"
-+      "a\\a\\a\\a\\a\\a\\a\\a\\a\\a\\a\\a\\a\\a\\a\\a\\"
-+      "a\\a\\a\\a\\a\\a\\a\\a\\a\\a\\a\\a\\a\\a\\a\\a\\"
-+      "a\\a\\a\\a\\a\\a\\a\\a\\a\\a\\a\\a\\a\\a\\a\\a\\"
-+      "a\\a\\a\\a\\a\\a\\a\\a\\a\\a\\a\\a\\a\\a\\a\\a\\"
-+      "a\\a\\a\\a\\a\\a\\a\\a\\a\\a\\a\\a\\a\\a\\a\\a\\"
-+      "a\\a\\a\\a\\a\\a\\a\\a\\a\\a\\a\\a\\a\\a\\a\\a\\"
-+      "a\\a\\a\\a\\a\\a\\a\\a\\a\\x\\y.h";
-+  EXPECT_EQ(218, std::count(path.begin(), path.end(), '\\'));
-+  CanonicalizePath(&path, &slash_bits);
-+  EXPECT_EQ(slash_bits, 0xffffffffffffffff);
- }
--#endif
-+#else   // !_WIN32
-+TEST(CanonicalizePath, TooManyComponents) {
-+  string path;
-+  uint64_t slash_bits;
-+
-+  // More than 60 components is now completely ok.
-+  path =
-+      "a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/"
-+      "a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/"
-+      "a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/"
-+      "a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/"
-+      "a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/"
-+      "a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/"
-+      "a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/"
-+      "a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/"
-+      "a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/"
-+      "a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/"
-+      "a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/"
-+      "a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/"
-+      "a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/"
-+      "a/a/a/a/a/a/a/a/a/x/y.h";
-+  EXPECT_EQ(218, std::count(path.begin(), path.end(), '/'));
-+  CanonicalizePath(&path, &slash_bits);
-+  EXPECT_EQ(slash_bits, 0x0);
-+}
-+#endif  // !_WIN32
- 
- TEST(CanonicalizePath, UpDir) {
-   string path, err;
-@@ -353,11 +442,13 @@ TEST(CanonicalizePath, NotNullTerminated) {
-   EXPECT_EQ(strlen("foo"), len);
-   EXPECT_EQ("foo/. bar/.", string(path));
- 
-+  // Verify that foo/..file gets canonicalized to 'file' without
-+  // touching the rest of the string.
-   path = "foo/../file bar/.";
-   len = strlen("foo/../file");
-   CanonicalizePath(&path[0], &len, &unused);
-   EXPECT_EQ(strlen("file"), len);
--  EXPECT_EQ("file ./file bar/.", string(path));
-+  EXPECT_EQ("file../file bar/.", string(path));
- }
- 
- TEST(PathEscaping, TortureTest) {
--- 
-2.45.0.windows.1
-


=====================================
extras/tools/0002-CanonicalizePath-fix-a-b-._foo-a-replacement.patch deleted
=====================================
@@ -1,42 +0,0 @@
-From 02c738a767bb837acb8d0366ace09804120283e6 Mon Sep 17 00:00:00 2001
-From: Pavel Boldin <pboldin at cloudlinux.com>
-Date: Fri, 15 Mar 2024 15:21:16 +0000
-Subject: [PATCH 2/2] CanonicalizePath: fix 'a/b/.._foo' -> 'a'  replacement
-
-Signed-off-by: Pavel Boldin <pboldin at cloudlinux.com>
----
- src/util.cc      | 2 +-
- src/util_test.cc | 4 ++++
- 2 files changed, 5 insertions(+), 1 deletion(-)
-
-diff --git a/src/util.cc b/src/util.cc
-index dcb6abc..ff624ba 100644
---- a/src/util.cc
-+++ b/src/util.cc
-@@ -253,7 +253,7 @@ void CanonicalizePath(char* path, size_t* len, uint64_t* slash_bits) {
-     if (src[0] == '.') {
-       if (component_len == 1)
-         break;  // Ignore trailing '.' (e.g. 'foo/.' -> 'foo/')
--      if (src[1] == '.') {
-+      if (component_len == 2 && src[1] == '.') {
-         // Handle '..'. Back up if possible.
-         if (component_count > 0) {
-           while (--dst > dst0 && !IsPathSeparator(dst[-1])) {
-diff --git a/src/util_test.cc b/src/util_test.cc
-index 8467e2a..d76954c 100644
---- a/src/util_test.cc
-+++ b/src/util_test.cc
-@@ -152,6 +152,10 @@ TEST(CanonicalizePath, PathSamples) {
-   path = "foo/..";
-   CanonicalizePath(&path);
-   EXPECT_EQ(".", path);
-+
-+  path = "foo/.._bar";
-+  CanonicalizePath(&path);
-+  EXPECT_EQ("foo/.._bar", path);
- }
- 
- #ifdef _WIN32
--- 
-2.45.0.windows.1
-


=====================================
extras/tools/SHA512SUMS
=====================================
@@ -14,7 +14,7 @@ e9785f3d620a204b7d20222888917dc065c2036cae28667065bf7862dfa1b25235095a12fd04efdb
 ef6c3b9edc7d69c3847324134630a4fb4316e394fa3e38effb8ef3d0c03e48574d43cadf06a774355d7e43a4d7a70e4760c5242807cf4e67331af70d205b9cb0  nasm-2.16.03.tar.gz
 e2a58dde1cae3e6b79c03e7ef3d888f7577c1f4cba283b3b0f31123ceea8c33d7c9700e83de57104644de23e5f5c374868caa0e091f9c45edbbe87b98ee51c04  gettext-0.22.tar.gz
 d24849b93de58b20f518c071687e7bfa653a96600382f36c4cf7fc1047656458f75f093b911b786b18b6931b2453cb60868ecbe07cc7d2984e5981a874b34942  help2man-1.47.6.tar.xz
-37b3a421419b16930e53181c431fe3b4afd55ac54733a5df08376641fd2fb88eeb73ee7abe3788f3e491e7c1b215c7f35aefa66f44b09008ad22b76ab2998830  ninja-1.11.1.tar.gz
+f5aeb32ec007c31663488516765b6b37df472eee85047592e111914599b32003376a56bf79f501b14a0b317bb94e6c510d889dccf1aa76b5b057a277c719e859  ninja-1.13.2.g7659b.kitware.jobserver-pipe-1.tar.gz
 4e6ad56e18c7d5b244b94b99c7e42489b8d4e79634abb97607c3f277f74b0c3c1cb043ba48816f444d2960fe96dc38459c404207e415a1401f5fad7c6f5d60e5  meson-1.10.0.tar.gz
 e4e4df9f191152241c813e3f79f6afdc4b8a0a6d9e94d76f2b9fbea6ab98a9f5280376ec34325b5a08bc93e5b702fb2e7183488294457ee8bed33e1ec8aa4a35  libtool-2.6.2.tar.gz
 b4de208f179b68d4c6454139ca60d66ed3ef3893a560d6159a056640f83d3ee67cdf6ffb88971cdba35449dba4b597eaa8b4ae908127ef7fd58c89f40bf9a705  zstd-1.5.7.tar.gz


=====================================
extras/tools/ninja-1.11.1-replace-pipes-quote-with-shlex-quote.patch deleted
=====================================
@@ -1,36 +0,0 @@
-From 9cf13cd1ecb7ae649394f4133d121a01e191560b Mon Sep 17 00:00:00 2001
-From: Byoungchan Lee <byoungchan.lee at gmx.com>
-Date: Mon, 9 Oct 2023 20:13:20 +0900
-Subject: [PATCH] Replace pipes.quote with shlex.quote in configure.py
-
-Python 3.12 deprecated the pipes module and it will be removed
-in Python 3.13. In configure.py, I have replaced the usage of pipes.quote
-with shlex.quote, which is the exactly same function as pipes.quote.
-
-For more details, refer to PEP 0594: https://peps.python.org/pep-0594
----
- configure.py | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/configure.py b/configure.py
-index 588250aa8a..c6973cd1a5 100755
---- a/configure.py
-+++ b/configure.py
-@@ -21,7 +21,7 @@
- 
- from optparse import OptionParser
- import os
--import pipes
-+import shlex
- import string
- import subprocess
- import sys
-@@ -262,7 +262,7 @@ def _run_command(self, cmdline):
- env_keys = set(['CXX', 'AR', 'CFLAGS', 'CXXFLAGS', 'LDFLAGS'])
- configure_env = dict((k, os.environ[k]) for k in os.environ if k in env_keys)
- if configure_env:
--    config_str = ' '.join([k + '=' + pipes.quote(configure_env[k])
-+    config_str = ' '.join([k + '=' + shlex.quote(configure_env[k])
-                            for k in configure_env])
-     n.variable('configure_env', config_str + '$ ')
- n.newline()


=====================================
extras/tools/packages.mak
=====================================
@@ -58,8 +58,8 @@ HELP2MAN_URL=$(GNU)/help2man/help2man-$(HELP2MAN_VERSION).tar.xz
 MESON_VERSION=1.10.0
 MESON_URL=https://github.com/mesonbuild/meson/releases/download/$(MESON_VERSION)/meson-$(MESON_VERSION).tar.gz
 
-NINJA_VERSION=1.11.1
-NINJA_BUILD_NAME=$(NINJA_VERSION).g95dee.kitware.jobserver-1
+NINJA_VERSION=1.13.2
+NINJA_BUILD_NAME=$(NINJA_VERSION).g7659b.kitware.jobserver-pipe-1
 NINJA_URL=https://github.com/Kitware/ninja/archive/refs/tags/v$(NINJA_BUILD_NAME).tar.gz
 
 ZSTD_VERSION=1.5.7


=====================================
extras/tools/tools.mak
=====================================
@@ -484,24 +484,24 @@ CLEAN_FILE += .buildmeson
 # ninja build
 #
 
-ninja-$(NINJA_VERSION).tar.gz:
+ninja-$(NINJA_BUILD_NAME).tar.gz:
 	$(call download_pkg,$(NINJA_URL),ninja)
 
+ninja: .cmake
 ninja: UNPACK_DIR=ninja-$(NINJA_BUILD_NAME)
-.getninja: ninja-$(NINJA_VERSION).tar.gz
-ninja: ninja-$(NINJA_VERSION).tar.gz
+.getninja: ninja-$(NINJA_BUILD_NAME).tar.gz
+ninja: ninja-$(NINJA_BUILD_NAME).tar.gz
 	$(UNPACK)
-	$(APPLY) $(TOOLS)/ninja-1.11.1-replace-pipes-quote-with-shlex-quote.patch
-	$(APPLY) $(TOOLS)/0001-CanonicalizePath-Remove-kMaxComponents-limit.patch
-	$(APPLY) $(TOOLS)/0002-CanonicalizePath-fix-a-b-._foo-a-replacement.patch
 	$(MOVE)
 
 .buildninja: ninja
-	(cd $<; python3 ./configure.py --bootstrap && mv ninja $(PREFIX)/bin/)
+	cmake -S $< -B $</vlc_build -DCMAKE_INSTALL_PREFIX:STRING=$(PREFIX) -DBUILD_TESTING=OFF
+	+cmake --build $</vlc_build
+	+cmake --install $</vlc_build
 	touch $@
 
 CLEAN_PKG += ninja
-DISTCLEAN_PKG += ninja-$(NINJA_VERSION).tar.gz
+DISTCLEAN_PKG += ninja-$(NINJA_BUILD_NAME).tar.gz
 CLEAN_FILE += .buildninja
 
 #



View it on GitLab: https://code.videolan.org/videolan/vlc/-/compare/73d9faf6a1cb16fed564d56fb799de8a48c49b6b...02731dc585060aa258490f3b748d374be0d2906a

-- 
View it on GitLab: https://code.videolan.org/videolan/vlc/-/compare/73d9faf6a1cb16fed564d56fb799de8a48c49b6b...02731dc585060aa258490f3b748d374be0d2906a
You're receiving this email because of your account on code.videolan.org. Manage all notifications: https://code.videolan.org/-/profile/notifications | Help: https://code.videolan.org/help




More information about the vlc-commits mailing list