[vlc-commits] [Git][videolan/vlc][3.0.x] 14 commits: contrib: ssh2: use Require instead of hardcoding library names

Felix Paul Kühne (@fkuehne) gitlab at videolan.org
Fri May 29 13:25:30 UTC 2026



Felix Paul Kühne pushed to branch 3.0.x at VideoLAN / VLC


Commits:
9624441c by Steve Lhomme at 2026-05-29T14:04:10+02:00
contrib: ssh2: use Require instead of hardcoding library names

It handles better the circular dependencies and order when linking with sftp.

- - - - -
42adb3e2 by Marvin Scholz at 2026-05-29T14:04:10+02:00
contrib: gpg-error: Remove Tizen specific rules

(cherry picked from commit 7369bb7287f4578427cc3dac6f89cacc7a5ee28a) (rebased)
rebased:
- VLC 4 had more patches around
Signed-off-by: Steve Lhomme <robux4 at ycbcr.xyz>

- - - - -
3b25f844 by Alexandre Janniaux at 2026-05-29T14:04:10+02:00
contrib: gpg-error: fix darwin triplet handling

de-versionning was done before alias selection, and armv7-apple-darwin
wasn't aliased to arm-apple-darwin, leading to failure finding the
correct triplet.

(cherry picked from commit 0d062895184d6b859e537ab087eeea7381cc4daf)
Signed-off-by: Steve Lhomme <robux4 at ycbcr.xyz>

- - - - -
5b4d4087 by Rémi Denis-Courmont at 2026-05-29T14:04:10+02:00
contrib: gpg-error: remove broken Android hacks

Proper handling of errors and interrupts of course requires that the
target only exists on succesful completion. .DELETE_ON_ERROR cannot be
used for directories. The contribs source README indeed has required to
keep $(MOVE) for as long as the current incarnation of contribs has
existed.

This hack is no longer necessary anyway as per the previous change.

(cherry picked from commit 7c047fa9d9ba82b699cb4acf3eb4e94ed2f2c404) (rebased)
rebased:
- the patches around are slightly different
Signed-off-by: Steve Lhomme <robux4 at ycbcr.xyz>

- - - - -
e009ce2d by Steve Lhomme at 2026-05-29T14:04:10+02:00
contrib: gpg-error: disable executables via the make call

(cherry picked from commit 708dc5ba9992f79f2dde48239586448dd5440f69) (rebased)
rebased:
- the patches around are slightly different
Signed-off-by: Steve Lhomme <robux4 at ycbcr.xyz>

- - - - -
becc3f45 by Steve Lhomme at 2026-05-29T14:04:10+02:00
contrib: gpg-error: update to 1.49

gcrypt requires gpg-error via pkg-config in static builds so we should
require a gpg-error version with the .pc file.

It contains a .pc file since 1.33 which was released in 2018.

After 1.49 the library adds process spawning which doesn't compile on my
of our platforms.

(cherry picked from commit 7aa97996ebd5e09392e8e6f31eb31a30bd6dcbdb) (edited)
edited:
- VLC 3 doesn't use call update_autoconfig
Signed-off-by: Steve Lhomme <robux4 at ycbcr.xyz>

- - - - -
96ae54c5 by Martin Storsjö at 2026-05-29T14:04:10+02:00
contrib: gpg-error: Fix the WCHAR patch to use the right *cpy function

This fixes build errors with current Clang versions, due to the
mismatched pointers with strcpy.

The previous form of this patch errored out like this:

    ../../src/estream.c:5104:11: error: incompatible pointer
     types passing 'WCHAR *' (aka 'unsigned short *') to parameter of type 'char *' [-Wincompatible-pointer-types]
     5104 |   strcpy (p, "_estream");
          |           ^
    /opt/llvm-mingw/aarch64-w64-mingw32/include/string.h:61:45: note:
     passing argument to parameter '_Dest' here
       61 |   char * __cdecl strcpy(char * __restrict__ _Dest,const char * __restrict__ _Source);
          |                                             ^

(cherry picked from commit 3f0a3546730d5fa97aa257200954a5f0c117a797)
Signed-off-by: Steve Lhomme <robux4 at ycbcr.xyz>

- - - - -
ab1387ce by Steve Lhomme at 2026-05-29T14:04:10+02:00
contrib: gpg-error: do not use threading

The only code using gpg-error is gcrypt (and VLC to get error values).
It doesn't use estreams or the threading API provided by gpg-error.

This allows to build on all platforms without having to figure out
which GPGRT_LOCK_INITIALIZER to use.

(cherry picked from commit 3738e7799d1c0baf7b881ad699ac4294cec6495d) (rebased)
rebased:
- VLC 3 doesn't use call update_autoconfig
Signed-off-by: Steve Lhomme <robux4 at ycbcr.xyz>

- - - - -
79c589a0 by Steve Lhomme at 2026-05-29T14:04:10+02:00
contrib: gpg-error: fix --disable-threads usage

The locking API is still called with Win32/POSIX structures even though the locks
are not defined the same way with --disable-threads.
We just turn the locking code off in --disable-threads (locking does nothing).

Fixes a crash on exit on Windows where _gpgrt_fflush (NULL) is always called,
locking estream_list_lock that is not initialized as expected.

(cherry picked from commit de7ff2b6ccf34212cf737b5ddc24da67cebb99f6)
Signed-off-by: Steve Lhomme <robux4 at ycbcr.xyz>

- - - - -
0a20e1aa by Steve Lhomme at 2026-05-29T14:04:10+02:00
contrib: gpg-error: update to 1.56

(cherry picked from commit f581aa285168adc7bbc024206cdf87a37a1bfe3e)
Signed-off-by: Steve Lhomme <robux4 at ycbcr.xyz>

- - - - -
252e397a by Steve Lhomme at 2026-05-29T14:04:10+02:00
contrib: gpg-error: use ANSI version of Environment API's as the rest of the code

When setting -DUNICODE in UWP builds it doesn't match the API.

(cherry picked from commit ed1037d9add05553f54ccc6a69409012d2a4e466)
Signed-off-by: Steve Lhomme <robux4 at ycbcr.xyz>

- - - - -
76b5ca27 by Steve Lhomme at 2026-05-29T14:04:10+02:00
contrib: gpg-error: disable more unused UWP code

- - - - -
a939201d by Steve Lhomme at 2026-05-29T14:04:10+02:00
contrib: gpg-error: disable registry access in UWP

- - - - -
d8f5cc95 by Steve Lhomme at 2026-05-29T14:04:10+02:00
NEWS: add gpg-error update

- - - - -


27 changed files:

- NEWS
- + contrib/src/gpg-error/0004-use-WCHAR-API-for-temporary-windows-folder.patch
- + contrib/src/gpg-error/0007-don-t-use-GetThreadLocale-on-UWP.patch
- + contrib/src/gpg-error/0008-don-t-use-GetUserNameW-on-Windows-10.patch
- + contrib/src/gpg-error/0009-gpg-error-config.in-add-missing-GPG_ERROR_CONFIG_LIB.patch
- + contrib/src/gpg-error/0011-logging-add-ws2tcpip.h-include-for-proper-inet_pton-.patch
- + contrib/src/gpg-error/0012-use-GetCurrentProcessId-in-UWP.patch
- + contrib/src/gpg-error/0013-configure-allow-building-Windows-with-disable-thread.patch
- + contrib/src/gpg-error/0014-core-disable-locking-API-with-disable-threads.patch
- + contrib/src/gpg-error/0015-core-disable-process-spawning-with-disable-threads.patch
- + contrib/src/gpg-error/0016-core-disable-registry-access-in-UWP.patch
- contrib/src/gpg-error/SHA512SUMS
- − contrib/src/gpg-error/darwin-triplet.patch
- contrib/src/gpg-error/gpg-error-createfile2.patch
- contrib/src/gpg-error/gpg-error-uwp-GetFileSize.patch
- contrib/src/gpg-error/gpg-error-uwp-fix.patch
- − contrib/src/gpg-error/lock-obj-pub.posix.h
- − contrib/src/gpg-error/missing-unistd-include.patch
- − contrib/src/gpg-error/no-executable.patch
- contrib/src/gpg-error/rules.mak
- − contrib/src/gpg-error/version-bump-gawk-5.patch
- − contrib/src/gpg-error/win32-extern-struct.patch
- − contrib/src/gpg-error/win32-unicode.patch
- − contrib/src/gpg-error/windres-make.patch
- − contrib/src/gpg-error/winrt.patch
- − contrib/src/ssh2/0001-fix-gcrypt-linking.patch
- contrib/src/ssh2/rules.mak


