diff options
author | Alyssa Ross <hi@alyssa.is> | 2022-03-19 09:13:54 +0000 |
---|---|---|
committer | Alyssa Ross <hi@alyssa.is> | 2022-03-19 09:13:54 +0000 |
commit | 220273ccc689041667ab5ff55fe5b1e93689227a (patch) | |
tree | d1c95664832920b476ab48ab5dd9ad09ec67d82d /nixpkgs/pkgs/development/libraries/gpgme | |
parent | 68bab940e926ec7ae7380947a78c581e6aadcd18 (diff) | |
parent | 6e3ee8957637a60f5072e33d78e05c0f65c54366 (diff) | |
download | nixlib-220273ccc689041667ab5ff55fe5b1e93689227a.tar nixlib-220273ccc689041667ab5ff55fe5b1e93689227a.tar.gz nixlib-220273ccc689041667ab5ff55fe5b1e93689227a.tar.bz2 nixlib-220273ccc689041667ab5ff55fe5b1e93689227a.tar.lz nixlib-220273ccc689041667ab5ff55fe5b1e93689227a.tar.xz nixlib-220273ccc689041667ab5ff55fe5b1e93689227a.tar.zst nixlib-220273ccc689041667ab5ff55fe5b1e93689227a.zip |
Merge commit '6e3ee8957637a60f5072e33d78e05c0f65c54366'
Conflicts: nixpkgs/pkgs/applications/networking/browsers/firefox/packages.nix
Diffstat (limited to 'nixpkgs/pkgs/development/libraries/gpgme')
4 files changed, 701 insertions, 146 deletions
diff --git a/nixpkgs/pkgs/development/libraries/gpgme/default.nix b/nixpkgs/pkgs/development/libraries/gpgme/default.nix index 263807c2fc1d..75b13b6b7ef1 100644 --- a/nixpkgs/pkgs/development/libraries/gpgme/default.nix +++ b/nixpkgs/pkgs/development/libraries/gpgme/default.nix @@ -1,28 +1,37 @@ -{ lib, stdenv, fetchurl, fetchpatch -, autoreconfHook, libgpg-error, gnupg, pkg-config, glib, pth, libassuan -, file, which, ncurses +{ lib +, stdenv +, fetchurl +, fetchpatch +, autoreconfHook +, libgpg-error +, gnupg +, pkg-config +, glib +, pth +, libassuan +, file +, which +, ncurses , texinfo , buildPackages , qtbase ? null -, pythonSupport ? false, swig2 ? null, python ? null +, pythonSupport ? false +, swig2 ? null +, python ? null }: - let inherit (stdenv.hostPlatform) system; in - stdenv.mkDerivation rec { pname = "gpgme"; - version = "1.16.0"; + version = "1.17.0"; src = fetchurl { url = "mirror://gnupg/gpgme/${pname}-${version}.tar.bz2"; - sha256 = "1l4yw9fqc1blvx1sq1jnfvp1jijla3ca2jw90p4x9m8hvfpc933c"; + sha256 = "1xb9k88rrafdi0n95nzx0d6bz7hcn9b44hciqbigrqkvxc6gblsf"; }; patches = [ - # probably included in > 1.16.0 - ./test_t-edit-sign.diff # https://dev.gnupg.org/rMc4cf527ea227edb468a84bf9b8ce996807bd6992 ./fix_gpg_list_keys.diff # https://lists.gnupg.org/pipermail/gnupg-devel/2020-April/034591.html @@ -31,22 +40,48 @@ stdenv.mkDerivation rec { url = "https://lists.gnupg.org/pipermail/gnupg-devel/attachments/20200415/f7be62d1/attachment.obj"; sha256 = "00d4sxq63601lzdp2ha1i8fvybh7dzih4531jh8bx07fab3sw65g"; }) + # Support Python 3.10 version detection without distutils, https://dev.gnupg.org/D545 + ./python-310-detection-without-distutils.patch + # Find correct version string for Python >= 3.10, https://dev.gnupg.org/D546 + ./python-find-version-string-above-310.patch # Disable python tests on Darwin as they use gpg (see configureFlags below) ] ++ lib.optional stdenv.isDarwin ./disable-python-tests.patch - # Fix _AC_UNDECLARED_WARNING for autoconf≥2.70. See https://lists.gnupg.org/pipermail/gnupg-devel/2020-November/034643.html + # Fix _AC_UNDECLARED_WARNING for autoconf>=2.70 + # See https://lists.gnupg.org/pipermail/gnupg-devel/2020-November/034643.html ++ lib.optional stdenv.cc.isClang ./fix-clang-autoconf-undeclared-warning.patch; outputs = [ "out" "dev" "info" ]; + outputBin = "dev"; # gpgme-config; not so sure about gpgme-tool - propagatedBuildInputs = - [ libgpg-error glib libassuan pth ] - ++ lib.optional (qtbase != null) qtbase; + nativeBuildInputs = [ + autoreconfHook + gnupg + pkg-config + texinfo + ] ++ lib.optionals pythonSupport [ + ncurses + python + swig2 + which + ]; - nativeBuildInputs = [ pkg-config gnupg texinfo autoreconfHook ] - ++ lib.optionals pythonSupport [ python swig2 which ncurses ]; + propagatedBuildInputs = [ + glib + libassuan + libgpg-error + pth + ] ++ lib.optionals (qtbase != null) [ + qtbase + ]; - depsBuildBuild = [ buildPackages.stdenv.cc ]; + checkInputs = [ + which + ]; + + depsBuildBuild = [ + buildPackages.stdenv.cc + ]; dontWrapQtApps = true; @@ -59,16 +94,15 @@ stdenv.mkDerivation rec { # which has a path length limit. Nix on darwin is using a build directory # that already has quite a long path and the resulting socket path doesn't # fit in the limit. https://github.com/NixOS/nix/pull/1085 - ++ lib.optionals stdenv.isDarwin [ "--disable-gpg-test" ]; + ++ lib.optionals stdenv.isDarwin [ "--disable-gpg-test" ]; NIX_CFLAGS_COMPILE = toString ( # qgpgme uses Q_ASSERT which retains build inputs at runtime unless # debugging is disabled lib.optional (qtbase != null) "-DQT_NO_DEBUG" # https://www.gnupg.org/documentation/manuals/gpgme/Largefile-Support-_0028LFS_0029.html - ++ lib.optional (system == "i686-linux") "-D_FILE_OFFSET_BITS=64"); - - checkInputs = [ which ]; + ++ lib.optional (system == "i686-linux") "-D_FILE_OFFSET_BITS=64" + ); doCheck = true; diff --git a/nixpkgs/pkgs/development/libraries/gpgme/python-310-detection-without-distutils.patch b/nixpkgs/pkgs/development/libraries/gpgme/python-310-detection-without-distutils.patch new file mode 100644 index 000000000000..e0eea9ff0429 --- /dev/null +++ b/nixpkgs/pkgs/development/libraries/gpgme/python-310-detection-without-distutils.patch @@ -0,0 +1,273 @@ +diff --git a/m4/ax_python_devel.m4 b/m4/ax_python_devel.m4 +--- a/m4/ax_python_devel.m4 ++++ b/m4/ax_python_devel.m4 +@@ -1,5 +1,5 @@ + # =========================================================================== +-# https://www.gnu.org/software/autoconf-archive/ax_python_devel.html ++# https://www.gnu.org/software/autoconf-archive/ax_python_devel.html + # =========================================================================== + # + # SYNOPSIS +@@ -12,8 +12,8 @@ + # in your configure.ac. + # + # This macro checks for Python and tries to get the include path to +-# 'Python.h'. It provides the $(PYTHON_CPPFLAGS) and $(PYTHON_LDFLAGS) +-# output variables. It also exports $(PYTHON_EXTRA_LIBS) and ++# 'Python.h'. It provides the $(PYTHON_CPPFLAGS) and $(PYTHON_LIBS) output ++# variables. It also exports $(PYTHON_EXTRA_LIBS) and + # $(PYTHON_EXTRA_LDFLAGS) for embedding Python in your code. + # + # You can search for some particular version of Python by passing a +@@ -67,7 +67,7 @@ + # modified version of the Autoconf Macro, you may extend this special + # exception to the GPL to apply to your modified version as well. + +-#serial 17 ++#serial 23 + + AU_ALIAS([AC_PYTHON_DEVEL], [AX_PYTHON_DEVEL]) + AC_DEFUN([AX_PYTHON_DEVEL],[ +@@ -99,7 +99,7 @@ + This version of the AC@&t@_PYTHON_DEVEL macro + doesn't work properly with versions of Python before + 2.1.0. You may need to re-run configure, setting the +-variables PYTHON_CPPFLAGS, PYTHON_LDFLAGS, PYTHON_SITE_PKG, ++variables PYTHON_CPPFLAGS, PYTHON_LIBS, PYTHON_SITE_PKG, + PYTHON_EXTRA_LIBS and PYTHON_EXTRA_LDFLAGS by hand. + Moreover, to disable this check, set PYTHON_NOVERSIONCHECK + to something else than an empty string. +@@ -135,16 +135,25 @@ + # + # Check if you have distutils, else fail + # +- AC_MSG_CHECKING([for the distutils Python package]) +- ac_distutils_result=`$PYTHON -c "import distutils" 2>&1` +- if test -z "$ac_distutils_result"; then ++ AC_MSG_CHECKING([for the sysconfig Python package]) ++ ac_sysconfig_result=`$PYTHON -c "import sysconfig" 2>&1` ++ if test $? -eq 0; then + AC_MSG_RESULT([yes]) ++ IMPORT_SYSCONFIG="import sysconfig" + else + AC_MSG_RESULT([no]) +- AC_MSG_ERROR([cannot import Python module "distutils". ++ ++ AC_MSG_CHECKING([for the distutils Python package]) ++ ac_sysconfig_result=`$PYTHON -c "from distutils import sysconfig" 2>&1` ++ if test $? -eq 0; then ++ AC_MSG_RESULT([yes]) ++ IMPORT_SYSCONFIG="from distutils import sysconfig" ++ else ++ AC_MSG_ERROR([cannot import Python module "distutils". + Please check your Python installation. The error was: +-$ac_distutils_result]) +- PYTHON_VERSION="" ++$ac_sysconfig_result]) ++ PYTHON_VERSION="" ++ fi + fi + + # +@@ -152,10 +161,19 @@ + # + AC_MSG_CHECKING([for Python include path]) + if test -z "$PYTHON_CPPFLAGS"; then +- python_path=`$PYTHON -c "import distutils.sysconfig; \ +- print (distutils.sysconfig.get_python_inc ());"` +- plat_python_path=`$PYTHON -c "import distutils.sysconfig; \ +- print (distutils.sysconfig.get_python_inc (plat_specific=1));"` ++ if test "$IMPORT_SYSCONFIG" = "import sysconfig"; then ++ # sysconfig module has different functions ++ python_path=`$PYTHON -c "$IMPORT_SYSCONFIG; \ ++ print (sysconfig.get_path ('include'));"` ++ plat_python_path=`$PYTHON -c "$IMPORT_SYSCONFIG; \ ++ print (sysconfig.get_path ('platinclude'));"` ++ else ++ # old distutils way ++ python_path=`$PYTHON -c "$IMPORT_SYSCONFIG; \ ++ print (sysconfig.get_python_inc ());"` ++ plat_python_path=`$PYTHON -c "$IMPORT_SYSCONFIG; \ ++ print (sysconfig.get_python_inc (plat_specific=1));"` ++ fi + if test -n "${python_path}"; then + if test "${plat_python_path}" != "${python_path}"; then + python_path="-I$python_path -I$plat_python_path" +@@ -172,14 +190,14 @@ + # Check for Python library path + # + AC_MSG_CHECKING([for Python library path]) +- if test -z "$PYTHON_LDFLAGS"; then ++ if test -z "$PYTHON_LIBS"; then + # (makes two attempts to ensure we've got a version number + # from the interpreter) + ac_python_version=`cat<<EOD | $PYTHON - + + # join all versioning strings, on some systems + # major/minor numbers could be in different list elements +-from distutils.sysconfig import * ++from sysconfig import * + e = get_config_var('VERSION') + if e is not None: + print(e) +@@ -197,7 +215,7 @@ + # Make the versioning information available to the compiler + + # JW: We don't need it and it interferes with the hack +- # to detect multiple Pyhton versions ++ # to detect multiple Python versions + #AC_DEFINE_UNQUOTED([HAVE_PYTHON], ["$ac_python_version"], + # [If available, contains the Python version number currently in use.]) + +@@ -205,8 +223,8 @@ + ac_python_libdir=`cat<<EOD | $PYTHON - + + # There should be only one +-import distutils.sysconfig +-e = distutils.sysconfig.get_config_var('LIBDIR') ++$IMPORT_SYSCONFIG ++e = sysconfig.get_config_var('LIBDIR') + if e is not None: + print (e) + EOD` +@@ -214,8 +232,8 @@ + # Now, for the library: + ac_python_library=`cat<<EOD | $PYTHON - + +-import distutils.sysconfig +-c = distutils.sysconfig.get_config_vars() ++$IMPORT_SYSCONFIG ++c = sysconfig.get_config_vars() + if 'LDVERSION' in c: + print ('python'+c[['LDVERSION']]) + else: +@@ -230,44 +248,67 @@ + then + # use the official shared library + ac_python_library=`echo "$ac_python_library" | sed "s/^lib//"` +- PYTHON_LDFLAGS="-L$ac_python_libdir -l$ac_python_library" ++ PYTHON_LIBS="-L$ac_python_libdir -l$ac_python_library" + else + # old way: use libpython from python_configdir + ac_python_libdir=`$PYTHON -c \ +- "from distutils.sysconfig import get_python_lib as f; \ ++ "from sysconfig import get_python_lib as f; \ + import os; \ + print (os.path.join(f(plat_specific=1, standard_lib=1), 'config'));"` +- PYTHON_LDFLAGS="-L$ac_python_libdir -lpython$ac_python_version" ++ PYTHON_LIBS="-L$ac_python_libdir -lpython$ac_python_version" + fi + +- if test -z "PYTHON_LDFLAGS"; then ++ if test -z "PYTHON_LIBS"; then + AC_MSG_ERROR([ + Cannot determine location of your Python DSO. Please check it was installed with +- dynamic libraries enabled, or try setting PYTHON_LDFLAGS by hand. ++ dynamic libraries enabled, or try setting PYTHON_LIBS by hand. + ]) + fi + fi +- AC_MSG_RESULT([$PYTHON_LDFLAGS]) +- AC_SUBST([PYTHON_LDFLAGS]) ++ AC_MSG_RESULT([$PYTHON_LIBS]) ++ AC_SUBST([PYTHON_LIBS]) + + # + # Check for site packages + # + AC_MSG_CHECKING([for Python site-packages path]) + if test -z "$PYTHON_SITE_PKG"; then +- PYTHON_SITE_PKG=`$PYTHON -c "import distutils.sysconfig; \ +- print (distutils.sysconfig.get_python_lib(0,0));"` ++ if test "$IMPORT_SYSCONFIG" = "import sysconfig"; then ++ PYTHON_SITE_PKG=`$PYTHON -c "$IMPORT_SYSCONFIG; \ ++ print (sysconfig.get_path('purelib'));"` ++ else ++ # distutils.sysconfig way ++ PYTHON_SITE_PKG=`$PYTHON -c "$IMPORT_SYSCONFIG; \ ++ print (sysconfig.get_python_lib(0,0));"` ++ fi + fi + AC_MSG_RESULT([$PYTHON_SITE_PKG]) + AC_SUBST([PYTHON_SITE_PKG]) + ++ # ++ # Check for platform-specific site packages ++ # ++ AC_MSG_CHECKING([for Python platform specific site-packages path]) ++ if test -z "$PYTHON_SITE_PKG"; then ++ if test "$IMPORT_SYSCONFIG" = "import sysconfig"; then ++ PYTHON_PLATFORM_SITE_PKG=`$PYTHON -c "$IMPORT_SYSCONFIG; \ ++ print (sysconfig.get_path('platlib'));"` ++ else ++ # distutils.sysconfig way ++ PYTHON_PLATFORM_SITE_PKG=`$PYTHON -c "$IMPORT_SYSCONFIG; \ ++ print (sysconfig.get_python_lib(1,0));"` ++ fi ++ fi ++ AC_MSG_RESULT([$PYTHON_PLATFORM_SITE_PKG]) ++ AC_SUBST([PYTHON_PLATFORM_SITE_PKG]) ++ + # + # libraries which must be linked in when embedding + # + AC_MSG_CHECKING(python extra libraries) + if test -z "$PYTHON_EXTRA_LIBS"; then +- PYTHON_EXTRA_LIBS=`$PYTHON -c "import distutils.sysconfig; \ +- conf = distutils.sysconfig.get_config_var; \ ++ PYTHON_EXTRA_LIBS=`$PYTHON -c "$IMPORT_SYSCONFIG; \ ++ conf = sysconfig.get_config_var; \ + print (conf('LIBS') + ' ' + conf('SYSLIBS'))"` + fi + AC_MSG_RESULT([$PYTHON_EXTRA_LIBS]) +@@ -278,8 +319,8 @@ + # + AC_MSG_CHECKING(python extra linking flags) + if test -z "$PYTHON_EXTRA_LDFLAGS"; then +- PYTHON_EXTRA_LDFLAGS=`$PYTHON -c "import distutils.sysconfig; \ +- conf = distutils.sysconfig.get_config_var; \ ++ PYTHON_EXTRA_LDFLAGS=`$PYTHON -c "$IMPORT_SYSCONFIG; \ ++ conf = sysconfig.get_config_var; \ + print (conf('LINKFORSHARED'))"` + fi + AC_MSG_RESULT([$PYTHON_EXTRA_LDFLAGS]) +@@ -291,8 +332,10 @@ + AC_MSG_CHECKING([consistency of all components of python development environment]) + # save current global flags + ac_save_LIBS="$LIBS" ++ ac_save_LDFLAGS="$LDFLAGS" + ac_save_CPPFLAGS="$CPPFLAGS" +- LIBS="$ac_save_LIBS $PYTHON_LDFLAGS $PYTHON_EXTRA_LDFLAGS $PYTHON_EXTRA_LIBS" ++ LIBS="$ac_save_LIBS $PYTHON_LIBS $PYTHON_EXTRA_LIBS $PYTHON_EXTRA_LIBS" ++ LDFLAGS="$ac_save_LDFLAGS $PYTHON_EXTRA_LDFLAGS" + CPPFLAGS="$ac_save_CPPFLAGS $PYTHON_CPPFLAGS" + AC_LANG_PUSH([C]) + AC_LINK_IFELSE([ +@@ -303,15 +346,17 @@ + # turn back to default flags + CPPFLAGS="$ac_save_CPPFLAGS" + LIBS="$ac_save_LIBS" ++ LDFLAGS="$ac_save_LDFLAGS" + + AC_MSG_RESULT([$pythonexists]) + + if test ! "x$pythonexists" = "xyes"; then ++ # gpgme: only warn here, no error, as we are looking for multiple versions + AC_MSG_WARN([ + Could not link test program to Python. Maybe the main Python library has been + installed in some non-standard library path. If so, pass it to configure, +- via the LDFLAGS environment variable. +- Example: ./configure LDFLAGS="-L/usr/non-standard-path/python/lib" ++ via the LIBS environment variable. ++ Example: ./configure LIBS="-L/usr/non-standard-path/python/lib" + ============================================================================ + You probably have to install the development version of the Python package + for your distribution. The exact name of this package varies among them. +@@ -323,4 +368,4 @@ + # + # all done! + # +-]) ++]) +\ No newline at end of file + diff --git a/nixpkgs/pkgs/development/libraries/gpgme/python-find-version-string-above-310.patch b/nixpkgs/pkgs/development/libraries/gpgme/python-find-version-string-above-310.patch new file mode 100644 index 000000000000..3d8191c99295 --- /dev/null +++ b/nixpkgs/pkgs/development/libraries/gpgme/python-find-version-string-above-310.patch @@ -0,0 +1,373 @@ +diff --git a/configure.ac b/configure.ac +--- a/configure.ac ++++ b/configure.ac +@@ -425,11 +425,12 @@ + if test "$found_py" = "1" -o "$found_py3" = "1"; then + # Reset everything, so that we can look for another Python. + m4_foreach([mym4pythonver], +- [[2.7],[3.4],[3.5],[3.6],[3.7],[3.8],[3.9],[all]], ++ [[2.7],[3.4],[3.5],[3.6],[3.7],[3.8],[3.9],[3.10],[all]], + [unset PYTHON + unset PYTHON_VERSION + unset PYTHON_CPPFLAGS + unset PYTHON_LDFLAGS ++ unset PYTHON_LIBS + unset PYTHON_SITE_PKG + unset PYTHON_EXTRA_LIBS + unset PYTHON_EXTRA_LDFLAGS +diff --git a/m4/python.m4 b/m4/python.m4 +--- a/m4/python.m4 ++++ b/m4/python.m4 +@@ -1,10 +1,10 @@ + ## ------------------------ -*- Autoconf -*- + ## Python file handling + ## From Andrew Dalke +-## Updated by James Henstridge ++## Updated by James Henstridge and other contributors. + ## Updated by Werner Koch 2018-10-17 +-## --------------------------------- +-# Copyright (C) 1999-2017 Free Software Foundation, Inc. ++## ------------------------ ++# Copyright (C) 1999-2021 Free Software Foundation, Inc. + # + # This file is free software; the Free Software Foundation + # gives unlimited permission to copy and/or distribute it, +@@ -36,13 +36,12 @@ + # numbers and dots only. + AC_DEFUN([AM_PATH_PYTHON], + [ +- dnl Find a Python interpreter. Python versions prior to 2.0 are not +- dnl supported. (2.0 was released on October 16, 2000). Python 3.0 +- dnl through to Python 3.9 are also not supported. ++ dnl Find a Python interpreter. Python versions prior to 2.7 are not ++ dnl supported. Python 3.0 through to Python 3.3 are also not supported. + m4_define_default([_AM_PYTHON_INTERPRETER_LIST], + [python2 python2.7 dnl + python dnl +- python3 python3.9 python3.8 python3.7 python3.6 python3.5 python3.4 ++ python3 python3.10 python3.9 python3.8 python3.7 python3.6 python3.5 python3.4 + ]) + + AC_ARG_VAR([PYTHON], [the Python interpreter]) +@@ -85,34 +84,141 @@ + ]) + + if test "$PYTHON" = :; then +- dnl Run any user-specified action, or abort. ++ dnl Run any user-specified action, or abort. + m4_default([$3], [AC_MSG_ERROR([no suitable Python interpreter found])]) + else + +- dnl Query Python for its version number. Getting [:3] seems to be +- dnl the best way to do this; it's what "site.py" does in the standard +- dnl library. +- ++ dnl Query Python for its version number. Although site.py simply uses ++ dnl sys.version[:3], printing that failed with Python 3.10, since the ++ dnl trailing zero was eliminated. So now we output just the major ++ dnl and minor version numbers, as numbers. Apparently the tertiary ++ dnl version is not of interest. ++ dnl + AC_CACHE_CHECK([for $am_display_PYTHON version], [am_cv_python_version], +- [am_cv_python_version=`$PYTHON -c "import sys; sys.stdout.write(sys.version[[:3]])"`]) ++ [am_cv_python_version=`$PYTHON -c "import sys; print ('%u.%u' % sys.version_info[[:2]])"`]) + AC_SUBST([PYTHON_VERSION], [$am_cv_python_version]) + +- dnl Use the values of $prefix and $exec_prefix for the corresponding +- dnl values of PYTHON_PREFIX and PYTHON_EXEC_PREFIX. These are made +- dnl distinct variables so they can be overridden if need be. However, +- dnl general consensus is that you shouldn't need this ability. +- +- AC_SUBST([PYTHON_PREFIX], ['${prefix}']) +- AC_SUBST([PYTHON_EXEC_PREFIX], ['${exec_prefix}']) +- +- dnl At times (like when building shared libraries) you may want ++ dnl At times, e.g., when building shared libraries, you may want + dnl to know which OS platform Python thinks this is. +- ++ dnl + AC_CACHE_CHECK([for $am_display_PYTHON platform], [am_cv_python_platform], + [am_cv_python_platform=`$PYTHON -c "import sys; sys.stdout.write(sys.platform)"`]) + AC_SUBST([PYTHON_PLATFORM], [$am_cv_python_platform]) + +- # Just factor out some code duplication. ++ dnl emacs-page ++ dnl If --with-python-sys-prefix is given, use the values of sys.prefix ++ dnl and sys.exec_prefix for the corresponding values of PYTHON_PREFIX ++ dnl and PYTHON_EXEC_PREFIX. Otherwise, use the GNU ${prefix} and ++ dnl ${exec_prefix} variables. ++ dnl ++ dnl The two are made distinct variables so they can be overridden if ++ dnl need be, although general consensus is that you shouldn't need ++ dnl this separation. ++ dnl ++ dnl Also allow directly setting the prefixes via configure options, ++ dnl overriding any default. ++ dnl ++ if test "x$prefix" = xNONE; then ++ am__usable_prefix=$ac_default_prefix ++ else ++ am__usable_prefix=$prefix ++ fi ++ ++ # Allow user to request using sys.* values from Python, ++ # instead of the GNU $prefix values. ++ AC_ARG_WITH([python-sys-prefix], ++ [AS_HELP_STRING([--with-python-sys-prefix], ++ [use Python's sys.prefix and sys.exec_prefix values])], ++ [am_use_python_sys=:], ++ [am_use_python_sys=false]) ++ ++ # Allow user to override whatever the default Python prefix is. ++ AC_ARG_WITH([python_prefix], ++ [AS_HELP_STRING([--with-python_prefix], ++ [override the default PYTHON_PREFIX])], ++ [am_python_prefix_subst=$withval ++ am_cv_python_prefix=$withval ++ AC_MSG_CHECKING([for explicit $am_display_PYTHON prefix]) ++ AC_MSG_RESULT([$am_cv_python_prefix])], ++ [ ++ if $am_use_python_sys; then ++ # using python sys.prefix value, not GNU ++ AC_CACHE_CHECK([for python default $am_display_PYTHON prefix], ++ [am_cv_python_prefix], ++ [am_cv_python_prefix=`$PYTHON -c "import sys; sys.stdout.write(sys.prefix)"`]) ++ ++ dnl If sys.prefix is a subdir of $prefix, replace the literal value of ++ dnl $prefix with a variable reference so it can be overridden. ++ case $am_cv_python_prefix in ++ $am__usable_prefix*) ++ am__strip_prefix=`echo "$am__usable_prefix" | sed 's|.|.|g'` ++ am_python_prefix_subst=`echo "$am_cv_python_prefix" | sed "s,^$am__strip_prefix,\\${prefix},"` ++ ;; ++ *) ++ am_python_prefix_subst=$am_cv_python_prefix ++ ;; ++ esac ++ else # using GNU prefix value, not python sys.prefix ++ am_python_prefix_subst='${prefix}' ++ am_python_prefix=$am_python_prefix_subst ++ AC_MSG_CHECKING([for GNU default $am_display_PYTHON prefix]) ++ AC_MSG_RESULT([$am_python_prefix]) ++ fi]) ++ # Substituting python_prefix_subst value. ++ AC_SUBST([PYTHON_PREFIX], [$am_python_prefix_subst]) ++ ++ # emacs-page Now do it all over again for Python exec_prefix, but with yet ++ # another conditional: fall back to regular prefix if that was specified. ++ AC_ARG_WITH([python_exec_prefix], ++ [AS_HELP_STRING([--with-python_exec_prefix], ++ [override the default PYTHON_EXEC_PREFIX])], ++ [am_python_exec_prefix_subst=$withval ++ am_cv_python_exec_prefix=$withval ++ AC_MSG_CHECKING([for explicit $am_display_PYTHON exec_prefix]) ++ AC_MSG_RESULT([$am_cv_python_exec_prefix])], ++ [ ++ # no explicit --with-python_exec_prefix, but if ++ # --with-python_prefix was given, use its value for python_exec_prefix too. ++ AS_IF([test -n "$with_python_prefix"], ++ [am_python_exec_prefix_subst=$with_python_prefix ++ am_cv_python_exec_prefix=$with_python_prefix ++ AC_MSG_CHECKING([for python_prefix-given $am_display_PYTHON exec_prefix]) ++ AC_MSG_RESULT([$am_cv_python_exec_prefix])], ++ [ ++ # Set am__usable_exec_prefix whether using GNU or Python values, ++ # since we use that variable for pyexecdir. ++ if test "x$exec_prefix" = xNONE; then ++ am__usable_exec_prefix=$am__usable_prefix ++ else ++ am__usable_exec_prefix=$exec_prefix ++ fi ++ # ++ if $am_use_python_sys; then # using python sys.exec_prefix, not GNU ++ AC_CACHE_CHECK([for python default $am_display_PYTHON exec_prefix], ++ [am_cv_python_exec_prefix], ++ [am_cv_python_exec_prefix=`$PYTHON -c "import sys; sys.stdout.write(sys.exec_prefix)"`]) ++ dnl If sys.exec_prefix is a subdir of $exec_prefix, replace the ++ dnl literal value of $exec_prefix with a variable reference so it can ++ dnl be overridden. ++ case $am_cv_python_exec_prefix in ++ $am__usable_exec_prefix*) ++ am__strip_prefix=`echo "$am__usable_exec_prefix" | sed 's|.|.|g'` ++ am_python_exec_prefix_subst=`echo "$am_cv_python_exec_prefix" | sed "s,^$am__strip_prefix,\\${exec_prefix},"` ++ ;; ++ *) ++ am_python_exec_prefix_subst=$am_cv_python_exec_prefix ++ ;; ++ esac ++ else # using GNU $exec_prefix, not python sys.exec_prefix ++ am_python_exec_prefix_subst='${exec_prefix}' ++ am_python_exec_prefix=$am_python_exec_prefix_subst ++ AC_MSG_CHECKING([for GNU default $am_display_PYTHON exec_prefix]) ++ AC_MSG_RESULT([$am_python_exec_prefix]) ++ fi])]) ++ # Substituting python_exec_prefix_subst. ++ AC_SUBST([PYTHON_EXEC_PREFIX], [$am_python_exec_prefix_subst]) ++ ++ # Factor out some code duplication into this shell variable. + am_python_setup_sysconfig="\ + import sys + # Prefer sysconfig over distutils.sysconfig, for better compatibility +@@ -132,96 +238,95 @@ + except ImportError: + pass" + +- dnl Set up 4 directories: ++ dnl emacs-page Set up 4 directories: + +- dnl pythondir -- where to install python scripts. This is the +- dnl site-packages directory, not the python standard library +- dnl directory like in previous automake betas. This behavior +- dnl is more consistent with lispdir.m4 for example. ++ dnl 1. pythondir: where to install python scripts. This is the ++ dnl site-packages directory, not the python standard library ++ dnl directory like in previous automake betas. This behavior ++ dnl is more consistent with lispdir.m4 for example. + dnl Query distutils for this directory. +- AC_CACHE_CHECK([for $am_display_PYTHON script directory], +- [am_cv_python_pythondir], +- [if test "x$prefix" = xNONE +- then +- am_py_prefix=$ac_default_prefix +- else +- am_py_prefix=$prefix +- fi +- am_cv_python_pythondir=`$PYTHON -c " ++ dnl ++ AC_CACHE_CHECK([for $am_display_PYTHON script directory (pythondir)], ++ [am_cv_python_pythondir], ++ [if test "x$am_cv_python_prefix" = x; then ++ am_py_prefix=$am__usable_prefix ++ else ++ am_py_prefix=$am_cv_python_prefix ++ fi ++ am_cv_python_pythondir=`$PYTHON -c " + $am_python_setup_sysconfig + if can_use_sysconfig: +- sitedir = sysconfig.get_path('purelib', vars={'base':'$am_py_prefix'}) ++ sitedir = sysconfig.get_path('purelib', vars={'base':'$am_py_prefix'}) + else: +- from distutils import sysconfig +- sitedir = sysconfig.get_python_lib(0, 0, prefix='$am_py_prefix') ++ from distutils import sysconfig ++ sitedir = sysconfig.get_python_lib(0, 0, prefix='$am_py_prefix') + sys.stdout.write(sitedir)"` +- case $am_cv_python_pythondir in +- $am_py_prefix*) +- am__strip_prefix=`echo "$am_py_prefix" | sed 's|.|.|g'` +- am_cv_python_pythondir=`echo "$am_cv_python_pythondir" | sed "s,^$am__strip_prefix,$PYTHON_PREFIX,"` +- ;; +- *) +- case $am_py_prefix in +- /usr|/System*) ;; +- *) +- am_cv_python_pythondir=$PYTHON_PREFIX/lib/python$PYTHON_VERSION/site-packages +- ;; +- esac +- ;; ++ # ++ case $am_cv_python_pythondir in ++ $am_py_prefix*) ++ am__strip_prefix=`echo "$am_py_prefix" | sed 's|.|.|g'` ++ am_cv_python_pythondir=`echo "$am_cv_python_pythondir" | sed "s,^$am__strip_prefix,\\${PYTHON_PREFIX},"` ++ ;; ++ *) ++ case $am_py_prefix in ++ /usr|/System*) ;; ++ *) am_cv_python_pythondir="\${PYTHON_PREFIX}/lib/python$PYTHON_VERSION/site-packages" ++ ;; + esac +- ]) ++ ;; ++ esac ++ ]) + AC_SUBST([pythondir], [$am_cv_python_pythondir]) + +- dnl pkgpythondir -- $PACKAGE directory under pythondir. Was +- dnl PYTHON_SITE_PACKAGE in previous betas, but this naming is +- dnl more consistent with the rest of automake. +- ++ dnl 2. pkgpythondir: $PACKAGE directory under pythondir. Was ++ dnl PYTHON_SITE_PACKAGE in previous betas, but this naming is ++ dnl more consistent with the rest of automake. ++ dnl + AC_SUBST([pkgpythondir], [\${pythondir}/$PACKAGE]) + +- dnl pyexecdir -- directory for installing python extension modules +- dnl (shared libraries) ++ dnl 3. pyexecdir: directory for installing python extension modules ++ dnl (shared libraries). + dnl Query distutils for this directory. +- AC_CACHE_CHECK([for $am_display_PYTHON extension module directory], +- [am_cv_python_pyexecdir], +- [if test "x$exec_prefix" = xNONE +- then +- am_py_exec_prefix=$am_py_prefix +- else +- am_py_exec_prefix=$exec_prefix +- fi +- am_cv_python_pyexecdir=`$PYTHON -c " ++ dnl ++ AC_CACHE_CHECK([for $am_display_PYTHON extension module directory (pyexecdir)], ++ [am_cv_python_pyexecdir], ++ [if test "x$am_cv_python_exec_prefix" = x; then ++ am_py_exec_prefix=$am__usable_exec_prefix ++ else ++ am_py_exec_prefix=$am_cv_python_exec_prefix ++ fi ++ am_cv_python_pyexecdir=`$PYTHON -c " + $am_python_setup_sysconfig + if can_use_sysconfig: +- sitedir = sysconfig.get_path('platlib', vars={'platbase':'$am_py_prefix'}) ++ sitedir = sysconfig.get_path('platlib', vars={'platbase':'$am_py_exec_prefix'}) + else: +- from distutils import sysconfig +- sitedir = sysconfig.get_python_lib(1, 0, prefix='$am_py_prefix') ++ from distutils import sysconfig ++ sitedir = sysconfig.get_python_lib(1, 0, prefix='$am_py_exec_prefix') + sys.stdout.write(sitedir)"` +- case $am_cv_python_pyexecdir in +- $am_py_exec_prefix*) +- am__strip_prefix=`echo "$am_py_exec_prefix" | sed 's|.|.|g'` +- am_cv_python_pyexecdir=`echo "$am_cv_python_pyexecdir" | sed "s,^$am__strip_prefix,$PYTHON_EXEC_PREFIX,"` +- ;; +- *) +- case $am_py_exec_prefix in +- /usr|/System*) ;; +- *) +- am_cv_python_pyexecdir=$PYTHON_EXEC_PREFIX/lib/python$PYTHON_VERSION/site-packages +- ;; +- esac +- ;; ++ # ++ case $am_cv_python_pyexecdir in ++ $am_py_exec_prefix*) ++ am__strip_prefix=`echo "$am_py_exec_prefix" | sed 's|.|.|g'` ++ am_cv_python_pyexecdir=`echo "$am_cv_python_pyexecdir" | sed "s,^$am__strip_prefix,\\${PYTHON_EXEC_PREFIX},"` ++ ;; ++ *) ++ case $am_py_exec_prefix in ++ /usr|/System*) ;; ++ *) am_cv_python_pyexecdir="\${PYTHON_EXEC_PREFIX}/lib/python$PYTHON_VERSION/site-packages" ++ ;; + esac +- ]) ++ ;; ++ esac ++ ]) + AC_SUBST([pyexecdir], [$am_cv_python_pyexecdir]) + +- dnl pkgpyexecdir -- $(pyexecdir)/$(PACKAGE) +- ++ dnl 4. pkgpyexecdir: $(pyexecdir)/$(PACKAGE) ++ dnl + AC_SUBST([pkgpyexecdir], [\${pyexecdir}/$PACKAGE]) + + dnl Run any user-specified action. + $2 + fi +- + ]) + + + diff --git a/nixpkgs/pkgs/development/libraries/gpgme/test_t-edit-sign.diff b/nixpkgs/pkgs/development/libraries/gpgme/test_t-edit-sign.diff deleted file mode 100644 index 55075b9eb126..000000000000 --- a/nixpkgs/pkgs/development/libraries/gpgme/test_t-edit-sign.diff +++ /dev/null @@ -1,125 +0,0 @@ -From 81a33ea5e1b86d586b956e893a5b25c4cd41c969 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Ingo=20Kl=C3=B6cker?= <dev@ingo-kloecker.de> -Date: Sat, 26 Jun 2021 18:02:47 +0200 -Subject: [PATCH] core: Fix use-after-free issue in test - -* tests/gpg/t-edit-sign.c (sign_key, verify_key_signature): New. -(main): Factored out signing and verifying the result. --- - -Factoring the two steps of the test into different functions fixes the -use-after-free issue that was caused by accidentaly using a variable -of the first step in the second step. - -GnuPG-bug-id: 5509 ---- - tests/gpg/t-edit-sign.c | 54 ++++++++++++++++++++++++++++------------- - 1 file changed, 37 insertions(+), 17 deletions(-) - -diff --git a/tests/gpg/t-edit-sign.c b/tests/gpg/t-edit-sign.c -index 2f983622..e0494c54 100644 ---- a/tests/gpg/t-edit-sign.c -+++ b/tests/gpg/t-edit-sign.c -@@ -107,31 +107,19 @@ interact_fnc (void *opaque, const char *status, const char *args, int fd) - } - - --int --main (int argc, char **argv) -+void -+sign_key (const char *key_fpr, const char *signer_fpr) - { - gpgme_ctx_t ctx; - gpgme_error_t err; - gpgme_data_t out = NULL; -- const char *signer_fpr = "A0FF4590BB6122EDEF6E3C542D727CC768697734"; /* Alpha Test */ - gpgme_key_t signing_key = NULL; -- const char *key_fpr = "D695676BDCEDCC2CDD6152BCFE180B1DA9E3B0B2"; /* Bravo Test */ - gpgme_key_t key = NULL; -- gpgme_key_t signed_key = NULL; -- gpgme_user_id_t signed_uid = NULL; -- gpgme_key_sig_t key_sig = NULL; - char *agent_info; -- int mode; -- -- (void)argc; -- (void)argv; -- -- init_gpgme (GPGME_PROTOCOL_OpenPGP); - - err = gpgme_new (&ctx); - fail_if_err (err); - -- /* Sign the key */ - agent_info = getenv("GPG_AGENT_INFO"); - if (!(agent_info && strchr (agent_info, ':'))) - gpgme_set_passphrase_cb (ctx, passphrase_cb, 0); -@@ -159,8 +147,23 @@ main (int argc, char **argv) - gpgme_data_release (out); - gpgme_key_unref (key); - gpgme_key_unref (signing_key); -+ gpgme_release (ctx); -+} -+ -+ -+void -+verify_key_signature (const char *key_fpr, const char *signer_keyid) -+{ -+ gpgme_ctx_t ctx; -+ gpgme_error_t err; -+ gpgme_key_t signed_key = NULL; -+ gpgme_user_id_t signed_uid = NULL; -+ gpgme_key_sig_t key_sig = NULL; -+ int mode; -+ -+ err = gpgme_new (&ctx); -+ fail_if_err (err); - -- /* Verify the key signature */ - mode = gpgme_get_keylist_mode (ctx); - mode |= GPGME_KEYLIST_MODE_SIGS; - err = gpgme_set_keylist_mode (ctx, mode); -@@ -168,7 +171,7 @@ main (int argc, char **argv) - err = gpgme_get_key (ctx, key_fpr, &signed_key, 0); - fail_if_err (err); - -- signed_uid = key->uids; -+ signed_uid = signed_key->uids; - if (!signed_uid) - { - fprintf (stderr, "Signed key has no user IDs\n"); -@@ -180,7 +183,7 @@ main (int argc, char **argv) - exit (1); - } - key_sig = signed_uid->signatures->next; -- if (strcmp ("2D727CC768697734", key_sig->keyid)) -+ if (strcmp (signer_keyid, key_sig->keyid)) - { - fprintf (stderr, "Unexpected key ID in second user ID sig: %s\n", - key_sig->keyid); -@@ -196,6 +199,23 @@ main (int argc, char **argv) - - gpgme_key_unref (signed_key); - gpgme_release (ctx); -+} -+ -+ -+int -+main (int argc, char **argv) -+{ -+ const char *signer_fpr = "A0FF4590BB6122EDEF6E3C542D727CC768697734"; /* Alpha Test */ -+ const char *signer_keyid = signer_fpr + strlen(signer_fpr) - 16; -+ const char *key_fpr = "D695676BDCEDCC2CDD6152BCFE180B1DA9E3B0B2"; /* Bravo Test */ -+ -+ (void)argc; -+ (void)argv; -+ -+ init_gpgme (GPGME_PROTOCOL_OpenPGP); -+ -+ sign_key (key_fpr, signer_fpr); -+ verify_key_signature (key_fpr, signer_keyid); - - return 0; - } --- -2.32.0 |