gpgme: patch out LFS64 usage (#324771)

Needed for compatibility with musl 1.2.4+.

Link: https://github.com/NixOS/nixpkgs/pull/229439
This commit is contained in:
Alyssa Ross 2024-07-05 11:13:49 +02:00 committed by GitHub
parent 19b834e17f
commit e2254dbadf
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 37 additions and 0 deletions

View File

@ -0,0 +1,34 @@
From 1726e0a0a3b9765a4ddf99c506178d3939a46ccd Mon Sep 17 00:00:00 2001
From: Alyssa Ross <hi@alyssa.is>
Date: Fri, 3 May 2024 13:39:26 +0200
Subject: [PATCH] posix: don't use LFS64 types in struct linux_dirent64
The *64_t types are transitional APIs for applications that do not yet
fully support large files on 32-bit platforms. They have been removed
in musl 1.2.5, which caused gpgme to fail to build. Since this is for
a raw syscall anyway, it doesn't make sense to use libc-specific types
here anyway, so I've changed this to match the definition of the
struct used in the kernel (except there the kernel-specific u64 and
s64 typedefs are used instead).
---
src/posix-io.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/src/posix-io.c b/src/posix-io.c
index a422d8f6..c943f75c 100644
--- a/src/posix-io.c
+++ b/src/posix-io.c
@@ -74,8 +74,8 @@
* define it ourselves. */
struct linux_dirent64
{
- ino64_t d_ino;
- off64_t d_off;
+ uint64_t d_ino;
+ int64_t d_off;
unsigned short d_reclen;
unsigned char d_type;
char d_name[];
--
2.44.0

View File

@ -40,6 +40,9 @@ stdenv.mkDerivation rec {
./python-310-312-remove-distutils.patch
# Fix a test after disallowing compressed signatures in gpg (PR #180336)
./test_t-verify_double-plaintext.patch
# Don't use deprecated LFS64 APIs (removed in musl 1.2.4)
# https://dev.gnupg.org/D600
./LFS64.patch
];
postPatch = ''