Changes:

=====================================
NEWS
=====================================
@@ -28,6 +28,7 @@ Contrib:
  * Update flac to 1.4.2
  * Update FFmpeg to 8.1
  * Update gme to 0.6.4
+ * Update gpg-error to 1.56
  * Update jpeg to v9f
  * Update libtasn1 to 4.19.0
  * Update libxml2 to 2.15.1


=====================================
contrib/src/gpg-error/0004-use-WCHAR-API-for-temporary-windows-folder.patch
=====================================
@@ -0,0 +1,61 @@
+From 1def00f0b864977a7477219c5a8277fcc0e8b9a3 Mon Sep 17 00:00:00 2001
+From: Steve Lhomme <robux4 at ycbcr.xyz>
+Date: Thu, 23 Oct 2025 12:17:08 +0200
+Subject: [PATCH 04/14] use WCHAR API for temporary windows folder
+
+---
+ src/estream.c | 16 ++++++++--------
+ 1 file changed, 8 insertions(+), 8 deletions(-)
+
+diff --git a/src/estream.c b/src/estream.c
+index 7e1d55c..6062001 100644
+--- a/src/estream.c
++++ b/src/estream.c
+@@ -5115,27 +5115,27 @@ tmpfd (void)
+ {
+ #ifdef HAVE_W32_SYSTEM
+   int attempts, n;
+-  char buffer[MAX_PATH+9+12+1];
+-# define mystrlen(a) strlen (a)
+-  char *name, *p;
++  WCHAR buffer[MAX_PATH+9+12+1];
++# define mystrlen(a) wcslen (a)
++  WCHAR *name, *p;
+   HANDLE file;
+   int pid = GetCurrentProcessId ();
+   unsigned int value;
+   int i;
+ 
+-  n = GetTempPath (MAX_PATH+1, buffer);
++  n = GetTempPathW (MAX_PATH+1, buffer);
+   if (!n || n > MAX_PATH || mystrlen (buffer) > MAX_PATH)
+     {
+       _set_errno (ENOENT);
+       return -1;
+     }
+   p = buffer + mystrlen (buffer);
+-  strcpy (p, "_estream");
++  wcscpy (p, L"_estream");
+   p += 8;
+   /* We try to create the directory but don't care about an error as
+      it may already exist and the CreateFile would throw an error
+      anyway.  */
+-  CreateDirectory (buffer, NULL);
++  CreateDirectoryW (buffer, NULL);
+   *p++ = '\\';
+   name = p;
+   for (attempts=0; attempts < 10; attempts++)
+@@ -5147,8 +5147,8 @@ tmpfd (void)
+           *p++ = tohex (((value >> 28) & 0x0f));
+           value <<= 4;
+         }
+-      strcpy (p, ".tmp");
+-      file = CreateFile (buffer,
++      wcscpy (p, L".tmp");
++      file = CreateFileW (buffer,
+                          GENERIC_READ | GENERIC_WRITE,
+                          0,
+                          NULL,
+-- 
+2.45.1.windows.1
+


=====================================
contrib/src/gpg-error/0007-don-t-use-GetThreadLocale-on-UWP.patch
=====================================
@@ -0,0 +1,29 @@
+From bed81fbf76b81b6468a8e04cd07155f8358773ab Mon Sep 17 00:00:00 2001
+From: Steve Lhomme <robux4 at ycbcr.xyz>
+Date: Thu, 23 Oct 2025 12:19:07 +0200
+Subject: [PATCH 07/14] don't use GetThreadLocale on UWP
+
+---
+ src/w32-gettext.c | 4 ++++
+ 1 file changed, 4 insertions(+)
+
+diff --git a/src/w32-gettext.c b/src/w32-gettext.c
+index bf085cd..3186458 100644
+--- a/src/w32-gettext.c
++++ b/src/w32-gettext.c
+@@ -648,8 +648,12 @@ my_nl_locale_name (const char *categoryname)
+       if (retval != NULL && retval[0] != '\0')
+         return retval;
+ 
++#if !WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_DESKTOP)
++      lcid = LOCALE_CUSTOM_DEFAULT;
++#else
+       /* Use native Win32 API locale ID.  */
+       lcid = GetThreadLocale ();
++#endif
+       /* Strip off the sorting rules, keep only the language part.  */
+       langid = LANGIDFROMLCID (lcid);
+     }
+-- 
+2.45.1.windows.1
+


=====================================
contrib/src/gpg-error/0008-don-t-use-GetUserNameW-on-Windows-10.patch
=====================================
@@ -0,0 +1,52 @@
+From e2df6855f455bf3731d407e00da7d6a39827b0ea Mon Sep 17 00:00:00 2001
+From: Steve Lhomme <robux4 at ycbcr.xyz>
+Date: Thu, 23 Oct 2025 12:19:44 +0200
+Subject: [PATCH 08/14] don't use GetUserNameW on Windows 10+
+
+It's not available in UWP
+---
+ src/sysutils.c | 18 +++++++++++++++++-
+ 1 file changed, 17 insertions(+), 1 deletion(-)
+
+diff --git a/src/sysutils.c b/src/sysutils.c
+index b6d6a55..2830452 100644
+--- a/src/sysutils.c
++++ b/src/sysutils.c
+@@ -685,10 +685,11 @@ _gpgrt_getusername (void)
+   char *result = NULL;
+ 
+ #ifdef HAVE_W32_SYSTEM
++  char *buf;
++#if _WIN32_WINNT < 0x0A00 // _WIN32_WINNT_WIN10
+   wchar_t wtmp[1];
+   wchar_t *wbuf;
+   DWORD wsize = 1;
+-  char *buf;
+ 
+   GetUserNameW (wtmp, &wsize);
+   wbuf = _gpgrt_malloc (wsize * sizeof *wbuf);
+@@ -705,6 +706,21 @@ _gpgrt_getusername (void)
+     }
+   buf = _gpgrt_wchar_to_utf8 (wbuf, wsize);
+   xfree (wbuf);
++#else
++  buf = _gpgrt_malloc (32767);
++  if (!buf)
++    {
++      _gpgrt_w32_set_errno (-1);
++      return NULL;
++    }
++  DWORD written = GetEnvironmentVariableA("USERNAME", buf, 32767);
++  if (written == 0)
++    {
++      _gpgrt_w32_set_errno (-1);
++      xfree (buf);
++      return NULL;
++    }
++#endif
+   return buf;
+ 
+ #else /* !HAVE_W32_SYSTEM */
+-- 
+2.45.1.windows.1
+


=====================================
contrib/src/gpg-error/0009-gpg-error-config.in-add-missing-GPG_ERROR_CONFIG_LIB.patch
=====================================
@@ -0,0 +1,27 @@
+From 8ceb454e05af8be392dc18309f1800a4945398a5 Mon Sep 17 00:00:00 2001
+From: Steve Lhomme <robux4 at ycbcr.xyz>
+Date: Thu, 23 Oct 2025 12:20:16 +0200
+Subject: [PATCH 09/14] gpg-error-config.in: add missing
+ GPG_ERROR_CONFIG_LIBS_PRIVATE
+
+Otherwise the confirmity check fails
+---
+ src/gpg-error-config.in | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/gpg-error-config.in b/src/gpg-error-config.in
+index 3b45928..e50a9d2 100644
+--- a/src/gpg-error-config.in
++++ b/src/gpg-error-config.in
+@@ -84,7 +84,7 @@ while test $# -gt 0; do
+             fi
+ 	    ;;
+ 	--libs)
+-	    output="$output @GPG_ERROR_CONFIG_LIBS@"
++	    output="$output @GPG_ERROR_CONFIG_LIBS@ @GPG_ERROR_CONFIG_LIBS_PRIVATE@"
+             if test $mt = yes ; then
+                 output="$output @GPG_ERROR_CONFIG_MT_LIBS@"
+             fi
+-- 
+2.45.1.windows.1
+


=====================================
contrib/src/gpg-error/0011-logging-add-ws2tcpip.h-include-for-proper-inet_pton-.patch
=====================================
@@ -0,0 +1,25 @@
+From 349afde1939f2faaad667024428bd02cb26af86b Mon Sep 17 00:00:00 2001
+From: Steve Lhomme <robux4 at ycbcr.xyz>
+Date: Thu, 23 Oct 2025 12:23:02 +0200
+Subject: [PATCH 11/14] logging: add ws2tcpip.h include for proper inet_pton
+ definition
+
+---
+ src/logging.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/src/logging.c b/src/logging.c
+index 4f52d80..5aded01 100644
+--- a/src/logging.c
++++ b/src/logging.c
+@@ -37,6 +37,7 @@
+ # ifdef HAVE_WINSOCK2_H
+ #  include <winsock2.h>
+ # endif
++# include <ws2tcpip.h>
+ # include <windows.h>
+ #else /*!HAVE_W32_SYSTEM*/
+ # include <sys/socket.h>
+-- 
+2.45.1.windows.1
+


