Submitted By:            Xi Ruoyao <xry111 at xry111 dot site>
Date:                    2022-10-28
Initial Package Version: 1.18.0
Upstream Status:         Applied
Origin:                  Upstream Git repository
Description:             Adapt Python module for gpg-error-1.46

From ae9258fbf3b9d434495ef11fc184a91fe7c4ca57 Mon Sep 17 00:00:00 2001
From: NIIBE Yutaka <gniibe@fsij.org>
Date: Thu, 15 Sep 2022 13:46:23 +0900
Subject: [PATCH] build:python: Don't use gpg-error-config/gpgme-config.

* lang/python/setup.py.in: Use @prefix@, @GPGME_CONFIG_LIBS@,
@GPGME_CONFIG_CFLAGS@, and @GPG_ERROR_CFLAGS@ of configure.

--

GnuPG-bug-id: 6204
Signed-off-by: NIIBE Yutaka <gniibe@fsij.org>
---
 lang/python/setup.py.in | 34 +++++-----------------------------
 1 file changed, 5 insertions(+), 29 deletions(-)

diff --git a/lang/python/setup.py.in b/lang/python/setup.py.in
index 9785a282..6741d3c8 100755
--- a/lang/python/setup.py.in
+++ b/lang/python/setup.py.in
@@ -30,9 +30,6 @@ import subprocess
 import sys
 
 # Out-of-tree build of the gpg bindings.
-gpg_error_config = ['gpg-error-config']
-gpgme_config_flags = ['--thread=pthread']
-gpgme_config = ['gpgme-config'] + gpgme_config_flags
 gpgme_h = ''
 include_dirs = [os.getcwd()]
 library_dirs = []
@@ -44,8 +41,6 @@ top_builddir = os.environ.get('top_builddir')
 if top_builddir:
     # In-tree build.
     in_tree = True
-    gpgme_config = [os.path.join(top_builddir, 'src/gpgme-config')
-                    ] + gpgme_config_flags
     gpgme_h = os.path.join(top_builddir, 'src/gpgme.h')
     library_dirs = [os.path.join(top_builddir,
                                  'src/.libs')]  # XXX uses libtool internals
@@ -60,20 +55,8 @@ if hasattr(subprocess, 'DEVNULL'):
 else:
     devnull = open(os.devnull, 'w')
 
-try:
-    subprocess.check_call(gpgme_config + ['--version'], stdout=devnull)
-except:
-    sys.exit('Could not find gpgme-config.  ' +
-             'Please install the libgpgme development package.')
 
-
-def getconfig(what, config=gpgme_config):
-    confdata = subprocess.Popen(
-        config + ['--%s' % what], stdout=subprocess.PIPE).communicate()[0]
-    return [x for x in confdata.decode('utf-8').split() if x != '']
-
-
-version = version_raw = getconfig('version')[0]
+version = version_raw = "@VERSION@"
 if '-' in version:
     version = version.split('-')[0]
 major, minor, patch = map(int, version.split('.'))
@@ -82,17 +65,17 @@ if not (major > 1 or (major == 1 and minor >= 7)):
     sys.exit('Need at least GPGME version 1.7, found {}.'.format(version_raw))
 
 if not gpgme_h:
-    gpgme_h = os.path.join(getconfig('prefix')[0], 'include', 'gpgme.h')
+    gpgme_h = os.path.join('@prefix@', 'include', 'gpgme.h')
 
 define_macros = []
-libs = getconfig('libs')
+libs = '@GPGME_CONFIG_LIBS@'.split(' ')
 
 # Define extra_macros for both the SWIG and C code
 for k, v in extra_macros.items():
     extra_swig_opts.append('-D{0}={1}'.format(k, v))
     define_macros.append((k, str(v)))
 
-for item in getconfig('cflags'):
+for item in '@GPGME_CONFIG_CFLAGS@'.split(' '):
     if item.startswith('-I'):
         include_dirs.append(item[2:])
     elif item.startswith('-D'):