=====================================
contrib/src/gpg-error/0012-use-GetCurrentProcessId-in-UWP.patch
=====================================
@@ -0,0 +1,28 @@
+From 6fbb7b9ec5d4102e1a4c2fcbdc31dd080959963d Mon Sep 17 00:00:00 2001
+From: Steve Lhomme <robux4 at ycbcr.xyz>
+Date: Thu, 23 Oct 2025 12:24:20 +0200
+Subject: [PATCH 12/14] use GetCurrentProcessId() in UWP
+
+getpid() is not declared
+---
+ src/logging.c | 4 ++++
+ 1 file changed, 4 insertions(+)
+
+diff --git a/src/logging.c b/src/logging.c
+index 5aded01..2cacb45 100644
+--- a/src/logging.c
++++ b/src/logging.c
+@@ -62,6 +62,10 @@
+ #  define S_IROTH S_IRUSR
+ #  define S_IWOTH S_IWUSR
+ # endif
++
++# if !WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_DESKTOP)
++#  define getpid()  GetCurrentProcessId()
++# endif
+ #endif
+ 
+ 
+-- 
+2.45.1.windows.1
+


=====================================
contrib/src/gpg-error/0013-configure-allow-building-Windows-with-disable-thread.patch
=====================================
@@ -0,0 +1,38 @@
+From aa9ec7d915bb43cb35e685f384142eb347ccea9b Mon Sep 17 00:00:00 2001
+From: Steve Lhomme <robux4 at ycbcr.xyz>
+Date: Fri, 24 Oct 2025 08:28:33 +0200
+Subject: [PATCH 13/14] configure: allow building Windows with
+ --disable-threads
+
+---
+ configure.ac | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index c327835..4ed37e1 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -154,9 +154,9 @@ esac
+ AC_SUBST(EXTRA_LIBS_FOR_BUILD)
+ 
+ 
+-if test "$have_w32_system" != yes; then
++dnl if test "$have_w32_system" != yes; then
+   gl_THREADLIB_EARLY
+-fi
++dnl fi
+ 
+ # We build libgpg-error with large file support so that we have a 64
+ # bit off_t.  Our external interface uses the gpgrt_off_t which is
+@@ -634,7 +634,7 @@ if test "$have_w32_system" = yes; then
+     if test "$have_w64_system" = yes; then
+       AC_DEFINE(HAVE_W64_SYSTEM,1,[Defined if we run on 64 bit W32 API system])
+     fi
+-    force_use_syscfg=yes
++    dnl force_use_syscfg=yes
+ fi
+ if test x"$gl_use_threads" = xno; then
+   lock_obj_h_generated=yes
+-- 
+2.45.1.windows.1
+


=====================================
contrib/src/gpg-error/0014-core-disable-locking-API-with-disable-threads.patch
=====================================
@@ -0,0 +1,132 @@
+From 749be993cfc7a9994f4e0733182fc6dbb88bd655 Mon Sep 17 00:00:00 2001
+From: Steve Lhomme <robux4 at ycbcr.xyz>
+Date: Thu, 6 Nov 2025 13:31:25 +0100
+Subject: [PATCH 14/14] core: disable locking API with --disable-threads
+
+The _gpgrt_lock_t structure used in the specialized lock API's are not
+matching the structure set by gen-lock-obj.sh with --disable-threads.
+
+In particular LOCK_ABI_VERSION is not set.
+---
+ src/gen-lock-obj.sh | 2 ++
+ src/gpgrt-int.h     | 9 +++++++++
+ src/posix-lock.c    | 3 +++
+ src/posix-thread.c  | 3 +++
+ src/w32-lock.c      | 3 +++
+ src/w32-thread.c    | 3 +++
+ 6 files changed, 23 insertions(+)
+
+diff --git a/src/gen-lock-obj.sh b/src/gen-lock-obj.sh
+index 6e78c5f..ae867ba 100755
+--- a/src/gen-lock-obj.sh
++++ b/src/gen-lock-obj.sh
+@@ -59,6 +59,8 @@ typedef struct
+ } gpgrt_lock_t;
+ 
+ #define GPGRT_LOCK_INITIALIZER {-1}
++
++#define GPGRT_LOCK_NOT_SUPPORTED 1
+ EOF
+ else
+ AWK_VERSION_OUTPUT=$($AWK 'BEGIN { print PROCINFO["version"] }')
+diff --git a/src/gpgrt-int.h b/src/gpgrt-int.h
+index 8d2a936..f859a5b 100644
+--- a/src/gpgrt-int.h
++++ b/src/gpgrt-int.h
+@@ -137,12 +137,21 @@ void _gpgrt_post_syscall (void);
+ 
+ const char *_gpg_error_check_version (const char *req_version);
+ 
++#ifdef GPGRT_LOCK_NOT_SUPPORTED
++#define _gpgrt_lock_init(l)     0
++#define _gpgrt_lock_lock(l)     0
++#define _gpgrt_lock_trylock(l)  0
++#define _gpgrt_lock_unlock(l)   0
++#define _gpgrt_lock_destroy(l)  0
++#define _gpgrt_yield()          0
++#else
+ gpg_err_code_t _gpgrt_lock_init (gpgrt_lock_t *lockhd);
+ gpg_err_code_t _gpgrt_lock_lock (gpgrt_lock_t *lockhd);
+ gpg_err_code_t _gpgrt_lock_trylock (gpgrt_lock_t *lockhd);
+ gpg_err_code_t _gpgrt_lock_unlock (gpgrt_lock_t *lockhd);
+ gpg_err_code_t _gpgrt_lock_destroy (gpgrt_lock_t *lockhd);
+ gpg_err_code_t _gpgrt_yield (void);
++#endif
+ 
+ 
+ 

+diff --git a/src/posix-lock.c b/src/posix-lock.c
+index 85ec660..79a639a 100644
+--- a/src/posix-lock.c
++++ b/src/posix-lock.c
+@@ -42,6 +42,7 @@
+ #include "lock.h"
+ #include "posix-lock-obj.h"
+ 
++#ifndef GPGRT_LOCK_NOT_SUPPORTED
+ 
+ #if USE_POSIX_THREADS
+ # if USE_POSIX_THREADS_FROM_LIBC && HAVE_SYS_SINGLE_THREADED_H
+@@ -298,3 +299,5 @@ _gpgrt_lock_destroy (gpgrt_lock_t *lockhd)
+ 
+   return rc;
+ }
++
++#endif /* !GPGRT_LOCK_NOT_SUPPORTED */
+diff --git a/src/posix-thread.c b/src/posix-thread.c
+index 36c81ba..f3d3a0f 100644
+--- a/src/posix-thread.c
++++ b/src/posix-thread.c
+@@ -43,6 +43,7 @@
+ 
+ #include "thread.h"
+ 
++#ifndef GPGRT_LOCK_NOT_SUPPORTED
+ 
+ 
+ gpg_err_code_t
+@@ -66,3 +67,5 @@ _gpgrt_yield (void)
+ 
+   return 0;
+ }
++
++#endif /* !GPGRT_LOCK_NOT_SUPPORTED */
+diff --git a/src/w32-lock.c b/src/w32-lock.c
+index feed1e6..cd14f5c 100644
+--- a/src/w32-lock.c
++++ b/src/w32-lock.c
+@@ -37,6 +37,7 @@
+ #include "w32-lock-obj.h"
+ 
+ 
++#ifndef GPGRT_LOCK_NOT_SUPPORTED
+ 
+ static _gpgrt_lock_t *
+ get_lock_object (gpgrt_lock_t *lockhd)
+@@ -159,3 +160,5 @@ _gpgrt_lock_destroy (gpgrt_lock_t *lockhd)
+   lock->started = -1;
+   return 0;
+ }
++
++#endif /* !GPGRT_LOCK_NOT_SUPPORTED */
+diff --git a/src/w32-thread.c b/src/w32-thread.c
+index c389635..69599f2 100644
+--- a/src/w32-thread.c
++++ b/src/w32-thread.c
+@@ -35,6 +35,7 @@
+ #include "gpgrt-int.h"
+ #include "thread.h"
+ 
++#ifndef GPGRT_LOCK_NOT_SUPPORTED
+ 
+ gpg_err_code_t
+ _gpgrt_yield (void)
+@@ -44,3 +45,5 @@ _gpgrt_yield (void)
+   _gpgrt_post_syscall ();
+   return 0;
+ }
++
++#endif /* !GPGRT_LOCK_NOT_SUPPORTED */
+-- 
+2.45.1.windows.1
+


=====================================
contrib/src/gpg-error/0015-core-disable-process-spawning-with-disable-threads.patch
=====================================
@@ -0,0 +1,72 @@
+From 10922c66bd0b717114c6b3080e0737b7676afd86 Mon Sep 17 00:00:00 2001
+From: Steve Lhomme <robux4 at ycbcr.xyz>
+Date: Thu, 6 Nov 2025 14:52:04 +0100
+Subject: [PATCH 15/15] core: disable process spawning with --disable-threads
+
+---
+ src/spawn-posix.c | 4 ++++
+ src/spawn-w32.c   | 4 ++++
+ src/visibility.c  | 2 ++
+ 3 files changed, 10 insertions(+)
+
+diff --git a/src/spawn-posix.c b/src/spawn-posix.c
+index 8cdd032..0791b8a 100644
+--- a/src/spawn-posix.c
++++ b/src/spawn-posix.c
+@@ -58,6 +58,8 @@
+ #define _GPGRT_NEED_AFLOCAL 1
+ #include "gpgrt-int.h"
+ 
++#ifndef GPGRT_LOCK_NOT_SUPPORTED
++
+ /* Definition for the gpgrt_spawn_actions_t.  Note that there is a
+  * different one for Windows.  */
+ struct gpgrt_spawn_actions {
+@@ -1066,3 +1068,5 @@ _gpgrt_process_wait_list (gpgrt_process_t *process_list, int count, int hang)
+ 
+   return ec;
+ }
++
++#endif /* !GPGRT_LOCK_NOT_SUPPORTED */
+diff --git a/src/spawn-w32.c b/src/spawn-w32.c
+index cb15dd0..3a3b648 100644
+--- a/src/spawn-w32.c
++++ b/src/spawn-w32.c
+@@ -49,6 +49,8 @@
+ #define NEED_STRUCT_SPAWN_CB_ARG
+ #include "gpgrt-int.h"
+ 
++#ifndef GPGRT_LOCK_NOT_SUPPORTED
++
+ /* Define to 1 do enable debugging.  */
+ #define DEBUG_W32_SPAWN 0
+ 
+@@ -1218,3 +1220,5 @@ _gpgrt_process_wait_list (gpgrt_process_t *process_list, int count, int hang)
+ 
+   return ec;
+ }
++
++#endif /* !GPGRT_LOCK_NOT_SUPPORTED */
+diff --git a/src/visibility.c b/src/visibility.c
+index 54c4e2a..4a97b6d 100644
+--- a/src/visibility.c
++++ b/src/visibility.c
+@@ -1133,6 +1133,7 @@ gpgrt_close_all_fds (int from, int *keep_fds)
+ }
+ #endif /*0*/
+ 
++#ifndef GPGRT_LOCK_NOT_SUPPORTED
+ gpg_err_code_t
+ gpgrt_spawn_actions_new (gpgrt_spawn_actions_t *r_act)
+ {
+@@ -1257,6 +1258,7 @@ gpgrt_process_release (gpgrt_process_t process)
+ {
+   _gpgrt_process_release (process);
+ }
++#endif GPGRT_LOCK_NOT_SUPPORTED
+ 
+ 
+ int
+-- 
+2.45.1.windows.1
+


=====================================
contrib/src/gpg-error/0016-core-disable-registry-access-in-UWP.patch
=====================================
@@ -0,0 +1,50 @@
+From b2d2a1d4672dad47dc29d695b6e7b25c6371c272 Mon Sep 17 00:00:00 2001
+From: Steve Lhomme <robux4 at ycbcr.xyz>
+Date: Wed, 27 May 2026 12:08:17 +0200
+Subject: [PATCH 16/16] core: disable registry access in UWP
+
+---
+ src/w32-reg.c | 8 ++++++++
+ 1 file changed, 8 insertions(+)
+
+diff --git a/src/w32-reg.c b/src/w32-reg.c
+index 5bb8d43..29f20f3 100644
+--- a/src/w32-reg.c
++++ b/src/w32-reg.c
+@@ -46,6 +46,9 @@ char *
+ _gpgrt_w32_reg_query_string (const char *root, const char *dir,
+                              const char *name)
+ {
++#if !WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_DESKTOP)
++  return NULL;
++#else
+   HKEY root_key, key_handle;
+   DWORD n1, nbytes, type, flags;
+   char *result = NULL;
+@@ -198,6 +201,7 @@ _gpgrt_w32_reg_query_string (const char *root, const char *dir,
+  leave:
+   RegCloseKey (key_handle);
+   return result;
++#endif
+ }
+ 
+ 
+@@ -226,6 +230,9 @@ _gpgrt_w32_reg_query_string (const char *root, const char *dir,
+ char *
+ _gpgrt_w32_reg_get_string (const char *key_arg)
+ {
++#if !WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_DESKTOP)
++  return NULL;
++#else
+   char *key;
+   char *p1, *p2;
+   char *result;
+@@ -253,4 +260,5 @@ _gpgrt_w32_reg_get_string (const char *key_arg)
+   result = _gpgrt_w32_reg_query_string (*key? key : NULL, p1, p2);
+   xfree (key);
+   return result;
++#endif
+ }
+-- 
+2.52.0.windows.1
+


=====================================
contrib/src/gpg-error/SHA512SUMS
=====================================
@@ -1 +1 @@
-51b313c1159074fdbbce84f63bd8afd84b3b58cd608714865b25bed84c1862d050708aa06ac3dab92f1906593df5121161e594c2809653b0fb2c236cae5dcc2f  libgpg-error-1.27.tar.bz2
+ff4160f4133cf1a90eddf5f59d6248214b59db4f021f124302be37bf04fa1f2eb665560914cbe289095e630a31ba141252e7a72a8e6dbbc622cb135a2066259a  libgpg-error-1.56.tar.bz2


=====================================
contrib/src/gpg-error/darwin-triplet.patch deleted
=====================================
@@ -1,25 +0,0 @@
---- libgpg-error-1.27_orig/src/mkheader.c	2017-02-28 13:32:33.000000000 +0100
-+++ libgpg-error-1.27/src/mkheader.c	2020-01-23 11:36:50.000000000 +0100
-@@ -107,7 +107,21 @@
-           return xstrdup (lastalias);
-         }
-     }
--  return xstrdup (triplet);
-+  /* Darwin triplet de-versioning */
-+  char *res_triplet = xstrdup (triplet);
-+
-+  char *triplet_last = strrchr(res_triplet, '-');
-+  if (triplet_last == NULL) {
-+    fprintf (stderr, PGM ": unexpected host triplet missing any separator: '%s'",
-+               res_triplet);
-+    exit (1);
-+  }
-+  triplet_last++; /* Advance past the dash */
-+  if (strncmp("darwin", triplet_last, 6) == 0) {
-+    triplet_last[6] = '\0';
-+  }
-+
-+  return res_triplet;
- }
- 
- 