@@ -182,15 +165,8 @@ class BuildExtFirstHack(build):
 
     def _generate_errors_i(self):
 
-        try:
-            subprocess.check_call(
-                gpg_error_config + ['--version'], stdout=devnull)
-        except:
-            sys.exit('Could not find gpg-error-config.  ' +
-                     'Please install the libgpg-error development package.')
-
         gpg_error_content = self._read_header(
-            'gpg-error.h', getconfig('cflags', config=gpg_error_config))
+            'gpg-error.h', '@GPG_ERROR_CFLAGS@'.split(' '))
 
         filter_re = re.compile(r'GPG_ERR_[^ ]* =')
         rewrite_re = re.compile(r' *(.*) = .*')
-- 
2.11.0

From f1802682c3c8794edaca37966405bd1f070f5e01 Mon Sep 17 00:00:00 2001
From: NIIBE Yutaka <gniibe@fsij.org>
Date: Wed, 26 Oct 2022 11:02:36 +0900
Subject: [PATCH] python: Fix configure generating setup.py.

* lang/python/setup.py.in: Handle the case, when substitutions
may be empty.

--

Reported-by: Andreas Metzler
Fixes-commit: ae9258fbf3b9d434495ef11fc184a91fe7c4ca57
GnuPG-bug-id: 6204
Signed-off-by: NIIBE Yutaka <gniibe@fsij.org>
---
 lang/python/setup.py.in | 27 ++++++++++++++++-----------
 1 file changed, 16 insertions(+), 11 deletions(-)

diff --git a/lang/python/setup.py.in b/lang/python/setup.py.in
index 6741d3c8..6f36861d 100755
--- a/lang/python/setup.py.in
+++ b/lang/python/setup.py.in
@@ -68,22 +68,26 @@ if not gpgme_h:
     gpgme_h = os.path.join('@prefix@', 'include', 'gpgme.h')

 define_macros = []
-libs = '@GPGME_CONFIG_LIBS@'.split(' ')
+if '@GPGME_CONFIG_LIBS@':
+    libs = '@GPGME_CONFIG_LIBS@'.split(' ')
+else:
+    libs = []

 # Define extra_macros for both the SWIG and C code
 for k, v in extra_macros.items():
     extra_swig_opts.append('-D{0}={1}'.format(k, v))
     define_macros.append((k, str(v)))

-for item in '@GPGME_CONFIG_CFLAGS@'.split(' '):
-    if item.startswith('-I'):
-        include_dirs.append(item[2:])
-    elif item.startswith('-D'):
-        defitem = item[2:].split('=', 1)
-        if len(defitem) == 2:
-            define_macros.append((defitem[0], defitem[1]))
-        else:
-            define_macros.append((defitem[0], None))
+if '@GPGME_CONFIG_CFLAGS@':
+    for item in '@GPGME_CONFIG_CFLAGS@'.split(' '):
+        if item.startswith('-I'):
+            include_dirs.append(item[2:])
+        elif item.startswith('-D'):
+            defitem = item[2:].split('=', 1)
+            if len(defitem) == 2:
+                define_macros.append((defitem[0], defitem[1]))
+            else:
+                define_macros.append((defitem[0], None))

 # Adjust include and library locations in case of win32
 uname_s = os.popen('uname -s').read()
@@ -165,8 +169,9 @@ class BuildExtFirstHack(build):

     def _generate_errors_i(self):

+        ge_cflags='@GPG_ERROR_CFLAGS@'
         gpg_error_content = self._read_header(
-            'gpg-error.h', '@GPG_ERROR_CFLAGS@'.split(' '))
+            'gpg-error.h', ge_cflags.split(' ') if ge_cflags else [])

         filter_re = re.compile(r'GPG_ERR_[^ ]* =')
         rewrite_re = re.compile(r' *(.*) = .*')
--
2.11.0