=====================================
contrib/src/gpg-error/gpg-error-createfile2.patch
=====================================
@@ -1,9 +1,49 @@
---- libgpg-error/src/estream.c.uwp	2023-05-23 09:53:33.222246200 +0200
-+++ libgpg-error/src/estream.c	2023-05-22 12:00:18.105186500 +0200
-@@ -4561,6 +4561,17 @@ tmpfd (void)
- #else
-       strcpy (p, ".tmp");
- #endif
+From 2b5fff174b5b9ebaff32e653f3accea0ac782acb Mon Sep 17 00:00:00 2001
+From: Steve Lhomme <robux4 at ycbcr.xyz>
+Date: Tue, 23 May 2023 14:31:16 +0200
+Subject: [PATCH 05/14] use CreateFile2 in Win8 as CreateFileW is forbidden in
+ UWP
+
+---
+ src/estream.c     | 24 ++++++++++++++++++++++++
+ src/spawn-w32.c   | 13 +++++++++++++
+ src/w32-gettext.c | 10 ++++++++++
+ 3 files changed, 47 insertions(+)
+
+diff --git a/src/estream.c b/src/estream.c
+index 6062001..f7ab037 100644
+--- a/src/estream.c
++++ b/src/estream.c
+@@ -2058,6 +2058,17 @@ func_file_create_w32 (void **cookie, HANDLE *rethd, const char *path,
+   else
+     creation_distribution |= OPEN_EXISTING;
+ 
++#if _WIN32_WINNT >= 0x0602 // _WIN32_WINNT_WIN8
++  CREATEFILE2_EXTENDED_PARAMETERS createExParams;
++  memset (&createExParams, 0, sizeof(createExParams));
++  createExParams.dwSize = sizeof(CREATEFILE2_EXTENDED_PARAMETERS);
++  createExParams.dwFileFlags = flags_and_attrs;
++  hd = CreateFile2 (wpath,
++                    desired_access,
++                    share_mode,
++                    creation_distribution, 
++                    &createExParams);
++#else
+   hd = CreateFileW (wpath,
+                     desired_access,
+                     share_mode,
+@@ -2065,6 +2076,7 @@ func_file_create_w32 (void **cookie, HANDLE *rethd, const char *path,
+                     creation_distribution,
+                     flags_and_attrs,
+                     NULL); /* template file  */
++#endif
+   if (hd == INVALID_HANDLE_VALUE)
+     {
+       _set_errno (map_w32_to_errno (GetLastError ()));
+@@ -5148,6 +5160,17 @@ tmpfd (void)
+           value <<= 4;
+         }
+       wcscpy (p, L".tmp");
 +#if _WIN32_WINNT >= 0x0602 // _WIN32_WINNT_WIN8
 +      CREATEFILE2_EXTENDED_PARAMETERS params;
 +      memset (&params, 0, sizeof params);
@@ -15,48 +55,68 @@
 +                         CREATE_NEW,
 +                         &params);
 +#else
-       file = CreateFile (buffer,
+       file = CreateFileW (buffer,
                           GENERIC_READ | GENERIC_WRITE,
                           0,
-@@ -4568,6 +4579,7 @@ tmpfd (void)
+@@ -5155,6 +5178,7 @@ tmpfd (void)
                           CREATE_NEW,
                           FILE_ATTRIBUTE_TEMPORARY | FILE_FLAG_DELETE_ON_CLOSE,
                           NULL);
 +#endif
        if (file != INVALID_HANDLE_VALUE)
          {
- #ifdef HAVE_W32CE_SYSTEM
---- libgpg-error/src/w32-gettext.c.uwp	2023-05-23 09:53:33.184247600 +0200
-+++ libgpg-error/src/w32-gettext.c	2023-05-22 11:45:24.077340000 +0200
-@@ -53,7 +53,7 @@
- #include "init.h"
- #include "gpg-error.h"
- 
--#if defined(HAVE_W32CE_SYSTEM) || WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_APP)
-+#if defined(HAVE_W32CE_SYSTEM) || !WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_DESKTOP)
- /* Forward declaration.  */
- static wchar_t *utf8_to_wchar (const char *string, size_t length, size_t *retlen);
- 
-@@ -72,9 +72,22 @@ MyCreateFileA (LPCSTR lpFileName, DWORD
-   if (!filename)
-     return INVALID_HANDLE_VALUE;
- 
-+#if !WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_DESKTOP)
-+  CREATEFILE2_EXTENDED_PARAMETERS createExParams;
-+  createExParams.dwSize = sizeof(CREATEFILE2_EXTENDED_PARAMETERS);
-+  createExParams.dwFileAttributes = dwFlagsAndAttributes & 0xFFFF;
-+  createExParams.dwFileFlags = dwFlagsAndAttributes & 0xFFF00000;
-+  createExParams.dwSecurityQosFlags = dwFlagsAndAttributes & 0x000F0000;
-+  createExParams.lpSecurityAttributes = lpSecurityAttributes;
-+  createExParams.hTemplateFile = hTemplateFile;
-+
-+  result = CreateFile2 (filename, dwDesiredAccess, dwSharedMode,
-+			dwCreationDisposition, &createExParams);
+           int fd = _open_osfhandle ((intptr_t)file, 0);
+diff --git a/src/spawn-w32.c b/src/spawn-w32.c
+index ecc9437..cb15dd0 100644
+--- a/src/spawn-w32.c
++++ b/src/spawn-w32.c
+@@ -224,10 +224,23 @@ w32_open_null (int for_write, int enable_null_device)
+       memset (&sec_attr, 0, sizeof sec_attr );
+       sec_attr.nLength = sizeof sec_attr;
+       sec_attr.bInheritHandle = TRUE;
++#if _WIN32_WINNT >= 0x0602 // _WIN32_WINNT_WIN8
++    {
++      CREATEFILE2_EXTENDED_PARAMETERS createExParams;
++      memset (&createExParams, 0, sizeof(createExParams));
++      createExParams.dwSize = sizeof(CREATEFILE2_EXTENDED_PARAMETERS);
++      createExParams.lpSecurityAttributes = &sec_attr;
++      hfile = CreateFile2 (L"nul",
++                           for_write? GENERIC_WRITE : GENERIC_READ,
++                           FILE_SHARE_READ | FILE_SHARE_WRITE,
++                           OPEN_EXISTING, &createExParams);
++    }
 +#else
-   result = CreateFileW (filename, dwDesiredAccess, dwSharedMode,
- 			lpSecurityAttributes, dwCreationDisposition,
- 			dwFlagsAndAttributes, hTemplateFile);
+       hfile = CreateFileW (L"nul",
+                            for_write? GENERIC_WRITE : GENERIC_READ,
+                            FILE_SHARE_READ | FILE_SHARE_WRITE,
+                            &sec_attr, OPEN_EXISTING, 0, NULL);
 +#endif
- 
-   err = GetLastError ();
-   free (filename);
+       if (hfile == INVALID_HANDLE_VALUE)
+         _gpgrt_log_debug ("can't open 'nul': ec=%d\n", (int)GetLastError ());
+       return hfile;
+diff --git a/src/w32-gettext.c b/src/w32-gettext.c
+index 5b15a77..42aa01c 100644
+--- a/src/w32-gettext.c
++++ b/src/w32-gettext.c
+@@ -1216,8 +1216,18 @@ load_domain (const char *filename)
+     if (!wfilename)
+       fh = INVALID_HANDLE_VALUE;
+     else
++#if _WIN32_WINNT >= 0x0602 // _WIN32_WINNT_WIN8
++    {
++      CREATEFILE2_EXTENDED_PARAMETERS createExParams;
++      memset (&createExParams, 0, sizeof(createExParams));
++      createExParams.dwSize = sizeof(CREATEFILE2_EXTENDED_PARAMETERS);
++      fh = CreateFile2 (wfilename, GENERIC_READ, FILE_SHARE_WRITE,
++                        OPEN_EXISTING, &createExParams);
++    }
++#else
+       fh = CreateFileW (wfilename, GENERIC_READ, FILE_SHARE_WRITE, NULL,
+                         OPEN_EXISTING, 0, NULL);
++#endif
+     xfree (wfilename);
+   }
+   if (fh == INVALID_HANDLE_VALUE)
+-- 
+2.45.1.windows.1
+


=====================================
contrib/src/gpg-error/gpg-error-uwp-GetFileSize.patch
=====================================
@@ -1,6 +1,17 @@
---- libgpg-error/src/w32-gettext.c.uwp	2023-05-23 09:53:33.184247600 +0200
-+++ libgpg-error/src/w32-gettext.c	2023-05-22 11:45:24.077340000 +0200
-@@ -1240,7 +1253,15 @@ load_domain (const char *filename)
+From 8e1e760bef6aa94e6e71000ead2bc21716a06d19 Mon Sep 17 00:00:00 2001
+From: Steve Lhomme <robux4 at ycbcr.xyz>
+Date: Thu, 23 Oct 2025 12:18:54 +0200
+Subject: [PATCH 06/14] don't use GetFileSize on UWP
+
+---
+ src/w32-gettext.c | 8 ++++++++
+ 1 file changed, 8 insertions(+)
+
+diff --git a/src/w32-gettext.c b/src/w32-gettext.c
+index 42aa01c..bf085cd 100644
+--- a/src/w32-gettext.c
++++ b/src/w32-gettext.c
+@@ -1233,7 +1233,15 @@ load_domain (const char *filename)
    if (fh == INVALID_HANDLE_VALUE)
      return NULL;
  
@@ -9,10 +20,13 @@
 +  if (GetFileInformationByHandleEx(fh, FileStandardInfo, (LPVOID)&fStdInfo, sizeof(fStdInfo)))
 +    size = fStdInfo.EndOfFile.LowPart;
 +  else
-+      size = INVALID_FILE_SIZE;
++    size = INVALID_FILE_SIZE;
 +#else
    size = GetFileSize (fh, NULL);
 +#endif
    if (size == INVALID_FILE_SIZE)
      {
        CloseHandle (fh);
+-- 
+2.45.1.windows.1
+


=====================================
contrib/src/gpg-error/gpg-error-uwp-fix.patch
=====================================
@@ -1,6 +1,56 @@
---- libgpg-error/src/mkheader.c.orig	2023-05-12 13:24:34.270562700 +0200
-+++ libgpg-error/src/mkheader.c	2023-05-15 08:26:10.678024100 +0200
-@@ -518,7 +518,7 @@ write_special (const char *fname, int ln
+From d246bd0c4eba45b78f18786898ec4f8d6af86c72 Mon Sep 17 00:00:00 2001
+From: Steve Lhomme <robux4 at ycbcr.xyz>
+Date: Mon, 15 May 2023 08:20:15 +0200
+Subject: [PATCH 03/15] fix UWP build
+
+---
+ src/init.c     | 11 ++++++++++-
+ src/mkheader.c |  2 +-
+ 2 files changed, 11 insertions(+), 2 deletions(-)
+
+diff --git a/src/init.c b/src/init.c
+index 7f970d9..321da10 100644
+--- a/src/init.c
++++ b/src/init.c
+@@ -81,8 +81,9 @@ static void *(*custom_realloc)(void *a, size_t n);
+ static void
+ windows_specific_init (void)
+ {
++#if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_DESKTOP)
+   OSVERSIONINFO osvi;
+-  HMODULE hntdll = GetModuleHandle ("ntdll.dll");
++  HMODULE hntdll = GetModuleHandleA ("ntdll.dll");
+ 
+   memset (&osvi,0,sizeof(osvi));
+   osvi.dwOSVersionInfoSize = sizeof(osvi);
+@@ -94,6 +95,10 @@ windows_specific_init (void)
+ 
+   if (hntdll && GetProcAddress (hntdll, "wine_get_version"))
+     windows_features.semihosted_by_wine = 1;
++#else
++  windows_features.is_vista_or_later = 1;
++  windows_features.semihosted_by_wine = 0;
++#endif
+ }
+ #endif
+ 
+@@ -589,7 +594,11 @@ _gpgrt_windows_feature (int k)
+   switch (k)
+     {
+     case GPGRT_WINDOWS_PROC_ATTRIBUTE:
++#if !WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_DESKTOP)
++      return 0;
++#else
+       return windows_features.is_vista_or_later;
++#endif
+ 
+     case GPGRT_WINDOWS_UNDER_WINE:
+       return windows_features.semihosted_by_wine;
+diff --git a/src/mkheader.c b/src/mkheader.c
+index 7c772e6..779e0ab 100644
+--- a/src/mkheader.c
++++ b/src/mkheader.c
+@@ -623,7 +623,7 @@ write_special (const char *fname, int lnr, const char *tag)
      }
    else if (!strcmp (tag, "include:os-add"))
      {
@@ -9,3 +59,6 @@
          {
            include_file (fname, lnr, "w32-add.h", write_line);
          }
+-- 
+2.52.0.windows.1
+


=====================================
contrib/src/gpg-error/lock-obj-pub.posix.h deleted
=====================================
@@ -1,18 +0,0 @@
-## lock-obj-pub.posix.h
-## File created by Rémi Denis-Courmont - DO EDIT
-## To be included by mkheader into gpg-error.h
-
-#include <pthread.h>
-
-typedef struct
-{
-  long vers;
-  union {
-    pthread_mutex_t mtx;
-    /* In theory, pointers could have a higher alignment than pthread_mutex_t,
-     * so keep in the union to match _gpgrt_lock_t. */
-    long *alignme;
-  } u;
-} gpgrt_lock_t;
-
-#define GPGRT_LOCK_INITIALIZER { 1, { PTHREAD_MUTEX_INITIALIZER } }


=====================================
contrib/src/gpg-error/missing-unistd-include.patch deleted
=====================================
@@ -1,11 +0,0 @@
-diff -ru libgpg-error/tests/t-lock.c libgpg-error-fixed/tests/t-lock.c
---- libgpg-error/tests/t-lock.c	2014-01-24 21:50:09.000000000 +0100
-+++ libgpg-error-fixed/tests/t-lock.c	2014-08-17 22:10:24.000000000 +0200
-@@ -24,6 +24,7 @@
- #include <stdio.h>
- #include <stdlib.h>
- #include <string.h>
-+#include <unistd.h>
- #include <assert.h>
- #ifdef _WIN32
- # include <windows.h>


=====================================
contrib/src/gpg-error/no-executable.patch deleted
=====================================
@@ -1,11 +0,0 @@
---- libgpg-error/src/Makefile.am.orig	2014-10-25 14:42:43.000000000 +0200
-+++ libgpg-error/src/Makefile.am	2015-05-05 16:59:40.887486960 +0200
-@@ -31,7 +31,7 @@
- 
- localedir = $(datadir)/locale
- 
--bin_PROGRAMS = gpg-error
-+bin_PROGRAMS = 
- 
- if HAVE_W32_SYSTEM
- noinst_PROGRAMS = gen-w32-lock-obj


=====================================
contrib/src/gpg-error/rules.mak
=====================================
@@ -1,11 +1,12 @@
 # GPGERROR
-GPGERROR_VERSION := 1.27
+GPGERROR_VERSION := 1.56
 GPGERROR_URL := $(GNUGPG)/libgpg-error/libgpg-error-$(GPGERROR_VERSION).tar.bz2
 
 $(TARBALLS)/libgpg-error-$(GPGERROR_VERSION).tar.bz2:
 	$(call download_pkg,$(GPGERROR_URL),gpg-error)
 
-ifeq ($(call need_pkg,"gpg-error >= 1.27"),)
+PKGS += gpg-error
+ifeq ($(call need_pkg,"gpg-error >= 1.33"),)
 PKGS_FOUND += gpg-error
 endif
 
@@ -13,54 +14,44 @@ endif
 
 libgpg-error: libgpg-error-$(GPGERROR_VERSION).tar.bz2 .sum-gpg-error
 	$(UNPACK)
-	$(APPLY) $(SRC)/gpg-error/windres-make.patch
-	$(APPLY) $(SRC)/gpg-error/winrt.patch
-	$(APPLY) $(SRC)/gpg-error/missing-unistd-include.patch
-	$(APPLY) $(SRC)/gpg-error/no-executable.patch
-	$(APPLY) $(SRC)/gpg-error/win32-unicode.patch
-	$(APPLY) $(SRC)/gpg-error/version-bump-gawk-5.patch
-	$(APPLY) $(SRC)/gpg-error/win32-extern-struct.patch
-	$(APPLY) $(SRC)/gpg-error/darwin-triplet.patch
-ifndef HAVE_WIN32
-	cp -f -- "$(SRC)/gpg-error/lock-obj-pub.posix.h" \
-		"$(UNPACK_DIR)/src/lock-obj-pub.native.h"
-endif
+	$(call pkg_static,"src/gpg-error.pc.in")
 	# gpg-error doesn't know about mingw32uwp but it's the same as mingw32
-	cp -f -- "$(UNPACK_DIR)/src/syscfg/lock-obj-pub.mingw32.h" \
-		"$(UNPACK_DIR)/src/syscfg/lock-obj-pub.mingw32uwp.h"
 	$(APPLY) $(SRC)/gpg-error/gpg-error-uwp-fix.patch
 
 	# use CreateFile2 in Win8 as CreateFileW is forbidden in UWP
+	$(APPLY) $(SRC)/gpg-error/0004-use-WCHAR-API-for-temporary-windows-folder.patch
 	$(APPLY) $(SRC)/gpg-error/gpg-error-createfile2.patch
 
 	# don't use GetFileSize on UWP
 	$(APPLY) $(SRC)/gpg-error/gpg-error-uwp-GetFileSize.patch
+	$(APPLY) $(SRC)/gpg-error/0007-don-t-use-GetThreadLocale-on-UWP.patch
+	$(APPLY) $(SRC)/gpg-error/0008-don-t-use-GetUserNameW-on-Windows-10.patch
+	$(APPLY) $(SRC)/gpg-error/0009-gpg-error-config.in-add-missing-GPG_ERROR_CONFIG_LIB.patch
+	$(APPLY) $(SRC)/gpg-error/0011-logging-add-ws2tcpip.h-include-for-proper-inet_pton-.patch
+	$(APPLY) $(SRC)/gpg-error/0012-use-GetCurrentProcessId-in-UWP.patch
+	$(APPLY) $(SRC)/gpg-error/0013-configure-allow-building-Windows-with-disable-thread.patch
+	$(APPLY) $(SRC)/gpg-error/0014-core-disable-locking-API-with-disable-threads.patch
+	$(APPLY) $(SRC)/gpg-error/0015-core-disable-process-spawning-with-disable-threads.patch
+	$(APPLY) $(SRC)/gpg-error/0016-core-disable-registry-access-in-UWP.patch
+	# use the ANSI version of Environment API's as the rest of the code
+	sed -i.orig -e 's/ExpandEnvironmentStrings /ExpandEnvironmentStringsA /g' $(UNPACK_DIR)/src/w32-reg.c
+	sed -i.orig -e 's/SetEnvironmentVariable /SetEnvironmentVariableA /g' $(UNPACK_DIR)/src/sysutils.c
+	sed -i.orig -e 's/GetEnvironmentVariable /GetEnvironmentVariableA /g' $(UNPACK_DIR)/src/sysutils.c
 
 	$(MOVE)
-ifdef HAVE_ANDROID
-ifeq ($(ARCH),aarch64)
-	# x86_64-linux-gnu matches exactly what gets generated by gen-posix-lock-obj on arm64
-	cp $@/src/syscfg/lock-obj-pub.x86_64-pc-linux-gnu.h $@/src/syscfg/lock-obj-pub.linux-android.h
-else
-	cp $@/src/syscfg/lock-obj-pub.arm-unknown-linux-androideabi.h $@/src/syscfg/lock-obj-pub.linux-android.h
-endif
-endif
-ifdef HAVE_TIZEN
-ifeq ($(TIZEN_ABI), x86)
-	cp $@/src/syscfg/lock-obj-pub.i686-pc-linux-gnu.h $@/src/syscfg/lock-obj-pub.linux-gnueabi.h
-endif
-endif
 
 GPGERROR_CONF := \
 	--disable-nls \
 	--disable-languages \
 	--disable-tests \
-	--disable-doc
+	--disable-doc \
+	--enable-install-gpg-error-config \
+	--disable-threads
 
 .gpg-error: libgpg-error
 	$(RECONF)
-	cd $< && $(HOSTVARS) ./configure $(HOSTCONF) $(GPGERROR_CONF)
-	# pre_mkheader_cmds would delete our lock-obj-pub-native.h
-	$(MAKE) -C $< pre_mkheader_cmds=true
-	$(MAKE) -C $< pre_mkheader_cmds=true install
+	$(MAKEBUILDDIR)
+	$(MAKECONFIGURE) $(GPGERROR_CONF)
+	+$(MAKEBUILD) bin_PROGRAMS=
+	+$(MAKEBUILD) bin_PROGRAMS= install
 	touch $@


=====================================
contrib/src/gpg-error/version-bump-gawk-5.patch deleted
=====================================
@@ -1,159 +0,0 @@
-From 5fab5cefbd250619adb2701859ee9e7b1ebf694f Mon Sep 17 00:00:00 2001
-From: 
-Date: Sun, 21 Apr 2019 17:30:47 -0500
-Subject: [PATCH] Fully support gawk-5
-
----
- lang/cl/mkerrcodes.awk |  2 +-
- src/Makefile.am        |  2 +-
- src/Makefile.in        |  2 +-
- src/mkerrcodes.awk     |  2 +-
- src/mkerrcodes1.awk    |  2 +-
- src/mkerrcodes2.awk    |  2 +-
- src/mkerrnos.awk       |  2 +-
- src/mkstrtable.awk     | 10 +++++-----
- 8 files changed, 12 insertions(+), 12 deletions(-)
-
-diff --git a/lang/cl/mkerrcodes.awk b/lang/cl/mkerrcodes.awk
-index ae29043..9a1fc18 100644
---- a/lang/cl/mkerrcodes.awk
-+++ b/lang/cl/mkerrcodes.awk
-@@ -122,7 +122,7 @@ header {
- }
- 
- !header {
--  sub (/\#.+/, "");
-+  sub (/#.+/, "");
-   sub (/[ 	]+$/, ""); # Strip trailing space and tab characters.
- 
-   if (/^$/)
-diff --git a/src/Makefile.am b/src/Makefile.am
-index 42998e4..0ceac9f 100644
---- a/src/Makefile.am
-+++ b/src/Makefile.am
-@@ -281,7 +281,7 @@ code-from-errno.h: mkerrcodes Makefile
- 
- errnos-sym.h: Makefile mkstrtable.awk errnos.in
- 	$(AWK) -f $(srcdir)/mkstrtable.awk -v textidx=2 -v nogettext=1 \
--		-v prefix=GPG_ERR_ -v namespace=errnos_ \
-+		-v prefix=GPG_ERR_ -v pkg_namespace=errnos_ \
- 		$(srcdir)/errnos.in >$@
- 
- 
-diff --git a/src/Makefile.in b/src/Makefile.in
-index 9ffb29d..a9efa38 100644
---- a/src/Makefile.in
-+++ b/src/Makefile.in
-@@ -1449,7 +1449,7 @@ code-from-errno.h: mkerrcodes Makefile
- 
- errnos-sym.h: Makefile mkstrtable.awk errnos.in
- 	$(AWK) -f $(srcdir)/mkstrtable.awk -v textidx=2 -v nogettext=1 \
--		-v prefix=GPG_ERR_ -v namespace=errnos_ \
-+		-v prefix=GPG_ERR_ -v pkg_namespace=errnos_ \
- 		$(srcdir)/errnos.in >$@
- 
- mkheader: mkheader.c Makefile
-diff --git a/src/mkerrcodes.awk b/src/mkerrcodes.awk
-index 46d436c..e9c857c 100644
---- a/src/mkerrcodes.awk
-+++ b/src/mkerrcodes.awk
-@@ -85,7 +85,7 @@ header {
- }
- 
- !header {
--  sub (/\#.+/, "");
-+  sub (/#.+/, "");
-   sub (/[ 	]+$/, ""); # Strip trailing space and tab characters.
- 
-   if (/^$/)
-diff --git a/src/mkerrcodes1.awk b/src/mkerrcodes1.awk
-index a771a73..4578e29 100644
---- a/src/mkerrcodes1.awk
-+++ b/src/mkerrcodes1.awk
-@@ -81,7 +81,7 @@ header {
- }
- 
- !header {
--  sub (/\#.+/, "");
-+  sub (/#.+/, "");
-   sub (/[ 	]+$/, ""); # Strip trailing space and tab characters.
- 
-   if (/^$/)
-diff --git a/src/mkerrcodes2.awk b/src/mkerrcodes2.awk
-index ea58503..188f7a4 100644
---- a/src/mkerrcodes2.awk
-+++ b/src/mkerrcodes2.awk
-@@ -91,7 +91,7 @@ header {
- }
- 
- !header {
--  sub (/\#.+/, "");
-+  sub (/#.+/, "");
-   sub (/[ 	]+$/, ""); # Strip trailing space and tab characters.
- 
-   if (/^$/)
-diff --git a/src/mkerrnos.awk b/src/mkerrnos.awk
-index f79df66..15b1aad 100644
---- a/src/mkerrnos.awk
-+++ b/src/mkerrnos.awk
-@@ -83,7 +83,7 @@ header {
- }
- 
- !header {
--  sub (/\#.+/, "");
-+  sub (/#.+/, "");
-   sub (/[ 	]+$/, ""); # Strip trailing space and tab characters.
- 
-   if (/^$/)
-diff --git a/src/mkstrtable.awk b/src/mkstrtable.awk
-index c9de9c1..285e45f 100644
---- a/src/mkstrtable.awk
-+++ b/src/mkstrtable.awk
-@@ -77,7 +77,7 @@
- #
- # The variable prefix can be used to prepend a string to each message.
- #
--# The variable namespace can be used to prepend a string to each
-+# The variable pkg_namespace can be used to prepend a string to each
- # variable and macro name.
- 
- BEGIN {
-@@ -102,7 +102,7 @@ header {
-       print "/* The purpose of this complex string table is to produce";
-       print "   optimal code with a minimum of relocations.  */";
-       print "";
--      print "static const char " namespace "msgstr[] = ";
-+      print "static const char " pkg_namespace "msgstr[] = ";
-       header = 0;
-     }
-   else
-@@ -110,7 +110,7 @@ header {
- }
- 
- !header {
--  sub (/\#.+/, "");
-+  sub (/#.+/, "");
-   sub (/[ 	]+$/, ""); # Strip trailing space and tab characters.
- 
-   if (/^$/)
-@@ -150,7 +150,7 @@ END {
-   else
-     print "  gettext_noop (\"" last_msgstr "\");";
-   print "";
--  print "static const int " namespace "msgidx[] =";
-+  print "static const int " pkg_namespace "msgidx[] =";
-   print "  {";
-   for (i = 0; i < coded_msgs; i++)
-     print "    " pos[i] ",";
-@@ -158,7 +158,7 @@ END {
-   print "  };";
-   print "";
-   print "static GPG_ERR_INLINE int";
--  print namespace "msgidxof (int code)";
-+  print pkg_namespace "msgidxof (int code)";
-   print "{";
-   print "  return (0 ? 0";
- 
--- 
-2.21.0
-


=====================================
contrib/src/gpg-error/win32-extern-struct.patch deleted
=====================================
@@ -1,11 +0,0 @@
---- libgpg-error-1.27/src/gpgrt-int.h.orig	2020-03-10 10:54:53.127491822 +0200
-+++ libgpg-error-1.27/src/gpgrt-int.h	2020-03-10 10:55:48.526283928 +0200
-@@ -359,7 +359,7 @@
- 
- #if _WIN32
- /* Prototypes for w32-estream.c.  */
--struct cookie_io_functions_s _gpgrt_functions_w32_pollable;
-+extern struct cookie_io_functions_s _gpgrt_functions_w32_pollable;
- int _gpgrt_w32_pollable_create (void *_GPGRT__RESTRICT *_GPGRT__RESTRICT cookie,
-                                 unsigned int modeflags,
-                                 struct cookie_io_functions_s next_functions,


=====================================
contrib/src/gpg-error/win32-unicode.patch deleted
=====================================
@@ -1,29 +0,0 @@
---- libgpg-error/src/estream.c	2016-05-24 11:21:10.180251700 +0200
-+++ libgpg-error/src/estream.c.msvc	2016-05-24 11:23:18.195880200 +0200
-@@ -4115,7 +4115,7 @@ tmpfd (void)
- {
- #ifdef HAVE_W32_SYSTEM
-   int attempts, n;
--#ifdef HAVE_W32CE_SYSTEM
-+#if defined(HAVE_W32CE_SYSTEM) || defined(UNICODE)
-   wchar_t buffer[MAX_PATH+9+12+1];
- # define mystrlen(a) wcslen (a)
-   wchar_t *name, *p;
-@@ -4136,7 +4136,7 @@ tmpfd (void)
-       return -1;
-     }
-   p = buffer + mystrlen (buffer);
--#ifdef HAVE_W32CE_SYSTEM
-+#if defined(HAVE_W32CE_SYSTEM) || defined(UNICODE)
-   wcscpy (p, L"_estream");
- #else
-   strcpy (p, "_estream");
-@@ -4157,7 +4157,7 @@ tmpfd (void)
-           *p++ = tohex (((value >> 28) & 0x0f));
-           value <<= 4;
-         }
--#ifdef HAVE_W32CE_SYSTEM
-+#if defined(HAVE_W32CE_SYSTEM) || defined(UNICODE)
-       wcscpy (p, L".tmp");
- #else
-       strcpy (p, ".tmp");


=====================================
contrib/src/gpg-error/windres-make.patch deleted
=====================================
@@ -1,22 +0,0 @@
---- libgpg-error/src/Makefile.am	2010-04-14 11:16:44.000000000 +0200
-+++ libgpg-error.new/src/Makefile.am	2010-08-09 11:21:56.000000000 +0200
-@@ -60,7 +60,7 @@
- arch_sources = w32-gettext.c
- 
- RCCOMPILE = $(RC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
--            -DLOCALEDIR=\"$(localedir)\" $(AM_CPPFLAGS) $(CPPFLAGS)
-+            -DLOCALEDIR=\"$(localedir)\" $(AM_CPPFLAGS)
- LTRCCOMPILE = $(LIBTOOL) --mode=compile --tag=RC $(RCCOMPILE)
- 
- SUFFIXES = .rc .lo
---- libgpg-error/src/Makefile.in.orig	2011-11-22 23:23:14.450340031 -0500
-+++ libgpg-error/src/Makefile.in	2011-11-22 23:23:20.650370779 -0500
-@@ -306,7 +306,7 @@
- @HAVE_W32_SYSTEM_FALSE at arch_sources = 
- @HAVE_W32_SYSTEM_TRUE at arch_sources = w32-gettext.c
- @HAVE_W32_SYSTEM_TRUE at RCCOMPILE = $(RC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
-- at HAVE_W32_SYSTEM_TRUE@            -DLOCALEDIR=\"$(localedir)\" $(AM_CPPFLAGS) $(CPPFLAGS)
-+ at HAVE_W32_SYSTEM_TRUE@            -DLOCALEDIR=\"$(localedir)\" $(AM_CPPFLAGS)
- 
- @HAVE_W32_SYSTEM_TRUE at LTRCCOMPILE = $(LIBTOOL) --mode=compile --tag=RC $(RCCOMPILE)
- @HAVE_W32_SYSTEM_TRUE at SUFFIXES = .rc .lo


=====================================
contrib/src/gpg-error/winrt.patch deleted
=====================================
@@ -1,40 +0,0 @@
---- libgpg-error/src/w32-gettext.c.orig	2016-05-09 17:30:18.306788566 +0200
-+++ libgpg-error/src/w32-gettext.c	2016-05-09 17:32:19.830771580 +0200
-@@ -53,7 +53,7 @@
- #include "init.h"
- #include "gpg-error.h"
- 
--#ifdef HAVE_W32CE_SYSTEM
-+#if defined(HAVE_W32CE_SYSTEM) || WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_APP)
- /* Forward declaration.  */
- static wchar_t *utf8_to_wchar (const char *string, size_t length, size_t *retlen);
- 
-@@ -644,6 +644,7 @@
- static const char *
- my_nl_locale_name (const char *categoryname)
- {
-+#if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_DESKTOP)
- #ifndef HAVE_W32CE_SYSTEM
-   const char *retval;
- #endif
-@@ -1053,6 +1054,9 @@
-     case LANG_ZULU: return "zu_ZA";
-     default: return "C";
-     }
-+#else
-+    return "C";
-+#endif
- }
- 
- /* localname.c from gettext END.  */
---- libgpg-error/src/w32-gettext.c.orig	2016-08-25 15:55:09.006943405 +0200
-+++ libgpg-error/src/w32-gettext.c	2016-08-25 15:56:47.442788455 +0200
-@@ -1383,7 +1383,7 @@
- {
-   int n;
-   char *result;
--  unsigned int cpno = GetConsoleOutputCP ();
-+  unsigned int cpno = CP_UTF8;
- 
-   /* GetConsoleOutputCP returns the 8-Bit codepage that should be used
-      for console output. If the codepage is not returned we fall back


=====================================
contrib/src/ssh2/0001-fix-gcrypt-linking.patch deleted
=====================================
@@ -1,10 +0,0 @@
---- ssh2/acinclude.m4.orig	2022-05-08 22:01:39.704273920 +0200
-+++ ssh2/acinclude.m4	2022-05-27 15:24:17.697253672 +0200
-@@ -434,6 +434,7 @@
- [libgcrypt], [
-   LIBSSH2_LIB_HAVE_LINKFLAGS([gcrypt], [], [#include <gcrypt.h>], [
-     AC_DEFINE(LIBSSH2_LIBGCRYPT, 1, [Use $1])
-+    LIBS="$LIBS -lgcrypt -lgpg-error"
-     found_crypto="$1"
-   ])
- ],


=====================================
contrib/src/ssh2/rules.mak
=====================================
@@ -23,7 +23,8 @@ ssh2: libssh2-$(LIBSSH2_VERSION).tar.gz .sum-ssh2
 	$(UNPACK)
 	$(UPDATE_AUTOCONFIG)
 	$(APPLY) $(SRC)/ssh2/no-tests.patch
-	$(APPLY) $(SRC)/ssh2/0001-fix-gcrypt-linking.patch
+	# Require gcrypt
+	sed -i.orig 's/@LIBSREQUIRED@/@LIBSREQUIRED@ libgcrypt/' $(UNPACK_DIR)/libssh2.pc.in
 	$(call pkg_static,"libssh2.pc.in")
 ifdef HAVE_WINSTORE
 	$(APPLY) $(SRC)/ssh2/winrt-no-agent.patch



View it on GitLab: https://code.videolan.org/videolan/vlc/-/compare/4c608da16c33560821be7e5c1ad4e34bf5a65398...d8f5cc95088237cca9e5ed5cd3b7edea60026364

-- 
View it on GitLab: https://code.videolan.org/videolan/vlc/-/compare/4c608da16c33560821be7e5c1ad4e34bf5a65398...d8f5cc95088237cca9e5ed5cd3b7edea60026364
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