build,python: Separate Python bindings from gpgme
* configure.ac: Remove "python" from available_languages and from default_languages. Remove checks for SWIG and available Python versions. Remove substitution of PYTHONS. Remove generation of files in lang/python. * lang/Makefile.am (DIST_SUBDIRS): Remove python. * lang/python/.gitignore, lang/python/AUTHORS, lang/python/COPYING, lang/python/COPYING.LESSER, lang/python/ChangeLog, lang/python/INSTALL, lang/python/NEWS, lang/python/autogen.rc, lang/python/autogen.sh, lang/python/configure.ac: New. * lang/python/Makefile.am (EXTRA_DIST): Add autogen.sh, autogen.rc. copystamp: Remove symbolic linking of gpgme's internal data.h header and of gpgme's config.h file. CLEANFILES: Remove cleaning of config.h and data.h. (RELEASE_ARCHIVE_SUFFIX, ACLOCAL_AMFLAGS, dist-hook, distcheck-hook, .PHONY, gen_start_date, gen-ChangeLog, RELEASE_NAME, release, sign-release): New (copied from top-level Makefile.am). * lang/python/build-aux/compile, lang/python/build-aux/config.guess, lang/python/build-aux/config.sub, lang/python/build-aux/depcomp, lang/python/build-aux/install-sh, lang/python/build-aux/libtool-patch.sed, lang/python/build-aux/ltmain.sh, lang/python/build-aux/missing: New. * m4/ax_pkg_swig.m4: Move to... * lang/python/m4/ax_pkg_swig.m4: ...here. * m4/ax_python_devel.m4: Move to... * lang/python/m4/ax_python_devel.m4: ...here. * m4/python.m4: Move to... * lang/python/m4/python.m4: ...here. * lang/python/m4/gpg-error.m4, lang/python/m4/gpgme.m4, lang/python/m4/libassuan.m4, lang/python/m4/libtool.m4, lang/python/m4/ltoptions.m4, lang/python/m4/ltsugar.m4, lang/python/m4/ltversion.m4, lang/python/m4/lt~obsolete.m4: New. * lang/python/setup.py.in: Remove code for in-tree builds. Initialize libs from @GPGME_LIBS@ instead of @GPGME_CONFIG_LIBS@. Initialize include_dirs and define_macros from @GPGME_CFLAGS@ instead of @GPGME_CONFIG_CFLAGS@. Look for gpgme.h in @prefix@/include and in include_dirs and '/usr/include'. * lang/python/tests/13CBE3758AFE42B5E5E2AE4CED27AFA455E3F87F, lang/python/tests/13CD0F3BDF24BE53FE192D62F18737256FF6E4FD, lang/python/tests/76F7E2B35832976B50A27A282D9B87E44577EB66, lang/python/tests/7A030357C0F253A5BBCD282FFC4E521B37558F5C, lang/python/tests/A0747D5F9425E6664F4FFBEED20FBCA79FDED2BD: New. * lang/python/tests/Makefile.am (test_srcdir): Remove. (TESTS_ENVIRONMENT): Remove adding .libs directory with gpgme library to LD_LIBRARYPATH. (private_keys): Use local copies instead of files from gpgme's tests. (EXTRA_DIST): Add new files. (clean-local): Call local copy of start-stop-agent script. (gpg-sample.stamp): Use local copies of private keys. (pubring-stamp): Use local copies of pubdemo.asc and secdemo.asc. (gpg-agent.conf): Use local copy of pinentry helper. * lang/python/tests/cipher-1.asc, lang/python/tests/cipher-2.asc, lang/python/tests/cipher-3.asc, lang/python/tests/cipher-no-sig.asc, lang/python/tests/pinentry, lang/python/tests/pubdemo.asc, lang/python/tests/pubkey-1.asc, lang/python/tests/secdemo.asc, lang/python/tests/seckey-1.asc, lang/python/tests/start-stop-agent: New. * lang/python/tests/support.py (make_filename): Adapt to changed path of test files. -- This makes building and distributing the Python bindings independent of the sources of gpgme. Many of the new files are copied from gpgme to make the Python bindings a self-contained package. A later commit re-adds the possibility to build the Python bindings as nested package together with gpgme. GnuPG-bug-id: 7110
This commit is contained in:
parent
28c23ce8db
commit
f87e23c512
86
configure.ac
86
configure.ac
@ -236,8 +236,8 @@ have_w32_system=no
|
|||||||
have_w64_system=no
|
have_w64_system=no
|
||||||
have_macos_system=no
|
have_macos_system=no
|
||||||
build_w32_glib=no
|
build_w32_glib=no
|
||||||
available_languages="cl python"
|
available_languages="cl"
|
||||||
default_languages="cl python"
|
default_languages="cl"
|
||||||
case "${host}" in
|
case "${host}" in
|
||||||
x86_64-*mingw32*)
|
x86_64-*mingw32*)
|
||||||
have_w64_system=yes
|
have_w64_system=yes
|
||||||
@ -324,7 +324,7 @@ fi
|
|||||||
AC_ARG_ENABLE([languages],
|
AC_ARG_ENABLE([languages],
|
||||||
AS_HELP_STRING([--enable-languages=languages],
|
AS_HELP_STRING([--enable-languages=languages],
|
||||||
[enable only specific language bindings:
|
[enable only specific language bindings:
|
||||||
cl python]),
|
cl]),
|
||||||
[enabled_languages=`echo $enableval | \
|
[enabled_languages=`echo $enableval | \
|
||||||
tr ',:' ' ' | tr '[A-Z]' '[a-z]'`],
|
tr ',:' ' ' | tr '[A-Z]' '[a-z]'`],
|
||||||
[enabled_languages="maybe"])
|
[enabled_languages="maybe"])
|
||||||
@ -349,79 +349,6 @@ for language in $enabled_languages; do
|
|||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
|
|
||||||
# Python bindings.
|
|
||||||
LIST_MEMBER("python", $enabled_languages)
|
|
||||||
found_py=$found
|
|
||||||
if test "$found_py" = "1"; then
|
|
||||||
AX_PKG_SWIG
|
|
||||||
if test -z "$SWIG"; then
|
|
||||||
if test "$explicit_languages" = "1"; then
|
|
||||||
AC_MSG_ERROR([[
|
|
||||||
***
|
|
||||||
*** You need SWIG to build the Python bindings.
|
|
||||||
***]])
|
|
||||||
else
|
|
||||||
enabled_languages=$(echo $enabled_languages | sed 's/python//')
|
|
||||||
fi
|
|
||||||
else
|
|
||||||
# Reset the version collecting vars.
|
|
||||||
PYTHONS=
|
|
||||||
PYTHON_VERSIONS=
|
|
||||||
|
|
||||||
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.6],[3.8],[3.9],[3.10],[3.11],[3.12],[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
|
|
||||||
unset ac_cv_path_PYTHON
|
|
||||||
unset am_cv_pathless_PYTHON
|
|
||||||
unset am_cv_python_version
|
|
||||||
unset am_cv_python_platform
|
|
||||||
unset am_cv_python_pythondir
|
|
||||||
unset am_cv_python_pyexecdir
|
|
||||||
AM_PATH_PYTHON(mym4pythonver, [
|
|
||||||
AX_PYTHON_DEVEL([], [true])
|
|
||||||
if test "$PYTHON_VERSION"; then
|
|
||||||
PYTHONS="$(echo $PYTHONS $PYTHON)"
|
|
||||||
PYTHON_VERSIONS="$(echo $PYTHON_VERSIONS $PYTHON_VERSION)"
|
|
||||||
fi
|
|
||||||
], :, m4_if([mym4pythonver],[all],[],[python]mym4pythonver))
|
|
||||||
])
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Recover some values lost in the second attempt to find Python.
|
|
||||||
PYTHON="$(echo $PYTHONS | cut -d ' ' -f 1)"
|
|
||||||
PYTHON_VERSION="$(echo $PYTHON_VERSIONS | cut -d ' ' -f 1)"
|
|
||||||
|
|
||||||
# Remove duplicates.
|
|
||||||
PYTHONS="$(echo $PYTHONS | tr '[[:space:]]' '\n' | sort | uniq | tr '\n' ' ' | sed -e 's/ $//')"
|
|
||||||
PYTHON_VERSIONS="$(echo $PYTHON_VERSIONS | tr '[[:space:]]' '\n' | sort | uniq | tr '\n' ' ' | sed -e 's/ $//')"
|
|
||||||
|
|
||||||
if test "$PYTHON_VERSIONS"; then
|
|
||||||
enabled_languages_v=$(echo $enabled_languages | sed -Ee "s/python[[23]]?/python ($PYTHON_VERSIONS)/")
|
|
||||||
enabled_languages=$(echo $enabled_languages | sed -Ee "s/python[[23]]?/python/")
|
|
||||||
else
|
|
||||||
if test "$explicit_languages" = "1"; then
|
|
||||||
AC_MSG_ERROR([[
|
|
||||||
***
|
|
||||||
*** Please install the python development packages.
|
|
||||||
***]])
|
|
||||||
else
|
|
||||||
enabled_languages=$(echo $enabled_languages | sed 's/python//')
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
AC_SUBST(PYTHONS, $PYTHONS)
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
AC_SUBST(ENABLED_LANGUAGES, $enabled_languages)
|
AC_SUBST(ENABLED_LANGUAGES, $enabled_languages)
|
||||||
|
|
||||||
#
|
#
|
||||||
@ -898,13 +825,6 @@ AC_CONFIG_FILES([lang/Makefile lang/cl/Makefile lang/cl/gpgme.asd])
|
|||||||
AC_CONFIG_FILES([lang/js/Makefile lang/js/src/Makefile
|
AC_CONFIG_FILES([lang/js/Makefile lang/js/src/Makefile
|
||||||
lang/js/BrowserTestExtension/Makefile
|
lang/js/BrowserTestExtension/Makefile
|
||||||
lang/js/DemoExtension/Makefile])
|
lang/js/DemoExtension/Makefile])
|
||||||
AC_CONFIG_FILES([lang/python/Makefile
|
|
||||||
lang/python/version.py
|
|
||||||
lang/python/tests/Makefile
|
|
||||||
lang/python/src/Makefile
|
|
||||||
lang/python/examples/Makefile
|
|
||||||
lang/python/doc/Makefile])
|
|
||||||
AC_CONFIG_FILES([lang/python/setup.py], [chmod a+x lang/python/setup.py])
|
|
||||||
AC_OUTPUT
|
AC_OUTPUT
|
||||||
|
|
||||||
echo "
|
echo "
|
||||||
|
@ -18,6 +18,6 @@
|
|||||||
# SPDX-License-Identifier: LGPL-2.1-or-later
|
# SPDX-License-Identifier: LGPL-2.1-or-later
|
||||||
|
|
||||||
SUBDIRS = $(ENABLED_LANGUAGES)
|
SUBDIRS = $(ENABLED_LANGUAGES)
|
||||||
DIST_SUBDIRS = cl python js
|
DIST_SUBDIRS = cl js
|
||||||
|
|
||||||
EXTRA_DIST = README
|
EXTRA_DIST = README
|
||||||
|
10
lang/python/.gitignore
vendored
Normal file
10
lang/python/.gitignore
vendored
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
# GnuPG exclusions
|
||||||
|
/aclocal.m4
|
||||||
|
/autom4te.cache
|
||||||
|
/configure
|
||||||
|
/config.h.in
|
||||||
|
/VERSION
|
||||||
|
Makefile.in
|
||||||
|
|
||||||
|
# Hidden files
|
||||||
|
*~
|
54
lang/python/AUTHORS
Normal file
54
lang/python/AUTHORS
Normal file
@ -0,0 +1,54 @@
|
|||||||
|
Package: gpg-py
|
||||||
|
Homepage: https://gnupg.org/software/gpgme/
|
||||||
|
Download: https://gnupg.org/ftp/gcrypt/gpgme/
|
||||||
|
Repository: git://git.gnupg.org/gpgme.git
|
||||||
|
Maintainer: Werner Koch <wk@gnupg.org>
|
||||||
|
Bug reports: https://bugs.gnupg.org
|
||||||
|
Security related bug reports: security@gnupg.org
|
||||||
|
License (software): LGPL-2.1-or-later
|
||||||
|
License (examples, tests): GPL-2.0-or-later
|
||||||
|
|
||||||
|
|
||||||
|
GPGME is free software. See the files COPYING.LESSER and COPYING for
|
||||||
|
copying conditions. License copyright years may be listed using range
|
||||||
|
notation, e.g., 2000-2013, indicating that every year in the range,
|
||||||
|
inclusive, is a copyrightable year that would otherwise be listed
|
||||||
|
individually.
|
||||||
|
|
||||||
|
|
||||||
|
List of Copyright holders
|
||||||
|
=========================
|
||||||
|
|
||||||
|
Copyright (C) 1985, 1986, 1988, 1990-2022 Free Software Foundation, Inc.
|
||||||
|
Copyright (C) 2000 Werner Koch
|
||||||
|
Copyright (C) 2001-2022, 2024 g10 Code GmbH
|
||||||
|
Copyright (C) 2004-2008 Igor Belyi
|
||||||
|
Copyright (C) 2002 John Goerzen
|
||||||
|
Copyright (C) 2008 Bernhard Reiter
|
||||||
|
Copyright (C) 2014, 2015 Martin Albrecht
|
||||||
|
Copyright (C) 2015, 2018, 2019 Ben McGinnes
|
||||||
|
Copyright (C) 2016 Tobias Mueller
|
||||||
|
|
||||||
|
|
||||||
|
Authors with a DCO
|
||||||
|
==================
|
||||||
|
|
||||||
|
Daniel Kahn Gillmor <dkg@fifthhorseman.net>
|
||||||
|
2014-09-24:878ul9w4j8.fsf@alice.fifthhorseman.net:
|
||||||
|
|
||||||
|
Tobias Mueller <muelli@cryptobitch.de>
|
||||||
|
2016-11-23:1479937342.11180.3.camel@cryptobitch.de:
|
||||||
|
|
||||||
|
Ben McGinnes <ben@adversary.org>
|
||||||
|
2017-12-16:20171216002102.l6aejk5xdp6xhtfi@adversary.org:
|
||||||
|
|
||||||
|
|
||||||
|
Copyright 2001, 2002, 2012, 2013 g10 Code GmbH
|
||||||
|
|
||||||
|
This file is free software; as a special exception the author gives
|
||||||
|
unlimited permission to copy and/or distribute it, with or without
|
||||||
|
modifications, as long as this notice is preserved.
|
||||||
|
|
||||||
|
This file is distributed in the hope that it will be useful, but
|
||||||
|
WITHOUT ANY WARRANTY, to the extent permitted by law; without even the
|
||||||
|
implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
340
lang/python/COPYING
Normal file
340
lang/python/COPYING
Normal file
@ -0,0 +1,340 @@
|
|||||||
|
GNU GENERAL PUBLIC LICENSE
|
||||||
|
Version 2, June 1991
|
||||||
|
|
||||||
|
Copyright (C) 1989, 1991 Free Software Foundation, Inc.
|
||||||
|
59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||||
|
Everyone is permitted to copy and distribute verbatim copies
|
||||||
|
of this license document, but changing it is not allowed.
|
||||||
|
|
||||||
|
Preamble
|
||||||
|
|
||||||
|
The licenses for most software are designed to take away your
|
||||||
|
freedom to share and change it. By contrast, the GNU General Public
|
||||||
|
License is intended to guarantee your freedom to share and change free
|
||||||
|
software--to make sure the software is free for all its users. This
|
||||||
|
General Public License applies to most of the Free Software
|
||||||
|
Foundation's software and to any other program whose authors commit to
|
||||||
|
using it. (Some other Free Software Foundation software is covered by
|
||||||
|
the GNU Library General Public License instead.) You can apply it to
|
||||||
|
your programs, too.
|
||||||
|
|
||||||
|
When we speak of free software, we are referring to freedom, not
|
||||||
|
price. Our General Public Licenses are designed to make sure that you
|
||||||
|
have the freedom to distribute copies of free software (and charge for
|
||||||
|
this service if you wish), that you receive source code or can get it
|
||||||
|
if you want it, that you can change the software or use pieces of it
|
||||||
|
in new free programs; and that you know you can do these things.
|
||||||
|
|
||||||
|
To protect your rights, we need to make restrictions that forbid
|
||||||
|
anyone to deny you these rights or to ask you to surrender the rights.
|
||||||
|
These restrictions translate to certain responsibilities for you if you
|
||||||
|
distribute copies of the software, or if you modify it.
|
||||||
|
|
||||||
|
For example, if you distribute copies of such a program, whether
|
||||||
|
gratis or for a fee, you must give the recipients all the rights that
|
||||||
|
you have. You must make sure that they, too, receive or can get the
|
||||||
|
source code. And you must show them these terms so they know their
|
||||||
|
rights.
|
||||||
|
|
||||||
|
We protect your rights with two steps: (1) copyright the software, and
|
||||||
|
(2) offer you this license which gives you legal permission to copy,
|
||||||
|
distribute and/or modify the software.
|
||||||
|
|
||||||
|
Also, for each author's protection and ours, we want to make certain
|
||||||
|
that everyone understands that there is no warranty for this free
|
||||||
|
software. If the software is modified by someone else and passed on, we
|
||||||
|
want its recipients to know that what they have is not the original, so
|
||||||
|
that any problems introduced by others will not reflect on the original
|
||||||
|
authors' reputations.
|
||||||
|
|
||||||
|
Finally, any free program is threatened constantly by software
|
||||||
|
patents. We wish to avoid the danger that redistributors of a free
|
||||||
|
program will individually obtain patent licenses, in effect making the
|
||||||
|
program proprietary. To prevent this, we have made it clear that any
|
||||||
|
patent must be licensed for everyone's free use or not licensed at all.
|
||||||
|
|
||||||
|
The precise terms and conditions for copying, distribution and
|
||||||
|
modification follow.
|
||||||
|
|
||||||
|
GNU GENERAL PUBLIC LICENSE
|
||||||
|
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
|
||||||
|
|
||||||
|
0. This License applies to any program or other work which contains
|
||||||
|
a notice placed by the copyright holder saying it may be distributed
|
||||||
|
under the terms of this General Public License. The "Program", below,
|
||||||
|
refers to any such program or work, and a "work based on the Program"
|
||||||
|
means either the Program or any derivative work under copyright law:
|
||||||
|
that is to say, a work containing the Program or a portion of it,
|
||||||
|
either verbatim or with modifications and/or translated into another
|
||||||
|
language. (Hereinafter, translation is included without limitation in
|
||||||
|
the term "modification".) Each licensee is addressed as "you".
|
||||||
|
|
||||||
|
Activities other than copying, distribution and modification are not
|
||||||
|
covered by this License; they are outside its scope. The act of
|
||||||
|
running the Program is not restricted, and the output from the Program
|
||||||
|
is covered only if its contents constitute a work based on the
|
||||||
|
Program (independent of having been made by running the Program).
|
||||||
|
Whether that is true depends on what the Program does.
|
||||||
|
|
||||||
|
1. You may copy and distribute verbatim copies of the Program's
|
||||||
|
source code as you receive it, in any medium, provided that you
|
||||||
|
conspicuously and appropriately publish on each copy an appropriate
|
||||||
|
copyright notice and disclaimer of warranty; keep intact all the
|
||||||
|
notices that refer to this License and to the absence of any warranty;
|
||||||
|
and give any other recipients of the Program a copy of this License
|
||||||
|
along with the Program.
|
||||||
|
|
||||||
|
You may charge a fee for the physical act of transferring a copy, and
|
||||||
|
you may at your option offer warranty protection in exchange for a fee.
|
||||||
|
|
||||||
|
2. You may modify your copy or copies of the Program or any portion
|
||||||
|
of it, thus forming a work based on the Program, and copy and
|
||||||
|
distribute such modifications or work under the terms of Section 1
|
||||||
|
above, provided that you also meet all of these conditions:
|
||||||
|
|
||||||
|
a) You must cause the modified files to carry prominent notices
|
||||||
|
stating that you changed the files and the date of any change.
|
||||||
|
|
||||||
|
b) You must cause any work that you distribute or publish, that in
|
||||||
|
whole or in part contains or is derived from the Program or any
|
||||||
|
part thereof, to be licensed as a whole at no charge to all third
|
||||||
|
parties under the terms of this License.
|
||||||
|
|
||||||
|
c) If the modified program normally reads commands interactively
|
||||||
|
when run, you must cause it, when started running for such
|
||||||
|
interactive use in the most ordinary way, to print or display an
|
||||||
|
announcement including an appropriate copyright notice and a
|
||||||
|
notice that there is no warranty (or else, saying that you provide
|
||||||
|
a warranty) and that users may redistribute the program under
|
||||||
|
these conditions, and telling the user how to view a copy of this
|
||||||
|
License. (Exception: if the Program itself is interactive but
|
||||||
|
does not normally print such an announcement, your work based on
|
||||||
|
the Program is not required to print an announcement.)
|
||||||
|
|
||||||
|
These requirements apply to the modified work as a whole. If
|
||||||
|
identifiable sections of that work are not derived from the Program,
|
||||||
|
and can be reasonably considered independent and separate works in
|
||||||
|
themselves, then this License, and its terms, do not apply to those
|
||||||
|
sections when you distribute them as separate works. But when you
|
||||||
|
distribute the same sections as part of a whole which is a work based
|
||||||
|
on the Program, the distribution of the whole must be on the terms of
|
||||||
|
this License, whose permissions for other licensees extend to the
|
||||||
|
entire whole, and thus to each and every part regardless of who wrote it.
|
||||||
|
|
||||||
|
Thus, it is not the intent of this section to claim rights or contest
|
||||||
|
your rights to work written entirely by you; rather, the intent is to
|
||||||
|
exercise the right to control the distribution of derivative or
|
||||||
|
collective works based on the Program.
|
||||||
|
|
||||||
|
In addition, mere aggregation of another work not based on the Program
|
||||||
|
with the Program (or with a work based on the Program) on a volume of
|
||||||
|
a storage or distribution medium does not bring the other work under
|
||||||
|
the scope of this License.
|
||||||
|
|
||||||
|
3. You may copy and distribute the Program (or a work based on it,
|
||||||
|
under Section 2) in object code or executable form under the terms of
|
||||||
|
Sections 1 and 2 above provided that you also do one of the following:
|
||||||
|
|
||||||
|
a) Accompany it with the complete corresponding machine-readable
|
||||||
|
source code, which must be distributed under the terms of Sections
|
||||||
|
1 and 2 above on a medium customarily used for software interchange; or,
|
||||||
|
|
||||||
|
b) Accompany it with a written offer, valid for at least three
|
||||||
|
years, to give any third party, for a charge no more than your
|
||||||
|
cost of physically performing source distribution, a complete
|
||||||
|
machine-readable copy of the corresponding source code, to be
|
||||||
|
distributed under the terms of Sections 1 and 2 above on a medium
|
||||||
|
customarily used for software interchange; or,
|
||||||
|
|
||||||
|
c) Accompany it with the information you received as to the offer
|
||||||
|
to distribute corresponding source code. (This alternative is
|
||||||
|
allowed only for noncommercial distribution and only if you
|
||||||
|
received the program in object code or executable form with such
|
||||||
|
an offer, in accord with Subsection b above.)
|
||||||
|
|
||||||
|
The source code for a work means the preferred form of the work for
|
||||||
|
making modifications to it. For an executable work, complete source
|
||||||
|
code means all the source code for all modules it contains, plus any
|
||||||
|
associated interface definition files, plus the scripts used to
|
||||||
|
control compilation and installation of the executable. However, as a
|
||||||
|
special exception, the source code distributed need not include
|
||||||
|
anything that is normally distributed (in either source or binary
|
||||||
|
form) with the major components (compiler, kernel, and so on) of the
|
||||||
|
operating system on which the executable runs, unless that component
|
||||||
|
itself accompanies the executable.
|
||||||
|
|
||||||
|
If distribution of executable or object code is made by offering
|
||||||
|
access to copy from a designated place, then offering equivalent
|
||||||
|
access to copy the source code from the same place counts as
|
||||||
|
distribution of the source code, even though third parties are not
|
||||||
|
compelled to copy the source along with the object code.
|
||||||
|
|
||||||
|
4. You may not copy, modify, sublicense, or distribute the Program
|
||||||
|
except as expressly provided under this License. Any attempt
|
||||||
|
otherwise to copy, modify, sublicense or distribute the Program is
|
||||||
|
void, and will automatically terminate your rights under this License.
|
||||||
|
However, parties who have received copies, or rights, from you under
|
||||||
|
this License will not have their licenses terminated so long as such
|
||||||
|
parties remain in full compliance.
|
||||||
|
|
||||||
|
5. You are not required to accept this License, since you have not
|
||||||
|
signed it. However, nothing else grants you permission to modify or
|
||||||
|
distribute the Program or its derivative works. These actions are
|
||||||
|
prohibited by law if you do not accept this License. Therefore, by
|
||||||
|
modifying or distributing the Program (or any work based on the
|
||||||
|
Program), you indicate your acceptance of this License to do so, and
|
||||||
|
all its terms and conditions for copying, distributing or modifying
|
||||||
|
the Program or works based on it.
|
||||||
|
|
||||||
|
6. Each time you redistribute the Program (or any work based on the
|
||||||
|
Program), the recipient automatically receives a license from the
|
||||||
|
original licensor to copy, distribute or modify the Program subject to
|
||||||
|
these terms and conditions. You may not impose any further
|
||||||
|
restrictions on the recipients' exercise of the rights granted herein.
|
||||||
|
You are not responsible for enforcing compliance by third parties to
|
||||||
|
this License.
|
||||||
|
|
||||||
|
7. If, as a consequence of a court judgment or allegation of patent
|
||||||
|
infringement or for any other reason (not limited to patent issues),
|
||||||
|
conditions are imposed on you (whether by court order, agreement or
|
||||||
|
otherwise) that contradict the conditions of this License, they do not
|
||||||
|
excuse you from the conditions of this License. If you cannot
|
||||||
|
distribute so as to satisfy simultaneously your obligations under this
|
||||||
|
License and any other pertinent obligations, then as a consequence you
|
||||||
|
may not distribute the Program at all. For example, if a patent
|
||||||
|
license would not permit royalty-free redistribution of the Program by
|
||||||
|
all those who receive copies directly or indirectly through you, then
|
||||||
|
the only way you could satisfy both it and this License would be to
|
||||||
|
refrain entirely from distribution of the Program.
|
||||||
|
|
||||||
|
If any portion of this section is held invalid or unenforceable under
|
||||||
|
any particular circumstance, the balance of the section is intended to
|
||||||
|
apply and the section as a whole is intended to apply in other
|
||||||
|
circumstances.
|
||||||
|
|
||||||
|
It is not the purpose of this section to induce you to infringe any
|
||||||
|
patents or other property right claims or to contest validity of any
|
||||||
|
such claims; this section has the sole purpose of protecting the
|
||||||
|
integrity of the free software distribution system, which is
|
||||||
|
implemented by public license practices. Many people have made
|
||||||
|
generous contributions to the wide range of software distributed
|
||||||
|
through that system in reliance on consistent application of that
|
||||||
|
system; it is up to the author/donor to decide if he or she is willing
|
||||||
|
to distribute software through any other system and a licensee cannot
|
||||||
|
impose that choice.
|
||||||
|
|
||||||
|
This section is intended to make thoroughly clear what is believed to
|
||||||
|
be a consequence of the rest of this License.
|
||||||
|
|
||||||
|
8. If the distribution and/or use of the Program is restricted in
|
||||||
|
certain countries either by patents or by copyrighted interfaces, the
|
||||||
|
original copyright holder who places the Program under this License
|
||||||
|
may add an explicit geographical distribution limitation excluding
|
||||||
|
those countries, so that distribution is permitted only in or among
|
||||||
|
countries not thus excluded. In such case, this License incorporates
|
||||||
|
the limitation as if written in the body of this License.
|
||||||
|
|
||||||
|
9. The Free Software Foundation may publish revised and/or new versions
|
||||||
|
of the General Public License from time to time. Such new versions will
|
||||||
|
be similar in spirit to the present version, but may differ in detail to
|
||||||
|
address new problems or concerns.
|
||||||
|
|
||||||
|
Each version is given a distinguishing version number. If the Program
|
||||||
|
specifies a version number of this License which applies to it and "any
|
||||||
|
later version", you have the option of following the terms and conditions
|
||||||
|
either of that version or of any later version published by the Free
|
||||||
|
Software Foundation. If the Program does not specify a version number of
|
||||||
|
this License, you may choose any version ever published by the Free Software
|
||||||
|
Foundation.
|
||||||
|
|
||||||
|
10. If you wish to incorporate parts of the Program into other free
|
||||||
|
programs whose distribution conditions are different, write to the author
|
||||||
|
to ask for permission. For software which is copyrighted by the Free
|
||||||
|
Software Foundation, write to the Free Software Foundation; we sometimes
|
||||||
|
make exceptions for this. Our decision will be guided by the two goals
|
||||||
|
of preserving the free status of all derivatives of our free software and
|
||||||
|
of promoting the sharing and reuse of software generally.
|
||||||
|
|
||||||
|
NO WARRANTY
|
||||||
|
|
||||||
|
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
|
||||||
|
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
|
||||||
|
OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
|
||||||
|
PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
|
||||||
|
OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
||||||
|
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
|
||||||
|
TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
|
||||||
|
PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
|
||||||
|
REPAIR OR CORRECTION.
|
||||||
|
|
||||||
|
12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
|
||||||
|
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
|
||||||
|
REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
|
||||||
|
INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
|
||||||
|
OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
|
||||||
|
TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
|
||||||
|
YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
|
||||||
|
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
|
||||||
|
POSSIBILITY OF SUCH DAMAGES.
|
||||||
|
|
||||||
|
END OF TERMS AND CONDITIONS
|
||||||
|
|
||||||
|
How to Apply These Terms to Your New Programs
|
||||||
|
|
||||||
|
If you develop a new program, and you want it to be of the greatest
|
||||||
|
possible use to the public, the best way to achieve this is to make it
|
||||||
|
free software which everyone can redistribute and change under these terms.
|
||||||
|
|
||||||
|
To do so, attach the following notices to the program. It is safest
|
||||||
|
to attach them to the start of each source file to most effectively
|
||||||
|
convey the exclusion of warranty; and each file should have at least
|
||||||
|
the "copyright" line and a pointer to where the full notice is found.
|
||||||
|
|
||||||
|
<one line to give the program's name and a brief idea of what it does.>
|
||||||
|
Copyright (C) <year> <name of author>
|
||||||
|
|
||||||
|
This program is free software; you can redistribute it and/or modify
|
||||||
|
it under the terms of the GNU General Public License as published by
|
||||||
|
the Free Software Foundation; either version 2 of the License, or
|
||||||
|
(at your option) any later version.
|
||||||
|
|
||||||
|
This program is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
GNU General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License
|
||||||
|
along with this program; if not, write to the Free Software
|
||||||
|
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||||
|
|
||||||
|
|
||||||
|
Also add information on how to contact you by electronic and paper mail.
|
||||||
|
|
||||||
|
If the program is interactive, make it output a short notice like this
|
||||||
|
when it starts in an interactive mode:
|
||||||
|
|
||||||
|
Gnomovision version 69, Copyright (C) year name of author
|
||||||
|
Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
|
||||||
|
This is free software, and you are welcome to redistribute it
|
||||||
|
under certain conditions; type `show c' for details.
|
||||||
|
|
||||||
|
The hypothetical commands `show w' and `show c' should show the appropriate
|
||||||
|
parts of the General Public License. Of course, the commands you use may
|
||||||
|
be called something other than `show w' and `show c'; they could even be
|
||||||
|
mouse-clicks or menu items--whatever suits your program.
|
||||||
|
|
||||||
|
You should also get your employer (if you work as a programmer) or your
|
||||||
|
school, if any, to sign a "copyright disclaimer" for the program, if
|
||||||
|
necessary. Here is a sample; alter the names:
|
||||||
|
|
||||||
|
Yoyodyne, Inc., hereby disclaims all copyright interest in the program
|
||||||
|
`Gnomovision' (which makes passes at compilers) written by James Hacker.
|
||||||
|
|
||||||
|
<signature of Ty Coon>, 1 April 1989
|
||||||
|
Ty Coon, President of Vice
|
||||||
|
|
||||||
|
This General Public License does not permit incorporating your program into
|
||||||
|
proprietary programs. If your program is a subroutine library, you may
|
||||||
|
consider it more useful to permit linking proprietary applications with the
|
||||||
|
library. If this is what you want to do, use the GNU Library General
|
||||||
|
Public License instead of this License.
|
508
lang/python/COPYING.LESSER
Normal file
508
lang/python/COPYING.LESSER
Normal file
@ -0,0 +1,508 @@
|
|||||||
|
|
||||||
|
GNU LESSER GENERAL PUBLIC LICENSE
|
||||||
|
Version 2.1, February 1999
|
||||||
|
|
||||||
|
Copyright (C) 1991, 1999 Free Software Foundation, Inc.
|
||||||
|
59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||||
|
Everyone is permitted to copy and distribute verbatim copies
|
||||||
|
of this license document, but changing it is not allowed.
|
||||||
|
|
||||||
|
[This is the first released version of the Lesser GPL. It also counts
|
||||||
|
as the successor of the GNU Library Public License, version 2, hence
|
||||||
|
the version number 2.1.]
|
||||||
|
|
||||||
|
Preamble
|
||||||
|
|
||||||
|
The licenses for most software are designed to take away your
|
||||||
|
freedom to share and change it. By contrast, the GNU General Public
|
||||||
|
Licenses are intended to guarantee your freedom to share and change
|
||||||
|
free software--to make sure the software is free for all its users.
|
||||||
|
|
||||||
|
This license, the Lesser General Public License, applies to some
|
||||||
|
specially designated software packages--typically libraries--of the
|
||||||
|
Free Software Foundation and other authors who decide to use it. You
|
||||||
|
can use it too, but we suggest you first think carefully about whether
|
||||||
|
this license or the ordinary General Public License is the better
|
||||||
|
strategy to use in any particular case, based on the explanations
|
||||||
|
below.
|
||||||
|
|
||||||
|
When we speak of free software, we are referring to freedom of use,
|
||||||
|
not price. Our General Public Licenses are designed to make sure that
|
||||||
|
you have the freedom to distribute copies of free software (and charge
|
||||||
|
for this service if you wish); that you receive source code or can get
|
||||||
|
it if you want it; that you can change the software and use pieces of
|
||||||
|
it in new free programs; and that you are informed that you can do
|
||||||
|
these things.
|
||||||
|
|
||||||
|
To protect your rights, we need to make restrictions that forbid
|
||||||
|
distributors to deny you these rights or to ask you to surrender these
|
||||||
|
rights. These restrictions translate to certain responsibilities for
|
||||||
|
you if you distribute copies of the library or if you modify it.
|
||||||
|
|
||||||
|
For example, if you distribute copies of the library, whether gratis
|
||||||
|
or for a fee, you must give the recipients all the rights that we gave
|
||||||
|
you. You must make sure that they, too, receive or can get the source
|
||||||
|
code. If you link other code with the library, you must provide
|
||||||
|
complete object files to the recipients, so that they can relink them
|
||||||
|
with the library after making changes to the library and recompiling
|
||||||
|
it. And you must show them these terms so they know their rights.
|
||||||
|
|
||||||
|
We protect your rights with a two-step method: (1) we copyright the
|
||||||
|
library, and (2) we offer you this license, which gives you legal
|
||||||
|
permission to copy, distribute and/or modify the library.
|
||||||
|
|
||||||
|
To protect each distributor, we want to make it very clear that
|
||||||
|
there is no warranty for the free library. Also, if the library is
|
||||||
|
modified by someone else and passed on, the recipients should know
|
||||||
|
that what they have is not the original version, so that the original
|
||||||
|
author's reputation will not be affected by problems that might be
|
||||||
|
introduced by others.
|
||||||
|
^L
|
||||||
|
Finally, software patents pose a constant threat to the existence of
|
||||||
|
any free program. We wish to make sure that a company cannot
|
||||||
|
effectively restrict the users of a free program by obtaining a
|
||||||
|
restrictive license from a patent holder. Therefore, we insist that
|
||||||
|
any patent license obtained for a version of the library must be
|
||||||
|
consistent with the full freedom of use specified in this license.
|
||||||
|
|
||||||
|
Most GNU software, including some libraries, is covered by the
|
||||||
|
ordinary GNU General Public License. This license, the GNU Lesser
|
||||||
|
General Public License, applies to certain designated libraries, and
|
||||||
|
is quite different from the ordinary General Public License. We use
|
||||||
|
this license for certain libraries in order to permit linking those
|
||||||
|
libraries into non-free programs.
|
||||||
|
|
||||||
|
When a program is linked with a library, whether statically or using
|
||||||
|
a shared library, the combination of the two is legally speaking a
|
||||||
|
combined work, a derivative of the original library. The ordinary
|
||||||
|
General Public License therefore permits such linking only if the
|
||||||
|
entire combination fits its criteria of freedom. The Lesser General
|
||||||
|
Public License permits more lax criteria for linking other code with
|
||||||
|
the library.
|
||||||
|
|
||||||
|
We call this license the "Lesser" General Public License because it
|
||||||
|
does Less to protect the user's freedom than the ordinary General
|
||||||
|
Public License. It also provides other free software developers Less
|
||||||
|
of an advantage over competing non-free programs. These disadvantages
|
||||||
|
are the reason we use the ordinary General Public License for many
|
||||||
|
libraries. However, the Lesser license provides advantages in certain
|
||||||
|
special circumstances.
|
||||||
|
|
||||||
|
For example, on rare occasions, there may be a special need to
|
||||||
|
encourage the widest possible use of a certain library, so that it
|
||||||
|
becomes a de-facto standard. To achieve this, non-free programs must
|
||||||
|
be allowed to use the library. A more frequent case is that a free
|
||||||
|
library does the same job as widely used non-free libraries. In this
|
||||||
|
case, there is little to gain by limiting the free library to free
|
||||||
|
software only, so we use the Lesser General Public License.
|
||||||
|
|
||||||
|
In other cases, permission to use a particular library in non-free
|
||||||
|
programs enables a greater number of people to use a large body of
|
||||||
|
free software. For example, permission to use the GNU C Library in
|
||||||
|
non-free programs enables many more people to use the whole GNU
|
||||||
|
operating system, as well as its variant, the GNU/Linux operating
|
||||||
|
system.
|
||||||
|
|
||||||
|
Although the Lesser General Public License is Less protective of the
|
||||||
|
users' freedom, it does ensure that the user of a program that is
|
||||||
|
linked with the Library has the freedom and the wherewithal to run
|
||||||
|
that program using a modified version of the Library.
|
||||||
|
|
||||||
|
The precise terms and conditions for copying, distribution and
|
||||||
|
modification follow. Pay close attention to the difference between a
|
||||||
|
"work based on the library" and a "work that uses the library". The
|
||||||
|
former contains code derived from the library, whereas the latter must
|
||||||
|
be combined with the library in order to run.
|
||||||
|
^L
|
||||||
|
GNU LESSER GENERAL PUBLIC LICENSE
|
||||||
|
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
|
||||||
|
|
||||||
|
0. This License Agreement applies to any software library or other
|
||||||
|
program which contains a notice placed by the copyright holder or
|
||||||
|
other authorized party saying it may be distributed under the terms of
|
||||||
|
this Lesser General Public License (also called "this License").
|
||||||
|
Each licensee is addressed as "you".
|
||||||
|
|
||||||
|
A "library" means a collection of software functions and/or data
|
||||||
|
prepared so as to be conveniently linked with application programs
|
||||||
|
(which use some of those functions and data) to form executables.
|
||||||
|
|
||||||
|
The "Library", below, refers to any such software library or work
|
||||||
|
which has been distributed under these terms. A "work based on the
|
||||||
|
Library" means either the Library or any derivative work under
|
||||||
|
copyright law: that is to say, a work containing the Library or a
|
||||||
|
portion of it, either verbatim or with modifications and/or translated
|
||||||
|
straightforwardly into another language. (Hereinafter, translation is
|
||||||
|
included without limitation in the term "modification".)
|
||||||
|
|
||||||
|
"Source code" for a work means the preferred form of the work for
|
||||||
|
making modifications to it. For a library, complete source code means
|
||||||
|
all the source code for all modules it contains, plus any associated
|
||||||
|
interface definition files, plus the scripts used to control
|
||||||
|
compilation and installation of the library.
|
||||||
|
|
||||||
|
Activities other than copying, distribution and modification are not
|
||||||
|
covered by this License; they are outside its scope. The act of
|
||||||
|
running a program using the Library is not restricted, and output from
|
||||||
|
such a program is covered only if its contents constitute a work based
|
||||||
|
on the Library (independent of the use of the Library in a tool for
|
||||||
|
writing it). Whether that is true depends on what the Library does
|
||||||
|
and what the program that uses the Library does.
|
||||||
|
|
||||||
|
1. You may copy and distribute verbatim copies of the Library's
|
||||||
|
complete source code as you receive it, in any medium, provided that
|
||||||
|
you conspicuously and appropriately publish on each copy an
|
||||||
|
appropriate copyright notice and disclaimer of warranty; keep intact
|
||||||
|
all the notices that refer to this License and to the absence of any
|
||||||
|
warranty; and distribute a copy of this License along with the
|
||||||
|
Library.
|
||||||
|
|
||||||
|
You may charge a fee for the physical act of transferring a copy,
|
||||||
|
and you may at your option offer warranty protection in exchange for a
|
||||||
|
fee.
|
||||||
|
|
||||||
|
2. You may modify your copy or copies of the Library or any portion
|
||||||
|
of it, thus forming a work based on the Library, and copy and
|
||||||
|
distribute such modifications or work under the terms of Section 1
|
||||||
|
above, provided that you also meet all of these conditions:
|
||||||
|
|
||||||
|
a) The modified work must itself be a software library.
|
||||||
|
|
||||||
|
b) You must cause the files modified to carry prominent notices
|
||||||
|
stating that you changed the files and the date of any change.
|
||||||
|
|
||||||
|
c) You must cause the whole of the work to be licensed at no
|
||||||
|
charge to all third parties under the terms of this License.
|
||||||
|
|
||||||
|
d) If a facility in the modified Library refers to a function or a
|
||||||
|
table of data to be supplied by an application program that uses
|
||||||
|
the facility, other than as an argument passed when the facility
|
||||||
|
is invoked, then you must make a good faith effort to ensure that,
|
||||||
|
in the event an application does not supply such function or
|
||||||
|
table, the facility still operates, and performs whatever part of
|
||||||
|
its purpose remains meaningful.
|
||||||
|
|
||||||
|
(For example, a function in a library to compute square roots has
|
||||||
|
a purpose that is entirely well-defined independent of the
|
||||||
|
application. Therefore, Subsection 2d requires that any
|
||||||
|
application-supplied function or table used by this function must
|
||||||
|
be optional: if the application does not supply it, the square
|
||||||
|
root function must still compute square roots.)
|
||||||
|
|
||||||
|
These requirements apply to the modified work as a whole. If
|
||||||
|
identifiable sections of that work are not derived from the Library,
|
||||||
|
and can be reasonably considered independent and separate works in
|
||||||
|
themselves, then this License, and its terms, do not apply to those
|
||||||
|
sections when you distribute them as separate works. But when you
|
||||||
|
distribute the same sections as part of a whole which is a work based
|
||||||
|
on the Library, the distribution of the whole must be on the terms of
|
||||||
|
this License, whose permissions for other licensees extend to the
|
||||||
|
entire whole, and thus to each and every part regardless of who wrote
|
||||||
|
it.
|
||||||
|
|
||||||
|
Thus, it is not the intent of this section to claim rights or contest
|
||||||
|
your rights to work written entirely by you; rather, the intent is to
|
||||||
|
exercise the right to control the distribution of derivative or
|
||||||
|
collective works based on the Library.
|
||||||
|
|
||||||
|
In addition, mere aggregation of another work not based on the Library
|
||||||
|
with the Library (or with a work based on the Library) on a volume of
|
||||||
|
a storage or distribution medium does not bring the other work under
|
||||||
|
the scope of this License.
|
||||||
|
|
||||||
|
3. You may opt to apply the terms of the ordinary GNU General Public
|
||||||
|
License instead of this License to a given copy of the Library. To do
|
||||||
|
this, you must alter all the notices that refer to this License, so
|
||||||
|
that they refer to the ordinary GNU General Public License, version 2,
|
||||||
|
instead of to this License. (If a newer version than version 2 of the
|
||||||
|
ordinary GNU General Public License has appeared, then you can specify
|
||||||
|
that version instead if you wish.) Do not make any other change in
|
||||||
|
these notices.
|
||||||
|
^L
|
||||||
|
Once this change is made in a given copy, it is irreversible for
|
||||||
|
that copy, so the ordinary GNU General Public License applies to all
|
||||||
|
subsequent copies and derivative works made from that copy.
|
||||||
|
|
||||||
|
This option is useful when you wish to copy part of the code of
|
||||||
|
the Library into a program that is not a library.
|
||||||
|
|
||||||
|
4. You may copy and distribute the Library (or a portion or
|
||||||
|
derivative of it, under Section 2) in object code or executable form
|
||||||
|
under the terms of Sections 1 and 2 above provided that you accompany
|
||||||
|
it with the complete corresponding machine-readable source code, which
|
||||||
|
must be distributed under the terms of Sections 1 and 2 above on a
|
||||||
|
medium customarily used for software interchange.
|
||||||
|
|
||||||
|
If distribution of object code is made by offering access to copy
|
||||||
|
from a designated place, then offering equivalent access to copy the
|
||||||
|
source code from the same place satisfies the requirement to
|
||||||
|
distribute the source code, even though third parties are not
|
||||||
|
compelled to copy the source along with the object code.
|
||||||
|
|
||||||
|
5. A program that contains no derivative of any portion of the
|
||||||
|
Library, but is designed to work with the Library by being compiled or
|
||||||
|
linked with it, is called a "work that uses the Library". Such a
|
||||||
|
work, in isolation, is not a derivative work of the Library, and
|
||||||
|
therefore falls outside the scope of this License.
|
||||||
|
|
||||||
|
However, linking a "work that uses the Library" with the Library
|
||||||
|
creates an executable that is a derivative of the Library (because it
|
||||||
|
contains portions of the Library), rather than a "work that uses the
|
||||||
|
library". The executable is therefore covered by this License.
|
||||||
|
Section 6 states terms for distribution of such executables.
|
||||||
|
|
||||||
|
When a "work that uses the Library" uses material from a header file
|
||||||
|
that is part of the Library, the object code for the work may be a
|
||||||
|
derivative work of the Library even though the source code is not.
|
||||||
|
Whether this is true is especially significant if the work can be
|
||||||
|
linked without the Library, or if the work is itself a library. The
|
||||||
|
threshold for this to be true is not precisely defined by law.
|
||||||
|
|
||||||
|
If such an object file uses only numerical parameters, data
|
||||||
|
structure layouts and accessors, and small macros and small inline
|
||||||
|
functions (ten lines or less in length), then the use of the object
|
||||||
|
file is unrestricted, regardless of whether it is legally a derivative
|
||||||
|
work. (Executables containing this object code plus portions of the
|
||||||
|
Library will still fall under Section 6.)
|
||||||
|
|
||||||
|
Otherwise, if the work is a derivative of the Library, you may
|
||||||
|
distribute the object code for the work under the terms of Section 6.
|
||||||
|
Any executables containing that work also fall under Section 6,
|
||||||
|
whether or not they are linked directly with the Library itself.
|
||||||
|
^L
|
||||||
|
6. As an exception to the Sections above, you may also combine or
|
||||||
|
link a "work that uses the Library" with the Library to produce a
|
||||||
|
work containing portions of the Library, and distribute that work
|
||||||
|
under terms of your choice, provided that the terms permit
|
||||||
|
modification of the work for the customer's own use and reverse
|
||||||
|
engineering for debugging such modifications.
|
||||||
|
|
||||||
|
You must give prominent notice with each copy of the work that the
|
||||||
|
Library is used in it and that the Library and its use are covered by
|
||||||
|
this License. You must supply a copy of this License. If the work
|
||||||
|
during execution displays copyright notices, you must include the
|
||||||
|
copyright notice for the Library among them, as well as a reference
|
||||||
|
directing the user to the copy of this License. Also, you must do one
|
||||||
|
of these things:
|
||||||
|
|
||||||
|
a) Accompany the work with the complete corresponding
|
||||||
|
machine-readable source code for the Library including whatever
|
||||||
|
changes were used in the work (which must be distributed under
|
||||||
|
Sections 1 and 2 above); and, if the work is an executable linked
|
||||||
|
with the Library, with the complete machine-readable "work that
|
||||||
|
uses the Library", as object code and/or source code, so that the
|
||||||
|
user can modify the Library and then relink to produce a modified
|
||||||
|
executable containing the modified Library. (It is understood
|
||||||
|
that the user who changes the contents of definitions files in the
|
||||||
|
Library will not necessarily be able to recompile the application
|
||||||
|
to use the modified definitions.)
|
||||||
|
|
||||||
|
b) Use a suitable shared library mechanism for linking with the
|
||||||
|
Library. A suitable mechanism is one that (1) uses at run time a
|
||||||
|
copy of the library already present on the user's computer system,
|
||||||
|
rather than copying library functions into the executable, and (2)
|
||||||
|
will operate properly with a modified version of the library, if
|
||||||
|
the user installs one, as long as the modified version is
|
||||||
|
interface-compatible with the version that the work was made with.
|
||||||
|
|
||||||
|
c) Accompany the work with a written offer, valid for at least
|
||||||
|
three years, to give the same user the materials specified in
|
||||||
|
Subsection 6a, above, for a charge no more than the cost of
|
||||||
|
performing this distribution.
|
||||||
|
|
||||||
|
d) If distribution of the work is made by offering access to copy
|
||||||
|
from a designated place, offer equivalent access to copy the above
|
||||||
|
specified materials from the same place.
|
||||||
|
|
||||||
|
e) Verify that the user has already received a copy of these
|
||||||
|
materials or that you have already sent this user a copy.
|
||||||
|
|
||||||
|
For an executable, the required form of the "work that uses the
|
||||||
|
Library" must include any data and utility programs needed for
|
||||||
|
reproducing the executable from it. However, as a special exception,
|
||||||
|
the materials to be distributed need not include anything that is
|
||||||
|
normally distributed (in either source or binary form) with the major
|
||||||
|
components (compiler, kernel, and so on) of the operating system on
|
||||||
|
which the executable runs, unless that component itself accompanies
|
||||||
|
the executable.
|
||||||
|
|
||||||
|
It may happen that this requirement contradicts the license
|
||||||
|
restrictions of other proprietary libraries that do not normally
|
||||||
|
accompany the operating system. Such a contradiction means you cannot
|
||||||
|
use both them and the Library together in an executable that you
|
||||||
|
distribute.
|
||||||
|
^L
|
||||||
|
7. You may place library facilities that are a work based on the
|
||||||
|
Library side-by-side in a single library together with other library
|
||||||
|
facilities not covered by this License, and distribute such a combined
|
||||||
|
library, provided that the separate distribution of the work based on
|
||||||
|
the Library and of the other library facilities is otherwise
|
||||||
|
permitted, and provided that you do these two things:
|
||||||
|
|
||||||
|
a) Accompany the combined library with a copy of the same work
|
||||||
|
based on the Library, uncombined with any other library
|
||||||
|
facilities. This must be distributed under the terms of the
|
||||||
|
Sections above.
|
||||||
|
|
||||||
|
b) Give prominent notice with the combined library of the fact
|
||||||
|
that part of it is a work based on the Library, and explaining
|
||||||
|
where to find the accompanying uncombined form of the same work.
|
||||||
|
|
||||||
|
8. You may not copy, modify, sublicense, link with, or distribute
|
||||||
|
the Library except as expressly provided under this License. Any
|
||||||
|
attempt otherwise to copy, modify, sublicense, link with, or
|
||||||
|
distribute the Library is void, and will automatically terminate your
|
||||||
|
rights under this License. However, parties who have received copies,
|
||||||
|
or rights, from you under this License will not have their licenses
|
||||||
|
terminated so long as such parties remain in full compliance.
|
||||||
|
|
||||||
|
9. You are not required to accept this License, since you have not
|
||||||
|
signed it. However, nothing else grants you permission to modify or
|
||||||
|
distribute the Library or its derivative works. These actions are
|
||||||
|
prohibited by law if you do not accept this License. Therefore, by
|
||||||
|
modifying or distributing the Library (or any work based on the
|
||||||
|
Library), you indicate your acceptance of this License to do so, and
|
||||||
|
all its terms and conditions for copying, distributing or modifying
|
||||||
|
the Library or works based on it.
|
||||||
|
|
||||||
|
10. Each time you redistribute the Library (or any work based on the
|
||||||
|
Library), the recipient automatically receives a license from the
|
||||||
|
original licensor to copy, distribute, link with or modify the Library
|
||||||
|
subject to these terms and conditions. You may not impose any further
|
||||||
|
restrictions on the recipients' exercise of the rights granted herein.
|
||||||
|
You are not responsible for enforcing compliance by third parties with
|
||||||
|
this License.
|
||||||
|
^L
|
||||||
|
11. If, as a consequence of a court judgment or allegation of patent
|
||||||
|
infringement or for any other reason (not limited to patent issues),
|
||||||
|
conditions are imposed on you (whether by court order, agreement or
|
||||||
|
otherwise) that contradict the conditions of this License, they do not
|
||||||
|
excuse you from the conditions of this License. If you cannot
|
||||||
|
distribute so as to satisfy simultaneously your obligations under this
|
||||||
|
License and any other pertinent obligations, then as a consequence you
|
||||||
|
may not distribute the Library at all. For example, if a patent
|
||||||
|
license would not permit royalty-free redistribution of the Library by
|
||||||
|
all those who receive copies directly or indirectly through you, then
|
||||||
|
the only way you could satisfy both it and this License would be to
|
||||||
|
refrain entirely from distribution of the Library.
|
||||||
|
|
||||||
|
If any portion of this section is held invalid or unenforceable under
|
||||||
|
any particular circumstance, the balance of the section is intended to
|
||||||
|
apply, and the section as a whole is intended to apply in other
|
||||||
|
circumstances.
|
||||||
|
|
||||||
|
It is not the purpose of this section to induce you to infringe any
|
||||||
|
patents or other property right claims or to contest validity of any
|
||||||
|
such claims; this section has the sole purpose of protecting the
|
||||||
|
integrity of the free software distribution system which is
|
||||||
|
implemented by public license practices. Many people have made
|
||||||
|
generous contributions to the wide range of software distributed
|
||||||
|
through that system in reliance on consistent application of that
|
||||||
|
system; it is up to the author/donor to decide if he or she is willing
|
||||||
|
to distribute software through any other system and a licensee cannot
|
||||||
|
impose that choice.
|
||||||
|
|
||||||
|
This section is intended to make thoroughly clear what is believed to
|
||||||
|
be a consequence of the rest of this License.
|
||||||
|
|
||||||
|
12. If the distribution and/or use of the Library is restricted in
|
||||||
|
certain countries either by patents or by copyrighted interfaces, the
|
||||||
|
original copyright holder who places the Library under this License
|
||||||
|
may add an explicit geographical distribution limitation excluding those
|
||||||
|
countries, so that distribution is permitted only in or among
|
||||||
|
countries not thus excluded. In such case, this License incorporates
|
||||||
|
the limitation as if written in the body of this License.
|
||||||
|
|
||||||
|
13. The Free Software Foundation may publish revised and/or new
|
||||||
|
versions of the Lesser General Public License from time to time.
|
||||||
|
Such new versions will be similar in spirit to the present version,
|
||||||
|
but may differ in detail to address new problems or concerns.
|
||||||
|
|
||||||
|
Each version is given a distinguishing version number. If the Library
|
||||||
|
specifies a version number of this License which applies to it and
|
||||||
|
"any later version", you have the option of following the terms and
|
||||||
|
conditions either of that version or of any later version published by
|
||||||
|
the Free Software Foundation. If the Library does not specify a
|
||||||
|
license version number, you may choose any version ever published by
|
||||||
|
the Free Software Foundation.
|
||||||
|
^L
|
||||||
|
14. If you wish to incorporate parts of the Library into other free
|
||||||
|
programs whose distribution conditions are incompatible with these,
|
||||||
|
write to the author to ask for permission. For software which is
|
||||||
|
copyrighted by the Free Software Foundation, write to the Free
|
||||||
|
Software Foundation; we sometimes make exceptions for this. Our
|
||||||
|
decision will be guided by the two goals of preserving the free status
|
||||||
|
of all derivatives of our free software and of promoting the sharing
|
||||||
|
and reuse of software generally.
|
||||||
|
|
||||||
|
NO WARRANTY
|
||||||
|
|
||||||
|
15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
|
||||||
|
WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
|
||||||
|
EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
|
||||||
|
OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY
|
||||||
|
KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE
|
||||||
|
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
||||||
|
PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE
|
||||||
|
LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME
|
||||||
|
THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
|
||||||
|
|
||||||
|
16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
|
||||||
|
WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY
|
||||||
|
AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU
|
||||||
|
FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR
|
||||||
|
CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE
|
||||||
|
LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
|
||||||
|
RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
|
||||||
|
FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
|
||||||
|
SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
|
||||||
|
DAMAGES.
|
||||||
|
|
||||||
|
END OF TERMS AND CONDITIONS
|
||||||
|
^L
|
||||||
|
How to Apply These Terms to Your New Libraries
|
||||||
|
|
||||||
|
If you develop a new library, and you want it to be of the greatest
|
||||||
|
possible use to the public, we recommend making it free software that
|
||||||
|
everyone can redistribute and change. You can do so by permitting
|
||||||
|
redistribution under these terms (or, alternatively, under the terms
|
||||||
|
of the ordinary General Public License).
|
||||||
|
|
||||||
|
To apply these terms, attach the following notices to the library.
|
||||||
|
It is safest to attach them to the start of each source file to most
|
||||||
|
effectively convey the exclusion of warranty; and each file should
|
||||||
|
have at least the "copyright" line and a pointer to where the full
|
||||||
|
notice is found.
|
||||||
|
|
||||||
|
|
||||||
|
<one line to give the library's name and a brief idea of what it does.>
|
||||||
|
Copyright (C) <year> <name of author>
|
||||||
|
|
||||||
|
This library is free software; you can redistribute it and/or
|
||||||
|
modify it under the terms of the GNU Lesser General Public
|
||||||
|
License as published by the Free Software Foundation; either
|
||||||
|
version 2.1 of the License, or (at your option) any later version.
|
||||||
|
|
||||||
|
This library is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
|
Lesser General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU Lesser General Public
|
||||||
|
License along with this library; if not, write to the Free Software
|
||||||
|
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||||
|
|
||||||
|
Also add information on how to contact you by electronic and paper mail.
|
||||||
|
|
||||||
|
You should also get your employer (if you work as a programmer) or
|
||||||
|
your school, if any, to sign a "copyright disclaimer" for the library,
|
||||||
|
if necessary. Here is a sample; alter the names:
|
||||||
|
|
||||||
|
Yoyodyne, Inc., hereby disclaims all copyright interest in the
|
||||||
|
library `Frob' (a library for tweaking knobs) written by James
|
||||||
|
Random Hacker.
|
||||||
|
|
||||||
|
<signature of Ty Coon>, 1 April 1990
|
||||||
|
Ty Coon, President of Vice
|
||||||
|
|
||||||
|
That's all there is to it!
|
17
lang/python/ChangeLog
Normal file
17
lang/python/ChangeLog
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
No ChangeLog file
|
||||||
|
=================
|
||||||
|
|
||||||
|
Do not modify the ChangeLog file of the Python bindings of GpgME. We
|
||||||
|
put change information only in the GIT commit log, and generate a
|
||||||
|
top-level ChangeLog file from logs at "make dist" time.
|
||||||
|
As such, there are strict requirements on the form of the commit log
|
||||||
|
messages. See doc/HACKING (of gpgme) for details.
|
||||||
|
|
||||||
|
Change information before the Python bindings were added to gpgme
|
||||||
|
can be found in doc/meta/old-commits.log.
|
||||||
|
|
||||||
|
|
||||||
|
Local Variables:
|
||||||
|
buffer-read-only: t
|
||||||
|
mode: text
|
||||||
|
End:
|
236
lang/python/INSTALL
Normal file
236
lang/python/INSTALL
Normal file
@ -0,0 +1,236 @@
|
|||||||
|
Installation Instructions
|
||||||
|
*************************
|
||||||
|
|
||||||
|
Copyright (C) 1994, 1995, 1996, 1999, 2000, 2001, 2002, 2004, 2005,
|
||||||
|
2006, 2007 Free Software Foundation, Inc.
|
||||||
|
|
||||||
|
This file is free documentation; the Free Software Foundation gives
|
||||||
|
unlimited permission to copy, distribute and modify it.
|
||||||
|
|
||||||
|
Basic Installation
|
||||||
|
==================
|
||||||
|
|
||||||
|
Briefly, the shell commands `./configure; make; make install' should
|
||||||
|
configure, build, and install this package. The following
|
||||||
|
more-detailed instructions are generic; see the `README' file for
|
||||||
|
instructions specific to this package.
|
||||||
|
|
||||||
|
The `configure' shell script attempts to guess correct values for
|
||||||
|
various system-dependent variables used during compilation. It uses
|
||||||
|
those values to create a `Makefile' in each directory of the package.
|
||||||
|
It may also create one or more `.h' files containing system-dependent
|
||||||
|
definitions. Finally, it creates a shell script `config.status' that
|
||||||
|
you can run in the future to recreate the current configuration, and a
|
||||||
|
file `config.log' containing compiler output (useful mainly for
|
||||||
|
debugging `configure').
|
||||||
|
|
||||||
|
It can also use an optional file (typically called `config.cache'
|
||||||
|
and enabled with `--cache-file=config.cache' or simply `-C') that saves
|
||||||
|
the results of its tests to speed up reconfiguring. Caching is
|
||||||
|
disabled by default to prevent problems with accidental use of stale
|
||||||
|
cache files.
|
||||||
|
|
||||||
|
If you need to do unusual things to compile the package, please try
|
||||||
|
to figure out how `configure' could check whether to do them, and mail
|
||||||
|
diffs or instructions to the address given in the `README' so they can
|
||||||
|
be considered for the next release. If you are using the cache, and at
|
||||||
|
some point `config.cache' contains results you don't want to keep, you
|
||||||
|
may remove or edit it.
|
||||||
|
|
||||||
|
The file `configure.ac' (or `configure.in') is used to create
|
||||||
|
`configure' by a program called `autoconf'. You need `configure.ac' if
|
||||||
|
you want to change it or regenerate `configure' using a newer version
|
||||||
|
of `autoconf'.
|
||||||
|
|
||||||
|
The simplest way to compile this package is:
|
||||||
|
|
||||||
|
1. `cd' to the directory containing the package's source code and type
|
||||||
|
`./configure' to configure the package for your system.
|
||||||
|
|
||||||
|
Running `configure' might take a while. While running, it prints
|
||||||
|
some messages telling which features it is checking for.
|
||||||
|
|
||||||
|
2. Type `make' to compile the package.
|
||||||
|
|
||||||
|
3. Optionally, type `make check' to run any self-tests that come with
|
||||||
|
the package.
|
||||||
|
|
||||||
|
4. Type `make install' to install the programs and any data files and
|
||||||
|
documentation.
|
||||||
|
|
||||||
|
5. You can remove the program binaries and object files from the
|
||||||
|
source code directory by typing `make clean'. To also remove the
|
||||||
|
files that `configure' created (so you can compile the package for
|
||||||
|
a different kind of computer), type `make distclean'. There is
|
||||||
|
also a `make maintainer-clean' target, but that is intended mainly
|
||||||
|
for the package's developers. If you use it, you may have to get
|
||||||
|
all sorts of other programs in order to regenerate files that came
|
||||||
|
with the distribution.
|
||||||
|
|
||||||
|
6. Often, you can also type `make uninstall' to remove the installed
|
||||||
|
files again.
|
||||||
|
|
||||||
|
Compilers and Options
|
||||||
|
=====================
|
||||||
|
|
||||||
|
Some systems require unusual options for compilation or linking that the
|
||||||
|
`configure' script does not know about. Run `./configure --help' for
|
||||||
|
details on some of the pertinent environment variables.
|
||||||
|
|
||||||
|
You can give `configure' initial values for configuration parameters
|
||||||
|
by setting variables in the command line or in the environment. Here
|
||||||
|
is an example:
|
||||||
|
|
||||||
|
./configure CC=c99 CFLAGS=-g LIBS=-lposix
|
||||||
|
|
||||||
|
*Note Defining Variables::, for more details.
|
||||||
|
|
||||||
|
Compiling For Multiple Architectures
|
||||||
|
====================================
|
||||||
|
|
||||||
|
You can compile the package for more than one kind of computer at the
|
||||||
|
same time, by placing the object files for each architecture in their
|
||||||
|
own directory. To do this, you can use GNU `make'. `cd' to the
|
||||||
|
directory where you want the object files and executables to go and run
|
||||||
|
the `configure' script. `configure' automatically checks for the
|
||||||
|
source code in the directory that `configure' is in and in `..'.
|
||||||
|
|
||||||
|
With a non-GNU `make', it is safer to compile the package for one
|
||||||
|
architecture at a time in the source code directory. After you have
|
||||||
|
installed the package for one architecture, use `make distclean' before
|
||||||
|
reconfiguring for another architecture.
|
||||||
|
|
||||||
|
Installation Names
|
||||||
|
==================
|
||||||
|
|
||||||
|
By default, `make install' installs the package's commands under
|
||||||
|
`/usr/local/bin', include files under `/usr/local/include', etc. You
|
||||||
|
can specify an installation prefix other than `/usr/local' by giving
|
||||||
|
`configure' the option `--prefix=PREFIX'.
|
||||||
|
|
||||||
|
You can specify separate installation prefixes for
|
||||||
|
architecture-specific files and architecture-independent files. If you
|
||||||
|
pass the option `--exec-prefix=PREFIX' to `configure', the package uses
|
||||||
|
PREFIX as the prefix for installing programs and libraries.
|
||||||
|
Documentation and other data files still use the regular prefix.
|
||||||
|
|
||||||
|
In addition, if you use an unusual directory layout you can give
|
||||||
|
options like `--bindir=DIR' to specify different values for particular
|
||||||
|
kinds of files. Run `configure --help' for a list of the directories
|
||||||
|
you can set and what kinds of files go in them.
|
||||||
|
|
||||||
|
If the package supports it, you can cause programs to be installed
|
||||||
|
with an extra prefix or suffix on their names by giving `configure' the
|
||||||
|
option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'.
|
||||||
|
|
||||||
|
Optional Features
|
||||||
|
=================
|
||||||
|
|
||||||
|
Some packages pay attention to `--enable-FEATURE' options to
|
||||||
|
`configure', where FEATURE indicates an optional part of the package.
|
||||||
|
They may also pay attention to `--with-PACKAGE' options, where PACKAGE
|
||||||
|
is something like `gnu-as' or `x' (for the X Window System). The
|
||||||
|
`README' should mention any `--enable-' and `--with-' options that the
|
||||||
|
package recognizes.
|
||||||
|
|
||||||
|
For packages that use the X Window System, `configure' can usually
|
||||||
|
find the X include and library files automatically, but if it doesn't,
|
||||||
|
you can use the `configure' options `--x-includes=DIR' and
|
||||||
|
`--x-libraries=DIR' to specify their locations.
|
||||||
|
|
||||||
|
Specifying the System Type
|
||||||
|
==========================
|
||||||
|
|
||||||
|
There may be some features `configure' cannot figure out automatically,
|
||||||
|
but needs to determine by the type of machine the package will run on.
|
||||||
|
Usually, assuming the package is built to be run on the _same_
|
||||||
|
architectures, `configure' can figure that out, but if it prints a
|
||||||
|
message saying it cannot guess the machine type, give it the
|
||||||
|
`--build=TYPE' option. TYPE can either be a short name for the system
|
||||||
|
type, such as `sun4', or a canonical name which has the form:
|
||||||
|
|
||||||
|
CPU-COMPANY-SYSTEM
|
||||||
|
|
||||||
|
where SYSTEM can have one of these forms:
|
||||||
|
|
||||||
|
OS KERNEL-OS
|
||||||
|
|
||||||
|
See the file `config.sub' for the possible values of each field. If
|
||||||
|
`config.sub' isn't included in this package, then this package doesn't
|
||||||
|
need to know the machine type.
|
||||||
|
|
||||||
|
If you are _building_ compiler tools for cross-compiling, you should
|
||||||
|
use the option `--target=TYPE' to select the type of system they will
|
||||||
|
produce code for.
|
||||||
|
|
||||||
|
If you want to _use_ a cross compiler, that generates code for a
|
||||||
|
platform different from the build platform, you should specify the
|
||||||
|
"host" platform (i.e., that on which the generated programs will
|
||||||
|
eventually be run) with `--host=TYPE'.
|
||||||
|
|
||||||
|
Sharing Defaults
|
||||||
|
================
|
||||||
|
|
||||||
|
If you want to set default values for `configure' scripts to share, you
|
||||||
|
can create a site shell script called `config.site' that gives default
|
||||||
|
values for variables like `CC', `cache_file', and `prefix'.
|
||||||
|
`configure' looks for `PREFIX/share/config.site' if it exists, then
|
||||||
|
`PREFIX/etc/config.site' if it exists. Or, you can set the
|
||||||
|
`CONFIG_SITE' environment variable to the location of the site script.
|
||||||
|
A warning: not all `configure' scripts look for a site script.
|
||||||
|
|
||||||
|
Defining Variables
|
||||||
|
==================
|
||||||
|
|
||||||
|
Variables not defined in a site shell script can be set in the
|
||||||
|
environment passed to `configure'. However, some packages may run
|
||||||
|
configure again during the build, and the customized values of these
|
||||||
|
variables may be lost. In order to avoid this problem, you should set
|
||||||
|
them in the `configure' command line, using `VAR=value'. For example:
|
||||||
|
|
||||||
|
./configure CC=/usr/local2/bin/gcc
|
||||||
|
|
||||||
|
causes the specified `gcc' to be used as the C compiler (unless it is
|
||||||
|
overridden in the site shell script).
|
||||||
|
|
||||||
|
Unfortunately, this technique does not work for `CONFIG_SHELL' due to
|
||||||
|
an Autoconf bug. Until the bug is fixed you can use this workaround:
|
||||||
|
|
||||||
|
CONFIG_SHELL=/bin/bash /bin/bash ./configure CONFIG_SHELL=/bin/bash
|
||||||
|
|
||||||
|
`configure' Invocation
|
||||||
|
======================
|
||||||
|
|
||||||
|
`configure' recognizes the following options to control how it operates.
|
||||||
|
|
||||||
|
`--help'
|
||||||
|
`-h'
|
||||||
|
Print a summary of the options to `configure', and exit.
|
||||||
|
|
||||||
|
`--version'
|
||||||
|
`-V'
|
||||||
|
Print the version of Autoconf used to generate the `configure'
|
||||||
|
script, and exit.
|
||||||
|
|
||||||
|
`--cache-file=FILE'
|
||||||
|
Enable the cache: use and save the results of the tests in FILE,
|
||||||
|
traditionally `config.cache'. FILE defaults to `/dev/null' to
|
||||||
|
disable caching.
|
||||||
|
|
||||||
|
`--config-cache'
|
||||||
|
`-C'
|
||||||
|
Alias for `--cache-file=config.cache'.
|
||||||
|
|
||||||
|
`--quiet'
|
||||||
|
`--silent'
|
||||||
|
`-q'
|
||||||
|
Do not print messages saying which checks are being made. To
|
||||||
|
suppress all normal output, redirect it to `/dev/null' (any error
|
||||||
|
messages will still be shown).
|
||||||
|
|
||||||
|
`--srcdir=DIR'
|
||||||
|
Look for the package's source code in directory DIR. Usually
|
||||||
|
`configure' can determine that directory automatically.
|
||||||
|
|
||||||
|
`configure' also accepts some other, not widely useful, options. Run
|
||||||
|
`configure --help' for more details.
|
@ -1,4 +1,4 @@
|
|||||||
# Makefile.am for the Python bindings.
|
# Makefile.am for the Python bindings of GPGME.
|
||||||
# Copyright (C) 2016 g10 Code GmbH
|
# Copyright (C) 2016 g10 Code GmbH
|
||||||
#
|
#
|
||||||
# This file is part of GPGME.
|
# This file is part of GPGME.
|
||||||
@ -17,9 +17,24 @@
|
|||||||
# License along with this program; if not, see <https://gnu.org/licenses/>.
|
# License along with this program; if not, see <https://gnu.org/licenses/>.
|
||||||
# SPDX-License-Identifier: LGPL-2.1-or-later
|
# SPDX-License-Identifier: LGPL-2.1-or-later
|
||||||
|
|
||||||
|
## Process this file with automake to produce Makefile.in
|
||||||
|
|
||||||
|
# Location of the released tarball archives. This is prefixed by
|
||||||
|
# the variable RELEASE_ARCHIVE in ~/.gnupg-autogen.rc. For example:
|
||||||
|
# RELEASE_ARCHIVE=user@host:archive/tarballs
|
||||||
|
RELEASE_ARCHIVE_SUFFIX = gpgme
|
||||||
|
# The variable RELEASE_SIGNKEY in ~/.gnupg-autogen.rc is used
|
||||||
|
# to specify the key for signing. For example:
|
||||||
|
# RELEASE_SIGNKEY=D8692123C4065DEA5E0F3AB5249B39D24F25E3B6
|
||||||
|
|
||||||
|
|
||||||
|
# Autoconf flags
|
||||||
|
ACLOCAL_AMFLAGS = -I m4
|
||||||
|
|
||||||
EXTRA_DIST = \
|
EXTRA_DIST = \
|
||||||
README \
|
README \
|
||||||
MANIFEST.in \
|
MANIFEST.in \
|
||||||
|
autogen.sh autogen.rc \
|
||||||
gpgme.i \
|
gpgme.i \
|
||||||
helpers.c helpers.h private.h
|
helpers.c helpers.h private.h
|
||||||
|
|
||||||
@ -37,8 +52,6 @@ prepare: copystamp
|
|||||||
# For VPATH builds we need to copy some files because Python's
|
# For VPATH builds we need to copy some files because Python's
|
||||||
# distutils are not VPATH-aware.
|
# distutils are not VPATH-aware.
|
||||||
copystamp:
|
copystamp:
|
||||||
ln -sf "$(top_srcdir)/src/data.h" .
|
|
||||||
ln -sf "$(top_builddir)/conf/config.h" .
|
|
||||||
ln -sf "$(srcdir)/src" gpg
|
ln -sf "$(srcdir)/src" gpg
|
||||||
touch $@
|
touch $@
|
||||||
|
|
||||||
@ -71,8 +84,6 @@ upload: python$(PYTHON_VERSION)-gpg-dist/gpg-$(VERSION).tar.gz \
|
|||||||
twine upload $^
|
twine upload $^
|
||||||
|
|
||||||
CLEANFILES = copystamp \
|
CLEANFILES = copystamp \
|
||||||
config.h \
|
|
||||||
data.h \
|
|
||||||
gpg
|
gpg
|
||||||
|
|
||||||
# Remove the rest.
|
# Remove the rest.
|
||||||
@ -110,3 +121,90 @@ uninstall-local:
|
|||||||
"$(DESTDIR)$${PLATLIB}"/gpg-$$GV-py*.egg-info \
|
"$(DESTDIR)$${PLATLIB}"/gpg-$$GV-py*.egg-info \
|
||||||
"$(DESTDIR)$${PLATLIB}"/gpg-$$normalizedGV-py*.egg ; \
|
"$(DESTDIR)$${PLATLIB}"/gpg-$$normalizedGV-py*.egg ; \
|
||||||
done
|
done
|
||||||
|
|
||||||
|
dist-hook: gen-ChangeLog
|
||||||
|
|
||||||
|
distcheck-hook:
|
||||||
|
set -e; ( \
|
||||||
|
pref="#+macro: gpg-py_" ;\
|
||||||
|
reldate="$$(date -u +%Y-%m-%d)" ;\
|
||||||
|
echo "$${pref}ver $(PACKAGE_VERSION)" ;\
|
||||||
|
echo "$${pref}date $${reldate}" ;\
|
||||||
|
list='$(DIST_ARCHIVES)'; for i in $$list; do \
|
||||||
|
case "$$i" in *.tar.bz2) \
|
||||||
|
echo "$${pref}size $$(wc -c <$$i|awk '{print int($$1/1024)}')k" ;\
|
||||||
|
echo "$${pref}sha1 $$(sha1sum <$$i|cut -d' ' -f1)" ;\
|
||||||
|
echo "$${pref}sha2 $$(sha256sum <$$i|cut -d' ' -f1)" ;;\
|
||||||
|
esac;\
|
||||||
|
done ) | tee $(distdir).swdb
|
||||||
|
|
||||||
|
gen_start_date = 2011-12-01T00:00:00
|
||||||
|
gen-ChangeLog:
|
||||||
|
if test -d $(top_srcdir)/.git; then \
|
||||||
|
(cd $(top_srcdir) && \
|
||||||
|
$(GITLOG_TO_CHANGELOG) --append-dot --tear-off \
|
||||||
|
--amend=build-aux/git-log-fix \
|
||||||
|
--since=$(gen_start_date) ) > $(distdir)/cl-t; \
|
||||||
|
cat $(top_srcdir)/build-aux/git-log-footer >> $(distdir)/cl-t;\
|
||||||
|
rm -f $(distdir)/ChangeLog; \
|
||||||
|
mv $(distdir)/cl-t $(distdir)/ChangeLog; \
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
# Macro to help the release target.
|
||||||
|
RELEASE_NAME = $(PACKAGE_TARNAME)-$(PACKAGE_VERSION)
|
||||||
|
|
||||||
|
release:
|
||||||
|
+(set -e;\
|
||||||
|
if [ "$(abs_top_builddir)" = "$(abs_top_srcdir)" ]; then \
|
||||||
|
echo "error: build directory must not be the source directory" >&2;\
|
||||||
|
exit 2;\
|
||||||
|
fi ;\
|
||||||
|
echo "/* Build started at $$(date -uIseconds) */" ;\
|
||||||
|
cd $(top_srcdir); \
|
||||||
|
./autogen.sh --force; \
|
||||||
|
cd $(abs_top_builddir); \
|
||||||
|
rm -rf dist; mkdir dist ; cd dist ; \
|
||||||
|
$(abs_top_srcdir)/configure --enable-maintainer-mode; \
|
||||||
|
$(MAKE) distcheck; \
|
||||||
|
echo "/* Build finished at $$(date -uIseconds) */" ;\
|
||||||
|
echo "/*" ;\
|
||||||
|
echo " * Please run the final step interactively:" ;\
|
||||||
|
echo " * make sign-release" ;\
|
||||||
|
echo " */" ;\
|
||||||
|
) 2>&1 | tee "$(RELEASE_NAME).buildlog"
|
||||||
|
|
||||||
|
sign-release:
|
||||||
|
+(set -e; \
|
||||||
|
test $$(pwd | sed 's,.*/,,') = dist || cd dist; \
|
||||||
|
x=$$(grep '^RELEASE_ARCHIVE=' $$HOME/.gnupg-autogen.rc|cut -d= -f2);\
|
||||||
|
if [ -z "$$x" ]; then \
|
||||||
|
echo "error: RELEASE_ARCHIVE missing in ~/.gnupg-autogen.rc">&2; \
|
||||||
|
exit 2;\
|
||||||
|
fi;\
|
||||||
|
myarchive="$$x/$(RELEASE_ARCHIVE_SUFFIX)";\
|
||||||
|
x=$$(grep '^RELEASE_SIGNKEY=' $$HOME/.gnupg-autogen.rc|cut -d= -f2);\
|
||||||
|
if [ -z "$$x" ]; then \
|
||||||
|
echo "error: RELEASE_SIGNKEY missing in ~/.gnupg-autogen.rc">&2; \
|
||||||
|
exit 2;\
|
||||||
|
fi;\
|
||||||
|
mysignkey="$$x";\
|
||||||
|
files1="$(RELEASE_NAME).tar.bz2" ;\
|
||||||
|
files2="$(RELEASE_NAME).tar.bz2.sig \
|
||||||
|
$(RELEASE_NAME).swdb \
|
||||||
|
$(RELEASE_NAME).buildlog" ;\
|
||||||
|
echo "/* Signing the source tarball ..." ;\
|
||||||
|
gpg -sbu $$mysignkey $(RELEASE_NAME).tar.bz2 ;\
|
||||||
|
cat $(RELEASE_NAME).swdb >swdb.snippet;\
|
||||||
|
echo >>swdb.snippet ;\
|
||||||
|
sha1sum $${files1} >>swdb.snippet ;\
|
||||||
|
cat "../$(RELEASE_NAME).buildlog" swdb.snippet \
|
||||||
|
| gzip >$(RELEASE_NAME).buildlog ;\
|
||||||
|
echo "Copying to local archive ..." ;\
|
||||||
|
scp -p $${files1} $${files2} $$myarchive/ || true;\
|
||||||
|
echo "Uploading documentation ..." ;\
|
||||||
|
$(MAKE) -C doc online; \
|
||||||
|
echo '/*' ;\
|
||||||
|
echo ' * All done; for checksums see dist/swdb.snippet' ;\
|
||||||
|
echo ' */' ;\
|
||||||
|
)
|
||||||
|
19
lang/python/NEWS
Normal file
19
lang/python/NEWS
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
Noteworthy changes in version 1.25.0 (unreleased)
|
||||||
|
-------------------------------------------------
|
||||||
|
|
||||||
|
* First separate release of gpg-py.
|
||||||
|
|
||||||
|
|
||||||
|
Noteworthy changes in version 1.24.x and earlier can be found in the
|
||||||
|
NEWS file of gpgme.
|
||||||
|
|
||||||
|
|
||||||
|
Copyright 2024 g10 Code GmbH
|
||||||
|
|
||||||
|
This file is free software; as a special exception the author gives
|
||||||
|
unlimited permission to copy and/or distribute it, with or without
|
||||||
|
modifications, as long as this notice is preserved.
|
||||||
|
|
||||||
|
This file is distributed in the hope that it will be useful, but
|
||||||
|
WITHOUT ANY WARRANTY, to the extent permitted by law; without even the
|
||||||
|
implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
5
lang/python/autogen.rc
Normal file
5
lang/python/autogen.rc
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
# autogen.sh configuration for Python bindings of GPGME -*- sh -*-
|
||||||
|
|
||||||
|
package_subdir="lang/python"
|
||||||
|
|
||||||
|
final_info="mkdir build && cd build && ../configure --enable-maintainer-mode && make"
|
527
lang/python/autogen.sh
Executable file
527
lang/python/autogen.sh
Executable file
@ -0,0 +1,527 @@
|
|||||||
|
#! /bin/sh
|
||||||
|
# autogen.sh
|
||||||
|
# Copyright (C) 2003, 2014, 2017, 2018, 2022, 2024 g10 Code GmbH
|
||||||
|
#
|
||||||
|
# This file is free software; as a special exception the author gives
|
||||||
|
# unlimited permission to copy and/or distribute it, with or without
|
||||||
|
# modifications, as long as this notice is preserved.
|
||||||
|
#
|
||||||
|
# This program is distributed in the hope that it will be useful, but
|
||||||
|
# WITHOUT ANY WARRANTY, to the extent permitted by law; without even the
|
||||||
|
# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||||
|
#
|
||||||
|
# This is a generic script to create the configure script and handle cross
|
||||||
|
# build environments. It requires the presence of a autogen.rc file to
|
||||||
|
# configure it for the respective package. It is maintained as part of
|
||||||
|
# GnuPG and source copied by other packages.
|
||||||
|
#
|
||||||
|
# Version: 2024-05-24
|
||||||
|
|
||||||
|
configure_ac="configure.ac"
|
||||||
|
|
||||||
|
cvtver () {
|
||||||
|
awk 'NR==1 {split($NF,A,".");X=1000000*A[1]+1000*A[2]+A[3];print X;exit 0}'
|
||||||
|
}
|
||||||
|
|
||||||
|
check_version () {
|
||||||
|
if [ $(( `("$1" --version || echo "0") | cvtver` >= $2 )) = 1 ]; then
|
||||||
|
return 0
|
||||||
|
fi
|
||||||
|
echo "**Error**: "\`$1\'" not installed or too old." >&2
|
||||||
|
echo ' Version '$3' or newer is required.' >&2
|
||||||
|
[ -n "$4" ] && echo ' Note that this is part of '\`$4\''.' >&2
|
||||||
|
DIE="yes"
|
||||||
|
return 1
|
||||||
|
}
|
||||||
|
|
||||||
|
fatal () {
|
||||||
|
echo "autogen.sh:" "$*" >&2
|
||||||
|
DIE=yes
|
||||||
|
}
|
||||||
|
|
||||||
|
info () {
|
||||||
|
if [ -z "${SILENT}" ]; then
|
||||||
|
echo "autogen.sh:" "$*" >&2
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
die_p () {
|
||||||
|
if [ "$DIE" = "yes" ]; then
|
||||||
|
echo "autogen.sh: Stop." >&2
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
replace_sysroot () {
|
||||||
|
configure_opts=$(echo $configure_opts | sed "s#@SYSROOT@#${w32root}#g")
|
||||||
|
extraoptions=$(echo $extraoptions | sed "s#@SYSROOT@#${w32root}#g")
|
||||||
|
}
|
||||||
|
|
||||||
|
# Allow to override the default tool names
|
||||||
|
AUTOCONF=${AUTOCONF_PREFIX}${AUTOCONF:-autoconf}${AUTOCONF_SUFFIX}
|
||||||
|
AUTOHEADER=${AUTOCONF_PREFIX}${AUTOHEADER:-autoheader}${AUTOCONF_SUFFIX}
|
||||||
|
|
||||||
|
AUTOMAKE=${AUTOMAKE_PREFIX}${AUTOMAKE:-automake}${AUTOMAKE_SUFFIX}
|
||||||
|
ACLOCAL=${AUTOMAKE_PREFIX}${ACLOCAL:-aclocal}${AUTOMAKE_SUFFIX}
|
||||||
|
|
||||||
|
GETTEXT=${GETTEXT_PREFIX}${GETTEXT:-gettext}${GETTEXT_SUFFIX}
|
||||||
|
MSGMERGE=${GETTEXT_PREFIX}${MSGMERGE:-msgmerge}${GETTEXT_SUFFIX}
|
||||||
|
|
||||||
|
DIE=no
|
||||||
|
FORCE=
|
||||||
|
SILENT=
|
||||||
|
PRINT_HOST=no
|
||||||
|
PRINT_BUILD=no
|
||||||
|
IS_GIT_CLONE=no
|
||||||
|
tmp=$(dirname "$0")
|
||||||
|
tsdir=$(cd "${tmp}"; pwd)
|
||||||
|
|
||||||
|
if [ -n "${AUTOGEN_SH_SILENT}" ]; then
|
||||||
|
SILENT=" --silent"
|
||||||
|
fi
|
||||||
|
if test x"$1" = x"--help"; then
|
||||||
|
echo "usage: ./autogen.sh [OPTIONS] [ARGS]"
|
||||||
|
echo " Options:"
|
||||||
|
echo " --silent Silent operation"
|
||||||
|
echo " --force Pass --force to autoconf"
|
||||||
|
echo " --find-version Helper for configure.ac"
|
||||||
|
echo " --git-build Run all commands to build from a Git"
|
||||||
|
echo " --print-host Print only the host triplet"
|
||||||
|
echo " --print-build Print only the build platform triplet"
|
||||||
|
echo " --build-TYPE Configure to cross build for TYPE"
|
||||||
|
echo ""
|
||||||
|
echo " ARGS are passed to configure in --build-TYPE mode."
|
||||||
|
echo " Configuration for this script is expected in autogen.rc"
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
if test x"$1" = x"--silent"; then
|
||||||
|
SILENT=" --silent"
|
||||||
|
shift
|
||||||
|
fi
|
||||||
|
if test x"$1" = x"--force"; then
|
||||||
|
FORCE=" --force"
|
||||||
|
shift
|
||||||
|
fi
|
||||||
|
if test x"$1" = x"--print-host"; then
|
||||||
|
PRINT_HOST=yes
|
||||||
|
shift
|
||||||
|
fi
|
||||||
|
if test x"$1" = x"--print-build"; then
|
||||||
|
PRINT_BUILD=yes
|
||||||
|
shift
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
# Reject unsafe characters in $HOME, $tsdir and cwd. We consider spaces
|
||||||
|
# as unsafe because it is too easy to get scripts wrong in this regard.
|
||||||
|
am_lf='
|
||||||
|
'
|
||||||
|
case `pwd` in
|
||||||
|
*[\;\\\"\#\$\&\'\`$am_lf\ \ ]*)
|
||||||
|
fatal "unsafe working directory name" ;;
|
||||||
|
esac
|
||||||
|
case $tsdir in
|
||||||
|
*[\;\\\"\#\$\&\'\`$am_lf\ \ ]*)
|
||||||
|
fatal "unsafe source directory: \`$tsdir'" ;;
|
||||||
|
esac
|
||||||
|
case $HOME in
|
||||||
|
*[\;\\\"\#\$\&\'\`$am_lf\ \ ]*)
|
||||||
|
fatal "unsafe home directory: \`$HOME'" ;;
|
||||||
|
esac
|
||||||
|
die_p
|
||||||
|
|
||||||
|
|
||||||
|
# List of variables sourced from autogen.rc. The strings '@SYSROOT@' in
|
||||||
|
# these variables are replaced by the actual system root.
|
||||||
|
configure_opts=
|
||||||
|
extraoptions=
|
||||||
|
package_subdir=
|
||||||
|
skip_autoheader=
|
||||||
|
# List of optional variables sourced from autogen.rc and ~/.gnupg-autogen.rc
|
||||||
|
w32_toolprefixes=
|
||||||
|
w32_extraoptions=
|
||||||
|
w64_toolprefixes=
|
||||||
|
w64_extraoptions=
|
||||||
|
amd64_toolprefixes=
|
||||||
|
# End list of optional variables sourced from ~/.gnupg-autogen.rc
|
||||||
|
# What follows are variables which are sourced but default to
|
||||||
|
# environment variables or lacking them hardcoded values.
|
||||||
|
#w32root=
|
||||||
|
#w64root=
|
||||||
|
#amd64root=
|
||||||
|
|
||||||
|
# Convenience option to use certain configure options for some hosts.
|
||||||
|
myhost=""
|
||||||
|
myhostsub=""
|
||||||
|
case "$1" in
|
||||||
|
--find-version)
|
||||||
|
myhost="find-version"
|
||||||
|
SILENT=" --silent"
|
||||||
|
shift
|
||||||
|
;;
|
||||||
|
--git-build)
|
||||||
|
myhost="git-build"
|
||||||
|
shift
|
||||||
|
;;
|
||||||
|
--build-w32)
|
||||||
|
myhost="w32"
|
||||||
|
shift
|
||||||
|
;;
|
||||||
|
--build-w64)
|
||||||
|
myhost="w32"
|
||||||
|
myhostsub="64"
|
||||||
|
shift
|
||||||
|
;;
|
||||||
|
--build-amd64)
|
||||||
|
myhost="amd64"
|
||||||
|
shift
|
||||||
|
;;
|
||||||
|
--build*)
|
||||||
|
fatal "**Error**: invalid build option $1"
|
||||||
|
shift
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
die_p
|
||||||
|
|
||||||
|
|
||||||
|
# **** GIT BUILD ****
|
||||||
|
# This is a helper to build from git.
|
||||||
|
if [ "$myhost" = "git-build" ]; then
|
||||||
|
tmp="$(pwd)"
|
||||||
|
cd "$tsdir" || fatal "error cd-ing to $tsdir"
|
||||||
|
./autogen.sh || fatal "error running ./autogen.sh"
|
||||||
|
cd "$tmp" || fatal "error cd-ing back to $tmp"
|
||||||
|
die_p
|
||||||
|
"$tsdir"/configure || fatal "error running $tsdir/configure"
|
||||||
|
die_p
|
||||||
|
make || fatal "error running make"
|
||||||
|
die_p
|
||||||
|
make check || fatal "error running make check"
|
||||||
|
die_p
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
# **** end GIT BUILD ****
|
||||||
|
|
||||||
|
|
||||||
|
# Source our configuration
|
||||||
|
if [ -f "${tsdir}/autogen.rc" ]; then
|
||||||
|
. "${tsdir}/autogen.rc"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Source optional site specific configuration
|
||||||
|
if [ -f "$HOME/.gnupg-autogen.rc" ]; then
|
||||||
|
info "sourcing extra definitions from $HOME/.gnupg-autogen.rc"
|
||||||
|
. "$HOME/.gnupg-autogen.rc"
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
# Find the .git directory (or file for work trees)
|
||||||
|
if [ -e .git ]; then
|
||||||
|
IS_GIT_CLONE=yes
|
||||||
|
elif [ -n "${package_subdir}" ]; then
|
||||||
|
# Look for .git in root of package containing the nested package
|
||||||
|
package_subdir=${package_subdir#/}
|
||||||
|
root_path=${tsdir%/${package_subdir}}
|
||||||
|
if [ -e "${root_path}/.git" ]; then
|
||||||
|
IS_GIT_CLONE=yes
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
# **** FIND VERSION ****
|
||||||
|
# This is a helper for the configure.ac M4 magic
|
||||||
|
# Called
|
||||||
|
# ./autogen.sh --find-version PACKAGE MAJOR MINOR [MICRO]
|
||||||
|
# returns a complete version string with automatic beta numbering.
|
||||||
|
if [ "$myhost" = "find-version" ]; then
|
||||||
|
package="$1"
|
||||||
|
major="$2"
|
||||||
|
minor="$3"
|
||||||
|
micro="$4"
|
||||||
|
|
||||||
|
if [ -z "$package" -o -z "$major" -o -z "$minor" ]; then
|
||||||
|
echo "usage: ./autogen.sh --find-version PACKAGE MAJOR MINOR [MICRO]" >&2
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -z "$micro" ]; then
|
||||||
|
matchstr1="$package-$major.[0-9]*"
|
||||||
|
matchstr2="$package-$major-base"
|
||||||
|
matchstr3=""
|
||||||
|
vers="$major.$minor"
|
||||||
|
else
|
||||||
|
matchstr1="$package-$major.$minor.[0-9]*"
|
||||||
|
matchstr2="$package-$major.[0-9]*-base"
|
||||||
|
matchstr3="$package-$major-base"
|
||||||
|
vers="$major.$minor.$micro"
|
||||||
|
fi
|
||||||
|
|
||||||
|
beta=no
|
||||||
|
if [ $IS_GIT_CLONE = yes ]; then
|
||||||
|
ingit=yes
|
||||||
|
tmp=$(git describe --match "${matchstr1}" --long 2>/dev/null)
|
||||||
|
if [ -n "$tmp" ]; then
|
||||||
|
tmp=$(echo "$tmp" | sed s/^"$package"// \
|
||||||
|
| awk -F- '$3!=0 && $3 !~ /^beta/ {print"-beta"$3}')
|
||||||
|
else
|
||||||
|
# (due tof "-base" in the tag we need to take the 4th field)
|
||||||
|
tmp=$(git describe --match "${matchstr2}" --long 2>/dev/null)
|
||||||
|
if [ -n "$tmp" ]; then
|
||||||
|
tmp=$(echo "$tmp" | sed s/^"$package"// \
|
||||||
|
| awk -F- '$4!=0 && $4 !~ /^beta/ {print"-beta"$4}')
|
||||||
|
elif [ -n "${matchstr3}" ]; then
|
||||||
|
tmp=$(git describe --match "${matchstr3}" --long 2>/dev/null)
|
||||||
|
if [ -n "$tmp" ]; then
|
||||||
|
tmp=$(echo "$tmp" | sed s/^"$package"// \
|
||||||
|
| awk -F- '$4!=0 && $4 !~ /^beta/ {print"-beta"$4}')
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
[ -n "$tmp" ] && beta=yes
|
||||||
|
rev=$(git rev-parse --short HEAD | tr -d '\n\r')
|
||||||
|
rvd=$((0x$(echo ${rev} | dd bs=1 count=4 2>/dev/null)))
|
||||||
|
else
|
||||||
|
ingit=no
|
||||||
|
beta=yes
|
||||||
|
tmp="-unknown"
|
||||||
|
rev="0000000"
|
||||||
|
rvd="0"
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "$package-$vers$tmp:$beta:$ingit:$vers$tmp:$vers:$tmp:$rev:$rvd:"
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
# **** end FIND VERSION ****
|
||||||
|
|
||||||
|
|
||||||
|
if [ ! -f "$tsdir/build-aux/config.guess" ]; then
|
||||||
|
fatal "$tsdir/build-aux/config.guess not found"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
build=`$tsdir/build-aux/config.guess`
|
||||||
|
if [ $PRINT_BUILD = yes ]; then
|
||||||
|
echo "$build"
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# ******************
|
||||||
|
# W32 build script
|
||||||
|
# ******************
|
||||||
|
if [ "$myhost" = "w32" ]; then
|
||||||
|
case $myhostsub in
|
||||||
|
64)
|
||||||
|
w32root="$w64root"
|
||||||
|
[ -z "$w32root" ] && w32root="$HOME/w64root"
|
||||||
|
toolprefixes="$w64_toolprefixes x86_64-w64-mingw32"
|
||||||
|
extraoptions="$extraoptions $w64_extraoptions"
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
[ -z "$w32root" ] && w32root="$HOME/w32root"
|
||||||
|
toolprefixes="$w32_toolprefixes i686-w64-mingw32 i586-mingw32msvc"
|
||||||
|
toolprefixes="$toolprefixes i386-mingw32msvc mingw32"
|
||||||
|
extraoptions="$extraoptions $w32_extraoptions"
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
info "Using $w32root as standard install directory"
|
||||||
|
replace_sysroot
|
||||||
|
|
||||||
|
# Locate the cross compiler
|
||||||
|
crossbindir=
|
||||||
|
for host in $toolprefixes; do
|
||||||
|
if ${host}-gcc --version >/dev/null 2>&1 ; then
|
||||||
|
crossbindir=/usr/${host}/bin
|
||||||
|
conf_CC="CC=${host}-gcc"
|
||||||
|
break;
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
if [ -z "$crossbindir" ]; then
|
||||||
|
fatal "cross compiler kit not installed"
|
||||||
|
if [ -z "$myhostsub" ]; then
|
||||||
|
info "Under Debian GNU/Linux, you may install it using"
|
||||||
|
info " apt-get install mingw32 mingw32-runtime mingw32-binutils"
|
||||||
|
fi
|
||||||
|
die_p
|
||||||
|
fi
|
||||||
|
if [ $PRINT_HOST = yes ]; then
|
||||||
|
echo "$host"
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -f "$tsdir/config.log" ]; then
|
||||||
|
if ! head $tsdir/config.log | grep "$host" >/dev/null; then
|
||||||
|
fatal "Please run a 'make distclean' first"
|
||||||
|
die_p
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
$tsdir/configure --enable-maintainer-mode ${SILENT} \
|
||||||
|
--prefix=${w32root} \
|
||||||
|
--host=${host} --build=${build} SYSROOT=${w32root} \
|
||||||
|
PKG_CONFIG_LIBDIR=${w32root}/lib/pkgconfig \
|
||||||
|
${configure_opts} ${extraoptions} "$@"
|
||||||
|
rc=$?
|
||||||
|
exit $rc
|
||||||
|
fi
|
||||||
|
# ***** end W32 build script *******
|
||||||
|
|
||||||
|
# ***** AMD64 cross build script *******
|
||||||
|
# Used to cross-compile for AMD64 (for testing)
|
||||||
|
if [ "$myhost" = "amd64" ]; then
|
||||||
|
[ -z "$amd64root" ] && amd64root="$HOME/amd64root"
|
||||||
|
info "Using $amd64root as standard install directory"
|
||||||
|
replace_sysroot
|
||||||
|
|
||||||
|
toolprefixes="$amd64_toolprefixes x86_64-linux-gnu amd64-linux-gnu"
|
||||||
|
|
||||||
|
# Locate the cross compiler
|
||||||
|
crossbindir=
|
||||||
|
for host in $toolprefixes ; do
|
||||||
|
if ${host}-gcc --version >/dev/null 2>&1 ; then
|
||||||
|
crossbindir=/usr/${host}/bin
|
||||||
|
conf_CC="CC=${host}-gcc"
|
||||||
|
break;
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
if [ -z "$crossbindir" ]; then
|
||||||
|
echo "Cross compiler kit not installed" >&2
|
||||||
|
echo "Stop." >&2
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
if [ $PRINT_HOST = yes ]; then
|
||||||
|
echo "$host"
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -f "$tsdir/config.log" ]; then
|
||||||
|
if ! head $tsdir/config.log | grep "$host" >/dev/null; then
|
||||||
|
echo "Please run a 'make distclean' first" >&2
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
$tsdir/configure --enable-maintainer-mode ${SILENT} \
|
||||||
|
--prefix=${amd64root} \
|
||||||
|
--host=${host} --build=${build} \
|
||||||
|
${configure_opts} ${extraoptions} "$@"
|
||||||
|
rc=$?
|
||||||
|
exit $rc
|
||||||
|
fi
|
||||||
|
# ***** end AMD64 cross build script *******
|
||||||
|
|
||||||
|
|
||||||
|
# Grep the required versions from configure.ac
|
||||||
|
autoconf_vers=`sed -n '/^AC_PREREQ(/ {
|
||||||
|
s/^.*(\(.*\))/\1/p
|
||||||
|
q
|
||||||
|
}' ${configure_ac}`
|
||||||
|
autoconf_vers_num=`echo "$autoconf_vers" | cvtver`
|
||||||
|
|
||||||
|
automake_vers=`sed -n '/^min_automake_version=/ {
|
||||||
|
s/^.*="\(.*\)"/\1/p
|
||||||
|
q
|
||||||
|
}' ${configure_ac}`
|
||||||
|
automake_vers_num=`echo "$automake_vers" | cvtver`
|
||||||
|
|
||||||
|
if [ -d "${tsdir}/po" ]; then
|
||||||
|
gettext_vers=`sed -n '/^AM_GNU_GETTEXT_VERSION(/ {
|
||||||
|
s/^.*\[\(.*\)])/\1/p
|
||||||
|
q
|
||||||
|
}' ${configure_ac}`
|
||||||
|
gettext_vers_num=`echo "$gettext_vers" | cvtver`
|
||||||
|
else
|
||||||
|
gettext_vers="n/a"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -z "$autoconf_vers" -o -z "$automake_vers" -o -z "$gettext_vers" ]
|
||||||
|
then
|
||||||
|
echo "**Error**: version information not found in "\`${configure_ac}\'"." >&2
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
if check_version $AUTOCONF $autoconf_vers_num $autoconf_vers ; then
|
||||||
|
check_version $AUTOHEADER $autoconf_vers_num $autoconf_vers autoconf
|
||||||
|
fi
|
||||||
|
if check_version $AUTOMAKE $automake_vers_num $automake_vers; then
|
||||||
|
check_version $ACLOCAL $automake_vers_num $autoconf_vers automake
|
||||||
|
fi
|
||||||
|
if [ "$gettext_vers" != "n/a" ]; then
|
||||||
|
if check_version $GETTEXT $gettext_vers_num $gettext_vers; then
|
||||||
|
check_version $MSGMERGE $gettext_vers_num $gettext_vers gettext
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ "$DIE" = "yes" ]; then
|
||||||
|
cat <<EOF
|
||||||
|
|
||||||
|
Note that you may use alternative versions of the tools by setting
|
||||||
|
the corresponding environment variables; see README.GIT for details.
|
||||||
|
|
||||||
|
EOF
|
||||||
|
die_p
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Check the git setup.
|
||||||
|
if [ -d .git ]; then
|
||||||
|
CP="cp -p"
|
||||||
|
# If we have a GNU cp we can add -v
|
||||||
|
if cp --version >/dev/null 2>/dev/null; then
|
||||||
|
[ -z "${SILENT}" ] && CP="$CP -v"
|
||||||
|
fi
|
||||||
|
if [ -f .git/hooks/pre-commit.sample -a ! -f .git/hooks/pre-commit ] ; then
|
||||||
|
[ -z "${SILENT}" ] && cat <<EOF
|
||||||
|
*** Activating trailing whitespace git pre-commit hook. ***
|
||||||
|
For more information see this thread:
|
||||||
|
https://mail.gnome.org/archives/desktop-devel-list/2009-May/msg00084.html
|
||||||
|
To deactivate this pre-commit hook again move .git/hooks/pre-commit
|
||||||
|
and .git/hooks/pre-commit.sample out of the way.
|
||||||
|
EOF
|
||||||
|
$CP .git/hooks/pre-commit.sample .git/hooks/pre-commit
|
||||||
|
chmod +x .git/hooks/pre-commit
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ "$gettext_vers" != "n/a" ]; then
|
||||||
|
tmp=$(git config --get filter.cleanpo.clean)
|
||||||
|
if [ "$tmp" != \
|
||||||
|
"awk '/^\"POT-Creation-Date:/&&!s{s=1;next};!/^#: /{print}'" ]
|
||||||
|
then
|
||||||
|
info "*** Adding GIT filter.cleanpo.clean configuration."
|
||||||
|
git config --add filter.cleanpo.clean \
|
||||||
|
"awk '/^\"POT-Creation-Date:/&&!s{s=1;next};!/^#: /{print}'"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
if [ -f build-aux/git-hooks/commit-msg -a ! -f .git/hooks/commit-msg ] ; then
|
||||||
|
[ -z "${SILENT}" ] && cat <<EOF
|
||||||
|
*** Activating commit log message check hook. ***
|
||||||
|
EOF
|
||||||
|
$CP build-aux/git-hooks/commit-msg .git/hooks/commit-msg
|
||||||
|
chmod +x .git/hooks/commit-msg
|
||||||
|
if [ x"${display_name}" != x ]; then
|
||||||
|
git config format.subjectPrefix "PATCH ${display_name}"
|
||||||
|
git config sendemail.to "${patches_to}"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
aclocal_flags="-I m4"
|
||||||
|
if [ -n "${extra_aclocal_flags}" ]; then
|
||||||
|
aclocal_flags="${aclocal_flags} ${extra_aclocal_flags}"
|
||||||
|
fi
|
||||||
|
if [ -n "${ACLOCAL_FLAGS}" ]; then
|
||||||
|
aclocal_flags="${aclocal_flags} ${ACLOCAL_FLAGS}"
|
||||||
|
fi
|
||||||
|
info "Running $ACLOCAL ${aclocal_flags} ..."
|
||||||
|
$ACLOCAL ${aclocal_flags}
|
||||||
|
if [ -z "${skip_autoheader}" ]; then
|
||||||
|
info "Running autoheader..."
|
||||||
|
$AUTOHEADER
|
||||||
|
fi
|
||||||
|
info "Running automake --gnu ..."
|
||||||
|
$AUTOMAKE --gnu;
|
||||||
|
info "Running autoconf${FORCE} ..."
|
||||||
|
$AUTOCONF${FORCE}
|
||||||
|
|
||||||
|
info "You may now run:${am_lf} ${final_info}"
|
347
lang/python/build-aux/compile
Executable file
347
lang/python/build-aux/compile
Executable file
@ -0,0 +1,347 @@
|
|||||||
|
#! /bin/sh
|
||||||
|
# Wrapper for compilers which do not understand '-c -o'.
|
||||||
|
|
||||||
|
scriptversion=2012-10-14.11; # UTC
|
||||||
|
|
||||||
|
# Copyright (C) 1999-2013 Free Software Foundation, Inc.
|
||||||
|
# Written by Tom Tromey <tromey@cygnus.com>.
|
||||||
|
#
|
||||||
|
# This program is free software; you can redistribute it and/or modify
|
||||||
|
# it under the terms of the GNU General Public License as published by
|
||||||
|
# the Free Software Foundation; either version 2, or (at your option)
|
||||||
|
# any later version.
|
||||||
|
#
|
||||||
|
# This program is distributed in the hope that it will be useful,
|
||||||
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
# GNU General Public License for more details.
|
||||||
|
#
|
||||||
|
# You should have received a copy of the GNU General Public License
|
||||||
|
# along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
|
# As a special exception to the GNU General Public License, if you
|
||||||
|
# distribute this file as part of a program that contains a
|
||||||
|
# configuration script generated by Autoconf, you may include it under
|
||||||
|
# the same distribution terms that you use for the rest of that program.
|
||||||
|
|
||||||
|
# This file is maintained in Automake, please report
|
||||||
|
# bugs to <bug-automake@gnu.org> or send patches to
|
||||||
|
# <automake-patches@gnu.org>.
|
||||||
|
|
||||||
|
nl='
|
||||||
|
'
|
||||||
|
|
||||||
|
# We need space, tab and new line, in precisely that order. Quoting is
|
||||||
|
# there to prevent tools from complaining about whitespace usage.
|
||||||
|
IFS=" "" $nl"
|
||||||
|
|
||||||
|
file_conv=
|
||||||
|
|
||||||
|
# func_file_conv build_file lazy
|
||||||
|
# Convert a $build file to $host form and store it in $file
|
||||||
|
# Currently only supports Windows hosts. If the determined conversion
|
||||||
|
# type is listed in (the comma separated) LAZY, no conversion will
|
||||||
|
# take place.
|
||||||
|
func_file_conv ()
|
||||||
|
{
|
||||||
|
file=$1
|
||||||
|
case $file in
|
||||||
|
/ | /[!/]*) # absolute file, and not a UNC file
|
||||||
|
if test -z "$file_conv"; then
|
||||||
|
# lazily determine how to convert abs files
|
||||||
|
case `uname -s` in
|
||||||
|
MINGW*)
|
||||||
|
file_conv=mingw
|
||||||
|
;;
|
||||||
|
CYGWIN*)
|
||||||
|
file_conv=cygwin
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
file_conv=wine
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
fi
|
||||||
|
case $file_conv/,$2, in
|
||||||
|
*,$file_conv,*)
|
||||||
|
;;
|
||||||
|
mingw/*)
|
||||||
|
file=`cmd //C echo "$file " | sed -e 's/"\(.*\) " *$/\1/'`
|
||||||
|
;;
|
||||||
|
cygwin/*)
|
||||||
|
file=`cygpath -m "$file" || echo "$file"`
|
||||||
|
;;
|
||||||
|
wine/*)
|
||||||
|
file=`winepath -w "$file" || echo "$file"`
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
}
|
||||||
|
|
||||||
|
# func_cl_dashL linkdir
|
||||||
|
# Make cl look for libraries in LINKDIR
|
||||||
|
func_cl_dashL ()
|
||||||
|
{
|
||||||
|
func_file_conv "$1"
|
||||||
|
if test -z "$lib_path"; then
|
||||||
|
lib_path=$file
|
||||||
|
else
|
||||||
|
lib_path="$lib_path;$file"
|
||||||
|
fi
|
||||||
|
linker_opts="$linker_opts -LIBPATH:$file"
|
||||||
|
}
|
||||||
|
|
||||||
|
# func_cl_dashl library
|
||||||
|
# Do a library search-path lookup for cl
|
||||||
|
func_cl_dashl ()
|
||||||
|
{
|
||||||
|
lib=$1
|
||||||
|
found=no
|
||||||
|
save_IFS=$IFS
|
||||||
|
IFS=';'
|
||||||
|
for dir in $lib_path $LIB
|
||||||
|
do
|
||||||
|
IFS=$save_IFS
|
||||||
|
if $shared && test -f "$dir/$lib.dll.lib"; then
|
||||||
|
found=yes
|
||||||
|
lib=$dir/$lib.dll.lib
|
||||||
|
break
|
||||||
|
fi
|
||||||
|
if test -f "$dir/$lib.lib"; then
|
||||||
|
found=yes
|
||||||
|
lib=$dir/$lib.lib
|
||||||
|
break
|
||||||
|
fi
|
||||||
|
if test -f "$dir/lib$lib.a"; then
|
||||||
|
found=yes
|
||||||
|
lib=$dir/lib$lib.a
|
||||||
|
break
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
IFS=$save_IFS
|
||||||
|
|
||||||
|
if test "$found" != yes; then
|
||||||
|
lib=$lib.lib
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
# func_cl_wrapper cl arg...
|
||||||
|
# Adjust compile command to suit cl
|
||||||
|
func_cl_wrapper ()
|
||||||
|
{
|
||||||
|
# Assume a capable shell
|
||||||
|
lib_path=
|
||||||
|
shared=:
|
||||||
|
linker_opts=
|
||||||
|
for arg
|
||||||
|
do
|
||||||
|
if test -n "$eat"; then
|
||||||
|
eat=
|
||||||
|
else
|
||||||
|
case $1 in
|
||||||
|
-o)
|
||||||
|
# configure might choose to run compile as 'compile cc -o foo foo.c'.
|
||||||
|
eat=1
|
||||||
|
case $2 in
|
||||||
|
*.o | *.[oO][bB][jJ])
|
||||||
|
func_file_conv "$2"
|
||||||
|
set x "$@" -Fo"$file"
|
||||||
|
shift
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
func_file_conv "$2"
|
||||||
|
set x "$@" -Fe"$file"
|
||||||
|
shift
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
;;
|
||||||
|
-I)
|
||||||
|
eat=1
|
||||||
|
func_file_conv "$2" mingw
|
||||||
|
set x "$@" -I"$file"
|
||||||
|
shift
|
||||||
|
;;
|
||||||
|
-I*)
|
||||||
|
func_file_conv "${1#-I}" mingw
|
||||||
|
set x "$@" -I"$file"
|
||||||
|
shift
|
||||||
|
;;
|
||||||
|
-l)
|
||||||
|
eat=1
|
||||||
|
func_cl_dashl "$2"
|
||||||
|
set x "$@" "$lib"
|
||||||
|
shift
|
||||||
|
;;
|
||||||
|
-l*)
|
||||||
|
func_cl_dashl "${1#-l}"
|
||||||
|
set x "$@" "$lib"
|
||||||
|
shift
|
||||||
|
;;
|
||||||
|
-L)
|
||||||
|
eat=1
|
||||||
|
func_cl_dashL "$2"
|
||||||
|
;;
|
||||||
|
-L*)
|
||||||
|
func_cl_dashL "${1#-L}"
|
||||||
|
;;
|
||||||
|
-static)
|
||||||
|
shared=false
|
||||||
|
;;
|
||||||
|
-Wl,*)
|
||||||
|
arg=${1#-Wl,}
|
||||||
|
save_ifs="$IFS"; IFS=','
|
||||||
|
for flag in $arg; do
|
||||||
|
IFS="$save_ifs"
|
||||||
|
linker_opts="$linker_opts $flag"
|
||||||
|
done
|
||||||
|
IFS="$save_ifs"
|
||||||
|
;;
|
||||||
|
-Xlinker)
|
||||||
|
eat=1
|
||||||
|
linker_opts="$linker_opts $2"
|
||||||
|
;;
|
||||||
|
-*)
|
||||||
|
set x "$@" "$1"
|
||||||
|
shift
|
||||||
|
;;
|
||||||
|
*.cc | *.CC | *.cxx | *.CXX | *.[cC]++)
|
||||||
|
func_file_conv "$1"
|
||||||
|
set x "$@" -Tp"$file"
|
||||||
|
shift
|
||||||
|
;;
|
||||||
|
*.c | *.cpp | *.CPP | *.lib | *.LIB | *.Lib | *.OBJ | *.obj | *.[oO])
|
||||||
|
func_file_conv "$1" mingw
|
||||||
|
set x "$@" "$file"
|
||||||
|
shift
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
set x "$@" "$1"
|
||||||
|
shift
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
fi
|
||||||
|
shift
|
||||||
|
done
|
||||||
|
if test -n "$linker_opts"; then
|
||||||
|
linker_opts="-link$linker_opts"
|
||||||
|
fi
|
||||||
|
exec "$@" $linker_opts
|
||||||
|
exit 1
|
||||||
|
}
|
||||||
|
|
||||||
|
eat=
|
||||||
|
|
||||||
|
case $1 in
|
||||||
|
'')
|
||||||
|
echo "$0: No command. Try '$0 --help' for more information." 1>&2
|
||||||
|
exit 1;
|
||||||
|
;;
|
||||||
|
-h | --h*)
|
||||||
|
cat <<\EOF
|
||||||
|
Usage: compile [--help] [--version] PROGRAM [ARGS]
|
||||||
|
|
||||||
|
Wrapper for compilers which do not understand '-c -o'.
|
||||||
|
Remove '-o dest.o' from ARGS, run PROGRAM with the remaining
|
||||||
|
arguments, and rename the output as expected.
|
||||||
|
|
||||||
|
If you are trying to build a whole package this is not the
|
||||||
|
right script to run: please start by reading the file 'INSTALL'.
|
||||||
|
|
||||||
|
Report bugs to <bug-automake@gnu.org>.
|
||||||
|
EOF
|
||||||
|
exit $?
|
||||||
|
;;
|
||||||
|
-v | --v*)
|
||||||
|
echo "compile $scriptversion"
|
||||||
|
exit $?
|
||||||
|
;;
|
||||||
|
cl | *[/\\]cl | cl.exe | *[/\\]cl.exe )
|
||||||
|
func_cl_wrapper "$@" # Doesn't return...
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
ofile=
|
||||||
|
cfile=
|
||||||
|
|
||||||
|
for arg
|
||||||
|
do
|
||||||
|
if test -n "$eat"; then
|
||||||
|
eat=
|
||||||
|
else
|
||||||
|
case $1 in
|
||||||
|
-o)
|
||||||
|
# configure might choose to run compile as 'compile cc -o foo foo.c'.
|
||||||
|
# So we strip '-o arg' only if arg is an object.
|
||||||
|
eat=1
|
||||||
|
case $2 in
|
||||||
|
*.o | *.obj)
|
||||||
|
ofile=$2
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
set x "$@" -o "$2"
|
||||||
|
shift
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
;;
|
||||||
|
*.c)
|
||||||
|
cfile=$1
|
||||||
|
set x "$@" "$1"
|
||||||
|
shift
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
set x "$@" "$1"
|
||||||
|
shift
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
fi
|
||||||
|
shift
|
||||||
|
done
|
||||||
|
|
||||||
|
if test -z "$ofile" || test -z "$cfile"; then
|
||||||
|
# If no '-o' option was seen then we might have been invoked from a
|
||||||
|
# pattern rule where we don't need one. That is ok -- this is a
|
||||||
|
# normal compilation that the losing compiler can handle. If no
|
||||||
|
# '.c' file was seen then we are probably linking. That is also
|
||||||
|
# ok.
|
||||||
|
exec "$@"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Name of file we expect compiler to create.
|
||||||
|
cofile=`echo "$cfile" | sed 's|^.*[\\/]||; s|^[a-zA-Z]:||; s/\.c$/.o/'`
|
||||||
|
|
||||||
|
# Create the lock directory.
|
||||||
|
# Note: use '[/\\:.-]' here to ensure that we don't use the same name
|
||||||
|
# that we are using for the .o file. Also, base the name on the expected
|
||||||
|
# object file name, since that is what matters with a parallel build.
|
||||||
|
lockdir=`echo "$cofile" | sed -e 's|[/\\:.-]|_|g'`.d
|
||||||
|
while true; do
|
||||||
|
if mkdir "$lockdir" >/dev/null 2>&1; then
|
||||||
|
break
|
||||||
|
fi
|
||||||
|
sleep 1
|
||||||
|
done
|
||||||
|
# FIXME: race condition here if user kills between mkdir and trap.
|
||||||
|
trap "rmdir '$lockdir'; exit 1" 1 2 15
|
||||||
|
|
||||||
|
# Run the compile.
|
||||||
|
"$@"
|
||||||
|
ret=$?
|
||||||
|
|
||||||
|
if test -f "$cofile"; then
|
||||||
|
test "$cofile" = "$ofile" || mv "$cofile" "$ofile"
|
||||||
|
elif test -f "${cofile}bj"; then
|
||||||
|
test "${cofile}bj" = "$ofile" || mv "${cofile}bj" "$ofile"
|
||||||
|
fi
|
||||||
|
|
||||||
|
rmdir "$lockdir"
|
||||||
|
exit $ret
|
||||||
|
|
||||||
|
# Local Variables:
|
||||||
|
# mode: shell-script
|
||||||
|
# sh-indentation: 2
|
||||||
|
# eval: (add-hook 'write-file-hooks 'time-stamp)
|
||||||
|
# time-stamp-start: "scriptversion="
|
||||||
|
# time-stamp-format: "%:y-%02m-%02d.%02H"
|
||||||
|
# time-stamp-time-zone: "UTC"
|
||||||
|
# time-stamp-end: "; # UTC"
|
||||||
|
# End:
|
1754
lang/python/build-aux/config.guess
vendored
Executable file
1754
lang/python/build-aux/config.guess
vendored
Executable file
File diff suppressed because it is too large
Load Diff
1890
lang/python/build-aux/config.sub
vendored
Executable file
1890
lang/python/build-aux/config.sub
vendored
Executable file
File diff suppressed because it is too large
Load Diff
791
lang/python/build-aux/depcomp
Executable file
791
lang/python/build-aux/depcomp
Executable file
@ -0,0 +1,791 @@
|
|||||||
|
#! /bin/sh
|
||||||
|
# depcomp - compile a program generating dependencies as side-effects
|
||||||
|
|
||||||
|
scriptversion=2013-05-30.07; # UTC
|
||||||
|
|
||||||
|
# Copyright (C) 1999-2013 Free Software Foundation, Inc.
|
||||||
|
|
||||||
|
# This program is free software; you can redistribute it and/or modify
|
||||||
|
# it under the terms of the GNU General Public License as published by
|
||||||
|
# the Free Software Foundation; either version 2, or (at your option)
|
||||||
|
# any later version.
|
||||||
|
|
||||||
|
# This program is distributed in the hope that it will be useful,
|
||||||
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
# GNU General Public License for more details.
|
||||||
|
|
||||||
|
# You should have received a copy of the GNU General Public License
|
||||||
|
# along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
|
# As a special exception to the GNU General Public License, if you
|
||||||
|
# distribute this file as part of a program that contains a
|
||||||
|
# configuration script generated by Autoconf, you may include it under
|
||||||
|
# the same distribution terms that you use for the rest of that program.
|
||||||
|
|
||||||
|
# Originally written by Alexandre Oliva <oliva@dcc.unicamp.br>.
|
||||||
|
|
||||||
|
case $1 in
|
||||||
|
'')
|
||||||
|
echo "$0: No command. Try '$0 --help' for more information." 1>&2
|
||||||
|
exit 1;
|
||||||
|
;;
|
||||||
|
-h | --h*)
|
||||||
|
cat <<\EOF
|
||||||
|
Usage: depcomp [--help] [--version] PROGRAM [ARGS]
|
||||||
|
|
||||||
|
Run PROGRAMS ARGS to compile a file, generating dependencies
|
||||||
|
as side-effects.
|
||||||
|
|
||||||
|
Environment variables:
|
||||||
|
depmode Dependency tracking mode.
|
||||||
|
source Source file read by 'PROGRAMS ARGS'.
|
||||||
|
object Object file output by 'PROGRAMS ARGS'.
|
||||||
|
DEPDIR directory where to store dependencies.
|
||||||
|
depfile Dependency file to output.
|
||||||
|
tmpdepfile Temporary file to use when outputting dependencies.
|
||||||
|
libtool Whether libtool is used (yes/no).
|
||||||
|
|
||||||
|
Report bugs to <bug-automake@gnu.org>.
|
||||||
|
EOF
|
||||||
|
exit $?
|
||||||
|
;;
|
||||||
|
-v | --v*)
|
||||||
|
echo "depcomp $scriptversion"
|
||||||
|
exit $?
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
# Get the directory component of the given path, and save it in the
|
||||||
|
# global variables '$dir'. Note that this directory component will
|
||||||
|
# be either empty or ending with a '/' character. This is deliberate.
|
||||||
|
set_dir_from ()
|
||||||
|
{
|
||||||
|
case $1 in
|
||||||
|
*/*) dir=`echo "$1" | sed -e 's|/[^/]*$|/|'`;;
|
||||||
|
*) dir=;;
|
||||||
|
esac
|
||||||
|
}
|
||||||
|
|
||||||
|
# Get the suffix-stripped basename of the given path, and save it the
|
||||||
|
# global variable '$base'.
|
||||||
|
set_base_from ()
|
||||||
|
{
|
||||||
|
base=`echo "$1" | sed -e 's|^.*/||' -e 's/\.[^.]*$//'`
|
||||||
|
}
|
||||||
|
|
||||||
|
# If no dependency file was actually created by the compiler invocation,
|
||||||
|
# we still have to create a dummy depfile, to avoid errors with the
|
||||||
|
# Makefile "include basename.Plo" scheme.
|
||||||
|
make_dummy_depfile ()
|
||||||
|
{
|
||||||
|
echo "#dummy" > "$depfile"
|
||||||
|
}
|
||||||
|
|
||||||
|
# Factor out some common post-processing of the generated depfile.
|
||||||
|
# Requires the auxiliary global variable '$tmpdepfile' to be set.
|
||||||
|
aix_post_process_depfile ()
|
||||||
|
{
|
||||||
|
# If the compiler actually managed to produce a dependency file,
|
||||||
|
# post-process it.
|
||||||
|
if test -f "$tmpdepfile"; then
|
||||||
|
# Each line is of the form 'foo.o: dependency.h'.
|
||||||
|
# Do two passes, one to just change these to
|
||||||
|
# $object: dependency.h
|
||||||
|
# and one to simply output
|
||||||
|
# dependency.h:
|
||||||
|
# which is needed to avoid the deleted-header problem.
|
||||||
|
{ sed -e "s,^.*\.[$lower]*:,$object:," < "$tmpdepfile"
|
||||||
|
sed -e "s,^.*\.[$lower]*:[$tab ]*,," -e 's,$,:,' < "$tmpdepfile"
|
||||||
|
} > "$depfile"
|
||||||
|
rm -f "$tmpdepfile"
|
||||||
|
else
|
||||||
|
make_dummy_depfile
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
# A tabulation character.
|
||||||
|
tab=' '
|
||||||
|
# A newline character.
|
||||||
|
nl='
|
||||||
|
'
|
||||||
|
# Character ranges might be problematic outside the C locale.
|
||||||
|
# These definitions help.
|
||||||
|
upper=ABCDEFGHIJKLMNOPQRSTUVWXYZ
|
||||||
|
lower=abcdefghijklmnopqrstuvwxyz
|
||||||
|
digits=0123456789
|
||||||
|
alpha=${upper}${lower}
|
||||||
|
|
||||||
|
if test -z "$depmode" || test -z "$source" || test -z "$object"; then
|
||||||
|
echo "depcomp: Variables source, object and depmode must be set" 1>&2
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Dependencies for sub/bar.o or sub/bar.obj go into sub/.deps/bar.Po.
|
||||||
|
depfile=${depfile-`echo "$object" |
|
||||||
|
sed 's|[^\\/]*$|'${DEPDIR-.deps}'/&|;s|\.\([^.]*\)$|.P\1|;s|Pobj$|Po|'`}
|
||||||
|
tmpdepfile=${tmpdepfile-`echo "$depfile" | sed 's/\.\([^.]*\)$/.T\1/'`}
|
||||||
|
|
||||||
|
rm -f "$tmpdepfile"
|
||||||
|
|
||||||
|
# Avoid interferences from the environment.
|
||||||
|
gccflag= dashmflag=
|
||||||
|
|
||||||
|
# Some modes work just like other modes, but use different flags. We
|
||||||
|
# parameterize here, but still list the modes in the big case below,
|
||||||
|
# to make depend.m4 easier to write. Note that we *cannot* use a case
|
||||||
|
# here, because this file can only contain one case statement.
|
||||||
|
if test "$depmode" = hp; then
|
||||||
|
# HP compiler uses -M and no extra arg.
|
||||||
|
gccflag=-M
|
||||||
|
depmode=gcc
|
||||||
|
fi
|
||||||
|
|
||||||
|
if test "$depmode" = dashXmstdout; then
|
||||||
|
# This is just like dashmstdout with a different argument.
|
||||||
|
dashmflag=-xM
|
||||||
|
depmode=dashmstdout
|
||||||
|
fi
|
||||||
|
|
||||||
|
cygpath_u="cygpath -u -f -"
|
||||||
|
if test "$depmode" = msvcmsys; then
|
||||||
|
# This is just like msvisualcpp but w/o cygpath translation.
|
||||||
|
# Just convert the backslash-escaped backslashes to single forward
|
||||||
|
# slashes to satisfy depend.m4
|
||||||
|
cygpath_u='sed s,\\\\,/,g'
|
||||||
|
depmode=msvisualcpp
|
||||||
|
fi
|
||||||
|
|
||||||
|
if test "$depmode" = msvc7msys; then
|
||||||
|
# This is just like msvc7 but w/o cygpath translation.
|
||||||
|
# Just convert the backslash-escaped backslashes to single forward
|
||||||
|
# slashes to satisfy depend.m4
|
||||||
|
cygpath_u='sed s,\\\\,/,g'
|
||||||
|
depmode=msvc7
|
||||||
|
fi
|
||||||
|
|
||||||
|
if test "$depmode" = xlc; then
|
||||||
|
# IBM C/C++ Compilers xlc/xlC can output gcc-like dependency information.
|
||||||
|
gccflag=-qmakedep=gcc,-MF
|
||||||
|
depmode=gcc
|
||||||
|
fi
|
||||||
|
|
||||||
|
case "$depmode" in
|
||||||
|
gcc3)
|
||||||
|
## gcc 3 implements dependency tracking that does exactly what
|
||||||
|
## we want. Yay! Note: for some reason libtool 1.4 doesn't like
|
||||||
|
## it if -MD -MP comes after the -MF stuff. Hmm.
|
||||||
|
## Unfortunately, FreeBSD c89 acceptance of flags depends upon
|
||||||
|
## the command line argument order; so add the flags where they
|
||||||
|
## appear in depend2.am. Note that the slowdown incurred here
|
||||||
|
## affects only configure: in makefiles, %FASTDEP% shortcuts this.
|
||||||
|
for arg
|
||||||
|
do
|
||||||
|
case $arg in
|
||||||
|
-c) set fnord "$@" -MT "$object" -MD -MP -MF "$tmpdepfile" "$arg" ;;
|
||||||
|
*) set fnord "$@" "$arg" ;;
|
||||||
|
esac
|
||||||
|
shift # fnord
|
||||||
|
shift # $arg
|
||||||
|
done
|
||||||
|
"$@"
|
||||||
|
stat=$?
|
||||||
|
if test $stat -ne 0; then
|
||||||
|
rm -f "$tmpdepfile"
|
||||||
|
exit $stat
|
||||||
|
fi
|
||||||
|
mv "$tmpdepfile" "$depfile"
|
||||||
|
;;
|
||||||
|
|
||||||
|
gcc)
|
||||||
|
## Note that this doesn't just cater to obsosete pre-3.x GCC compilers.
|
||||||
|
## but also to in-use compilers like IMB xlc/xlC and the HP C compiler.
|
||||||
|
## (see the conditional assignment to $gccflag above).
|
||||||
|
## There are various ways to get dependency output from gcc. Here's
|
||||||
|
## why we pick this rather obscure method:
|
||||||
|
## - Don't want to use -MD because we'd like the dependencies to end
|
||||||
|
## up in a subdir. Having to rename by hand is ugly.
|
||||||
|
## (We might end up doing this anyway to support other compilers.)
|
||||||
|
## - The DEPENDENCIES_OUTPUT environment variable makes gcc act like
|
||||||
|
## -MM, not -M (despite what the docs say). Also, it might not be
|
||||||
|
## supported by the other compilers which use the 'gcc' depmode.
|
||||||
|
## - Using -M directly means running the compiler twice (even worse
|
||||||
|
## than renaming).
|
||||||
|
if test -z "$gccflag"; then
|
||||||
|
gccflag=-MD,
|
||||||
|
fi
|
||||||
|
"$@" -Wp,"$gccflag$tmpdepfile"
|
||||||
|
stat=$?
|
||||||
|
if test $stat -ne 0; then
|
||||||
|
rm -f "$tmpdepfile"
|
||||||
|
exit $stat
|
||||||
|
fi
|
||||||
|
rm -f "$depfile"
|
||||||
|
echo "$object : \\" > "$depfile"
|
||||||
|
# The second -e expression handles DOS-style file names with drive
|
||||||
|
# letters.
|
||||||
|
sed -e 's/^[^:]*: / /' \
|
||||||
|
-e 's/^['$alpha']:\/[^:]*: / /' < "$tmpdepfile" >> "$depfile"
|
||||||
|
## This next piece of magic avoids the "deleted header file" problem.
|
||||||
|
## The problem is that when a header file which appears in a .P file
|
||||||
|
## is deleted, the dependency causes make to die (because there is
|
||||||
|
## typically no way to rebuild the header). We avoid this by adding
|
||||||
|
## dummy dependencies for each header file. Too bad gcc doesn't do
|
||||||
|
## this for us directly.
|
||||||
|
## Some versions of gcc put a space before the ':'. On the theory
|
||||||
|
## that the space means something, we add a space to the output as
|
||||||
|
## well. hp depmode also adds that space, but also prefixes the VPATH
|
||||||
|
## to the object. Take care to not repeat it in the output.
|
||||||
|
## Some versions of the HPUX 10.20 sed can't process this invocation
|
||||||
|
## correctly. Breaking it into two sed invocations is a workaround.
|
||||||
|
tr ' ' "$nl" < "$tmpdepfile" \
|
||||||
|
| sed -e 's/^\\$//' -e '/^$/d' -e "s|.*$object$||" -e '/:$/d' \
|
||||||
|
| sed -e 's/$/ :/' >> "$depfile"
|
||||||
|
rm -f "$tmpdepfile"
|
||||||
|
;;
|
||||||
|
|
||||||
|
hp)
|
||||||
|
# This case exists only to let depend.m4 do its work. It works by
|
||||||
|
# looking at the text of this script. This case will never be run,
|
||||||
|
# since it is checked for above.
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
|
||||||
|
sgi)
|
||||||
|
if test "$libtool" = yes; then
|
||||||
|
"$@" "-Wp,-MDupdate,$tmpdepfile"
|
||||||
|
else
|
||||||
|
"$@" -MDupdate "$tmpdepfile"
|
||||||
|
fi
|
||||||
|
stat=$?
|
||||||
|
if test $stat -ne 0; then
|
||||||
|
rm -f "$tmpdepfile"
|
||||||
|
exit $stat
|
||||||
|
fi
|
||||||
|
rm -f "$depfile"
|
||||||
|
|
||||||
|
if test -f "$tmpdepfile"; then # yes, the sourcefile depend on other files
|
||||||
|
echo "$object : \\" > "$depfile"
|
||||||
|
# Clip off the initial element (the dependent). Don't try to be
|
||||||
|
# clever and replace this with sed code, as IRIX sed won't handle
|
||||||
|
# lines with more than a fixed number of characters (4096 in
|
||||||
|
# IRIX 6.2 sed, 8192 in IRIX 6.5). We also remove comment lines;
|
||||||
|
# the IRIX cc adds comments like '#:fec' to the end of the
|
||||||
|
# dependency line.
|
||||||
|
tr ' ' "$nl" < "$tmpdepfile" \
|
||||||
|
| sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' \
|
||||||
|
| tr "$nl" ' ' >> "$depfile"
|
||||||
|
echo >> "$depfile"
|
||||||
|
# The second pass generates a dummy entry for each header file.
|
||||||
|
tr ' ' "$nl" < "$tmpdepfile" \
|
||||||
|
| sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \
|
||||||
|
>> "$depfile"
|
||||||
|
else
|
||||||
|
make_dummy_depfile
|
||||||
|
fi
|
||||||
|
rm -f "$tmpdepfile"
|
||||||
|
;;
|
||||||
|
|
||||||
|
xlc)
|
||||||
|
# This case exists only to let depend.m4 do its work. It works by
|
||||||
|
# looking at the text of this script. This case will never be run,
|
||||||
|
# since it is checked for above.
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
|
||||||
|
aix)
|
||||||
|
# The C for AIX Compiler uses -M and outputs the dependencies
|
||||||
|
# in a .u file. In older versions, this file always lives in the
|
||||||
|
# current directory. Also, the AIX compiler puts '$object:' at the
|
||||||
|
# start of each line; $object doesn't have directory information.
|
||||||
|
# Version 6 uses the directory in both cases.
|
||||||
|
set_dir_from "$object"
|
||||||
|
set_base_from "$object"
|
||||||
|
if test "$libtool" = yes; then
|
||||||
|
tmpdepfile1=$dir$base.u
|
||||||
|
tmpdepfile2=$base.u
|
||||||
|
tmpdepfile3=$dir.libs/$base.u
|
||||||
|
"$@" -Wc,-M
|
||||||
|
else
|
||||||
|
tmpdepfile1=$dir$base.u
|
||||||
|
tmpdepfile2=$dir$base.u
|
||||||
|
tmpdepfile3=$dir$base.u
|
||||||
|
"$@" -M
|
||||||
|
fi
|
||||||
|
stat=$?
|
||||||
|
if test $stat -ne 0; then
|
||||||
|
rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3"
|
||||||
|
exit $stat
|
||||||
|
fi
|
||||||
|
|
||||||
|
for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3"
|
||||||
|
do
|
||||||
|
test -f "$tmpdepfile" && break
|
||||||
|
done
|
||||||
|
aix_post_process_depfile
|
||||||
|
;;
|
||||||
|
|
||||||
|
tcc)
|
||||||
|
# tcc (Tiny C Compiler) understand '-MD -MF file' since version 0.9.26
|
||||||
|
# FIXME: That version still under development at the moment of writing.
|
||||||
|
# Make that this statement remains true also for stable, released
|
||||||
|
# versions.
|
||||||
|
# It will wrap lines (doesn't matter whether long or short) with a
|
||||||
|
# trailing '\', as in:
|
||||||
|
#
|
||||||
|
# foo.o : \
|
||||||
|
# foo.c \
|
||||||
|
# foo.h \
|
||||||
|
#
|
||||||
|
# It will put a trailing '\' even on the last line, and will use leading
|
||||||
|
# spaces rather than leading tabs (at least since its commit 0394caf7
|
||||||
|
# "Emit spaces for -MD").
|
||||||
|
"$@" -MD -MF "$tmpdepfile"
|
||||||
|
stat=$?
|
||||||
|
if test $stat -ne 0; then
|
||||||
|
rm -f "$tmpdepfile"
|
||||||
|
exit $stat
|
||||||
|
fi
|
||||||
|
rm -f "$depfile"
|
||||||
|
# Each non-empty line is of the form 'foo.o : \' or ' dep.h \'.
|
||||||
|
# We have to change lines of the first kind to '$object: \'.
|
||||||
|
sed -e "s|.*:|$object :|" < "$tmpdepfile" > "$depfile"
|
||||||
|
# And for each line of the second kind, we have to emit a 'dep.h:'
|
||||||
|
# dummy dependency, to avoid the deleted-header problem.
|
||||||
|
sed -n -e 's|^ *\(.*\) *\\$|\1:|p' < "$tmpdepfile" >> "$depfile"
|
||||||
|
rm -f "$tmpdepfile"
|
||||||
|
;;
|
||||||
|
|
||||||
|
## The order of this option in the case statement is important, since the
|
||||||
|
## shell code in configure will try each of these formats in the order
|
||||||
|
## listed in this file. A plain '-MD' option would be understood by many
|
||||||
|
## compilers, so we must ensure this comes after the gcc and icc options.
|
||||||
|
pgcc)
|
||||||
|
# Portland's C compiler understands '-MD'.
|
||||||
|
# Will always output deps to 'file.d' where file is the root name of the
|
||||||
|
# source file under compilation, even if file resides in a subdirectory.
|
||||||
|
# The object file name does not affect the name of the '.d' file.
|
||||||
|
# pgcc 10.2 will output
|
||||||
|
# foo.o: sub/foo.c sub/foo.h
|
||||||
|
# and will wrap long lines using '\' :
|
||||||
|
# foo.o: sub/foo.c ... \
|
||||||
|
# sub/foo.h ... \
|
||||||
|
# ...
|
||||||
|
set_dir_from "$object"
|
||||||
|
# Use the source, not the object, to determine the base name, since
|
||||||
|
# that's sadly what pgcc will do too.
|
||||||
|
set_base_from "$source"
|
||||||
|
tmpdepfile=$base.d
|
||||||
|
|
||||||
|
# For projects that build the same source file twice into different object
|
||||||
|
# files, the pgcc approach of using the *source* file root name can cause
|
||||||
|
# problems in parallel builds. Use a locking strategy to avoid stomping on
|
||||||
|
# the same $tmpdepfile.
|
||||||
|
lockdir=$base.d-lock
|
||||||
|
trap "
|
||||||
|
echo '$0: caught signal, cleaning up...' >&2
|
||||||
|
rmdir '$lockdir'
|
||||||
|
exit 1
|
||||||
|
" 1 2 13 15
|
||||||
|
numtries=100
|
||||||
|
i=$numtries
|
||||||
|
while test $i -gt 0; do
|
||||||
|
# mkdir is a portable test-and-set.
|
||||||
|
if mkdir "$lockdir" 2>/dev/null; then
|
||||||
|
# This process acquired the lock.
|
||||||
|
"$@" -MD
|
||||||
|
stat=$?
|
||||||
|
# Release the lock.
|
||||||
|
rmdir "$lockdir"
|
||||||
|
break
|
||||||
|
else
|
||||||
|
# If the lock is being held by a different process, wait
|
||||||
|
# until the winning process is done or we timeout.
|
||||||
|
while test -d "$lockdir" && test $i -gt 0; do
|
||||||
|
sleep 1
|
||||||
|
i=`expr $i - 1`
|
||||||
|
done
|
||||||
|
fi
|
||||||
|
i=`expr $i - 1`
|
||||||
|
done
|
||||||
|
trap - 1 2 13 15
|
||||||
|
if test $i -le 0; then
|
||||||
|
echo "$0: failed to acquire lock after $numtries attempts" >&2
|
||||||
|
echo "$0: check lockdir '$lockdir'" >&2
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
if test $stat -ne 0; then
|
||||||
|
rm -f "$tmpdepfile"
|
||||||
|
exit $stat
|
||||||
|
fi
|
||||||
|
rm -f "$depfile"
|
||||||
|
# Each line is of the form `foo.o: dependent.h',
|
||||||
|
# or `foo.o: dep1.h dep2.h \', or ` dep3.h dep4.h \'.
|
||||||
|
# Do two passes, one to just change these to
|
||||||
|
# `$object: dependent.h' and one to simply `dependent.h:'.
|
||||||
|
sed "s,^[^:]*:,$object :," < "$tmpdepfile" > "$depfile"
|
||||||
|
# Some versions of the HPUX 10.20 sed can't process this invocation
|
||||||
|
# correctly. Breaking it into two sed invocations is a workaround.
|
||||||
|
sed 's,^[^:]*: \(.*\)$,\1,;s/^\\$//;/^$/d;/:$/d' < "$tmpdepfile" \
|
||||||
|
| sed -e 's/$/ :/' >> "$depfile"
|
||||||
|
rm -f "$tmpdepfile"
|
||||||
|
;;
|
||||||
|
|
||||||
|
hp2)
|
||||||
|
# The "hp" stanza above does not work with aCC (C++) and HP's ia64
|
||||||
|
# compilers, which have integrated preprocessors. The correct option
|
||||||
|
# to use with these is +Maked; it writes dependencies to a file named
|
||||||
|
# 'foo.d', which lands next to the object file, wherever that
|
||||||
|
# happens to be.
|
||||||
|
# Much of this is similar to the tru64 case; see comments there.
|
||||||
|
set_dir_from "$object"
|
||||||
|
set_base_from "$object"
|
||||||
|
if test "$libtool" = yes; then
|
||||||
|
tmpdepfile1=$dir$base.d
|
||||||
|
tmpdepfile2=$dir.libs/$base.d
|
||||||
|
"$@" -Wc,+Maked
|
||||||
|
else
|
||||||
|
tmpdepfile1=$dir$base.d
|
||||||
|
tmpdepfile2=$dir$base.d
|
||||||
|
"$@" +Maked
|
||||||
|
fi
|
||||||
|
stat=$?
|
||||||
|
if test $stat -ne 0; then
|
||||||
|
rm -f "$tmpdepfile1" "$tmpdepfile2"
|
||||||
|
exit $stat
|
||||||
|
fi
|
||||||
|
|
||||||
|
for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2"
|
||||||
|
do
|
||||||
|
test -f "$tmpdepfile" && break
|
||||||
|
done
|
||||||
|
if test -f "$tmpdepfile"; then
|
||||||
|
sed -e "s,^.*\.[$lower]*:,$object:," "$tmpdepfile" > "$depfile"
|
||||||
|
# Add 'dependent.h:' lines.
|
||||||
|
sed -ne '2,${
|
||||||
|
s/^ *//
|
||||||
|
s/ \\*$//
|
||||||
|
s/$/:/
|
||||||
|
p
|
||||||
|
}' "$tmpdepfile" >> "$depfile"
|
||||||
|
else
|
||||||
|
make_dummy_depfile
|
||||||
|
fi
|
||||||
|
rm -f "$tmpdepfile" "$tmpdepfile2"
|
||||||
|
;;
|
||||||
|
|
||||||
|
tru64)
|
||||||
|
# The Tru64 compiler uses -MD to generate dependencies as a side
|
||||||
|
# effect. 'cc -MD -o foo.o ...' puts the dependencies into 'foo.o.d'.
|
||||||
|
# At least on Alpha/Redhat 6.1, Compaq CCC V6.2-504 seems to put
|
||||||
|
# dependencies in 'foo.d' instead, so we check for that too.
|
||||||
|
# Subdirectories are respected.
|
||||||
|
set_dir_from "$object"
|
||||||
|
set_base_from "$object"
|
||||||
|
|
||||||
|
if test "$libtool" = yes; then
|
||||||
|
# Libtool generates 2 separate objects for the 2 libraries. These
|
||||||
|
# two compilations output dependencies in $dir.libs/$base.o.d and
|
||||||
|
# in $dir$base.o.d. We have to check for both files, because
|
||||||
|
# one of the two compilations can be disabled. We should prefer
|
||||||
|
# $dir$base.o.d over $dir.libs/$base.o.d because the latter is
|
||||||
|
# automatically cleaned when .libs/ is deleted, while ignoring
|
||||||
|
# the former would cause a distcleancheck panic.
|
||||||
|
tmpdepfile1=$dir$base.o.d # libtool 1.5
|
||||||
|
tmpdepfile2=$dir.libs/$base.o.d # Likewise.
|
||||||
|
tmpdepfile3=$dir.libs/$base.d # Compaq CCC V6.2-504
|
||||||
|
"$@" -Wc,-MD
|
||||||
|
else
|
||||||
|
tmpdepfile1=$dir$base.d
|
||||||
|
tmpdepfile2=$dir$base.d
|
||||||
|
tmpdepfile3=$dir$base.d
|
||||||
|
"$@" -MD
|
||||||
|
fi
|
||||||
|
|
||||||
|
stat=$?
|
||||||
|
if test $stat -ne 0; then
|
||||||
|
rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3"
|
||||||
|
exit $stat
|
||||||
|
fi
|
||||||
|
|
||||||
|
for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3"
|
||||||
|
do
|
||||||
|
test -f "$tmpdepfile" && break
|
||||||
|
done
|
||||||
|
# Same post-processing that is required for AIX mode.
|
||||||
|
aix_post_process_depfile
|
||||||
|
;;
|
||||||
|
|
||||||
|
msvc7)
|
||||||
|
if test "$libtool" = yes; then
|
||||||
|
showIncludes=-Wc,-showIncludes
|
||||||
|
else
|
||||||
|
showIncludes=-showIncludes
|
||||||
|
fi
|
||||||
|
"$@" $showIncludes > "$tmpdepfile"
|
||||||
|
stat=$?
|
||||||
|
grep -v '^Note: including file: ' "$tmpdepfile"
|
||||||
|
if test $stat -ne 0; then
|
||||||
|
rm -f "$tmpdepfile"
|
||||||
|
exit $stat
|
||||||
|
fi
|
||||||
|
rm -f "$depfile"
|
||||||
|
echo "$object : \\" > "$depfile"
|
||||||
|
# The first sed program below extracts the file names and escapes
|
||||||
|
# backslashes for cygpath. The second sed program outputs the file
|
||||||
|
# name when reading, but also accumulates all include files in the
|
||||||
|
# hold buffer in order to output them again at the end. This only
|
||||||
|
# works with sed implementations that can handle large buffers.
|
||||||
|
sed < "$tmpdepfile" -n '
|
||||||
|
/^Note: including file: *\(.*\)/ {
|
||||||
|
s//\1/
|
||||||
|
s/\\/\\\\/g
|
||||||
|
p
|
||||||
|
}' | $cygpath_u | sort -u | sed -n '
|
||||||
|
s/ /\\ /g
|
||||||
|
s/\(.*\)/'"$tab"'\1 \\/p
|
||||||
|
s/.\(.*\) \\/\1:/
|
||||||
|
H
|
||||||
|
$ {
|
||||||
|
s/.*/'"$tab"'/
|
||||||
|
G
|
||||||
|
p
|
||||||
|
}' >> "$depfile"
|
||||||
|
echo >> "$depfile" # make sure the fragment doesn't end with a backslash
|
||||||
|
rm -f "$tmpdepfile"
|
||||||
|
;;
|
||||||
|
|
||||||
|
msvc7msys)
|
||||||
|
# This case exists only to let depend.m4 do its work. It works by
|
||||||
|
# looking at the text of this script. This case will never be run,
|
||||||
|
# since it is checked for above.
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
|
||||||
|
#nosideeffect)
|
||||||
|
# This comment above is used by automake to tell side-effect
|
||||||
|
# dependency tracking mechanisms from slower ones.
|
||||||
|
|
||||||
|
dashmstdout)
|
||||||
|
# Important note: in order to support this mode, a compiler *must*
|
||||||
|
# always write the preprocessed file to stdout, regardless of -o.
|
||||||
|
"$@" || exit $?
|
||||||
|
|
||||||
|
# Remove the call to Libtool.
|
||||||
|
if test "$libtool" = yes; then
|
||||||
|
while test "X$1" != 'X--mode=compile'; do
|
||||||
|
shift
|
||||||
|
done
|
||||||
|
shift
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Remove '-o $object'.
|
||||||
|
IFS=" "
|
||||||
|
for arg
|
||||||
|
do
|
||||||
|
case $arg in
|
||||||
|
-o)
|
||||||
|
shift
|
||||||
|
;;
|
||||||
|
$object)
|
||||||
|
shift
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
set fnord "$@" "$arg"
|
||||||
|
shift # fnord
|
||||||
|
shift # $arg
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
|
||||||
|
test -z "$dashmflag" && dashmflag=-M
|
||||||
|
# Require at least two characters before searching for ':'
|
||||||
|
# in the target name. This is to cope with DOS-style filenames:
|
||||||
|
# a dependency such as 'c:/foo/bar' could be seen as target 'c' otherwise.
|
||||||
|
"$@" $dashmflag |
|
||||||
|
sed "s|^[$tab ]*[^:$tab ][^:][^:]*:[$tab ]*|$object: |" > "$tmpdepfile"
|
||||||
|
rm -f "$depfile"
|
||||||
|
cat < "$tmpdepfile" > "$depfile"
|
||||||
|
# Some versions of the HPUX 10.20 sed can't process this sed invocation
|
||||||
|
# correctly. Breaking it into two sed invocations is a workaround.
|
||||||
|
tr ' ' "$nl" < "$tmpdepfile" \
|
||||||
|
| sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' \
|
||||||
|
| sed -e 's/$/ :/' >> "$depfile"
|
||||||
|
rm -f "$tmpdepfile"
|
||||||
|
;;
|
||||||
|
|
||||||
|
dashXmstdout)
|
||||||
|
# This case only exists to satisfy depend.m4. It is never actually
|
||||||
|
# run, as this mode is specially recognized in the preamble.
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
|
||||||
|
makedepend)
|
||||||
|
"$@" || exit $?
|
||||||
|
# Remove any Libtool call
|
||||||
|
if test "$libtool" = yes; then
|
||||||
|
while test "X$1" != 'X--mode=compile'; do
|
||||||
|
shift
|
||||||
|
done
|
||||||
|
shift
|
||||||
|
fi
|
||||||
|
# X makedepend
|
||||||
|
shift
|
||||||
|
cleared=no eat=no
|
||||||
|
for arg
|
||||||
|
do
|
||||||
|
case $cleared in
|
||||||
|
no)
|
||||||
|
set ""; shift
|
||||||
|
cleared=yes ;;
|
||||||
|
esac
|
||||||
|
if test $eat = yes; then
|
||||||
|
eat=no
|
||||||
|
continue
|
||||||
|
fi
|
||||||
|
case "$arg" in
|
||||||
|
-D*|-I*)
|
||||||
|
set fnord "$@" "$arg"; shift ;;
|
||||||
|
# Strip any option that makedepend may not understand. Remove
|
||||||
|
# the object too, otherwise makedepend will parse it as a source file.
|
||||||
|
-arch)
|
||||||
|
eat=yes ;;
|
||||||
|
-*|$object)
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
set fnord "$@" "$arg"; shift ;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
obj_suffix=`echo "$object" | sed 's/^.*\././'`
|
||||||
|
touch "$tmpdepfile"
|
||||||
|
${MAKEDEPEND-makedepend} -o"$obj_suffix" -f"$tmpdepfile" "$@"
|
||||||
|
rm -f "$depfile"
|
||||||
|
# makedepend may prepend the VPATH from the source file name to the object.
|
||||||
|
# No need to regex-escape $object, excess matching of '.' is harmless.
|
||||||
|
sed "s|^.*\($object *:\)|\1|" "$tmpdepfile" > "$depfile"
|
||||||
|
# Some versions of the HPUX 10.20 sed can't process the last invocation
|
||||||
|
# correctly. Breaking it into two sed invocations is a workaround.
|
||||||
|
sed '1,2d' "$tmpdepfile" \
|
||||||
|
| tr ' ' "$nl" \
|
||||||
|
| sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' \
|
||||||
|
| sed -e 's/$/ :/' >> "$depfile"
|
||||||
|
rm -f "$tmpdepfile" "$tmpdepfile".bak
|
||||||
|
;;
|
||||||
|
|
||||||
|
cpp)
|
||||||
|
# Important note: in order to support this mode, a compiler *must*
|
||||||
|
# always write the preprocessed file to stdout.
|
||||||
|
"$@" || exit $?
|
||||||
|
|
||||||
|
# Remove the call to Libtool.
|
||||||
|
if test "$libtool" = yes; then
|
||||||
|
while test "X$1" != 'X--mode=compile'; do
|
||||||
|
shift
|
||||||
|
done
|
||||||
|
shift
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Remove '-o $object'.
|
||||||
|
IFS=" "
|
||||||
|
for arg
|
||||||
|
do
|
||||||
|
case $arg in
|
||||||
|
-o)
|
||||||
|
shift
|
||||||
|
;;
|
||||||
|
$object)
|
||||||
|
shift
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
set fnord "$@" "$arg"
|
||||||
|
shift # fnord
|
||||||
|
shift # $arg
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
|
||||||
|
"$@" -E \
|
||||||
|
| sed -n -e '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \
|
||||||
|
-e '/^#line [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \
|
||||||
|
| sed '$ s: \\$::' > "$tmpdepfile"
|
||||||
|
rm -f "$depfile"
|
||||||
|
echo "$object : \\" > "$depfile"
|
||||||
|
cat < "$tmpdepfile" >> "$depfile"
|
||||||
|
sed < "$tmpdepfile" '/^$/d;s/^ //;s/ \\$//;s/$/ :/' >> "$depfile"
|
||||||
|
rm -f "$tmpdepfile"
|
||||||
|
;;
|
||||||
|
|
||||||
|
msvisualcpp)
|
||||||
|
# Important note: in order to support this mode, a compiler *must*
|
||||||
|
# always write the preprocessed file to stdout.
|
||||||
|
"$@" || exit $?
|
||||||
|
|
||||||
|
# Remove the call to Libtool.
|
||||||
|
if test "$libtool" = yes; then
|
||||||
|
while test "X$1" != 'X--mode=compile'; do
|
||||||
|
shift
|
||||||
|
done
|
||||||
|
shift
|
||||||
|
fi
|
||||||
|
|
||||||
|
IFS=" "
|
||||||
|
for arg
|
||||||
|
do
|
||||||
|
case "$arg" in
|
||||||
|
-o)
|
||||||
|
shift
|
||||||
|
;;
|
||||||
|
$object)
|
||||||
|
shift
|
||||||
|
;;
|
||||||
|
"-Gm"|"/Gm"|"-Gi"|"/Gi"|"-ZI"|"/ZI")
|
||||||
|
set fnord "$@"
|
||||||
|
shift
|
||||||
|
shift
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
set fnord "$@" "$arg"
|
||||||
|
shift
|
||||||
|
shift
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
"$@" -E 2>/dev/null |
|
||||||
|
sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::\1:p' | $cygpath_u | sort -u > "$tmpdepfile"
|
||||||
|
rm -f "$depfile"
|
||||||
|
echo "$object : \\" > "$depfile"
|
||||||
|
sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s::'"$tab"'\1 \\:p' >> "$depfile"
|
||||||
|
echo "$tab" >> "$depfile"
|
||||||
|
sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s::\1\::p' >> "$depfile"
|
||||||
|
rm -f "$tmpdepfile"
|
||||||
|
;;
|
||||||
|
|
||||||
|
msvcmsys)
|
||||||
|
# This case exists only to let depend.m4 do its work. It works by
|
||||||
|
# looking at the text of this script. This case will never be run,
|
||||||
|
# since it is checked for above.
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
|
||||||
|
none)
|
||||||
|
exec "$@"
|
||||||
|
;;
|
||||||
|
|
||||||
|
*)
|
||||||
|
echo "Unknown depmode $depmode" 1>&2
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
exit 0
|
||||||
|
|
||||||
|
# Local Variables:
|
||||||
|
# mode: shell-script
|
||||||
|
# sh-indentation: 2
|
||||||
|
# eval: (add-hook 'write-file-hooks 'time-stamp)
|
||||||
|
# time-stamp-start: "scriptversion="
|
||||||
|
# time-stamp-format: "%:y-%02m-%02d.%02H"
|
||||||
|
# time-stamp-time-zone: "UTC"
|
||||||
|
# time-stamp-end: "; # UTC"
|
||||||
|
# End:
|
527
lang/python/build-aux/install-sh
Executable file
527
lang/python/build-aux/install-sh
Executable file
@ -0,0 +1,527 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
# install - install a program, script, or datafile
|
||||||
|
|
||||||
|
scriptversion=2011-11-20.07; # UTC
|
||||||
|
|
||||||
|
# This originates from X11R5 (mit/util/scripts/install.sh), which was
|
||||||
|
# later released in X11R6 (xc/config/util/install.sh) with the
|
||||||
|
# following copyright and license.
|
||||||
|
#
|
||||||
|
# Copyright (C) 1994 X Consortium
|
||||||
|
#
|
||||||
|
# Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
# of this software and associated documentation files (the "Software"), to
|
||||||
|
# deal in the Software without restriction, including without limitation the
|
||||||
|
# rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
|
||||||
|
# sell copies of the Software, and to permit persons to whom the Software is
|
||||||
|
# furnished to do so, subject to the following conditions:
|
||||||
|
#
|
||||||
|
# The above copyright notice and this permission notice shall be included in
|
||||||
|
# all copies or substantial portions of the Software.
|
||||||
|
#
|
||||||
|
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
# X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
|
||||||
|
# AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNEC-
|
||||||
|
# TION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||||
|
#
|
||||||
|
# Except as contained in this notice, the name of the X Consortium shall not
|
||||||
|
# be used in advertising or otherwise to promote the sale, use or other deal-
|
||||||
|
# ings in this Software without prior written authorization from the X Consor-
|
||||||
|
# tium.
|
||||||
|
#
|
||||||
|
#
|
||||||
|
# FSF changes to this file are in the public domain.
|
||||||
|
#
|
||||||
|
# Calling this script install-sh is preferred over install.sh, to prevent
|
||||||
|
# 'make' implicit rules from creating a file called install from it
|
||||||
|
# when there is no Makefile.
|
||||||
|
#
|
||||||
|
# This script is compatible with the BSD install script, but was written
|
||||||
|
# from scratch.
|
||||||
|
|
||||||
|
nl='
|
||||||
|
'
|
||||||
|
IFS=" "" $nl"
|
||||||
|
|
||||||
|
# set DOITPROG to echo to test this script
|
||||||
|
|
||||||
|
# Don't use :- since 4.3BSD and earlier shells don't like it.
|
||||||
|
doit=${DOITPROG-}
|
||||||
|
if test -z "$doit"; then
|
||||||
|
doit_exec=exec
|
||||||
|
else
|
||||||
|
doit_exec=$doit
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Put in absolute file names if you don't have them in your path;
|
||||||
|
# or use environment vars.
|
||||||
|
|
||||||
|
chgrpprog=${CHGRPPROG-chgrp}
|
||||||
|
chmodprog=${CHMODPROG-chmod}
|
||||||
|
chownprog=${CHOWNPROG-chown}
|
||||||
|
cmpprog=${CMPPROG-cmp}
|
||||||
|
cpprog=${CPPROG-cp}
|
||||||
|
mkdirprog=${MKDIRPROG-mkdir}
|
||||||
|
mvprog=${MVPROG-mv}
|
||||||
|
rmprog=${RMPROG-rm}
|
||||||
|
stripprog=${STRIPPROG-strip}
|
||||||
|
|
||||||
|
posix_glob='?'
|
||||||
|
initialize_posix_glob='
|
||||||
|
test "$posix_glob" != "?" || {
|
||||||
|
if (set -f) 2>/dev/null; then
|
||||||
|
posix_glob=
|
||||||
|
else
|
||||||
|
posix_glob=:
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
'
|
||||||
|
|
||||||
|
posix_mkdir=
|
||||||
|
|
||||||
|
# Desired mode of installed file.
|
||||||
|
mode=0755
|
||||||
|
|
||||||
|
chgrpcmd=
|
||||||
|
chmodcmd=$chmodprog
|
||||||
|
chowncmd=
|
||||||
|
mvcmd=$mvprog
|
||||||
|
rmcmd="$rmprog -f"
|
||||||
|
stripcmd=
|
||||||
|
|
||||||
|
src=
|
||||||
|
dst=
|
||||||
|
dir_arg=
|
||||||
|
dst_arg=
|
||||||
|
|
||||||
|
copy_on_change=false
|
||||||
|
no_target_directory=
|
||||||
|
|
||||||
|
usage="\
|
||||||
|
Usage: $0 [OPTION]... [-T] SRCFILE DSTFILE
|
||||||
|
or: $0 [OPTION]... SRCFILES... DIRECTORY
|
||||||
|
or: $0 [OPTION]... -t DIRECTORY SRCFILES...
|
||||||
|
or: $0 [OPTION]... -d DIRECTORIES...
|
||||||
|
|
||||||
|
In the 1st form, copy SRCFILE to DSTFILE.
|
||||||
|
In the 2nd and 3rd, copy all SRCFILES to DIRECTORY.
|
||||||
|
In the 4th, create DIRECTORIES.
|
||||||
|
|
||||||
|
Options:
|
||||||
|
--help display this help and exit.
|
||||||
|
--version display version info and exit.
|
||||||
|
|
||||||
|
-c (ignored)
|
||||||
|
-C install only if different (preserve the last data modification time)
|
||||||
|
-d create directories instead of installing files.
|
||||||
|
-g GROUP $chgrpprog installed files to GROUP.
|
||||||
|
-m MODE $chmodprog installed files to MODE.
|
||||||
|
-o USER $chownprog installed files to USER.
|
||||||
|
-s $stripprog installed files.
|
||||||
|
-t DIRECTORY install into DIRECTORY.
|
||||||
|
-T report an error if DSTFILE is a directory.
|
||||||
|
|
||||||
|
Environment variables override the default commands:
|
||||||
|
CHGRPPROG CHMODPROG CHOWNPROG CMPPROG CPPROG MKDIRPROG MVPROG
|
||||||
|
RMPROG STRIPPROG
|
||||||
|
"
|
||||||
|
|
||||||
|
while test $# -ne 0; do
|
||||||
|
case $1 in
|
||||||
|
-c) ;;
|
||||||
|
|
||||||
|
-C) copy_on_change=true;;
|
||||||
|
|
||||||
|
-d) dir_arg=true;;
|
||||||
|
|
||||||
|
-g) chgrpcmd="$chgrpprog $2"
|
||||||
|
shift;;
|
||||||
|
|
||||||
|
--help) echo "$usage"; exit $?;;
|
||||||
|
|
||||||
|
-m) mode=$2
|
||||||
|
case $mode in
|
||||||
|
*' '* | *' '* | *'
|
||||||
|
'* | *'*'* | *'?'* | *'['*)
|
||||||
|
echo "$0: invalid mode: $mode" >&2
|
||||||
|
exit 1;;
|
||||||
|
esac
|
||||||
|
shift;;
|
||||||
|
|
||||||
|
-o) chowncmd="$chownprog $2"
|
||||||
|
shift;;
|
||||||
|
|
||||||
|
-s) stripcmd=$stripprog;;
|
||||||
|
|
||||||
|
-t) dst_arg=$2
|
||||||
|
# Protect names problematic for 'test' and other utilities.
|
||||||
|
case $dst_arg in
|
||||||
|
-* | [=\(\)!]) dst_arg=./$dst_arg;;
|
||||||
|
esac
|
||||||
|
shift;;
|
||||||
|
|
||||||
|
-T) no_target_directory=true;;
|
||||||
|
|
||||||
|
--version) echo "$0 $scriptversion"; exit $?;;
|
||||||
|
|
||||||
|
--) shift
|
||||||
|
break;;
|
||||||
|
|
||||||
|
-*) echo "$0: invalid option: $1" >&2
|
||||||
|
exit 1;;
|
||||||
|
|
||||||
|
*) break;;
|
||||||
|
esac
|
||||||
|
shift
|
||||||
|
done
|
||||||
|
|
||||||
|
if test $# -ne 0 && test -z "$dir_arg$dst_arg"; then
|
||||||
|
# When -d is used, all remaining arguments are directories to create.
|
||||||
|
# When -t is used, the destination is already specified.
|
||||||
|
# Otherwise, the last argument is the destination. Remove it from $@.
|
||||||
|
for arg
|
||||||
|
do
|
||||||
|
if test -n "$dst_arg"; then
|
||||||
|
# $@ is not empty: it contains at least $arg.
|
||||||
|
set fnord "$@" "$dst_arg"
|
||||||
|
shift # fnord
|
||||||
|
fi
|
||||||
|
shift # arg
|
||||||
|
dst_arg=$arg
|
||||||
|
# Protect names problematic for 'test' and other utilities.
|
||||||
|
case $dst_arg in
|
||||||
|
-* | [=\(\)!]) dst_arg=./$dst_arg;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
fi
|
||||||
|
|
||||||
|
if test $# -eq 0; then
|
||||||
|
if test -z "$dir_arg"; then
|
||||||
|
echo "$0: no input file specified." >&2
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
# It's OK to call 'install-sh -d' without argument.
|
||||||
|
# This can happen when creating conditional directories.
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
if test -z "$dir_arg"; then
|
||||||
|
do_exit='(exit $ret); exit $ret'
|
||||||
|
trap "ret=129; $do_exit" 1
|
||||||
|
trap "ret=130; $do_exit" 2
|
||||||
|
trap "ret=141; $do_exit" 13
|
||||||
|
trap "ret=143; $do_exit" 15
|
||||||
|
|
||||||
|
# Set umask so as not to create temps with too-generous modes.
|
||||||
|
# However, 'strip' requires both read and write access to temps.
|
||||||
|
case $mode in
|
||||||
|
# Optimize common cases.
|
||||||
|
*644) cp_umask=133;;
|
||||||
|
*755) cp_umask=22;;
|
||||||
|
|
||||||
|
*[0-7])
|
||||||
|
if test -z "$stripcmd"; then
|
||||||
|
u_plus_rw=
|
||||||
|
else
|
||||||
|
u_plus_rw='% 200'
|
||||||
|
fi
|
||||||
|
cp_umask=`expr '(' 777 - $mode % 1000 ')' $u_plus_rw`;;
|
||||||
|
*)
|
||||||
|
if test -z "$stripcmd"; then
|
||||||
|
u_plus_rw=
|
||||||
|
else
|
||||||
|
u_plus_rw=,u+rw
|
||||||
|
fi
|
||||||
|
cp_umask=$mode$u_plus_rw;;
|
||||||
|
esac
|
||||||
|
fi
|
||||||
|
|
||||||
|
for src
|
||||||
|
do
|
||||||
|
# Protect names problematic for 'test' and other utilities.
|
||||||
|
case $src in
|
||||||
|
-* | [=\(\)!]) src=./$src;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
if test -n "$dir_arg"; then
|
||||||
|
dst=$src
|
||||||
|
dstdir=$dst
|
||||||
|
test -d "$dstdir"
|
||||||
|
dstdir_status=$?
|
||||||
|
else
|
||||||
|
|
||||||
|
# Waiting for this to be detected by the "$cpprog $src $dsttmp" command
|
||||||
|
# might cause directories to be created, which would be especially bad
|
||||||
|
# if $src (and thus $dsttmp) contains '*'.
|
||||||
|
if test ! -f "$src" && test ! -d "$src"; then
|
||||||
|
echo "$0: $src does not exist." >&2
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
if test -z "$dst_arg"; then
|
||||||
|
echo "$0: no destination specified." >&2
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
dst=$dst_arg
|
||||||
|
|
||||||
|
# If destination is a directory, append the input filename; won't work
|
||||||
|
# if double slashes aren't ignored.
|
||||||
|
if test -d "$dst"; then
|
||||||
|
if test -n "$no_target_directory"; then
|
||||||
|
echo "$0: $dst_arg: Is a directory" >&2
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
dstdir=$dst
|
||||||
|
dst=$dstdir/`basename "$src"`
|
||||||
|
dstdir_status=0
|
||||||
|
else
|
||||||
|
# Prefer dirname, but fall back on a substitute if dirname fails.
|
||||||
|
dstdir=`
|
||||||
|
(dirname "$dst") 2>/dev/null ||
|
||||||
|
expr X"$dst" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
|
||||||
|
X"$dst" : 'X\(//\)[^/]' \| \
|
||||||
|
X"$dst" : 'X\(//\)$' \| \
|
||||||
|
X"$dst" : 'X\(/\)' \| . 2>/dev/null ||
|
||||||
|
echo X"$dst" |
|
||||||
|
sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
|
||||||
|
s//\1/
|
||||||
|
q
|
||||||
|
}
|
||||||
|
/^X\(\/\/\)[^/].*/{
|
||||||
|
s//\1/
|
||||||
|
q
|
||||||
|
}
|
||||||
|
/^X\(\/\/\)$/{
|
||||||
|
s//\1/
|
||||||
|
q
|
||||||
|
}
|
||||||
|
/^X\(\/\).*/{
|
||||||
|
s//\1/
|
||||||
|
q
|
||||||
|
}
|
||||||
|
s/.*/./; q'
|
||||||
|
`
|
||||||
|
|
||||||
|
test -d "$dstdir"
|
||||||
|
dstdir_status=$?
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
obsolete_mkdir_used=false
|
||||||
|
|
||||||
|
if test $dstdir_status != 0; then
|
||||||
|
case $posix_mkdir in
|
||||||
|
'')
|
||||||
|
# Create intermediate dirs using mode 755 as modified by the umask.
|
||||||
|
# This is like FreeBSD 'install' as of 1997-10-28.
|
||||||
|
umask=`umask`
|
||||||
|
case $stripcmd.$umask in
|
||||||
|
# Optimize common cases.
|
||||||
|
*[2367][2367]) mkdir_umask=$umask;;
|
||||||
|
.*0[02][02] | .[02][02] | .[02]) mkdir_umask=22;;
|
||||||
|
|
||||||
|
*[0-7])
|
||||||
|
mkdir_umask=`expr $umask + 22 \
|
||||||
|
- $umask % 100 % 40 + $umask % 20 \
|
||||||
|
- $umask % 10 % 4 + $umask % 2
|
||||||
|
`;;
|
||||||
|
*) mkdir_umask=$umask,go-w;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
# With -d, create the new directory with the user-specified mode.
|
||||||
|
# Otherwise, rely on $mkdir_umask.
|
||||||
|
if test -n "$dir_arg"; then
|
||||||
|
mkdir_mode=-m$mode
|
||||||
|
else
|
||||||
|
mkdir_mode=
|
||||||
|
fi
|
||||||
|
|
||||||
|
posix_mkdir=false
|
||||||
|
case $umask in
|
||||||
|
*[123567][0-7][0-7])
|
||||||
|
# POSIX mkdir -p sets u+wx bits regardless of umask, which
|
||||||
|
# is incompatible with FreeBSD 'install' when (umask & 300) != 0.
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$
|
||||||
|
trap 'ret=$?; rmdir "$tmpdir/d" "$tmpdir" 2>/dev/null; exit $ret' 0
|
||||||
|
|
||||||
|
if (umask $mkdir_umask &&
|
||||||
|
exec $mkdirprog $mkdir_mode -p -- "$tmpdir/d") >/dev/null 2>&1
|
||||||
|
then
|
||||||
|
if test -z "$dir_arg" || {
|
||||||
|
# Check for POSIX incompatibilities with -m.
|
||||||
|
# HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or
|
||||||
|
# other-writable bit of parent directory when it shouldn't.
|
||||||
|
# FreeBSD 6.1 mkdir -m -p sets mode of existing directory.
|
||||||
|
ls_ld_tmpdir=`ls -ld "$tmpdir"`
|
||||||
|
case $ls_ld_tmpdir in
|
||||||
|
d????-?r-*) different_mode=700;;
|
||||||
|
d????-?--*) different_mode=755;;
|
||||||
|
*) false;;
|
||||||
|
esac &&
|
||||||
|
$mkdirprog -m$different_mode -p -- "$tmpdir" && {
|
||||||
|
ls_ld_tmpdir_1=`ls -ld "$tmpdir"`
|
||||||
|
test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
then posix_mkdir=:
|
||||||
|
fi
|
||||||
|
rmdir "$tmpdir/d" "$tmpdir"
|
||||||
|
else
|
||||||
|
# Remove any dirs left behind by ancient mkdir implementations.
|
||||||
|
rmdir ./$mkdir_mode ./-p ./-- 2>/dev/null
|
||||||
|
fi
|
||||||
|
trap '' 0;;
|
||||||
|
esac;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
if
|
||||||
|
$posix_mkdir && (
|
||||||
|
umask $mkdir_umask &&
|
||||||
|
$doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir"
|
||||||
|
)
|
||||||
|
then :
|
||||||
|
else
|
||||||
|
|
||||||
|
# The umask is ridiculous, or mkdir does not conform to POSIX,
|
||||||
|
# or it failed possibly due to a race condition. Create the
|
||||||
|
# directory the slow way, step by step, checking for races as we go.
|
||||||
|
|
||||||
|
case $dstdir in
|
||||||
|
/*) prefix='/';;
|
||||||
|
[-=\(\)!]*) prefix='./';;
|
||||||
|
*) prefix='';;
|
||||||
|
esac
|
||||||
|
|
||||||
|
eval "$initialize_posix_glob"
|
||||||
|
|
||||||
|
oIFS=$IFS
|
||||||
|
IFS=/
|
||||||
|
$posix_glob set -f
|
||||||
|
set fnord $dstdir
|
||||||
|
shift
|
||||||
|
$posix_glob set +f
|
||||||
|
IFS=$oIFS
|
||||||
|
|
||||||
|
prefixes=
|
||||||
|
|
||||||
|
for d
|
||||||
|
do
|
||||||
|
test X"$d" = X && continue
|
||||||
|
|
||||||
|
prefix=$prefix$d
|
||||||
|
if test -d "$prefix"; then
|
||||||
|
prefixes=
|
||||||
|
else
|
||||||
|
if $posix_mkdir; then
|
||||||
|
(umask=$mkdir_umask &&
|
||||||
|
$doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir") && break
|
||||||
|
# Don't fail if two instances are running concurrently.
|
||||||
|
test -d "$prefix" || exit 1
|
||||||
|
else
|
||||||
|
case $prefix in
|
||||||
|
*\'*) qprefix=`echo "$prefix" | sed "s/'/'\\\\\\\\''/g"`;;
|
||||||
|
*) qprefix=$prefix;;
|
||||||
|
esac
|
||||||
|
prefixes="$prefixes '$qprefix'"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
prefix=$prefix/
|
||||||
|
done
|
||||||
|
|
||||||
|
if test -n "$prefixes"; then
|
||||||
|
# Don't fail if two instances are running concurrently.
|
||||||
|
(umask $mkdir_umask &&
|
||||||
|
eval "\$doit_exec \$mkdirprog $prefixes") ||
|
||||||
|
test -d "$dstdir" || exit 1
|
||||||
|
obsolete_mkdir_used=true
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
if test -n "$dir_arg"; then
|
||||||
|
{ test -z "$chowncmd" || $doit $chowncmd "$dst"; } &&
|
||||||
|
{ test -z "$chgrpcmd" || $doit $chgrpcmd "$dst"; } &&
|
||||||
|
{ test "$obsolete_mkdir_used$chowncmd$chgrpcmd" = false ||
|
||||||
|
test -z "$chmodcmd" || $doit $chmodcmd $mode "$dst"; } || exit 1
|
||||||
|
else
|
||||||
|
|
||||||
|
# Make a couple of temp file names in the proper directory.
|
||||||
|
dsttmp=$dstdir/_inst.$$_
|
||||||
|
rmtmp=$dstdir/_rm.$$_
|
||||||
|
|
||||||
|
# Trap to clean up those temp files at exit.
|
||||||
|
trap 'ret=$?; rm -f "$dsttmp" "$rmtmp" && exit $ret' 0
|
||||||
|
|
||||||
|
# Copy the file name to the temp name.
|
||||||
|
(umask $cp_umask && $doit_exec $cpprog "$src" "$dsttmp") &&
|
||||||
|
|
||||||
|
# and set any options; do chmod last to preserve setuid bits.
|
||||||
|
#
|
||||||
|
# If any of these fail, we abort the whole thing. If we want to
|
||||||
|
# ignore errors from any of these, just make sure not to ignore
|
||||||
|
# errors from the above "$doit $cpprog $src $dsttmp" command.
|
||||||
|
#
|
||||||
|
{ test -z "$chowncmd" || $doit $chowncmd "$dsttmp"; } &&
|
||||||
|
{ test -z "$chgrpcmd" || $doit $chgrpcmd "$dsttmp"; } &&
|
||||||
|
{ test -z "$stripcmd" || $doit $stripcmd "$dsttmp"; } &&
|
||||||
|
{ test -z "$chmodcmd" || $doit $chmodcmd $mode "$dsttmp"; } &&
|
||||||
|
|
||||||
|
# If -C, don't bother to copy if it wouldn't change the file.
|
||||||
|
if $copy_on_change &&
|
||||||
|
old=`LC_ALL=C ls -dlL "$dst" 2>/dev/null` &&
|
||||||
|
new=`LC_ALL=C ls -dlL "$dsttmp" 2>/dev/null` &&
|
||||||
|
|
||||||
|
eval "$initialize_posix_glob" &&
|
||||||
|
$posix_glob set -f &&
|
||||||
|
set X $old && old=:$2:$4:$5:$6 &&
|
||||||
|
set X $new && new=:$2:$4:$5:$6 &&
|
||||||
|
$posix_glob set +f &&
|
||||||
|
|
||||||
|
test "$old" = "$new" &&
|
||||||
|
$cmpprog "$dst" "$dsttmp" >/dev/null 2>&1
|
||||||
|
then
|
||||||
|
rm -f "$dsttmp"
|
||||||
|
else
|
||||||
|
# Rename the file to the real destination.
|
||||||
|
$doit $mvcmd -f "$dsttmp" "$dst" 2>/dev/null ||
|
||||||
|
|
||||||
|
# The rename failed, perhaps because mv can't rename something else
|
||||||
|
# to itself, or perhaps because mv is so ancient that it does not
|
||||||
|
# support -f.
|
||||||
|
{
|
||||||
|
# Now remove or move aside any old file at destination location.
|
||||||
|
# We try this two ways since rm can't unlink itself on some
|
||||||
|
# systems and the destination file might be busy for other
|
||||||
|
# reasons. In this case, the final cleanup might fail but the new
|
||||||
|
# file should still install successfully.
|
||||||
|
{
|
||||||
|
test ! -f "$dst" ||
|
||||||
|
$doit $rmcmd -f "$dst" 2>/dev/null ||
|
||||||
|
{ $doit $mvcmd -f "$dst" "$rmtmp" 2>/dev/null &&
|
||||||
|
{ $doit $rmcmd -f "$rmtmp" 2>/dev/null; :; }
|
||||||
|
} ||
|
||||||
|
{ echo "$0: cannot unlink or rename $dst" >&2
|
||||||
|
(exit 1); exit 1
|
||||||
|
}
|
||||||
|
} &&
|
||||||
|
|
||||||
|
# Now rename the file to the real destination.
|
||||||
|
$doit $mvcmd "$dsttmp" "$dst"
|
||||||
|
}
|
||||||
|
fi || exit 1
|
||||||
|
|
||||||
|
trap '' 0
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
# Local variables:
|
||||||
|
# eval: (add-hook 'write-file-hooks 'time-stamp)
|
||||||
|
# time-stamp-start: "scriptversion="
|
||||||
|
# time-stamp-format: "%:y-%02m-%02d.%02H"
|
||||||
|
# time-stamp-time-zone: "UTC"
|
||||||
|
# time-stamp-end: "; # UTC"
|
||||||
|
# End:
|
68
lang/python/build-aux/libtool-patch.sed
Normal file
68
lang/python/build-aux/libtool-patch.sed
Normal file
@ -0,0 +1,68 @@
|
|||||||
|
#
|
||||||
|
# This is a sed script to patch the generated libtool,
|
||||||
|
# which works well against both of libtool 2.4.2 and 2.4.7.
|
||||||
|
#
|
||||||
|
# You may use this work under the terms of a Creative Commons CC0 1.0
|
||||||
|
# License/Waiver.
|
||||||
|
#
|
||||||
|
# CC0 Public Domain Dedication
|
||||||
|
# https://creativecommons.org/publicdomain/zero/1.0/
|
||||||
|
|
||||||
|
#
|
||||||
|
# This sed script applys two hunks of the patch:
|
||||||
|
#
|
||||||
|
# Part1: after the comment "# bleh windows"
|
||||||
|
# Part2: after the comment "#extension on DOS 8.3..."
|
||||||
|
#
|
||||||
|
# Only when those two parts are patched correctly, it exits with 0 or
|
||||||
|
# else, it exits with 1
|
||||||
|
#
|
||||||
|
|
||||||
|
# Find the part 1, by the comment
|
||||||
|
/^[ \t]*# bleh windows$/b part1_start
|
||||||
|
# Not found the part1, raise an error
|
||||||
|
$ q1
|
||||||
|
b
|
||||||
|
|
||||||
|
:part1_start
|
||||||
|
n
|
||||||
|
# The first line in the part 1 must be the begining of the case statement.
|
||||||
|
/^[ \t]*case \$host in$/! q1
|
||||||
|
n
|
||||||
|
# Insert the entry for x86_64-*mingw32*, for modified versuffix.
|
||||||
|
i\
|
||||||
|
x86_64-*mingw32*)
|
||||||
|
i\
|
||||||
|
func_arith $current - $age
|
||||||
|
i\
|
||||||
|
major=$func_arith_result
|
||||||
|
i\
|
||||||
|
versuffix="6-$major"
|
||||||
|
i\
|
||||||
|
;;
|
||||||
|
:part1_0
|
||||||
|
# Find the end of the case statement
|
||||||
|
/^[ \t]*esac$/b find_part2
|
||||||
|
# Not found the end of the case statement, raise an error
|
||||||
|
$ q1
|
||||||
|
n
|
||||||
|
b part1_0
|
||||||
|
|
||||||
|
:find_part2
|
||||||
|
/^[ \t]*# extension on DOS 8.3 file.*systems.$/b part2_process
|
||||||
|
# Not found the part2, raise an error
|
||||||
|
$ q1
|
||||||
|
n
|
||||||
|
b find_part2
|
||||||
|
|
||||||
|
:part2_process
|
||||||
|
$ q1
|
||||||
|
s/^[ \t]*\(versuffix=\)\(.*\)\(-$major\)\(.*\)$/\t case \$host in\n\t x86_64-*mingw32*)\n\t \1\26\3\4\n\t ;;\n\t *)\n\t \1\2\3\4\n\t ;;\n\t esac/
|
||||||
|
t part2_done
|
||||||
|
n
|
||||||
|
b part2_process
|
||||||
|
|
||||||
|
:part2_done
|
||||||
|
$ q0
|
||||||
|
n
|
||||||
|
b part2_done
|
9664
lang/python/build-aux/ltmain.sh
Normal file
9664
lang/python/build-aux/ltmain.sh
Normal file
File diff suppressed because it is too large
Load Diff
215
lang/python/build-aux/missing
Executable file
215
lang/python/build-aux/missing
Executable file
@ -0,0 +1,215 @@
|
|||||||
|
#! /bin/sh
|
||||||
|
# Common wrapper for a few potentially missing GNU programs.
|
||||||
|
|
||||||
|
scriptversion=2013-10-28.13; # UTC
|
||||||
|
|
||||||
|
# Copyright (C) 1996-2013 Free Software Foundation, Inc.
|
||||||
|
# Originally written by Fran,cois Pinard <pinard@iro.umontreal.ca>, 1996.
|
||||||
|
|
||||||
|
# This program is free software; you can redistribute it and/or modify
|
||||||
|
# it under the terms of the GNU General Public License as published by
|
||||||
|
# the Free Software Foundation; either version 2, or (at your option)
|
||||||
|
# any later version.
|
||||||
|
|
||||||
|
# This program is distributed in the hope that it will be useful,
|
||||||
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
# GNU General Public License for more details.
|
||||||
|
|
||||||
|
# You should have received a copy of the GNU General Public License
|
||||||
|
# along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
|
# As a special exception to the GNU General Public License, if you
|
||||||
|
# distribute this file as part of a program that contains a
|
||||||
|
# configuration script generated by Autoconf, you may include it under
|
||||||
|
# the same distribution terms that you use for the rest of that program.
|
||||||
|
|
||||||
|
if test $# -eq 0; then
|
||||||
|
echo 1>&2 "Try '$0 --help' for more information"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
case $1 in
|
||||||
|
|
||||||
|
--is-lightweight)
|
||||||
|
# Used by our autoconf macros to check whether the available missing
|
||||||
|
# script is modern enough.
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
|
||||||
|
--run)
|
||||||
|
# Back-compat with the calling convention used by older automake.
|
||||||
|
shift
|
||||||
|
;;
|
||||||
|
|
||||||
|
-h|--h|--he|--hel|--help)
|
||||||
|
echo "\
|
||||||
|
$0 [OPTION]... PROGRAM [ARGUMENT]...
|
||||||
|
|
||||||
|
Run 'PROGRAM [ARGUMENT]...', returning a proper advice when this fails due
|
||||||
|
to PROGRAM being missing or too old.
|
||||||
|
|
||||||
|
Options:
|
||||||
|
-h, --help display this help and exit
|
||||||
|
-v, --version output version information and exit
|
||||||
|
|
||||||
|
Supported PROGRAM values:
|
||||||
|
aclocal autoconf autoheader autom4te automake makeinfo
|
||||||
|
bison yacc flex lex help2man
|
||||||
|
|
||||||
|
Version suffixes to PROGRAM as well as the prefixes 'gnu-', 'gnu', and
|
||||||
|
'g' are ignored when checking the name.
|
||||||
|
|
||||||
|
Send bug reports to <bug-automake@gnu.org>."
|
||||||
|
exit $?
|
||||||
|
;;
|
||||||
|
|
||||||
|
-v|--v|--ve|--ver|--vers|--versi|--versio|--version)
|
||||||
|
echo "missing $scriptversion (GNU Automake)"
|
||||||
|
exit $?
|
||||||
|
;;
|
||||||
|
|
||||||
|
-*)
|
||||||
|
echo 1>&2 "$0: unknown '$1' option"
|
||||||
|
echo 1>&2 "Try '$0 --help' for more information"
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
|
||||||
|
esac
|
||||||
|
|
||||||
|
# Run the given program, remember its exit status.
|
||||||
|
"$@"; st=$?
|
||||||
|
|
||||||
|
# If it succeeded, we are done.
|
||||||
|
test $st -eq 0 && exit 0
|
||||||
|
|
||||||
|
# Also exit now if we it failed (or wasn't found), and '--version' was
|
||||||
|
# passed; such an option is passed most likely to detect whether the
|
||||||
|
# program is present and works.
|
||||||
|
case $2 in --version|--help) exit $st;; esac
|
||||||
|
|
||||||
|
# Exit code 63 means version mismatch. This often happens when the user
|
||||||
|
# tries to use an ancient version of a tool on a file that requires a
|
||||||
|
# minimum version.
|
||||||
|
if test $st -eq 63; then
|
||||||
|
msg="probably too old"
|
||||||
|
elif test $st -eq 127; then
|
||||||
|
# Program was missing.
|
||||||
|
msg="missing on your system"
|
||||||
|
else
|
||||||
|
# Program was found and executed, but failed. Give up.
|
||||||
|
exit $st
|
||||||
|
fi
|
||||||
|
|
||||||
|
perl_URL=http://www.perl.org/
|
||||||
|
flex_URL=http://flex.sourceforge.net/
|
||||||
|
gnu_software_URL=https://www.gnu.org/software
|
||||||
|
|
||||||
|
program_details ()
|
||||||
|
{
|
||||||
|
case $1 in
|
||||||
|
aclocal|automake)
|
||||||
|
echo "The '$1' program is part of the GNU Automake package:"
|
||||||
|
echo "<$gnu_software_URL/automake>"
|
||||||
|
echo "It also requires GNU Autoconf, GNU m4 and Perl in order to run:"
|
||||||
|
echo "<$gnu_software_URL/autoconf>"
|
||||||
|
echo "<$gnu_software_URL/m4/>"
|
||||||
|
echo "<$perl_URL>"
|
||||||
|
;;
|
||||||
|
autoconf|autom4te|autoheader)
|
||||||
|
echo "The '$1' program is part of the GNU Autoconf package:"
|
||||||
|
echo "<$gnu_software_URL/autoconf/>"
|
||||||
|
echo "It also requires GNU m4 and Perl in order to run:"
|
||||||
|
echo "<$gnu_software_URL/m4/>"
|
||||||
|
echo "<$perl_URL>"
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
}
|
||||||
|
|
||||||
|
give_advice ()
|
||||||
|
{
|
||||||
|
# Normalize program name to check for.
|
||||||
|
normalized_program=`echo "$1" | sed '
|
||||||
|
s/^gnu-//; t
|
||||||
|
s/^gnu//; t
|
||||||
|
s/^g//; t'`
|
||||||
|
|
||||||
|
printf '%s\n' "'$1' is $msg."
|
||||||
|
|
||||||
|
configure_deps="'configure.ac' or m4 files included by 'configure.ac'"
|
||||||
|
case $normalized_program in
|
||||||
|
autoconf*)
|
||||||
|
echo "You should only need it if you modified 'configure.ac',"
|
||||||
|
echo "or m4 files included by it."
|
||||||
|
program_details 'autoconf'
|
||||||
|
;;
|
||||||
|
autoheader*)
|
||||||
|
echo "You should only need it if you modified 'acconfig.h' or"
|
||||||
|
echo "$configure_deps."
|
||||||
|
program_details 'autoheader'
|
||||||
|
;;
|
||||||
|
automake*)
|
||||||
|
echo "You should only need it if you modified 'Makefile.am' or"
|
||||||
|
echo "$configure_deps."
|
||||||
|
program_details 'automake'
|
||||||
|
;;
|
||||||
|
aclocal*)
|
||||||
|
echo "You should only need it if you modified 'acinclude.m4' or"
|
||||||
|
echo "$configure_deps."
|
||||||
|
program_details 'aclocal'
|
||||||
|
;;
|
||||||
|
autom4te*)
|
||||||
|
echo "You might have modified some maintainer files that require"
|
||||||
|
echo "the 'autom4te' program to be rebuilt."
|
||||||
|
program_details 'autom4te'
|
||||||
|
;;
|
||||||
|
bison*|yacc*)
|
||||||
|
echo "You should only need it if you modified a '.y' file."
|
||||||
|
echo "You may want to install the GNU Bison package:"
|
||||||
|
echo "<$gnu_software_URL/bison/>"
|
||||||
|
;;
|
||||||
|
lex*|flex*)
|
||||||
|
echo "You should only need it if you modified a '.l' file."
|
||||||
|
echo "You may want to install the Fast Lexical Analyzer package:"
|
||||||
|
echo "<$flex_URL>"
|
||||||
|
;;
|
||||||
|
help2man*)
|
||||||
|
echo "You should only need it if you modified a dependency" \
|
||||||
|
"of a man page."
|
||||||
|
echo "You may want to install the GNU Help2man package:"
|
||||||
|
echo "<$gnu_software_URL/help2man/>"
|
||||||
|
;;
|
||||||
|
makeinfo*)
|
||||||
|
echo "You should only need it if you modified a '.texi' file, or"
|
||||||
|
echo "any other file indirectly affecting the aspect of the manual."
|
||||||
|
echo "You might want to install the Texinfo package:"
|
||||||
|
echo "<$gnu_software_URL/texinfo/>"
|
||||||
|
echo "The spurious makeinfo call might also be the consequence of"
|
||||||
|
echo "using a buggy 'make' (AIX, DU, IRIX), in which case you might"
|
||||||
|
echo "want to install GNU make:"
|
||||||
|
echo "<$gnu_software_URL/make/>"
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
echo "You might have modified some files without having the proper"
|
||||||
|
echo "tools for further handling them. Check the 'README' file, it"
|
||||||
|
echo "often tells you about the needed prerequisites for installing"
|
||||||
|
echo "this package. You may also peek at any GNU archive site, in"
|
||||||
|
echo "case some other package contains this missing '$1' program."
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
}
|
||||||
|
|
||||||
|
give_advice "$1" | sed -e '1s/^/WARNING: /' \
|
||||||
|
-e '2,$s/^/ /' >&2
|
||||||
|
|
||||||
|
# Propagate the correct exit status (expected to be 127 for a program
|
||||||
|
# not found, 63 for a program that failed due to version mismatch).
|
||||||
|
exit $st
|
||||||
|
|
||||||
|
# Local variables:
|
||||||
|
# eval: (add-hook 'write-file-hooks 'time-stamp)
|
||||||
|
# time-stamp-start: "scriptversion="
|
||||||
|
# time-stamp-format: "%:y-%02m-%02d.%02H"
|
||||||
|
# time-stamp-time-zone: "UTC"
|
||||||
|
# time-stamp-end: "; # UTC"
|
||||||
|
# End:
|
480
lang/python/configure.ac
Normal file
480
lang/python/configure.ac
Normal file
@ -0,0 +1,480 @@
|
|||||||
|
# configure.ac for Python bindings of GPGME
|
||||||
|
# Copyright (C) 2000 Werner Koch (dd9jn)
|
||||||
|
# Copyright (C) 2001-2021 g10 Code GmbH
|
||||||
|
#
|
||||||
|
# This file is part of GPGME.
|
||||||
|
#
|
||||||
|
# GPGME is free software; you can redistribute it and/or modify it
|
||||||
|
# under the terms of the GNU Lesser General Public License as
|
||||||
|
# published by the Free Software Foundation; either version 2.1 of the
|
||||||
|
# License, or (at your option) any later version.
|
||||||
|
#
|
||||||
|
# GPGME is distributed in the hope that it will be useful, but WITHOUT
|
||||||
|
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
|
||||||
|
# or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General
|
||||||
|
# Public License for more details.
|
||||||
|
#
|
||||||
|
# You should have received a copy of the GNU Lesser General Public
|
||||||
|
# License along with this program; if not, see <https://gnu.org/licenses/>.
|
||||||
|
# SPDX-License-Identifier: LGPL-2.1-or-later
|
||||||
|
|
||||||
|
# (Process this file with autoconf to produce a configure script.)
|
||||||
|
AC_PREREQ([2.69])
|
||||||
|
min_automake_version="1.14"
|
||||||
|
|
||||||
|
# To build a release you need to create a tag with the version number
|
||||||
|
# "gpg-py-n.m.k" and run "./autogen.sh --force". Please bump the
|
||||||
|
# version number immediately after the release and do another commit
|
||||||
|
# and push so that the git magic is able to work. If you start a new
|
||||||
|
# series by bumping the minor (m) remember to also create a tag named
|
||||||
|
# "gpg-py-n.m-base" as the start point for beta numbering. See below
|
||||||
|
# for the LT versions.
|
||||||
|
m4_define([mym4_package],[gpg-py])
|
||||||
|
m4_define([mym4_major], [1])
|
||||||
|
m4_define([mym4_minor], [24])
|
||||||
|
m4_define([mym4_micro], [0])
|
||||||
|
|
||||||
|
# Below is m4 magic to extract and compute the git revision number,
|
||||||
|
# the decimalized short revision number, a beta version string and a
|
||||||
|
# flag indicating a development version (mym4_isbeta). Note that the
|
||||||
|
# m4 processing is done by autoconf and not during the configure run.
|
||||||
|
m4_define([mym4_verslist], m4_split(m4_esyscmd([./autogen.sh --find-version] \
|
||||||
|
mym4_package mym4_major mym4_minor mym4_micro),[:]))
|
||||||
|
m4_define([mym4_isbeta], m4_argn(2, mym4_verslist))
|
||||||
|
m4_define([mym4_version], m4_argn(4, mym4_verslist))
|
||||||
|
m4_define([mym4_revision], m4_argn(7, mym4_verslist))
|
||||||
|
m4_define([mym4_revision_dec], m4_argn(8, mym4_verslist))
|
||||||
|
m4_esyscmd([echo ]mym4_version[>VERSION])
|
||||||
|
AC_INIT([mym4_package],[mym4_version],[https://bugs.gnupg.org])
|
||||||
|
|
||||||
|
################################################
|
||||||
|
|
||||||
|
NEED_GPG_ERROR_VERSION=1.47
|
||||||
|
NEED_GPGME_VERSION=1.7.0
|
||||||
|
|
||||||
|
VERSION_MAJOR=mym4_major
|
||||||
|
VERSION_MINOR=mym4_minor
|
||||||
|
VERSION_MICRO=mym4_micro
|
||||||
|
|
||||||
|
AC_CONFIG_AUX_DIR([build-aux])
|
||||||
|
AC_CONFIG_MACRO_DIR([m4])
|
||||||
|
AC_CONFIG_HEADERS([config.h])
|
||||||
|
AM_INIT_AUTOMAKE([serial-tests dist-bzip2 no-dist-gzip])
|
||||||
|
AM_MAINTAINER_MODE
|
||||||
|
AC_CANONICAL_HOST
|
||||||
|
AM_SILENT_RULES
|
||||||
|
AC_ARG_VAR(SYSROOT,[locate config scripts also below that directory])
|
||||||
|
|
||||||
|
# Enable GNU extensions on systems that have them.
|
||||||
|
AC_USE_SYSTEM_EXTENSIONS
|
||||||
|
|
||||||
|
# Taken from mpfr-4.0.1, then modified for LDADD_FOR_TESTS_KLUDGE
|
||||||
|
dnl Under Linux, make sure that the old dtags are used if LD_LIBRARY_PATH
|
||||||
|
dnl is defined. The issue is that with the new dtags, LD_LIBRARY_PATH has
|
||||||
|
dnl the precedence over the run path, so that if a compatible MPFR library
|
||||||
|
dnl is installed in some directory from $LD_LIBRARY_PATH, then the tested
|
||||||
|
dnl MPFR library will be this library instead of the MPFR library from the
|
||||||
|
dnl build tree. Other OS with the same issue might be added later.
|
||||||
|
dnl
|
||||||
|
dnl References:
|
||||||
|
dnl https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=859732
|
||||||
|
dnl http://lists.gnu.org/archive/html/libtool/2017-05/msg00000.html
|
||||||
|
dnl
|
||||||
|
dnl We need to check whether --disable-new-dtags is supported as alternate
|
||||||
|
dnl linkers may be used (e.g., with tcc: CC=tcc LD=tcc).
|
||||||
|
dnl
|
||||||
|
case $host in
|
||||||
|
*-*-linux*)
|
||||||
|
if test -n "$LD_LIBRARY_PATH"; then
|
||||||
|
saved_LDFLAGS="$LDFLAGS"
|
||||||
|
LDADD_FOR_TESTS_KLUDGE="-Wl,--disable-new-dtags"
|
||||||
|
LDFLAGS="$LDFLAGS $LDADD_FOR_TESTS_KLUDGE"
|
||||||
|
AC_MSG_CHECKING(whether --disable-new-dtags is supported by the linker)
|
||||||
|
AC_LINK_IFELSE([AC_LANG_SOURCE([[
|
||||||
|
int main (void) { return 0; }
|
||||||
|
]])],
|
||||||
|
[AC_MSG_RESULT(yes (use it since LD_LIBRARY_PATH is set))],
|
||||||
|
[AC_MSG_RESULT(no)
|
||||||
|
LDADD_FOR_TESTS_KLUDGE=""
|
||||||
|
])
|
||||||
|
LDFLAGS="$saved_LDFLAGS"
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
AC_SUBST([LDADD_FOR_TESTS_KLUDGE])
|
||||||
|
|
||||||
|
AC_PROG_CC
|
||||||
|
AC_PROG_CPP
|
||||||
|
AC_PROG_CXX
|
||||||
|
|
||||||
|
# Note: A suitable gitlog-to-changelog script can be found in GnuPG master.
|
||||||
|
AC_CHECK_PROGS(GITLOG_TO_CHANGELOG, gitlog-to-changelog, [gitlog-to-changelog])
|
||||||
|
|
||||||
|
AC_SUBST(VERSION_MAJOR)
|
||||||
|
AC_SUBST(VERSION_MINOR)
|
||||||
|
AC_SUBST(VERSION_MICRO)
|
||||||
|
|
||||||
|
VERSION_NUMBER=m4_esyscmd(printf "0x%02x%02x%02x" mym4_major \
|
||||||
|
mym4_minor mym4_micro)
|
||||||
|
AC_SUBST(VERSION_NUMBER)
|
||||||
|
|
||||||
|
# We need to compile and run a program on the build machine. A
|
||||||
|
# comment in libgpg-error says that the AC_PROG_CC_FOR_BUILD macro in
|
||||||
|
# the AC archive is broken for autoconf 2.57. Given that there is no
|
||||||
|
# newer version of that macro, we assume that it is also broken for
|
||||||
|
# autoconf 2.61 and thus we use a simple but usually sufficient
|
||||||
|
# approach.
|
||||||
|
AC_MSG_CHECKING(for cc for build)
|
||||||
|
if test "$cross_compiling" = "yes"; then
|
||||||
|
CC_FOR_BUILD="${CC_FOR_BUILD-cc}"
|
||||||
|
else
|
||||||
|
CC_FOR_BUILD="${CC_FOR_BUILD-$CC}"
|
||||||
|
fi
|
||||||
|
AC_MSG_RESULT($CC_FOR_BUILD)
|
||||||
|
AC_ARG_VAR(CC_FOR_BUILD,[build system C compiler])
|
||||||
|
|
||||||
|
|
||||||
|
# Don't default to build static libs.
|
||||||
|
LT_PREREQ([2.2.6])
|
||||||
|
LT_INIT([win32-dll disable-static])
|
||||||
|
LT_LANG([Windows Resource])
|
||||||
|
|
||||||
|
# For now we hardcode the use of version scripts. It would be better
|
||||||
|
# to write a test for this or even implement this within libtool.
|
||||||
|
have_ld_version_script=no
|
||||||
|
case "${host}" in
|
||||||
|
*-*-linux*)
|
||||||
|
have_ld_version_script=yes
|
||||||
|
;;
|
||||||
|
*-*-gnu*)
|
||||||
|
have_ld_version_script=yes
|
||||||
|
;;
|
||||||
|
*-apple-darwin*)
|
||||||
|
AC_DEFINE(_DARWIN_C_SOURCE, 1,
|
||||||
|
Expose all libc features (__DARWIN_C_FULL).)
|
||||||
|
AC_DEFINE(_XOPEN_SOURCE, 500, Activate POSIX interface on MacOS X)
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
AM_CONDITIONAL(HAVE_LD_VERSION_SCRIPT, test "$have_ld_version_script" = "yes")
|
||||||
|
|
||||||
|
#
|
||||||
|
# Specify how we support our local modification of libtool for Windows
|
||||||
|
# 64-bit. Options are:
|
||||||
|
#
|
||||||
|
# (1) apply: when appying patch fails, it results failure of entire build
|
||||||
|
# (2) never: never apply the patch (no try)
|
||||||
|
# (3) try: use patched if it goes well, use original if fails
|
||||||
|
#
|
||||||
|
AC_ARG_WITH([libtool-modification],
|
||||||
|
AS_HELP_STRING([--with-libtool-modification=apply|never|try],
|
||||||
|
[how to handle libtool modification (default=never)]),
|
||||||
|
build_libtool_modification=$withval,
|
||||||
|
build_libtool_modification=never)
|
||||||
|
|
||||||
|
#
|
||||||
|
# Apply a patch (locally maintained one of ours) to libtool
|
||||||
|
#
|
||||||
|
case $host in
|
||||||
|
x86_64-*mingw32*)
|
||||||
|
AC_CONFIG_COMMANDS([libtool-patch],[[
|
||||||
|
if test "$build_selection" = never; then
|
||||||
|
echo "patch not applied"
|
||||||
|
elif (mv -f libtool libtool.orig; \
|
||||||
|
sed -f $srcdir/build-aux/libtool-patch.sed libtool.orig >libtool); then
|
||||||
|
echo "applied successfully"
|
||||||
|
elif test "$build_selection" = try; then
|
||||||
|
mv -f libtool.orig libtool
|
||||||
|
echo "patch failed, thus, using original"
|
||||||
|
else
|
||||||
|
echo "patch failed"
|
||||||
|
as_fn_exit 1
|
||||||
|
fi
|
||||||
|
]],[build_selection=$build_libtool_modification])
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
GPG_DEFAULT=no
|
||||||
|
GPGSM_DEFAULT=no
|
||||||
|
GPGCONF_DEFAULT=no
|
||||||
|
G13_DEFAULT=no
|
||||||
|
component_system=None
|
||||||
|
have_dosish_system=no
|
||||||
|
have_android_system=no
|
||||||
|
have_w32_system=no
|
||||||
|
have_w64_system=no
|
||||||
|
have_macos_system=no
|
||||||
|
case "${host}" in
|
||||||
|
x86_64-*mingw32*)
|
||||||
|
have_w64_system=yes
|
||||||
|
;;
|
||||||
|
*-linux-androideabi)
|
||||||
|
have_android_system=yes
|
||||||
|
;;
|
||||||
|
*-apple-darwin*)
|
||||||
|
have_macos_system=yes
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
case "${host}" in
|
||||||
|
*-mingw32*)
|
||||||
|
have_dosish_system=yes
|
||||||
|
have_w32_system=yes
|
||||||
|
GPG_DEFAULT='c:\\gnupg\\gpg.exe'
|
||||||
|
GPGSM_DEFAULT='c:\\gnupg\\gpgsm.exe'
|
||||||
|
GPGCONF_DEFAULT='c:\\gnupg\\gpgconf.exe'
|
||||||
|
G13_DEFAULT='c:\\gnupg\\g13.exe'
|
||||||
|
#component_system='COM+'
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
|
||||||
|
# XXX: Probably use exec-prefix here?
|
||||||
|
# GPG_DEFAULT='/usr/bin/gpg'
|
||||||
|
# GPGSM_DEFAULT='/usr/bin/gpgsm'
|
||||||
|
# GPGCONF_DEFAULT='/usr/bin/gpgconf'
|
||||||
|
# G13_DEFAULT='/usr/bin/g13'
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
if test "$have_dosish_system" = yes; then
|
||||||
|
AC_DEFINE(HAVE_DOSISH_SYSTEM,1,
|
||||||
|
[Defined if we run on some of the PCDOS like systems
|
||||||
|
(DOS, Windoze. OS/2) with special properties like
|
||||||
|
no file modes])
|
||||||
|
fi
|
||||||
|
AM_CONDITIONAL(HAVE_DOSISH_SYSTEM, test "$have_dosish_system" = yes)
|
||||||
|
|
||||||
|
if test "$have_w32_system" = yes; then
|
||||||
|
AC_DEFINE(HAVE_W32_SYSTEM,1,
|
||||||
|
[Defined if we run on any kind of W32 API based system])
|
||||||
|
fi
|
||||||
|
AM_CONDITIONAL(HAVE_W32_SYSTEM, test "$have_w32_system" = yes)
|
||||||
|
|
||||||
|
if test "$have_w64_system" = yes; then
|
||||||
|
AC_DEFINE(HAVE_W64_SYSTEM,1,
|
||||||
|
[Defined if we run on a 64 bit W32 API based system])
|
||||||
|
fi
|
||||||
|
AM_CONDITIONAL(HAVE_W64_SYSTEM, test "$have_w64_system" = yes)
|
||||||
|
|
||||||
|
if test "$have_android_system" = yes; then
|
||||||
|
AC_DEFINE(HAVE_ANDROID_SYSTEM,1, [Defined if we build for an Android system])
|
||||||
|
fi
|
||||||
|
AM_CONDITIONAL(HAVE_ANDROID_SYSTEM, test "$have_android_system" = yes)
|
||||||
|
|
||||||
|
if test "$have_macos_system" = yes; then
|
||||||
|
AC_DEFINE(HAVE_MACOS_SYSTEM,1,
|
||||||
|
[Defined if we build for an MacOS system])
|
||||||
|
fi
|
||||||
|
AM_CONDITIONAL(HAVE_MACOS_SYSTEM, test "$have_macos_system" = yes)
|
||||||
|
|
||||||
|
|
||||||
|
# Python bindings.
|
||||||
|
AX_PKG_SWIG
|
||||||
|
if test -z "$SWIG"; then
|
||||||
|
AC_MSG_ERROR([[
|
||||||
|
***
|
||||||
|
*** You need SWIG to build the Python bindings.
|
||||||
|
***]])
|
||||||
|
else
|
||||||
|
# Reset the version collecting vars.
|
||||||
|
PYTHONS=
|
||||||
|
PYTHON_VERSIONS=
|
||||||
|
|
||||||
|
# Reset everything, so that we can look for another Python.
|
||||||
|
m4_foreach([mym4pythonver],
|
||||||
|
[[2.7],[3.6],[3.8],[3.9],[3.10],[3.11],[3.12],[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
|
||||||
|
unset ac_cv_path_PYTHON
|
||||||
|
unset am_cv_pathless_PYTHON
|
||||||
|
unset am_cv_python_version
|
||||||
|
unset am_cv_python_platform
|
||||||
|
unset am_cv_python_pythondir
|
||||||
|
unset am_cv_python_pyexecdir
|
||||||
|
AM_PATH_PYTHON(mym4pythonver, [
|
||||||
|
AX_PYTHON_DEVEL([], [true])
|
||||||
|
if test "$PYTHON_VERSION"; then
|
||||||
|
PYTHONS="$(echo $PYTHONS $PYTHON)"
|
||||||
|
PYTHON_VERSIONS="$(echo $PYTHON_VERSIONS $PYTHON_VERSION)"
|
||||||
|
fi
|
||||||
|
], :, m4_if([mym4pythonver],[all],[],[python]mym4pythonver))
|
||||||
|
])
|
||||||
|
|
||||||
|
# Recover some values lost in the second attempt to find Python.
|
||||||
|
PYTHON="$(echo $PYTHONS | cut -d ' ' -f 1)"
|
||||||
|
PYTHON_VERSION="$(echo $PYTHON_VERSIONS | cut -d ' ' -f 1)"
|
||||||
|
|
||||||
|
# Remove duplicates.
|
||||||
|
PYTHONS="$(echo $PYTHONS | tr '[[:space:]]' '\n' | sort | uniq | tr '\n' ' ' | sed -e 's/ $//')"
|
||||||
|
PYTHON_VERSIONS="$(echo $PYTHON_VERSIONS | tr '[[:space:]]' '\n' | sort | uniq | tr '\n' ' ' | sed -e 's/ $//')"
|
||||||
|
|
||||||
|
if test -z "$PYTHON_VERSIONS"; then
|
||||||
|
AC_MSG_ERROR([[
|
||||||
|
***
|
||||||
|
*** Please install the python development packages.
|
||||||
|
***]])
|
||||||
|
fi
|
||||||
|
|
||||||
|
AC_SUBST(PYTHONS, $PYTHONS)
|
||||||
|
fi
|
||||||
|
|
||||||
|
#
|
||||||
|
# Provide information about the build.
|
||||||
|
#
|
||||||
|
BUILD_REVISION="mym4_revision"
|
||||||
|
AC_SUBST(BUILD_REVISION)
|
||||||
|
AC_DEFINE_UNQUOTED(BUILD_REVISION, "$BUILD_REVISION",
|
||||||
|
[GIT commit id revision used to build this package])
|
||||||
|
|
||||||
|
|
||||||
|
#
|
||||||
|
# Options to disable some regression tests
|
||||||
|
#
|
||||||
|
run_gpg_test="yes"
|
||||||
|
AC_ARG_ENABLE(gpg-test,
|
||||||
|
AS_HELP_STRING([--disable-gpg-test],[disable GPG regression test]),
|
||||||
|
run_gpg_test=$enableval)
|
||||||
|
AM_CONDITIONAL(RUN_GPG_TESTS, test "$run_gpg_test" = "yes")
|
||||||
|
|
||||||
|
|
||||||
|
# Type checks.
|
||||||
|
AC_CHECK_SIZEOF(unsigned int)
|
||||||
|
AC_SYS_LARGEFILE
|
||||||
|
|
||||||
|
|
||||||
|
# Checks for compiler features.
|
||||||
|
if test "$GCC" = yes; then
|
||||||
|
CFLAGS="$CFLAGS -Wall -Wcast-align -Wshadow -Wstrict-prototypes"
|
||||||
|
CFLAGS="$CFLAGS -Wno-format-y2k"
|
||||||
|
|
||||||
|
# If -Wno-missing-field-initializers is supported we can expect a
|
||||||
|
# a larger set of warning options.
|
||||||
|
AC_MSG_CHECKING([if gcc supports -Wno-missing-field-initializers])
|
||||||
|
_gcc_cflags_save=$CFLAGS
|
||||||
|
CFLAGS="-Wno-missing-field-initializers"
|
||||||
|
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([],[])],_gcc_wopt=yes,_gcc_wopt=no)
|
||||||
|
AC_MSG_RESULT($_gcc_wopt)
|
||||||
|
CFLAGS=$_gcc_cflags_save;
|
||||||
|
if test x"$_gcc_wopt" = xyes ; then
|
||||||
|
CFLAGS="$CFLAGS -Wno-missing-field-initializers"
|
||||||
|
CFLAGS="$CFLAGS -Wno-sign-compare"
|
||||||
|
CFLAGS="$CFLAGS -Wno-format-zero-length"
|
||||||
|
CFLAGS="$CFLAGS -Wno-format-truncation"
|
||||||
|
CFLAGS="$CFLAGS -Wno-sizeof-pointer-div"
|
||||||
|
fi
|
||||||
|
if test "$USE_MAINTAINER_MODE" = "yes"; then
|
||||||
|
if test x"$_gcc_wopt" = xyes ; then
|
||||||
|
CFLAGS="$CFLAGS -W -Wextra -Wbad-function-cast"
|
||||||
|
CFLAGS="$CFLAGS -Wwrite-strings"
|
||||||
|
CFLAGS="$CFLAGS -Wdeclaration-after-statement"
|
||||||
|
fi
|
||||||
|
CFLAGS="$CFLAGS -Wformat -Wformat-security"
|
||||||
|
CXXFLAGS="$CXXFLAGS -Wall -Wextra -Wno-shadow"
|
||||||
|
|
||||||
|
AC_MSG_CHECKING([if gcc supports -Wpointer-arith])
|
||||||
|
_gcc_cflags_save=$CFLAGS
|
||||||
|
CFLAGS="-Wpointer-arith"
|
||||||
|
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([],[])],_gcc_wopt=yes,_gcc_wopt=no)
|
||||||
|
AC_MSG_RESULT($_gcc_wopt)
|
||||||
|
CFLAGS=$_gcc_cflags_save;
|
||||||
|
if test x"$_gcc_wopt" = xyes ; then
|
||||||
|
CFLAGS="$CFLAGS -Wpointer-arith"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
if test "$have_w32_system" = yes; then
|
||||||
|
CFLAGS="$CFLAGS -mms-bitfields"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
# Checks for library functions.
|
||||||
|
AC_MSG_NOTICE([checking for libraries])
|
||||||
|
|
||||||
|
# Checking for libgpg-error.
|
||||||
|
have_gpg_error=no
|
||||||
|
AM_PATH_GPG_ERROR("$NEED_GPG_ERROR_VERSION",
|
||||||
|
have_gpg_error=yes, have_gpg_error=no)
|
||||||
|
AC_DEFINE(GPG_ERR_SOURCE_DEFAULT, GPG_ERR_SOURCE_GPGME,
|
||||||
|
[The default error source for GPGME.])
|
||||||
|
|
||||||
|
AM_CONDITIONAL(USE_GPGRT_CONFIG, [test -n "$GPGRT_CONFIG" \
|
||||||
|
-a "$ac_cv_path_GPG_ERROR_CONFIG" = no])
|
||||||
|
|
||||||
|
# And for gpgme.
|
||||||
|
have_gpgme=no
|
||||||
|
AM_PATH_GPGME("$NEED_GPGME_VERSION",
|
||||||
|
have_gpgme=yes, have_gpgme=no)
|
||||||
|
|
||||||
|
|
||||||
|
#
|
||||||
|
# Other checks
|
||||||
|
#
|
||||||
|
|
||||||
|
# Last check.
|
||||||
|
die=no
|
||||||
|
if test "$have_gpg_error" = "no"; then
|
||||||
|
die=yes
|
||||||
|
AC_MSG_NOTICE([[
|
||||||
|
***
|
||||||
|
*** You need libgpg-error to build this program.
|
||||||
|
** This library is for example available at
|
||||||
|
*** https://www.gnupg.org/ftp/gcrypt/libgpg-error/
|
||||||
|
*** (at least version $NEED_GPG_ERROR_VERSION is required.)
|
||||||
|
***]])
|
||||||
|
fi
|
||||||
|
if test "$have_gpgme" = "no"; then
|
||||||
|
die=yes
|
||||||
|
AC_MSG_NOTICE([[
|
||||||
|
***
|
||||||
|
*** You need gpgme to build this program.
|
||||||
|
*** This library is for example available at
|
||||||
|
*** https://www.gnupg.org/ftp/gcrypt/gpgme/
|
||||||
|
*** (at least version $NEED_GPGME_VERSION is required).
|
||||||
|
***]])
|
||||||
|
fi
|
||||||
|
|
||||||
|
if test "$die" = "yes"; then
|
||||||
|
AC_MSG_ERROR([[
|
||||||
|
***
|
||||||
|
*** Required libraries not found. Please consult the above messages
|
||||||
|
*** and install them before running configure again.
|
||||||
|
***]])
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
#
|
||||||
|
# Create config files
|
||||||
|
|
||||||
|
AC_CONFIG_FILES([Makefile
|
||||||
|
version.py
|
||||||
|
tests/Makefile
|
||||||
|
src/Makefile
|
||||||
|
examples/Makefile
|
||||||
|
doc/Makefile])
|
||||||
|
AC_CONFIG_FILES([setup.py], [chmod a+x setup.py])
|
||||||
|
AC_OUTPUT
|
||||||
|
|
||||||
|
echo "
|
||||||
|
GPG-PY v${VERSION} has been configured as follows:
|
||||||
|
|
||||||
|
Revision: mym4_revision (mym4_revision_dec)
|
||||||
|
Platform: $host
|
||||||
|
|
||||||
|
Python versions: $PYTHON_VERSIONS
|
||||||
|
"
|
||||||
|
if test "x${gpg_config_script_warn}" != x; then
|
||||||
|
cat <<G10EOF
|
||||||
|
Mismatches between the target platform and the to
|
||||||
|
be used libraries have been been detected for:
|
||||||
|
${gpg_config_script_warn}
|
||||||
|
Please check above for warning messages.
|
||||||
|
|
||||||
|
G10EOF
|
||||||
|
fi
|
225
lang/python/m4/gpg-error.m4
Normal file
225
lang/python/m4/gpg-error.m4
Normal file
@ -0,0 +1,225 @@
|
|||||||
|
# gpg-error.m4 - autoconf macro to detect libgpg-error.
|
||||||
|
# Copyright (C) 2002, 2003, 2004, 2011, 2014, 2018, 2020, 2021, 2022
|
||||||
|
# g10 Code GmbH
|
||||||
|
#
|
||||||
|
# This file is free software; as a special exception the author gives
|
||||||
|
# unlimited permission to copy and/or distribute it, with or without
|
||||||
|
# modifications, as long as this notice is preserved.
|
||||||
|
#
|
||||||
|
# This file is distributed in the hope that it will be useful, but
|
||||||
|
# WITHOUT ANY WARRANTY, to the extent permitted by law; without even the
|
||||||
|
# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||||
|
#
|
||||||
|
# Last-changed: 2023-04-01
|
||||||
|
|
||||||
|
dnl
|
||||||
|
dnl Find gpg-error-config, for backward compatibility
|
||||||
|
dnl
|
||||||
|
dnl _AM_PATH_POSSIBLE_GPG_ERROR_CONFIG
|
||||||
|
AC_DEFUN([_AM_PATH_POSSIBLE_GPG_ERROR_CONFIG],[dnl
|
||||||
|
gpg_error_config_prefix=""
|
||||||
|
dnl --with-libgpg-error-prefix=PFX is the preferred name for this option,
|
||||||
|
dnl since that is consistent with how our three siblings use the directory/
|
||||||
|
dnl package name in --with-$dir_name-prefix=PFX.
|
||||||
|
AC_ARG_WITH(libgpg-error-prefix,
|
||||||
|
AS_HELP_STRING([--with-libgpg-error-prefix=PFX],
|
||||||
|
[prefix where GPG Error is installed (optional)]),
|
||||||
|
[gpg_error_config_prefix="$withval"])
|
||||||
|
|
||||||
|
dnl Accept --with-gpg-error-prefix and make it work the same as
|
||||||
|
dnl --with-libgpg-error-prefix above, for backwards compatibility,
|
||||||
|
dnl but do not document this old, inconsistently-named option.
|
||||||
|
AC_ARG_WITH(gpg-error-prefix,,
|
||||||
|
[gpg_error_config_prefix="$withval"])
|
||||||
|
|
||||||
|
if test x"${GPG_ERROR_CONFIG}" = x ; then
|
||||||
|
if test x"${gpg_error_config_prefix}" != x ; then
|
||||||
|
GPG_ERROR_CONFIG="${gpg_error_config_prefix}/bin/gpg-error-config"
|
||||||
|
else
|
||||||
|
case "${SYSROOT}" in
|
||||||
|
/*)
|
||||||
|
if test -x "${SYSROOT}/bin/gpg-error-config" ; then
|
||||||
|
GPG_ERROR_CONFIG="${SYSROOT}/bin/gpg-error-config"
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
'')
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
AC_MSG_WARN([Ignoring \$SYSROOT as it is not an absolute path.])
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
AC_PATH_PROG(GPG_ERROR_CONFIG, gpg-error-config, no)
|
||||||
|
])
|
||||||
|
|
||||||
|
dnl
|
||||||
|
dnl Find gpgrt-config, which uses .pc file
|
||||||
|
dnl (minimum pkg-config functionality, supporting cross build)
|
||||||
|
dnl
|
||||||
|
dnl _AM_PATH_GPGRT_CONFIG
|
||||||
|
AC_DEFUN([_AM_PATH_GPGRT_CONFIG],[dnl
|
||||||
|
AC_PATH_PROG(GPGRT_CONFIG, gpgrt-config, no, [$prefix/bin:$PATH])
|
||||||
|
if test "$GPGRT_CONFIG" != "no"; then
|
||||||
|
# Determine gpgrt_libdir
|
||||||
|
#
|
||||||
|
# Get the prefix of gpgrt-config assuming it's something like:
|
||||||
|
# <PREFIX>/bin/gpgrt-config
|
||||||
|
gpgrt_prefix=${GPGRT_CONFIG%/*/*}
|
||||||
|
possible_libdir1=${gpgrt_prefix}/lib
|
||||||
|
# Determine by using system libdir-format with CC, it's like:
|
||||||
|
# Normal style: /usr/lib
|
||||||
|
# GNU cross style: /usr/<triplet>/lib
|
||||||
|
# Debian style: /usr/lib/<multiarch-name>
|
||||||
|
# Fedora/openSUSE style: /usr/lib, /usr/lib32 or /usr/lib64
|
||||||
|
# It is assumed that CC is specified to the one of host on cross build.
|
||||||
|
if libdir_candidates=$(${CC:-cc} -print-search-dirs | \
|
||||||
|
sed -n -e "/^libraries/{s/libraries: =//;s/:/\\
|
||||||
|
/g;p;}"); then
|
||||||
|
# From the output of -print-search-dirs, select valid pkgconfig dirs.
|
||||||
|
libdir_candidates=$(for dir in $libdir_candidates; do
|
||||||
|
if p=$(cd $dir 2>/dev/null && pwd); then
|
||||||
|
test -d "$p/pkgconfig" && echo $p;
|
||||||
|
fi
|
||||||
|
done)
|
||||||
|
|
||||||
|
for possible_libdir0 in $libdir_candidates; do
|
||||||
|
# possible_libdir0:
|
||||||
|
# Fallback candidate, the one of system-installed (by $CC)
|
||||||
|
# (/usr/<triplet>/lib, /usr/lib/<multiarch-name> or /usr/lib32)
|
||||||
|
# possible_libdir1:
|
||||||
|
# Another candidate, user-locally-installed
|
||||||
|
# (<gpgrt_prefix>/lib)
|
||||||
|
# possible_libdir2
|
||||||
|
# Most preferred
|
||||||
|
# (<gpgrt_prefix>/<triplet>/lib,
|
||||||
|
# <gpgrt_prefix>/lib/<multiarch-name> or <gpgrt_prefix>/lib32)
|
||||||
|
if test "${possible_libdir0##*/}" = "lib"; then
|
||||||
|
possible_prefix0=${possible_libdir0%/lib}
|
||||||
|
possible_prefix0_triplet=${possible_prefix0##*/}
|
||||||
|
if test -z "$possible_prefix0_triplet"; then
|
||||||
|
continue
|
||||||
|
fi
|
||||||
|
possible_libdir2=${gpgrt_prefix}/$possible_prefix0_triplet/lib
|
||||||
|
else
|
||||||
|
possible_prefix0=${possible_libdir0%%/lib*}
|
||||||
|
possible_libdir2=${gpgrt_prefix}${possible_libdir0#$possible_prefix0}
|
||||||
|
fi
|
||||||
|
if test -f ${possible_libdir2}/pkgconfig/gpg-error.pc; then
|
||||||
|
gpgrt_libdir=${possible_libdir2}
|
||||||
|
elif test -f ${possible_libdir1}/pkgconfig/gpg-error.pc; then
|
||||||
|
gpgrt_libdir=${possible_libdir1}
|
||||||
|
elif test -f ${possible_libdir0}/pkgconfig/gpg-error.pc; then
|
||||||
|
gpgrt_libdir=${possible_libdir0}
|
||||||
|
fi
|
||||||
|
if test -n "$gpgrt_libdir"; then break; fi
|
||||||
|
done
|
||||||
|
fi
|
||||||
|
if test -z "$gpgrt_libdir"; then
|
||||||
|
# No valid pkgconfig dir in any of the system directories, fallback
|
||||||
|
gpgrt_libdir=${possible_libdir1}
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
unset GPGRT_CONFIG
|
||||||
|
fi
|
||||||
|
|
||||||
|
if test -n "$gpgrt_libdir"; then
|
||||||
|
GPGRT_CONFIG="$GPGRT_CONFIG --libdir=$gpgrt_libdir"
|
||||||
|
if $GPGRT_CONFIG gpg-error >/dev/null 2>&1; then
|
||||||
|
GPG_ERROR_CONFIG="$GPGRT_CONFIG gpg-error"
|
||||||
|
AC_MSG_NOTICE([Use gpgrt-config with $gpgrt_libdir as gpg-error-config])
|
||||||
|
gpg_error_config_version=`$GPG_ERROR_CONFIG --modversion`
|
||||||
|
else
|
||||||
|
gpg_error_config_version=`$GPG_ERROR_CONFIG --version`
|
||||||
|
unset GPGRT_CONFIG
|
||||||
|
fi
|
||||||
|
elif test "$GPG_ERROR_CONFIG" != "no"; then
|
||||||
|
gpg_error_config_version=`$GPG_ERROR_CONFIG --version`
|
||||||
|
unset GPGRT_CONFIG
|
||||||
|
fi
|
||||||
|
])
|
||||||
|
|
||||||
|
dnl AM_PATH_GPG_ERROR([MINIMUM-VERSION,
|
||||||
|
dnl [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND ]]])
|
||||||
|
dnl
|
||||||
|
dnl Test for libgpg-error and define GPG_ERROR_CFLAGS, GPG_ERROR_LIBS,
|
||||||
|
dnl GPG_ERROR_MT_CFLAGS, and GPG_ERROR_MT_LIBS. The _MT_ variants are
|
||||||
|
dnl used for programs requireing real multi thread support.
|
||||||
|
dnl
|
||||||
|
dnl If a prefix option is not used, the config script is first
|
||||||
|
dnl searched in $SYSROOT/bin and then along $PATH. If the used
|
||||||
|
dnl config script does not match the host specification the script
|
||||||
|
dnl is added to the gpg_config_script_warn variable.
|
||||||
|
dnl
|
||||||
|
AC_DEFUN([AM_PATH_GPG_ERROR],[dnl
|
||||||
|
AC_REQUIRE([AC_CANONICAL_HOST])dnl
|
||||||
|
AC_REQUIRE([_AM_PATH_POSSIBLE_GPG_ERROR_CONFIG])dnl
|
||||||
|
AC_REQUIRE([_AM_PATH_GPGRT_CONFIG])dnl
|
||||||
|
min_gpg_error_version=ifelse([$1], ,1.33,$1)
|
||||||
|
ok=no
|
||||||
|
if test "$GPG_ERROR_CONFIG" != "no"; then
|
||||||
|
req_major=`echo $min_gpg_error_version | \
|
||||||
|
sed 's/\([[0-9]]*\)\.\([[0-9]]*\)/\1/'`
|
||||||
|
req_minor=`echo $min_gpg_error_version | \
|
||||||
|
sed 's/\([[0-9]]*\)\.\([[0-9]]*\)/\2/'`
|
||||||
|
major=`echo $gpg_error_config_version | \
|
||||||
|
sed 's/\([[0-9]]*\)\.\([[0-9]]*\).*/\1/'`
|
||||||
|
minor=`echo $gpg_error_config_version | \
|
||||||
|
sed 's/\([[0-9]]*\)\.\([[0-9]]*\).*/\2/'`
|
||||||
|
if test "$major" -gt "$req_major"; then
|
||||||
|
ok=yes
|
||||||
|
else
|
||||||
|
if test "$major" -eq "$req_major"; then
|
||||||
|
if test "$minor" -ge "$req_minor"; then
|
||||||
|
ok=yes
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
AC_MSG_CHECKING(for GPG Error - version >= $min_gpg_error_version)
|
||||||
|
if test $ok = yes; then
|
||||||
|
GPG_ERROR_CFLAGS=`$GPG_ERROR_CONFIG --cflags`
|
||||||
|
GPG_ERROR_LIBS=`$GPG_ERROR_CONFIG --libs`
|
||||||
|
if test -z "$GPGRT_CONFIG"; then
|
||||||
|
GPG_ERROR_MT_CFLAGS=`$GPG_ERROR_CONFIG --mt --cflags 2>/dev/null`
|
||||||
|
GPG_ERROR_MT_LIBS=`$GPG_ERROR_CONFIG --mt --libs 2>/dev/null`
|
||||||
|
else
|
||||||
|
GPG_ERROR_MT_CFLAGS=`$GPG_ERROR_CONFIG --variable=mtcflags 2>/dev/null`
|
||||||
|
GPG_ERROR_MT_CFLAGS="$GPG_ERROR_CFLAGS${GPG_ERROR_CFLAGS:+ }$GPG_ERROR_MT_CFLAGS"
|
||||||
|
GPG_ERROR_MT_LIBS=`$GPG_ERROR_CONFIG --variable=mtlibs 2>/dev/null`
|
||||||
|
GPG_ERROR_MT_LIBS="$GPG_ERROR_LIBS${GPG_ERROR_LIBS:+ }$GPG_ERROR_MT_LIBS"
|
||||||
|
fi
|
||||||
|
AC_MSG_RESULT([yes ($gpg_error_config_version)])
|
||||||
|
ifelse([$2], , :, [$2])
|
||||||
|
if test -z "$GPGRT_CONFIG"; then
|
||||||
|
gpg_error_config_host=`$GPG_ERROR_CONFIG --host 2>/dev/null || echo none`
|
||||||
|
else
|
||||||
|
gpg_error_config_host=`$GPG_ERROR_CONFIG --variable=host 2>/dev/null || echo none`
|
||||||
|
fi
|
||||||
|
if test x"$gpg_error_config_host" != xnone ; then
|
||||||
|
if test x"$gpg_error_config_host" != x"$host" ; then
|
||||||
|
AC_MSG_WARN([[
|
||||||
|
***
|
||||||
|
*** The config script "$GPG_ERROR_CONFIG" was
|
||||||
|
*** built for $gpg_error_config_host and thus may not match the
|
||||||
|
*** used host $host.
|
||||||
|
*** You may want to use the configure option --with-libgpg-error-prefix
|
||||||
|
*** to specify a matching config script or use \$SYSROOT.
|
||||||
|
***]])
|
||||||
|
gpg_config_script_warn="$gpg_config_script_warn libgpg-error"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
GPG_ERROR_CFLAGS=""
|
||||||
|
GPG_ERROR_LIBS=""
|
||||||
|
GPG_ERROR_MT_CFLAGS=""
|
||||||
|
GPG_ERROR_MT_LIBS=""
|
||||||
|
AC_MSG_RESULT(no)
|
||||||
|
ifelse([$3], , :, [$3])
|
||||||
|
fi
|
||||||
|
AC_SUBST(GPG_ERROR_CFLAGS)
|
||||||
|
AC_SUBST(GPG_ERROR_LIBS)
|
||||||
|
AC_SUBST(GPG_ERROR_MT_CFLAGS)
|
||||||
|
AC_SUBST(GPG_ERROR_MT_LIBS)
|
||||||
|
])
|
412
lang/python/m4/gpgme.m4
Normal file
412
lang/python/m4/gpgme.m4
Normal file
@ -0,0 +1,412 @@
|
|||||||
|
# gpgme.m4 - autoconf macro to detect GPGME.
|
||||||
|
# Copyright (C) 2002, 2003, 2004, 2014, 2018, 2022 g10 Code GmbH
|
||||||
|
#
|
||||||
|
# This file is free software; as a special exception the author gives
|
||||||
|
# unlimited permission to copy and/or distribute it, with or without
|
||||||
|
# modifications, as long as this notice is preserved.
|
||||||
|
#
|
||||||
|
# This file is distributed in the hope that it will be useful, but
|
||||||
|
# WITHOUT ANY WARRANTY, to the extent permitted by law; without even the
|
||||||
|
# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||||
|
#
|
||||||
|
# Last-changed: 2024-05-16
|
||||||
|
|
||||||
|
|
||||||
|
dnl
|
||||||
|
dnl Find gpgrt-config, which uses .pc file
|
||||||
|
dnl (minimum pkg-config functionality, supporting cross build)
|
||||||
|
dnl
|
||||||
|
dnl _AM_PATH_GPGRT_CONFIG
|
||||||
|
AC_DEFUN([_AM_PATH_GPGRT_CONFIG],[dnl
|
||||||
|
AC_PATH_PROG(GPGRT_CONFIG, gpgrt-config, no, [$prefix/bin:$PATH])
|
||||||
|
if test "$GPGRT_CONFIG" != "no"; then
|
||||||
|
# Determine gpgrt_libdir
|
||||||
|
#
|
||||||
|
# Get the prefix of gpgrt-config assuming it's something like:
|
||||||
|
# <PREFIX>/bin/gpgrt-config
|
||||||
|
gpgrt_prefix=${GPGRT_CONFIG%/*/*}
|
||||||
|
possible_libdir1=${gpgrt_prefix}/lib
|
||||||
|
# Determine by using system libdir-format with CC, it's like:
|
||||||
|
# Normal style: /usr/lib
|
||||||
|
# GNU cross style: /usr/<triplet>/lib
|
||||||
|
# Debian style: /usr/lib/<multiarch-name>
|
||||||
|
# Fedora/openSUSE style: /usr/lib, /usr/lib32 or /usr/lib64
|
||||||
|
# It is assumed that CC is specified to the one of host on cross build.
|
||||||
|
if libdir_candidates=$(${CC:-cc} -print-search-dirs | \
|
||||||
|
sed -n -e "/^libraries/{s/libraries: =//;s/:/\\
|
||||||
|
/g;p;}"); then
|
||||||
|
# From the output of -print-search-dirs, select valid pkgconfig dirs.
|
||||||
|
libdir_candidates=$(for dir in $libdir_candidates; do
|
||||||
|
if p=$(cd $dir 2>/dev/null && pwd); then
|
||||||
|
test -d "$p/pkgconfig" && echo $p;
|
||||||
|
fi
|
||||||
|
done)
|
||||||
|
|
||||||
|
for possible_libdir0 in $libdir_candidates; do
|
||||||
|
# possible_libdir0:
|
||||||
|
# Fallback candidate, the one of system-installed (by $CC)
|
||||||
|
# (/usr/<triplet>/lib, /usr/lib/<multiarch-name> or /usr/lib32)
|
||||||
|
# possible_libdir1:
|
||||||
|
# Another candidate, user-locally-installed
|
||||||
|
# (<gpgrt_prefix>/lib)
|
||||||
|
# possible_libdir2
|
||||||
|
# Most preferred
|
||||||
|
# (<gpgrt_prefix>/<triplet>/lib,
|
||||||
|
# <gpgrt_prefix>/lib/<multiarch-name> or <gpgrt_prefix>/lib32)
|
||||||
|
if test "${possible_libdir0##*/}" = "lib"; then
|
||||||
|
possible_prefix0=${possible_libdir0%/lib}
|
||||||
|
possible_prefix0_triplet=${possible_prefix0##*/}
|
||||||
|
if test -z "$possible_prefix0_triplet"; then
|
||||||
|
continue
|
||||||
|
fi
|
||||||
|
possible_libdir2=${gpgrt_prefix}/$possible_prefix0_triplet/lib
|
||||||
|
else
|
||||||
|
possible_prefix0=${possible_libdir0%%/lib*}
|
||||||
|
possible_libdir2=${gpgrt_prefix}${possible_libdir0#$possible_prefix0}
|
||||||
|
fi
|
||||||
|
if test -f ${possible_libdir2}/pkgconfig/gpg-error.pc; then
|
||||||
|
gpgrt_libdir=${possible_libdir2}
|
||||||
|
elif test -f ${possible_libdir1}/pkgconfig/gpg-error.pc; then
|
||||||
|
gpgrt_libdir=${possible_libdir1}
|
||||||
|
elif test -f ${possible_libdir0}/pkgconfig/gpg-error.pc; then
|
||||||
|
gpgrt_libdir=${possible_libdir0}
|
||||||
|
fi
|
||||||
|
if test -n "$gpgrt_libdir"; then break; fi
|
||||||
|
done
|
||||||
|
fi
|
||||||
|
if test -z "$gpgrt_libdir"; then
|
||||||
|
# No valid pkgconfig dir in any of the system directories, fallback
|
||||||
|
gpgrt_libdir=${possible_libdir1}
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
unset GPGRT_CONFIG
|
||||||
|
fi
|
||||||
|
|
||||||
|
if test -n "$gpgrt_libdir"; then
|
||||||
|
GPGRT_CONFIG="$GPGRT_CONFIG --libdir=$gpgrt_libdir"
|
||||||
|
if $GPGRT_CONFIG gpg-error >/dev/null 2>&1; then
|
||||||
|
GPG_ERROR_CONFIG="$GPGRT_CONFIG gpg-error"
|
||||||
|
AC_MSG_NOTICE([Use gpgrt-config with $gpgrt_libdir as gpg-error-config])
|
||||||
|
gpg_error_config_version=`$GPG_ERROR_CONFIG --modversion`
|
||||||
|
else
|
||||||
|
gpg_error_config_version=`$GPG_ERROR_CONFIG --version`
|
||||||
|
unset GPGRT_CONFIG
|
||||||
|
fi
|
||||||
|
elif test "$GPG_ERROR_CONFIG" != "no"; then
|
||||||
|
gpg_error_config_version=`$GPG_ERROR_CONFIG --version`
|
||||||
|
unset GPGRT_CONFIG
|
||||||
|
fi
|
||||||
|
])
|
||||||
|
|
||||||
|
AC_DEFUN([_AM_PATH_GPGME_CONFIG],[dnl
|
||||||
|
AC_REQUIRE([_AM_PATH_GPGRT_CONFIG])dnl
|
||||||
|
AC_ARG_WITH(gpgme-prefix,
|
||||||
|
AS_HELP_STRING([--with-gpgme-prefix=PFX],
|
||||||
|
[prefix where GPGME is installed (optional)]),
|
||||||
|
gpgme_config_prefix="$withval", gpgme_config_prefix="")
|
||||||
|
if test x"${GPGME_CONFIG}" = x ; then
|
||||||
|
if test x"${gpgme_config_prefix}" != x ; then
|
||||||
|
GPGME_CONFIG="${gpgme_config_prefix}/bin/gpgme-config"
|
||||||
|
else
|
||||||
|
case "${SYSROOT}" in
|
||||||
|
/*)
|
||||||
|
if test -x "${SYSROOT}/bin/gpgme-config" ; then
|
||||||
|
GPGME_CONFIG="${SYSROOT}/bin/gpgme-config"
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
'')
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
AC_MSG_WARN([Ignoring \$SYSROOT as it is not an absolute path.])
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
use_gpgrt_config=""
|
||||||
|
if test x"$GPGRT_CONFIG" != x -a "$GPGRT_CONFIG" != "no"; then
|
||||||
|
if $GPGRT_CONFIG gpgme --exists; then
|
||||||
|
GPGME_CONFIG="$GPGRT_CONFIG gpgme"
|
||||||
|
AC_MSG_NOTICE([Use gpgrt-config as gpgme-config])
|
||||||
|
use_gpgrt_config=yes
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
if test -z "$use_gpgrt_config"; then
|
||||||
|
AC_PATH_PROG(GPGME_CONFIG, gpgme-config, no)
|
||||||
|
fi
|
||||||
|
|
||||||
|
if test "$GPGME_CONFIG" != "no" ; then
|
||||||
|
if test -z "$use_gpgrt_config"; then
|
||||||
|
gpgme_version=`$GPGME_CONFIG --version`
|
||||||
|
else
|
||||||
|
gpgme_version=`$GPGME_CONFIG --modversion`
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
gpgme_version_major=`echo $gpgme_version | \
|
||||||
|
sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\).*/\1/'`
|
||||||
|
gpgme_version_minor=`echo $gpgme_version | \
|
||||||
|
sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\).*/\2/'`
|
||||||
|
gpgme_version_micro=`echo $gpgme_version | \
|
||||||
|
sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\).*/\3/'`
|
||||||
|
])
|
||||||
|
|
||||||
|
|
||||||
|
AC_DEFUN([_AM_PATH_GPGME_CONFIG_HOST_CHECK],
|
||||||
|
[
|
||||||
|
if test -z "$use_gpgrt_config"; then
|
||||||
|
gpgme_config_host=`$GPGME_CONFIG --host 2>/dev/null || echo none`
|
||||||
|
else
|
||||||
|
gpgme_config_host=`$GPGME_CONFIG --variable=host 2>/dev/null || echo none`
|
||||||
|
fi
|
||||||
|
if test x"$gpgme_config_host" != xnone ; then
|
||||||
|
if test x"$gpgme_config_host" != x"$host" ; then
|
||||||
|
AC_MSG_WARN([[
|
||||||
|
***
|
||||||
|
*** The config script "$GPGME_CONFIG" was
|
||||||
|
*** built for $gpgme_config_host and thus may not match the
|
||||||
|
*** used host $host.
|
||||||
|
*** You may want to use the configure option --with-gpgme-prefix
|
||||||
|
*** to specify a matching config script or use \$SYSROOT.
|
||||||
|
***]])
|
||||||
|
gpg_config_script_warn="$gpg_config_script_warn gpgme"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
])
|
||||||
|
|
||||||
|
|
||||||
|
dnl AM_PATH_GPGME([MINIMUM-VERSION,
|
||||||
|
dnl [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND ]]])
|
||||||
|
dnl Test for libgpgme and define GPGME_CFLAGS and GPGME_LIBS.
|
||||||
|
dnl
|
||||||
|
dnl If a prefix option is not used, the config script is first
|
||||||
|
dnl searched in $SYSROOT/bin and then along $PATH. If the used
|
||||||
|
dnl config script does not match the host specification the script
|
||||||
|
dnl is added to the gpg_config_script_warn variable.
|
||||||
|
dnl
|
||||||
|
AC_DEFUN([AM_PATH_GPGME],
|
||||||
|
[ AC_REQUIRE([AC_CANONICAL_HOST])dnl
|
||||||
|
AC_REQUIRE([_AM_PATH_GPGME_CONFIG])dnl
|
||||||
|
tmp=ifelse([$1], ,1:0.4.2,$1)
|
||||||
|
if echo "$tmp" | grep ':' >/dev/null 2>/dev/null ; then
|
||||||
|
req_gpgme_api=`echo "$tmp" | sed 's/\(.*\):\(.*\)/\1/'`
|
||||||
|
min_gpgme_version=`echo "$tmp" | sed 's/\(.*\):\(.*\)/\2/'`
|
||||||
|
else
|
||||||
|
req_gpgme_api=0
|
||||||
|
min_gpgme_version="$tmp"
|
||||||
|
fi
|
||||||
|
|
||||||
|
AC_MSG_CHECKING(for GPGME - version >= $min_gpgme_version)
|
||||||
|
ok=no
|
||||||
|
if test "$GPGME_CONFIG" != "no" ; then
|
||||||
|
req_major=`echo $min_gpgme_version | \
|
||||||
|
sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\)/\1/'`
|
||||||
|
req_minor=`echo $min_gpgme_version | \
|
||||||
|
sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\)/\2/'`
|
||||||
|
req_micro=`echo $min_gpgme_version | \
|
||||||
|
sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\)/\3/'`
|
||||||
|
if test "$gpgme_version_major" -gt "$req_major"; then
|
||||||
|
ok=yes
|
||||||
|
else
|
||||||
|
if test "$gpgme_version_major" -eq "$req_major"; then
|
||||||
|
if test "$gpgme_version_minor" -gt "$req_minor"; then
|
||||||
|
ok=yes
|
||||||
|
else
|
||||||
|
if test "$gpgme_version_minor" -eq "$req_minor"; then
|
||||||
|
if test "$gpgme_version_micro" -ge "$req_micro"; then
|
||||||
|
ok=yes
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
if test $ok = yes; then
|
||||||
|
# If we have a recent GPGME, we should also check that the
|
||||||
|
# API is compatible.
|
||||||
|
if test "$req_gpgme_api" -gt 0 ; then
|
||||||
|
if test -z "$use_gpgrt_config"; then
|
||||||
|
tmp=`$GPGME_CONFIG --api-version 2>/dev/null || echo 0`
|
||||||
|
else
|
||||||
|
tmp=`$GPGME_CONFIG --variable=api_version 2>/dev/null || echo 0`
|
||||||
|
fi
|
||||||
|
if test "$tmp" -gt 0 ; then
|
||||||
|
if test "$req_gpgme_api" -ne "$tmp" ; then
|
||||||
|
ok=no
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
if test $ok = yes; then
|
||||||
|
GPGME_CFLAGS=`$GPGME_CONFIG --cflags`
|
||||||
|
GPGME_LIBS=`$GPGME_CONFIG --libs`
|
||||||
|
AC_MSG_RESULT(yes)
|
||||||
|
ifelse([$2], , :, [$2])
|
||||||
|
_AM_PATH_GPGME_CONFIG_HOST_CHECK
|
||||||
|
else
|
||||||
|
GPGME_CFLAGS=""
|
||||||
|
GPGME_LIBS=""
|
||||||
|
AC_MSG_RESULT(no)
|
||||||
|
ifelse([$3], , :, [$3])
|
||||||
|
fi
|
||||||
|
AC_SUBST(GPGME_CFLAGS)
|
||||||
|
AC_SUBST(GPGME_LIBS)
|
||||||
|
])
|
||||||
|
|
||||||
|
dnl AM_PATH_GPGME_PTHREAD([MINIMUM-VERSION,
|
||||||
|
dnl [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND ]]])
|
||||||
|
dnl Test for libgpgme and define GPGME_PTHREAD_CFLAGS
|
||||||
|
dnl and GPGME_PTHREAD_LIBS.
|
||||||
|
dnl
|
||||||
|
AC_DEFUN([AM_PATH_GPGME_PTHREAD],[
|
||||||
|
AC_OBSOLETE([$0], [; use AM_PATH_GPGME instead to use GPGME_CFLAGS and GPGME_LIBS])dnl
|
||||||
|
AC_REQUIRE([_AM_PATH_GPGME_CONFIG])dnl
|
||||||
|
tmp=ifelse([$1], ,1:0.4.2,$1)
|
||||||
|
if echo "$tmp" | grep ':' >/dev/null 2>/dev/null ; then
|
||||||
|
req_gpgme_api=`echo "$tmp" | sed 's/\(.*\):\(.*\)/\1/'`
|
||||||
|
min_gpgme_version=`echo "$tmp" | sed 's/\(.*\):\(.*\)/\2/'`
|
||||||
|
else
|
||||||
|
req_gpgme_api=0
|
||||||
|
min_gpgme_version="$tmp"
|
||||||
|
fi
|
||||||
|
|
||||||
|
AC_MSG_CHECKING(for GPGME pthread - version >= $min_gpgme_version)
|
||||||
|
ok=no
|
||||||
|
if test "$GPGME_CONFIG" != "no" ; then
|
||||||
|
req_major=`echo $min_gpgme_version | \
|
||||||
|
sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\)/\1/'`
|
||||||
|
req_minor=`echo $min_gpgme_version | \
|
||||||
|
sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\)/\2/'`
|
||||||
|
req_micro=`echo $min_gpgme_version | \
|
||||||
|
sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\)/\3/'`
|
||||||
|
if test "$gpgme_version_major" -gt "$req_major"; then
|
||||||
|
ok=yes
|
||||||
|
else
|
||||||
|
if test "$gpgme_version_major" -eq "$req_major"; then
|
||||||
|
if test "$gpgme_version_minor" -gt "$req_minor"; then
|
||||||
|
ok=yes
|
||||||
|
else
|
||||||
|
if test "$gpgme_version_minor" -eq "$req_minor"; then
|
||||||
|
if test "$gpgme_version_micro" -ge "$req_micro"; then
|
||||||
|
ok=yes
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
if test $ok = yes; then
|
||||||
|
# If we have a recent GPGME, we should also check that the
|
||||||
|
# API is compatible.
|
||||||
|
if test "$req_gpgme_api" -gt 0 ; then
|
||||||
|
if test -z "$use_gpgrt_config"; then
|
||||||
|
tmp=`$GPGME_CONFIG --api-version 2>/dev/null || echo 0`
|
||||||
|
else
|
||||||
|
tmp=`$GPGME_CONFIG --variable=api_version 2>/dev/null || echo 0`
|
||||||
|
fi
|
||||||
|
if test "$tmp" -gt 0 ; then
|
||||||
|
if test "$req_gpgme_api" -ne "$tmp" ; then
|
||||||
|
ok=no
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
if test $ok = yes; then
|
||||||
|
GPGME_PTHREAD_CFLAGS=`$GPGME_CONFIG --cflags`
|
||||||
|
GPGME_PTHREAD_LIBS=`$GPGME_CONFIG --libs`
|
||||||
|
AC_MSG_RESULT(yes)
|
||||||
|
ifelse([$2], , :, [$2])
|
||||||
|
_AM_PATH_GPGME_CONFIG_HOST_CHECK
|
||||||
|
else
|
||||||
|
GPGME_PTHREAD_CFLAGS=""
|
||||||
|
GPGME_PTHREAD_LIBS=""
|
||||||
|
AC_MSG_RESULT(no)
|
||||||
|
ifelse([$3], , :, [$3])
|
||||||
|
fi
|
||||||
|
AC_SUBST(GPGME_PTHREAD_CFLAGS)
|
||||||
|
AC_SUBST(GPGME_PTHREAD_LIBS)
|
||||||
|
])
|
||||||
|
|
||||||
|
|
||||||
|
dnl AM_PATH_GPGME_GLIB([MINIMUM-VERSION,
|
||||||
|
dnl [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND ]]])
|
||||||
|
dnl Test for libgpgme-glib and define GPGME_GLIB_CFLAGS and GPGME_GLIB_LIBS.
|
||||||
|
dnl
|
||||||
|
AC_DEFUN([AM_PATH_GPGME_GLIB],
|
||||||
|
[ AC_REQUIRE([_AM_PATH_GPGME_CONFIG])dnl
|
||||||
|
tmp=ifelse([$1], ,1:0.4.2,$1)
|
||||||
|
if echo "$tmp" | grep ':' >/dev/null 2>/dev/null ; then
|
||||||
|
req_gpgme_api=`echo "$tmp" | sed 's/\(.*\):\(.*\)/\1/'`
|
||||||
|
min_gpgme_version=`echo "$tmp" | sed 's/\(.*\):\(.*\)/\2/'`
|
||||||
|
else
|
||||||
|
req_gpgme_api=0
|
||||||
|
min_gpgme_version="$tmp"
|
||||||
|
fi
|
||||||
|
|
||||||
|
AC_MSG_CHECKING(for GPGME - version >= $min_gpgme_version)
|
||||||
|
ok=no
|
||||||
|
if test "$GPGME_CONFIG" != "no" ; then
|
||||||
|
req_major=`echo $min_gpgme_version | \
|
||||||
|
sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\)/\1/'`
|
||||||
|
req_minor=`echo $min_gpgme_version | \
|
||||||
|
sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\)/\2/'`
|
||||||
|
req_micro=`echo $min_gpgme_version | \
|
||||||
|
sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\)/\3/'`
|
||||||
|
if test "$gpgme_version_major" -gt "$req_major"; then
|
||||||
|
ok=yes
|
||||||
|
else
|
||||||
|
if test "$gpgme_version_major" -eq "$req_major"; then
|
||||||
|
if test "$gpgme_version_minor" -gt "$req_minor"; then
|
||||||
|
ok=yes
|
||||||
|
else
|
||||||
|
if test "$gpgme_version_minor" -eq "$req_minor"; then
|
||||||
|
if test "$gpgme_version_micro" -ge "$req_micro"; then
|
||||||
|
ok=yes
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
if test $ok = yes; then
|
||||||
|
# If we have a recent GPGME, we should also check that the
|
||||||
|
# API is compatible.
|
||||||
|
if test "$req_gpgme_api" -gt 0 ; then
|
||||||
|
if test -z "$use_gpgrt_config"; then
|
||||||
|
tmp=`$GPGME_CONFIG --api-version 2>/dev/null || echo 0`
|
||||||
|
else
|
||||||
|
tmp=`$GPGME_CONFIG --variable=api_version 2>/dev/null || echo 0`
|
||||||
|
fi
|
||||||
|
if test "$tmp" -gt 0 ; then
|
||||||
|
if test "$req_gpgme_api" -ne "$tmp" ; then
|
||||||
|
ok=no
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
if test $ok = yes; then
|
||||||
|
if test -z "$use_gpgrt_config"; then
|
||||||
|
GPGME_GLIB_CFLAGS=`$GPGME_CONFIG --glib --cflags`
|
||||||
|
GPGME_GLIB_LIBS=`$GPGME_CONFIG --glib --libs`
|
||||||
|
else
|
||||||
|
if $GPGRT_CONFIG gpgme-glib --exists; then
|
||||||
|
GPGME_CONFIG="$GPGRT_CONFIG gpgme-glib"
|
||||||
|
GPGME_GLIB_CFLAGS=`$GPGME_CONFIG --cflags`
|
||||||
|
GPGME_GLIB_LIBS=`$GPGME_CONFIG --libs`
|
||||||
|
else
|
||||||
|
ok = no
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
if test $ok = yes; then
|
||||||
|
AC_MSG_RESULT(yes)
|
||||||
|
ifelse([$2], , :, [$2])
|
||||||
|
_AM_PATH_GPGME_CONFIG_HOST_CHECK
|
||||||
|
else
|
||||||
|
GPGME_GLIB_CFLAGS=""
|
||||||
|
GPGME_GLIB_LIBS=""
|
||||||
|
AC_MSG_RESULT(no)
|
||||||
|
ifelse([$3], , :, [$3])
|
||||||
|
fi
|
||||||
|
AC_SUBST(GPGME_GLIB_CFLAGS)
|
||||||
|
AC_SUBST(GPGME_GLIB_LIBS)
|
||||||
|
])
|
262
lang/python/m4/libassuan.m4
Normal file
262
lang/python/m4/libassuan.m4
Normal file
@ -0,0 +1,262 @@
|
|||||||
|
dnl Autoconf macros for libassuan
|
||||||
|
dnl Copyright (C) 2002, 2003, 2011 Free Software Foundation, Inc.
|
||||||
|
dnl
|
||||||
|
dnl This file is free software; as a special exception the author gives
|
||||||
|
dnl unlimited permission to copy and/or distribute it, with or without
|
||||||
|
dnl modifications, as long as this notice is preserved.
|
||||||
|
dnl
|
||||||
|
dnl This file is distributed in the hope that it will be useful, but
|
||||||
|
dnl WITHOUT ANY WARRANTY, to the extent permitted by law; without even the
|
||||||
|
dnl implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||||
|
dnl SPDX-License-Identifier: FSFULLR
|
||||||
|
# Last-changed: 2024-05-14
|
||||||
|
|
||||||
|
dnl
|
||||||
|
dnl Find gpgrt-config, which uses .pc file
|
||||||
|
dnl (minimum pkg-config functionality, supporting cross build)
|
||||||
|
dnl
|
||||||
|
dnl _AM_PATH_GPGRT_CONFIG
|
||||||
|
AC_DEFUN([_AM_PATH_GPGRT_CONFIG],[dnl
|
||||||
|
AC_PATH_PROG(GPGRT_CONFIG, gpgrt-config, no, [$prefix/bin:$PATH])
|
||||||
|
if test "$GPGRT_CONFIG" != "no"; then
|
||||||
|
# Determine gpgrt_libdir
|
||||||
|
#
|
||||||
|
# Get the prefix of gpgrt-config assuming it's something like:
|
||||||
|
# <PREFIX>/bin/gpgrt-config
|
||||||
|
gpgrt_prefix=${GPGRT_CONFIG%/*/*}
|
||||||
|
possible_libdir1=${gpgrt_prefix}/lib
|
||||||
|
# Determine by using system libdir-format with CC, it's like:
|
||||||
|
# Normal style: /usr/lib
|
||||||
|
# GNU cross style: /usr/<triplet>/lib
|
||||||
|
# Debian style: /usr/lib/<multiarch-name>
|
||||||
|
# Fedora/openSUSE style: /usr/lib, /usr/lib32 or /usr/lib64
|
||||||
|
# It is assumed that CC is specified to the one of host on cross build.
|
||||||
|
if libdir_candidates=$(${CC:-cc} -print-search-dirs | \
|
||||||
|
sed -n -e "/^libraries/{s/libraries: =//;s/:/\\
|
||||||
|
/g;p;}"); then
|
||||||
|
# From the output of -print-search-dirs, select valid pkgconfig dirs.
|
||||||
|
libdir_candidates=$(for dir in $libdir_candidates; do
|
||||||
|
if p=$(cd $dir 2>/dev/null && pwd); then
|
||||||
|
test -d "$p/pkgconfig" && echo $p;
|
||||||
|
fi
|
||||||
|
done)
|
||||||
|
|
||||||
|
for possible_libdir0 in $libdir_candidates; do
|
||||||
|
# possible_libdir0:
|
||||||
|
# Fallback candidate, the one of system-installed (by $CC)
|
||||||
|
# (/usr/<triplet>/lib, /usr/lib/<multiarch-name> or /usr/lib32)
|
||||||
|
# possible_libdir1:
|
||||||
|
# Another candidate, user-locally-installed
|
||||||
|
# (<gpgrt_prefix>/lib)
|
||||||
|
# possible_libdir2
|
||||||
|
# Most preferred
|
||||||
|
# (<gpgrt_prefix>/<triplet>/lib,
|
||||||
|
# <gpgrt_prefix>/lib/<multiarch-name> or <gpgrt_prefix>/lib32)
|
||||||
|
if test "${possible_libdir0##*/}" = "lib"; then
|
||||||
|
possible_prefix0=${possible_libdir0%/lib}
|
||||||
|
possible_prefix0_triplet=${possible_prefix0##*/}
|
||||||
|
if test -z "$possible_prefix0_triplet"; then
|
||||||
|
continue
|
||||||
|
fi
|
||||||
|
possible_libdir2=${gpgrt_prefix}/$possible_prefix0_triplet/lib
|
||||||
|
else
|
||||||
|
possible_prefix0=${possible_libdir0%%/lib*}
|
||||||
|
possible_libdir2=${gpgrt_prefix}${possible_libdir0#$possible_prefix0}
|
||||||
|
fi
|
||||||
|
if test -f ${possible_libdir2}/pkgconfig/gpg-error.pc; then
|
||||||
|
gpgrt_libdir=${possible_libdir2}
|
||||||
|
elif test -f ${possible_libdir1}/pkgconfig/gpg-error.pc; then
|
||||||
|
gpgrt_libdir=${possible_libdir1}
|
||||||
|
elif test -f ${possible_libdir0}/pkgconfig/gpg-error.pc; then
|
||||||
|
gpgrt_libdir=${possible_libdir0}
|
||||||
|
fi
|
||||||
|
if test -n "$gpgrt_libdir"; then break; fi
|
||||||
|
done
|
||||||
|
fi
|
||||||
|
if test -z "$gpgrt_libdir"; then
|
||||||
|
# No valid pkgconfig dir in any of the system directories, fallback
|
||||||
|
gpgrt_libdir=${possible_libdir1}
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
unset GPGRT_CONFIG
|
||||||
|
fi
|
||||||
|
|
||||||
|
if test -n "$gpgrt_libdir"; then
|
||||||
|
GPGRT_CONFIG="$GPGRT_CONFIG --libdir=$gpgrt_libdir"
|
||||||
|
if $GPGRT_CONFIG gpg-error >/dev/null 2>&1; then
|
||||||
|
GPG_ERROR_CONFIG="$GPGRT_CONFIG gpg-error"
|
||||||
|
AC_MSG_NOTICE([Use gpgrt-config with $gpgrt_libdir as gpg-error-config])
|
||||||
|
gpg_error_config_version=`$GPG_ERROR_CONFIG --modversion`
|
||||||
|
else
|
||||||
|
gpg_error_config_version=`$GPG_ERROR_CONFIG --version`
|
||||||
|
unset GPGRT_CONFIG
|
||||||
|
fi
|
||||||
|
elif test "$GPG_ERROR_CONFIG" != "no"; then
|
||||||
|
gpg_error_config_version=`$GPG_ERROR_CONFIG --version`
|
||||||
|
unset GPGRT_CONFIG
|
||||||
|
fi
|
||||||
|
])
|
||||||
|
|
||||||
|
dnl
|
||||||
|
dnl Common code used for libassuan detection [internal]
|
||||||
|
dnl Returns ok set to yes or no.
|
||||||
|
dnl
|
||||||
|
AC_DEFUN([_AM_PATH_LIBASSUAN_COMMON],
|
||||||
|
[ AC_REQUIRE([AC_CANONICAL_HOST])dnl
|
||||||
|
AC_REQUIRE([_AM_PATH_GPGRT_CONFIG])dnl
|
||||||
|
AC_ARG_WITH(libassuan-prefix,
|
||||||
|
AS_HELP_STRING([--with-libassuan-prefix=PFX],
|
||||||
|
[prefix where LIBASSUAN is installed (optional)]),
|
||||||
|
libassuan_config_prefix="$withval", libassuan_config_prefix="")
|
||||||
|
if test x$libassuan_config_prefix != x ; then
|
||||||
|
if test x${LIBASSUAN_CONFIG+set} != xset ; then
|
||||||
|
LIBASSUAN_CONFIG=$libassuan_config_prefix/bin/libassuan-config
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
use_gpgrt_config=""
|
||||||
|
if test x"$GPGRT_CONFIG" != x -a "$GPGRT_CONFIG" != "no"; then
|
||||||
|
if $GPGRT_CONFIG libassuan --exists; then
|
||||||
|
LIBASSUAN_CONFIG="$GPGRT_CONFIG libassuan"
|
||||||
|
AC_MSG_NOTICE([Use gpgrt-config as libassuan-config])
|
||||||
|
use_gpgrt_config=yes
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
if test -z "$use_gpgrt_config"; then
|
||||||
|
AC_PATH_PROG(LIBASSUAN_CONFIG, libassuan-config, no)
|
||||||
|
fi
|
||||||
|
|
||||||
|
tmp=ifelse([$1], ,1:0.9.2,$1)
|
||||||
|
if echo "$tmp" | grep ':' >/dev/null 2>/dev/null ; then
|
||||||
|
req_libassuan_api=`echo "$tmp" | sed 's/\(.*\):\(.*\)/\1/'`
|
||||||
|
min_libassuan_version=`echo "$tmp" | sed 's/\(.*\):\(.*\)/\2/'`
|
||||||
|
else
|
||||||
|
req_libassuan_api=0
|
||||||
|
min_libassuan_version="$tmp"
|
||||||
|
fi
|
||||||
|
|
||||||
|
AC_MSG_CHECKING(for LIBASSUAN - version >= $min_libassuan_version)
|
||||||
|
ok=no
|
||||||
|
if test "$LIBASSUAN_CONFIG" != "no"; then
|
||||||
|
req_major=`echo $min_libassuan_version | \
|
||||||
|
sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\)/\1/'`
|
||||||
|
req_minor=`echo $min_libassuan_version | \
|
||||||
|
sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\)/\2/'`
|
||||||
|
req_micro=`echo $min_libassuan_version | \
|
||||||
|
sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\)/\3/'`
|
||||||
|
|
||||||
|
if test -z "$use_gpgrt_config"; then
|
||||||
|
libassuan_config_version=`$LIBASSUAN_CONFIG --version`
|
||||||
|
else
|
||||||
|
libassuan_config_version=`$LIBASSUAN_CONFIG --modversion`
|
||||||
|
fi
|
||||||
|
major=`echo $libassuan_config_version | \
|
||||||
|
sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\).*/\1/'`
|
||||||
|
minor=`echo $libassuan_config_version | \
|
||||||
|
sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\).*/\2/'`
|
||||||
|
micro=`echo $libassuan_config_version | \
|
||||||
|
sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\).*/\3/'`
|
||||||
|
|
||||||
|
if test "$major" -gt "$req_major"; then
|
||||||
|
ok=yes
|
||||||
|
else
|
||||||
|
if test "$major" -eq "$req_major"; then
|
||||||
|
if test "$minor" -gt "$req_minor"; then
|
||||||
|
ok=yes
|
||||||
|
else
|
||||||
|
if test "$minor" -eq "$req_minor"; then
|
||||||
|
if test "$micro" -ge "$req_micro"; then
|
||||||
|
ok=yes
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
if test $ok = yes; then
|
||||||
|
AC_MSG_RESULT([yes ($libassuan_config_version)])
|
||||||
|
AC_DEFINE(LIBASSUAN_API_REQUESTED, $req_libassuan_api, Requested API version for libassuan)
|
||||||
|
else
|
||||||
|
AC_MSG_RESULT(no)
|
||||||
|
fi
|
||||||
|
|
||||||
|
if test $ok = yes; then
|
||||||
|
if test "$req_libassuan_api" -gt 0 ; then
|
||||||
|
if test -z "$use_gpgrt_config"; then
|
||||||
|
tmp=`$LIBASSUAN_CONFIG --api-version 2>/dev/null || echo 0`
|
||||||
|
else
|
||||||
|
tmp=`$LIBASSUAN_CONFIG --variable=api_version 2>/dev/null || echo 0`
|
||||||
|
fi
|
||||||
|
if test "$tmp" -gt 0 ; then
|
||||||
|
AC_MSG_CHECKING([LIBASSUAN API version])
|
||||||
|
if test "$req_libassuan_api" -eq "$tmp" ; then
|
||||||
|
AC_MSG_RESULT(okay)
|
||||||
|
elif test "$req_libassuan_api" -eq 2 -a "$tmp" -eq 3; then
|
||||||
|
AC_MSG_RESULT(okay)
|
||||||
|
else
|
||||||
|
ok=no
|
||||||
|
AC_MSG_RESULT([does not match. want=$req_libassuan_api got=$tmp.])
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
if test $ok = yes; then
|
||||||
|
if test x"$host" != x ; then
|
||||||
|
if test -z "$use_gpgrt_config"; then
|
||||||
|
libassuan_config_host=`$LIBASSUAN_CONFIG --host 2>/dev/null || echo none`
|
||||||
|
else
|
||||||
|
libassuan_config_host=`$LIBASSUAN_CONFIG --variable=host 2>/dev/null || echo none`
|
||||||
|
fi
|
||||||
|
if test x"$libassuan_config_host" != xnone ; then
|
||||||
|
if test x"$libassuan_config_host" != x"$host" ; then
|
||||||
|
AC_MSG_WARN([[
|
||||||
|
***
|
||||||
|
*** The config script "$LIBASSUAN_CONFIG" was
|
||||||
|
*** built for $libassuan_config_host and thus may not match the
|
||||||
|
*** used host $host.
|
||||||
|
*** You may want to use the configure option --with-libassuan-prefix
|
||||||
|
*** to specify a matching config script.
|
||||||
|
***]])
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
])
|
||||||
|
|
||||||
|
dnl AM_CHECK_LIBASSUAN([MINIMUM-VERSION,
|
||||||
|
dnl [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND ]]])
|
||||||
|
dnl Test whether libassuan has at least MINIMUM-VERSION. This is
|
||||||
|
dnl used to test for features only available in newer versions.
|
||||||
|
dnl
|
||||||
|
AC_DEFUN([AM_CHECK_LIBASSUAN],
|
||||||
|
[ _AM_PATH_LIBASSUAN_COMMON($1)
|
||||||
|
if test $ok = yes; then
|
||||||
|
ifelse([$2], , :, [$2])
|
||||||
|
else
|
||||||
|
ifelse([$3], , :, [$3])
|
||||||
|
fi
|
||||||
|
])
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
dnl AM_PATH_LIBASSUAN([MINIMUM-VERSION,
|
||||||
|
dnl [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND ]]])
|
||||||
|
dnl Test for libassuan and define LIBASSUAN_CFLAGS and LIBASSUAN_LIBS
|
||||||
|
dnl
|
||||||
|
AC_DEFUN([AM_PATH_LIBASSUAN],
|
||||||
|
[ _AM_PATH_LIBASSUAN_COMMON($1)
|
||||||
|
if test $ok = yes; then
|
||||||
|
LIBASSUAN_CFLAGS=`$LIBASSUAN_CONFIG --cflags`
|
||||||
|
LIBASSUAN_LIBS=`$LIBASSUAN_CONFIG --libs`
|
||||||
|
ifelse([$2], , :, [$2])
|
||||||
|
else
|
||||||
|
LIBASSUAN_CFLAGS=""
|
||||||
|
LIBASSUAN_LIBS=""
|
||||||
|
ifelse([$3], , :, [$3])
|
||||||
|
fi
|
||||||
|
AC_SUBST(LIBASSUAN_CFLAGS)
|
||||||
|
AC_SUBST(LIBASSUAN_LIBS)
|
||||||
|
])
|
8026
lang/python/m4/libtool.m4
vendored
Normal file
8026
lang/python/m4/libtool.m4
vendored
Normal file
File diff suppressed because it is too large
Load Diff
384
lang/python/m4/ltoptions.m4
vendored
Normal file
384
lang/python/m4/ltoptions.m4
vendored
Normal file
@ -0,0 +1,384 @@
|
|||||||
|
# Helper functions for option handling. -*- Autoconf -*-
|
||||||
|
#
|
||||||
|
# Copyright (C) 2004, 2005, 2007, 2008, 2009 Free Software Foundation,
|
||||||
|
# Inc.
|
||||||
|
# Written by Gary V. Vaughan, 2004
|
||||||
|
#
|
||||||
|
# This file is free software; the Free Software Foundation gives
|
||||||
|
# unlimited permission to copy and/or distribute it, with or without
|
||||||
|
# modifications, as long as this notice is preserved.
|
||||||
|
|
||||||
|
# serial 7 ltoptions.m4
|
||||||
|
|
||||||
|
# This is to help aclocal find these macros, as it can't see m4_define.
|
||||||
|
AC_DEFUN([LTOPTIONS_VERSION], [m4_if([1])])
|
||||||
|
|
||||||
|
|
||||||
|
# _LT_MANGLE_OPTION(MACRO-NAME, OPTION-NAME)
|
||||||
|
# ------------------------------------------
|
||||||
|
m4_define([_LT_MANGLE_OPTION],
|
||||||
|
[[_LT_OPTION_]m4_bpatsubst($1__$2, [[^a-zA-Z0-9_]], [_])])
|
||||||
|
|
||||||
|
|
||||||
|
# _LT_SET_OPTION(MACRO-NAME, OPTION-NAME)
|
||||||
|
# ---------------------------------------
|
||||||
|
# Set option OPTION-NAME for macro MACRO-NAME, and if there is a
|
||||||
|
# matching handler defined, dispatch to it. Other OPTION-NAMEs are
|
||||||
|
# saved as a flag.
|
||||||
|
m4_define([_LT_SET_OPTION],
|
||||||
|
[m4_define(_LT_MANGLE_OPTION([$1], [$2]))dnl
|
||||||
|
m4_ifdef(_LT_MANGLE_DEFUN([$1], [$2]),
|
||||||
|
_LT_MANGLE_DEFUN([$1], [$2]),
|
||||||
|
[m4_warning([Unknown $1 option `$2'])])[]dnl
|
||||||
|
])
|
||||||
|
|
||||||
|
|
||||||
|
# _LT_IF_OPTION(MACRO-NAME, OPTION-NAME, IF-SET, [IF-NOT-SET])
|
||||||
|
# ------------------------------------------------------------
|
||||||
|
# Execute IF-SET if OPTION is set, IF-NOT-SET otherwise.
|
||||||
|
m4_define([_LT_IF_OPTION],
|
||||||
|
[m4_ifdef(_LT_MANGLE_OPTION([$1], [$2]), [$3], [$4])])
|
||||||
|
|
||||||
|
|
||||||
|
# _LT_UNLESS_OPTIONS(MACRO-NAME, OPTION-LIST, IF-NOT-SET)
|
||||||
|
# -------------------------------------------------------
|
||||||
|
# Execute IF-NOT-SET unless all options in OPTION-LIST for MACRO-NAME
|
||||||
|
# are set.
|
||||||
|
m4_define([_LT_UNLESS_OPTIONS],
|
||||||
|
[m4_foreach([_LT_Option], m4_split(m4_normalize([$2])),
|
||||||
|
[m4_ifdef(_LT_MANGLE_OPTION([$1], _LT_Option),
|
||||||
|
[m4_define([$0_found])])])[]dnl
|
||||||
|
m4_ifdef([$0_found], [m4_undefine([$0_found])], [$3
|
||||||
|
])[]dnl
|
||||||
|
])
|
||||||
|
|
||||||
|
|
||||||
|
# _LT_SET_OPTIONS(MACRO-NAME, OPTION-LIST)
|
||||||
|
# ----------------------------------------
|
||||||
|
# OPTION-LIST is a space-separated list of Libtool options associated
|
||||||
|
# with MACRO-NAME. If any OPTION has a matching handler declared with
|
||||||
|
# LT_OPTION_DEFINE, dispatch to that macro; otherwise complain about
|
||||||
|
# the unknown option and exit.
|
||||||
|
m4_defun([_LT_SET_OPTIONS],
|
||||||
|
[# Set options
|
||||||
|
m4_foreach([_LT_Option], m4_split(m4_normalize([$2])),
|
||||||
|
[_LT_SET_OPTION([$1], _LT_Option)])
|
||||||
|
|
||||||
|
m4_if([$1],[LT_INIT],[
|
||||||
|
dnl
|
||||||
|
dnl Simply set some default values (i.e off) if boolean options were not
|
||||||
|
dnl specified:
|
||||||
|
_LT_UNLESS_OPTIONS([LT_INIT], [dlopen], [enable_dlopen=no
|
||||||
|
])
|
||||||
|
_LT_UNLESS_OPTIONS([LT_INIT], [win32-dll], [enable_win32_dll=no
|
||||||
|
])
|
||||||
|
dnl
|
||||||
|
dnl If no reference was made to various pairs of opposing options, then
|
||||||
|
dnl we run the default mode handler for the pair. For example, if neither
|
||||||
|
dnl `shared' nor `disable-shared' was passed, we enable building of shared
|
||||||
|
dnl archives by default:
|
||||||
|
_LT_UNLESS_OPTIONS([LT_INIT], [shared disable-shared], [_LT_ENABLE_SHARED])
|
||||||
|
_LT_UNLESS_OPTIONS([LT_INIT], [static disable-static], [_LT_ENABLE_STATIC])
|
||||||
|
_LT_UNLESS_OPTIONS([LT_INIT], [pic-only no-pic], [_LT_WITH_PIC])
|
||||||
|
_LT_UNLESS_OPTIONS([LT_INIT], [fast-install disable-fast-install],
|
||||||
|
[_LT_ENABLE_FAST_INSTALL])
|
||||||
|
])
|
||||||
|
])# _LT_SET_OPTIONS
|
||||||
|
|
||||||
|
|
||||||
|
## --------------------------------- ##
|
||||||
|
## Macros to handle LT_INIT options. ##
|
||||||
|
## --------------------------------- ##
|
||||||
|
|
||||||
|
# _LT_MANGLE_DEFUN(MACRO-NAME, OPTION-NAME)
|
||||||
|
# -----------------------------------------
|
||||||
|
m4_define([_LT_MANGLE_DEFUN],
|
||||||
|
[[_LT_OPTION_DEFUN_]m4_bpatsubst(m4_toupper([$1__$2]), [[^A-Z0-9_]], [_])])
|
||||||
|
|
||||||
|
|
||||||
|
# LT_OPTION_DEFINE(MACRO-NAME, OPTION-NAME, CODE)
|
||||||
|
# -----------------------------------------------
|
||||||
|
m4_define([LT_OPTION_DEFINE],
|
||||||
|
[m4_define(_LT_MANGLE_DEFUN([$1], [$2]), [$3])[]dnl
|
||||||
|
])# LT_OPTION_DEFINE
|
||||||
|
|
||||||
|
|
||||||
|
# dlopen
|
||||||
|
# ------
|
||||||
|
LT_OPTION_DEFINE([LT_INIT], [dlopen], [enable_dlopen=yes
|
||||||
|
])
|
||||||
|
|
||||||
|
AU_DEFUN([AC_LIBTOOL_DLOPEN],
|
||||||
|
[_LT_SET_OPTION([LT_INIT], [dlopen])
|
||||||
|
AC_DIAGNOSE([obsolete],
|
||||||
|
[$0: Remove this warning and the call to _LT_SET_OPTION when you
|
||||||
|
put the `dlopen' option into LT_INIT's first parameter.])
|
||||||
|
])
|
||||||
|
|
||||||
|
dnl aclocal-1.4 backwards compatibility:
|
||||||
|
dnl AC_DEFUN([AC_LIBTOOL_DLOPEN], [])
|
||||||
|
|
||||||
|
|
||||||
|
# win32-dll
|
||||||
|
# ---------
|
||||||
|
# Declare package support for building win32 dll's.
|
||||||
|
LT_OPTION_DEFINE([LT_INIT], [win32-dll],
|
||||||
|
[enable_win32_dll=yes
|
||||||
|
|
||||||
|
case $host in
|
||||||
|
*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-cegcc*)
|
||||||
|
AC_CHECK_TOOL(AS, as, false)
|
||||||
|
AC_CHECK_TOOL(DLLTOOL, dlltool, false)
|
||||||
|
AC_CHECK_TOOL(OBJDUMP, objdump, false)
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
test -z "$AS" && AS=as
|
||||||
|
_LT_DECL([], [AS], [1], [Assembler program])dnl
|
||||||
|
|
||||||
|
test -z "$DLLTOOL" && DLLTOOL=dlltool
|
||||||
|
_LT_DECL([], [DLLTOOL], [1], [DLL creation program])dnl
|
||||||
|
|
||||||
|
test -z "$OBJDUMP" && OBJDUMP=objdump
|
||||||
|
_LT_DECL([], [OBJDUMP], [1], [Object dumper program])dnl
|
||||||
|
])# win32-dll
|
||||||
|
|
||||||
|
AU_DEFUN([AC_LIBTOOL_WIN32_DLL],
|
||||||
|
[AC_REQUIRE([AC_CANONICAL_HOST])dnl
|
||||||
|
_LT_SET_OPTION([LT_INIT], [win32-dll])
|
||||||
|
AC_DIAGNOSE([obsolete],
|
||||||
|
[$0: Remove this warning and the call to _LT_SET_OPTION when you
|
||||||
|
put the `win32-dll' option into LT_INIT's first parameter.])
|
||||||
|
])
|
||||||
|
|
||||||
|
dnl aclocal-1.4 backwards compatibility:
|
||||||
|
dnl AC_DEFUN([AC_LIBTOOL_WIN32_DLL], [])
|
||||||
|
|
||||||
|
|
||||||
|
# _LT_ENABLE_SHARED([DEFAULT])
|
||||||
|
# ----------------------------
|
||||||
|
# implement the --enable-shared flag, and supports the `shared' and
|
||||||
|
# `disable-shared' LT_INIT options.
|
||||||
|
# DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'.
|
||||||
|
m4_define([_LT_ENABLE_SHARED],
|
||||||
|
[m4_define([_LT_ENABLE_SHARED_DEFAULT], [m4_if($1, no, no, yes)])dnl
|
||||||
|
AC_ARG_ENABLE([shared],
|
||||||
|
[AS_HELP_STRING([--enable-shared@<:@=PKGS@:>@],
|
||||||
|
[build shared libraries @<:@default=]_LT_ENABLE_SHARED_DEFAULT[@:>@])],
|
||||||
|
[p=${PACKAGE-default}
|
||||||
|
case $enableval in
|
||||||
|
yes) enable_shared=yes ;;
|
||||||
|
no) enable_shared=no ;;
|
||||||
|
*)
|
||||||
|
enable_shared=no
|
||||||
|
# Look at the argument we got. We use all the common list separators.
|
||||||
|
lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
|
||||||
|
for pkg in $enableval; do
|
||||||
|
IFS="$lt_save_ifs"
|
||||||
|
if test "X$pkg" = "X$p"; then
|
||||||
|
enable_shared=yes
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
IFS="$lt_save_ifs"
|
||||||
|
;;
|
||||||
|
esac],
|
||||||
|
[enable_shared=]_LT_ENABLE_SHARED_DEFAULT)
|
||||||
|
|
||||||
|
_LT_DECL([build_libtool_libs], [enable_shared], [0],
|
||||||
|
[Whether or not to build shared libraries])
|
||||||
|
])# _LT_ENABLE_SHARED
|
||||||
|
|
||||||
|
LT_OPTION_DEFINE([LT_INIT], [shared], [_LT_ENABLE_SHARED([yes])])
|
||||||
|
LT_OPTION_DEFINE([LT_INIT], [disable-shared], [_LT_ENABLE_SHARED([no])])
|
||||||
|
|
||||||
|
# Old names:
|
||||||
|
AC_DEFUN([AC_ENABLE_SHARED],
|
||||||
|
[_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[shared])
|
||||||
|
])
|
||||||
|
|
||||||
|
AC_DEFUN([AC_DISABLE_SHARED],
|
||||||
|
[_LT_SET_OPTION([LT_INIT], [disable-shared])
|
||||||
|
])
|
||||||
|
|
||||||
|
AU_DEFUN([AM_ENABLE_SHARED], [AC_ENABLE_SHARED($@)])
|
||||||
|
AU_DEFUN([AM_DISABLE_SHARED], [AC_DISABLE_SHARED($@)])
|
||||||
|
|
||||||
|
dnl aclocal-1.4 backwards compatibility:
|
||||||
|
dnl AC_DEFUN([AM_ENABLE_SHARED], [])
|
||||||
|
dnl AC_DEFUN([AM_DISABLE_SHARED], [])
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# _LT_ENABLE_STATIC([DEFAULT])
|
||||||
|
# ----------------------------
|
||||||
|
# implement the --enable-static flag, and support the `static' and
|
||||||
|
# `disable-static' LT_INIT options.
|
||||||
|
# DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'.
|
||||||
|
m4_define([_LT_ENABLE_STATIC],
|
||||||
|
[m4_define([_LT_ENABLE_STATIC_DEFAULT], [m4_if($1, no, no, yes)])dnl
|
||||||
|
AC_ARG_ENABLE([static],
|
||||||
|
[AS_HELP_STRING([--enable-static@<:@=PKGS@:>@],
|
||||||
|
[build static libraries @<:@default=]_LT_ENABLE_STATIC_DEFAULT[@:>@])],
|
||||||
|
[p=${PACKAGE-default}
|
||||||
|
case $enableval in
|
||||||
|
yes) enable_static=yes ;;
|
||||||
|
no) enable_static=no ;;
|
||||||
|
*)
|
||||||
|
enable_static=no
|
||||||
|
# Look at the argument we got. We use all the common list separators.
|
||||||
|
lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
|
||||||
|
for pkg in $enableval; do
|
||||||
|
IFS="$lt_save_ifs"
|
||||||
|
if test "X$pkg" = "X$p"; then
|
||||||
|
enable_static=yes
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
IFS="$lt_save_ifs"
|
||||||
|
;;
|
||||||
|
esac],
|
||||||
|
[enable_static=]_LT_ENABLE_STATIC_DEFAULT)
|
||||||
|
|
||||||
|
_LT_DECL([build_old_libs], [enable_static], [0],
|
||||||
|
[Whether or not to build static libraries])
|
||||||
|
])# _LT_ENABLE_STATIC
|
||||||
|
|
||||||
|
LT_OPTION_DEFINE([LT_INIT], [static], [_LT_ENABLE_STATIC([yes])])
|
||||||
|
LT_OPTION_DEFINE([LT_INIT], [disable-static], [_LT_ENABLE_STATIC([no])])
|
||||||
|
|
||||||
|
# Old names:
|
||||||
|
AC_DEFUN([AC_ENABLE_STATIC],
|
||||||
|
[_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[static])
|
||||||
|
])
|
||||||
|
|
||||||
|
AC_DEFUN([AC_DISABLE_STATIC],
|
||||||
|
[_LT_SET_OPTION([LT_INIT], [disable-static])
|
||||||
|
])
|
||||||
|
|
||||||
|
AU_DEFUN([AM_ENABLE_STATIC], [AC_ENABLE_STATIC($@)])
|
||||||
|
AU_DEFUN([AM_DISABLE_STATIC], [AC_DISABLE_STATIC($@)])
|
||||||
|
|
||||||
|
dnl aclocal-1.4 backwards compatibility:
|
||||||
|
dnl AC_DEFUN([AM_ENABLE_STATIC], [])
|
||||||
|
dnl AC_DEFUN([AM_DISABLE_STATIC], [])
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# _LT_ENABLE_FAST_INSTALL([DEFAULT])
|
||||||
|
# ----------------------------------
|
||||||
|
# implement the --enable-fast-install flag, and support the `fast-install'
|
||||||
|
# and `disable-fast-install' LT_INIT options.
|
||||||
|
# DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'.
|
||||||
|
m4_define([_LT_ENABLE_FAST_INSTALL],
|
||||||
|
[m4_define([_LT_ENABLE_FAST_INSTALL_DEFAULT], [m4_if($1, no, no, yes)])dnl
|
||||||
|
AC_ARG_ENABLE([fast-install],
|
||||||
|
[AS_HELP_STRING([--enable-fast-install@<:@=PKGS@:>@],
|
||||||
|
[optimize for fast installation @<:@default=]_LT_ENABLE_FAST_INSTALL_DEFAULT[@:>@])],
|
||||||
|
[p=${PACKAGE-default}
|
||||||
|
case $enableval in
|
||||||
|
yes) enable_fast_install=yes ;;
|
||||||
|
no) enable_fast_install=no ;;
|
||||||
|
*)
|
||||||
|
enable_fast_install=no
|
||||||
|
# Look at the argument we got. We use all the common list separators.
|
||||||
|
lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
|
||||||
|
for pkg in $enableval; do
|
||||||
|
IFS="$lt_save_ifs"
|
||||||
|
if test "X$pkg" = "X$p"; then
|
||||||
|
enable_fast_install=yes
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
IFS="$lt_save_ifs"
|
||||||
|
;;
|
||||||
|
esac],
|
||||||
|
[enable_fast_install=]_LT_ENABLE_FAST_INSTALL_DEFAULT)
|
||||||
|
|
||||||
|
_LT_DECL([fast_install], [enable_fast_install], [0],
|
||||||
|
[Whether or not to optimize for fast installation])dnl
|
||||||
|
])# _LT_ENABLE_FAST_INSTALL
|
||||||
|
|
||||||
|
LT_OPTION_DEFINE([LT_INIT], [fast-install], [_LT_ENABLE_FAST_INSTALL([yes])])
|
||||||
|
LT_OPTION_DEFINE([LT_INIT], [disable-fast-install], [_LT_ENABLE_FAST_INSTALL([no])])
|
||||||
|
|
||||||
|
# Old names:
|
||||||
|
AU_DEFUN([AC_ENABLE_FAST_INSTALL],
|
||||||
|
[_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[fast-install])
|
||||||
|
AC_DIAGNOSE([obsolete],
|
||||||
|
[$0: Remove this warning and the call to _LT_SET_OPTION when you put
|
||||||
|
the `fast-install' option into LT_INIT's first parameter.])
|
||||||
|
])
|
||||||
|
|
||||||
|
AU_DEFUN([AC_DISABLE_FAST_INSTALL],
|
||||||
|
[_LT_SET_OPTION([LT_INIT], [disable-fast-install])
|
||||||
|
AC_DIAGNOSE([obsolete],
|
||||||
|
[$0: Remove this warning and the call to _LT_SET_OPTION when you put
|
||||||
|
the `disable-fast-install' option into LT_INIT's first parameter.])
|
||||||
|
])
|
||||||
|
|
||||||
|
dnl aclocal-1.4 backwards compatibility:
|
||||||
|
dnl AC_DEFUN([AC_ENABLE_FAST_INSTALL], [])
|
||||||
|
dnl AC_DEFUN([AM_DISABLE_FAST_INSTALL], [])
|
||||||
|
|
||||||
|
|
||||||
|
# _LT_WITH_PIC([MODE])
|
||||||
|
# --------------------
|
||||||
|
# implement the --with-pic flag, and support the `pic-only' and `no-pic'
|
||||||
|
# LT_INIT options.
|
||||||
|
# MODE is either `yes' or `no'. If omitted, it defaults to `both'.
|
||||||
|
m4_define([_LT_WITH_PIC],
|
||||||
|
[AC_ARG_WITH([pic],
|
||||||
|
[AS_HELP_STRING([--with-pic@<:@=PKGS@:>@],
|
||||||
|
[try to use only PIC/non-PIC objects @<:@default=use both@:>@])],
|
||||||
|
[lt_p=${PACKAGE-default}
|
||||||
|
case $withval in
|
||||||
|
yes|no) pic_mode=$withval ;;
|
||||||
|
*)
|
||||||
|
pic_mode=default
|
||||||
|
# Look at the argument we got. We use all the common list separators.
|
||||||
|
lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
|
||||||
|
for lt_pkg in $withval; do
|
||||||
|
IFS="$lt_save_ifs"
|
||||||
|
if test "X$lt_pkg" = "X$lt_p"; then
|
||||||
|
pic_mode=yes
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
IFS="$lt_save_ifs"
|
||||||
|
;;
|
||||||
|
esac],
|
||||||
|
[pic_mode=default])
|
||||||
|
|
||||||
|
test -z "$pic_mode" && pic_mode=m4_default([$1], [default])
|
||||||
|
|
||||||
|
_LT_DECL([], [pic_mode], [0], [What type of objects to build])dnl
|
||||||
|
])# _LT_WITH_PIC
|
||||||
|
|
||||||
|
LT_OPTION_DEFINE([LT_INIT], [pic-only], [_LT_WITH_PIC([yes])])
|
||||||
|
LT_OPTION_DEFINE([LT_INIT], [no-pic], [_LT_WITH_PIC([no])])
|
||||||
|
|
||||||
|
# Old name:
|
||||||
|
AU_DEFUN([AC_LIBTOOL_PICMODE],
|
||||||
|
[_LT_SET_OPTION([LT_INIT], [pic-only])
|
||||||
|
AC_DIAGNOSE([obsolete],
|
||||||
|
[$0: Remove this warning and the call to _LT_SET_OPTION when you
|
||||||
|
put the `pic-only' option into LT_INIT's first parameter.])
|
||||||
|
])
|
||||||
|
|
||||||
|
dnl aclocal-1.4 backwards compatibility:
|
||||||
|
dnl AC_DEFUN([AC_LIBTOOL_PICMODE], [])
|
||||||
|
|
||||||
|
## ----------------- ##
|
||||||
|
## LTDL_INIT Options ##
|
||||||
|
## ----------------- ##
|
||||||
|
|
||||||
|
m4_define([_LTDL_MODE], [])
|
||||||
|
LT_OPTION_DEFINE([LTDL_INIT], [nonrecursive],
|
||||||
|
[m4_define([_LTDL_MODE], [nonrecursive])])
|
||||||
|
LT_OPTION_DEFINE([LTDL_INIT], [recursive],
|
||||||
|
[m4_define([_LTDL_MODE], [recursive])])
|
||||||
|
LT_OPTION_DEFINE([LTDL_INIT], [subproject],
|
||||||
|
[m4_define([_LTDL_MODE], [subproject])])
|
||||||
|
|
||||||
|
m4_define([_LTDL_TYPE], [])
|
||||||
|
LT_OPTION_DEFINE([LTDL_INIT], [installable],
|
||||||
|
[m4_define([_LTDL_TYPE], [installable])])
|
||||||
|
LT_OPTION_DEFINE([LTDL_INIT], [convenience],
|
||||||
|
[m4_define([_LTDL_TYPE], [convenience])])
|
123
lang/python/m4/ltsugar.m4
vendored
Normal file
123
lang/python/m4/ltsugar.m4
vendored
Normal file
@ -0,0 +1,123 @@
|
|||||||
|
# ltsugar.m4 -- libtool m4 base layer. -*-Autoconf-*-
|
||||||
|
#
|
||||||
|
# Copyright (C) 2004, 2005, 2007, 2008 Free Software Foundation, Inc.
|
||||||
|
# Written by Gary V. Vaughan, 2004
|
||||||
|
#
|
||||||
|
# This file is free software; the Free Software Foundation gives
|
||||||
|
# unlimited permission to copy and/or distribute it, with or without
|
||||||
|
# modifications, as long as this notice is preserved.
|
||||||
|
|
||||||
|
# serial 6 ltsugar.m4
|
||||||
|
|
||||||
|
# This is to help aclocal find these macros, as it can't see m4_define.
|
||||||
|
AC_DEFUN([LTSUGAR_VERSION], [m4_if([0.1])])
|
||||||
|
|
||||||
|
|
||||||
|
# lt_join(SEP, ARG1, [ARG2...])
|
||||||
|
# -----------------------------
|
||||||
|
# Produce ARG1SEPARG2...SEPARGn, omitting [] arguments and their
|
||||||
|
# associated separator.
|
||||||
|
# Needed until we can rely on m4_join from Autoconf 2.62, since all earlier
|
||||||
|
# versions in m4sugar had bugs.
|
||||||
|
m4_define([lt_join],
|
||||||
|
[m4_if([$#], [1], [],
|
||||||
|
[$#], [2], [[$2]],
|
||||||
|
[m4_if([$2], [], [], [[$2]_])$0([$1], m4_shift(m4_shift($@)))])])
|
||||||
|
m4_define([_lt_join],
|
||||||
|
[m4_if([$#$2], [2], [],
|
||||||
|
[m4_if([$2], [], [], [[$1$2]])$0([$1], m4_shift(m4_shift($@)))])])
|
||||||
|
|
||||||
|
|
||||||
|
# lt_car(LIST)
|
||||||
|
# lt_cdr(LIST)
|
||||||
|
# ------------
|
||||||
|
# Manipulate m4 lists.
|
||||||
|
# These macros are necessary as long as will still need to support
|
||||||
|
# Autoconf-2.59 which quotes differently.
|
||||||
|
m4_define([lt_car], [[$1]])
|
||||||
|
m4_define([lt_cdr],
|
||||||
|
[m4_if([$#], 0, [m4_fatal([$0: cannot be called without arguments])],
|
||||||
|
[$#], 1, [],
|
||||||
|
[m4_dquote(m4_shift($@))])])
|
||||||
|
m4_define([lt_unquote], $1)
|
||||||
|
|
||||||
|
|
||||||
|
# lt_append(MACRO-NAME, STRING, [SEPARATOR])
|
||||||
|
# ------------------------------------------
|
||||||
|
# Redefine MACRO-NAME to hold its former content plus `SEPARATOR'`STRING'.
|
||||||
|
# Note that neither SEPARATOR nor STRING are expanded; they are appended
|
||||||
|
# to MACRO-NAME as is (leaving the expansion for when MACRO-NAME is invoked).
|
||||||
|
# No SEPARATOR is output if MACRO-NAME was previously undefined (different
|
||||||
|
# than defined and empty).
|
||||||
|
#
|
||||||
|
# This macro is needed until we can rely on Autoconf 2.62, since earlier
|
||||||
|
# versions of m4sugar mistakenly expanded SEPARATOR but not STRING.
|
||||||
|
m4_define([lt_append],
|
||||||
|
[m4_define([$1],
|
||||||
|
m4_ifdef([$1], [m4_defn([$1])[$3]])[$2])])
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# lt_combine(SEP, PREFIX-LIST, INFIX, SUFFIX1, [SUFFIX2...])
|
||||||
|
# ----------------------------------------------------------
|
||||||
|
# Produce a SEP delimited list of all paired combinations of elements of
|
||||||
|
# PREFIX-LIST with SUFFIX1 through SUFFIXn. Each element of the list
|
||||||
|
# has the form PREFIXmINFIXSUFFIXn.
|
||||||
|
# Needed until we can rely on m4_combine added in Autoconf 2.62.
|
||||||
|
m4_define([lt_combine],
|
||||||
|
[m4_if(m4_eval([$# > 3]), [1],
|
||||||
|
[m4_pushdef([_Lt_sep], [m4_define([_Lt_sep], m4_defn([lt_car]))])]]dnl
|
||||||
|
[[m4_foreach([_Lt_prefix], [$2],
|
||||||
|
[m4_foreach([_Lt_suffix],
|
||||||
|
]m4_dquote(m4_dquote(m4_shift(m4_shift(m4_shift($@)))))[,
|
||||||
|
[_Lt_sep([$1])[]m4_defn([_Lt_prefix])[$3]m4_defn([_Lt_suffix])])])])])
|
||||||
|
|
||||||
|
|
||||||
|
# lt_if_append_uniq(MACRO-NAME, VARNAME, [SEPARATOR], [UNIQ], [NOT-UNIQ])
|
||||||
|
# -----------------------------------------------------------------------
|
||||||
|
# Iff MACRO-NAME does not yet contain VARNAME, then append it (delimited
|
||||||
|
# by SEPARATOR if supplied) and expand UNIQ, else NOT-UNIQ.
|
||||||
|
m4_define([lt_if_append_uniq],
|
||||||
|
[m4_ifdef([$1],
|
||||||
|
[m4_if(m4_index([$3]m4_defn([$1])[$3], [$3$2$3]), [-1],
|
||||||
|
[lt_append([$1], [$2], [$3])$4],
|
||||||
|
[$5])],
|
||||||
|
[lt_append([$1], [$2], [$3])$4])])
|
||||||
|
|
||||||
|
|
||||||
|
# lt_dict_add(DICT, KEY, VALUE)
|
||||||
|
# -----------------------------
|
||||||
|
m4_define([lt_dict_add],
|
||||||
|
[m4_define([$1($2)], [$3])])
|
||||||
|
|
||||||
|
|
||||||
|
# lt_dict_add_subkey(DICT, KEY, SUBKEY, VALUE)
|
||||||
|
# --------------------------------------------
|
||||||
|
m4_define([lt_dict_add_subkey],
|
||||||
|
[m4_define([$1($2:$3)], [$4])])
|
||||||
|
|
||||||
|
|
||||||
|
# lt_dict_fetch(DICT, KEY, [SUBKEY])
|
||||||
|
# ----------------------------------
|
||||||
|
m4_define([lt_dict_fetch],
|
||||||
|
[m4_ifval([$3],
|
||||||
|
m4_ifdef([$1($2:$3)], [m4_defn([$1($2:$3)])]),
|
||||||
|
m4_ifdef([$1($2)], [m4_defn([$1($2)])]))])
|
||||||
|
|
||||||
|
|
||||||
|
# lt_if_dict_fetch(DICT, KEY, [SUBKEY], VALUE, IF-TRUE, [IF-FALSE])
|
||||||
|
# -----------------------------------------------------------------
|
||||||
|
m4_define([lt_if_dict_fetch],
|
||||||
|
[m4_if(lt_dict_fetch([$1], [$2], [$3]), [$4],
|
||||||
|
[$5],
|
||||||
|
[$6])])
|
||||||
|
|
||||||
|
|
||||||
|
# lt_dict_filter(DICT, [SUBKEY], VALUE, [SEPARATOR], KEY, [...])
|
||||||
|
# --------------------------------------------------------------
|
||||||
|
m4_define([lt_dict_filter],
|
||||||
|
[m4_if([$5], [], [],
|
||||||
|
[lt_join(m4_quote(m4_default([$4], [[, ]])),
|
||||||
|
lt_unquote(m4_split(m4_normalize(m4_foreach(_Lt_key, lt_car([m4_shiftn(4, $@)]),
|
||||||
|
[lt_if_dict_fetch([$1], _Lt_key, [$2], [$3], [_Lt_key ])])))))])[]dnl
|
||||||
|
])
|
23
lang/python/m4/ltversion.m4
vendored
Normal file
23
lang/python/m4/ltversion.m4
vendored
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
# ltversion.m4 -- version numbers -*- Autoconf -*-
|
||||||
|
#
|
||||||
|
# Copyright (C) 2004 Free Software Foundation, Inc.
|
||||||
|
# Written by Scott James Remnant, 2004
|
||||||
|
#
|
||||||
|
# This file is free software; the Free Software Foundation gives
|
||||||
|
# unlimited permission to copy and/or distribute it, with or without
|
||||||
|
# modifications, as long as this notice is preserved.
|
||||||
|
|
||||||
|
# @configure_input@
|
||||||
|
|
||||||
|
# serial 3337 ltversion.m4
|
||||||
|
# This file is part of GNU Libtool
|
||||||
|
|
||||||
|
m4_define([LT_PACKAGE_VERSION], [2.4.2])
|
||||||
|
m4_define([LT_PACKAGE_REVISION], [1.3337])
|
||||||
|
|
||||||
|
AC_DEFUN([LTVERSION_VERSION],
|
||||||
|
[macro_version='2.4.2'
|
||||||
|
macro_revision='1.3337'
|
||||||
|
_LT_DECL(, macro_version, 0, [Which release of libtool.m4 was used?])
|
||||||
|
_LT_DECL(, macro_revision, 0)
|
||||||
|
])
|
98
lang/python/m4/lt~obsolete.m4
vendored
Normal file
98
lang/python/m4/lt~obsolete.m4
vendored
Normal file
@ -0,0 +1,98 @@
|
|||||||
|
# lt~obsolete.m4 -- aclocal satisfying obsolete definitions. -*-Autoconf-*-
|
||||||
|
#
|
||||||
|
# Copyright (C) 2004, 2005, 2007, 2009 Free Software Foundation, Inc.
|
||||||
|
# Written by Scott James Remnant, 2004.
|
||||||
|
#
|
||||||
|
# This file is free software; the Free Software Foundation gives
|
||||||
|
# unlimited permission to copy and/or distribute it, with or without
|
||||||
|
# modifications, as long as this notice is preserved.
|
||||||
|
|
||||||
|
# serial 5 lt~obsolete.m4
|
||||||
|
|
||||||
|
# These exist entirely to fool aclocal when bootstrapping libtool.
|
||||||
|
#
|
||||||
|
# In the past libtool.m4 has provided macros via AC_DEFUN (or AU_DEFUN)
|
||||||
|
# which have later been changed to m4_define as they aren't part of the
|
||||||
|
# exported API, or moved to Autoconf or Automake where they belong.
|
||||||
|
#
|
||||||
|
# The trouble is, aclocal is a bit thick. It'll see the old AC_DEFUN
|
||||||
|
# in /usr/share/aclocal/libtool.m4 and remember it, then when it sees us
|
||||||
|
# using a macro with the same name in our local m4/libtool.m4 it'll
|
||||||
|
# pull the old libtool.m4 in (it doesn't see our shiny new m4_define
|
||||||
|
# and doesn't know about Autoconf macros at all.)
|
||||||
|
#
|
||||||
|
# So we provide this file, which has a silly filename so it's always
|
||||||
|
# included after everything else. This provides aclocal with the
|
||||||
|
# AC_DEFUNs it wants, but when m4 processes it, it doesn't do anything
|
||||||
|
# because those macros already exist, or will be overwritten later.
|
||||||
|
# We use AC_DEFUN over AU_DEFUN for compatibility with aclocal-1.6.
|
||||||
|
#
|
||||||
|
# Anytime we withdraw an AC_DEFUN or AU_DEFUN, remember to add it here.
|
||||||
|
# Yes, that means every name once taken will need to remain here until
|
||||||
|
# we give up compatibility with versions before 1.7, at which point
|
||||||
|
# we need to keep only those names which we still refer to.
|
||||||
|
|
||||||
|
# This is to help aclocal find these macros, as it can't see m4_define.
|
||||||
|
AC_DEFUN([LTOBSOLETE_VERSION], [m4_if([1])])
|
||||||
|
|
||||||
|
m4_ifndef([AC_LIBTOOL_LINKER_OPTION], [AC_DEFUN([AC_LIBTOOL_LINKER_OPTION])])
|
||||||
|
m4_ifndef([AC_PROG_EGREP], [AC_DEFUN([AC_PROG_EGREP])])
|
||||||
|
m4_ifndef([_LT_AC_PROG_ECHO_BACKSLASH], [AC_DEFUN([_LT_AC_PROG_ECHO_BACKSLASH])])
|
||||||
|
m4_ifndef([_LT_AC_SHELL_INIT], [AC_DEFUN([_LT_AC_SHELL_INIT])])
|
||||||
|
m4_ifndef([_LT_AC_SYS_LIBPATH_AIX], [AC_DEFUN([_LT_AC_SYS_LIBPATH_AIX])])
|
||||||
|
m4_ifndef([_LT_PROG_LTMAIN], [AC_DEFUN([_LT_PROG_LTMAIN])])
|
||||||
|
m4_ifndef([_LT_AC_TAGVAR], [AC_DEFUN([_LT_AC_TAGVAR])])
|
||||||
|
m4_ifndef([AC_LTDL_ENABLE_INSTALL], [AC_DEFUN([AC_LTDL_ENABLE_INSTALL])])
|
||||||
|
m4_ifndef([AC_LTDL_PREOPEN], [AC_DEFUN([AC_LTDL_PREOPEN])])
|
||||||
|
m4_ifndef([_LT_AC_SYS_COMPILER], [AC_DEFUN([_LT_AC_SYS_COMPILER])])
|
||||||
|
m4_ifndef([_LT_AC_LOCK], [AC_DEFUN([_LT_AC_LOCK])])
|
||||||
|
m4_ifndef([AC_LIBTOOL_SYS_OLD_ARCHIVE], [AC_DEFUN([AC_LIBTOOL_SYS_OLD_ARCHIVE])])
|
||||||
|
m4_ifndef([_LT_AC_TRY_DLOPEN_SELF], [AC_DEFUN([_LT_AC_TRY_DLOPEN_SELF])])
|
||||||
|
m4_ifndef([AC_LIBTOOL_PROG_CC_C_O], [AC_DEFUN([AC_LIBTOOL_PROG_CC_C_O])])
|
||||||
|
m4_ifndef([AC_LIBTOOL_SYS_HARD_LINK_LOCKS], [AC_DEFUN([AC_LIBTOOL_SYS_HARD_LINK_LOCKS])])
|
||||||
|
m4_ifndef([AC_LIBTOOL_OBJDIR], [AC_DEFUN([AC_LIBTOOL_OBJDIR])])
|
||||||
|
m4_ifndef([AC_LTDL_OBJDIR], [AC_DEFUN([AC_LTDL_OBJDIR])])
|
||||||
|
m4_ifndef([AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH], [AC_DEFUN([AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH])])
|
||||||
|
m4_ifndef([AC_LIBTOOL_SYS_LIB_STRIP], [AC_DEFUN([AC_LIBTOOL_SYS_LIB_STRIP])])
|
||||||
|
m4_ifndef([AC_PATH_MAGIC], [AC_DEFUN([AC_PATH_MAGIC])])
|
||||||
|
m4_ifndef([AC_PROG_LD_GNU], [AC_DEFUN([AC_PROG_LD_GNU])])
|
||||||
|
m4_ifndef([AC_PROG_LD_RELOAD_FLAG], [AC_DEFUN([AC_PROG_LD_RELOAD_FLAG])])
|
||||||
|
m4_ifndef([AC_DEPLIBS_CHECK_METHOD], [AC_DEFUN([AC_DEPLIBS_CHECK_METHOD])])
|
||||||
|
m4_ifndef([AC_LIBTOOL_PROG_COMPILER_NO_RTTI], [AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_NO_RTTI])])
|
||||||
|
m4_ifndef([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE], [AC_DEFUN([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE])])
|
||||||
|
m4_ifndef([AC_LIBTOOL_PROG_COMPILER_PIC], [AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_PIC])])
|
||||||
|
m4_ifndef([AC_LIBTOOL_PROG_LD_SHLIBS], [AC_DEFUN([AC_LIBTOOL_PROG_LD_SHLIBS])])
|
||||||
|
m4_ifndef([AC_LIBTOOL_POSTDEP_PREDEP], [AC_DEFUN([AC_LIBTOOL_POSTDEP_PREDEP])])
|
||||||
|
m4_ifndef([LT_AC_PROG_EGREP], [AC_DEFUN([LT_AC_PROG_EGREP])])
|
||||||
|
m4_ifndef([LT_AC_PROG_SED], [AC_DEFUN([LT_AC_PROG_SED])])
|
||||||
|
m4_ifndef([_LT_CC_BASENAME], [AC_DEFUN([_LT_CC_BASENAME])])
|
||||||
|
m4_ifndef([_LT_COMPILER_BOILERPLATE], [AC_DEFUN([_LT_COMPILER_BOILERPLATE])])
|
||||||
|
m4_ifndef([_LT_LINKER_BOILERPLATE], [AC_DEFUN([_LT_LINKER_BOILERPLATE])])
|
||||||
|
m4_ifndef([_AC_PROG_LIBTOOL], [AC_DEFUN([_AC_PROG_LIBTOOL])])
|
||||||
|
m4_ifndef([AC_LIBTOOL_SETUP], [AC_DEFUN([AC_LIBTOOL_SETUP])])
|
||||||
|
m4_ifndef([_LT_AC_CHECK_DLFCN], [AC_DEFUN([_LT_AC_CHECK_DLFCN])])
|
||||||
|
m4_ifndef([AC_LIBTOOL_SYS_DYNAMIC_LINKER], [AC_DEFUN([AC_LIBTOOL_SYS_DYNAMIC_LINKER])])
|
||||||
|
m4_ifndef([_LT_AC_TAGCONFIG], [AC_DEFUN([_LT_AC_TAGCONFIG])])
|
||||||
|
m4_ifndef([AC_DISABLE_FAST_INSTALL], [AC_DEFUN([AC_DISABLE_FAST_INSTALL])])
|
||||||
|
m4_ifndef([_LT_AC_LANG_CXX], [AC_DEFUN([_LT_AC_LANG_CXX])])
|
||||||
|
m4_ifndef([_LT_AC_LANG_F77], [AC_DEFUN([_LT_AC_LANG_F77])])
|
||||||
|
m4_ifndef([_LT_AC_LANG_GCJ], [AC_DEFUN([_LT_AC_LANG_GCJ])])
|
||||||
|
m4_ifndef([AC_LIBTOOL_LANG_C_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_C_CONFIG])])
|
||||||
|
m4_ifndef([_LT_AC_LANG_C_CONFIG], [AC_DEFUN([_LT_AC_LANG_C_CONFIG])])
|
||||||
|
m4_ifndef([AC_LIBTOOL_LANG_CXX_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_CXX_CONFIG])])
|
||||||
|
m4_ifndef([_LT_AC_LANG_CXX_CONFIG], [AC_DEFUN([_LT_AC_LANG_CXX_CONFIG])])
|
||||||
|
m4_ifndef([AC_LIBTOOL_LANG_F77_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_F77_CONFIG])])
|
||||||
|
m4_ifndef([_LT_AC_LANG_F77_CONFIG], [AC_DEFUN([_LT_AC_LANG_F77_CONFIG])])
|
||||||
|
m4_ifndef([AC_LIBTOOL_LANG_GCJ_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_GCJ_CONFIG])])
|
||||||
|
m4_ifndef([_LT_AC_LANG_GCJ_CONFIG], [AC_DEFUN([_LT_AC_LANG_GCJ_CONFIG])])
|
||||||
|
m4_ifndef([AC_LIBTOOL_LANG_RC_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_RC_CONFIG])])
|
||||||
|
m4_ifndef([_LT_AC_LANG_RC_CONFIG], [AC_DEFUN([_LT_AC_LANG_RC_CONFIG])])
|
||||||
|
m4_ifndef([AC_LIBTOOL_CONFIG], [AC_DEFUN([AC_LIBTOOL_CONFIG])])
|
||||||
|
m4_ifndef([_LT_AC_FILE_LTDLL_C], [AC_DEFUN([_LT_AC_FILE_LTDLL_C])])
|
||||||
|
m4_ifndef([_LT_REQUIRED_DARWIN_CHECKS], [AC_DEFUN([_LT_REQUIRED_DARWIN_CHECKS])])
|
||||||
|
m4_ifndef([_LT_AC_PROG_CXXCPP], [AC_DEFUN([_LT_AC_PROG_CXXCPP])])
|
||||||
|
m4_ifndef([_LT_PREPARE_SED_QUOTE_VARS], [AC_DEFUN([_LT_PREPARE_SED_QUOTE_VARS])])
|
||||||
|
m4_ifndef([_LT_PROG_ECHO_BACKSLASH], [AC_DEFUN([_LT_PROG_ECHO_BACKSLASH])])
|
||||||
|
m4_ifndef([_LT_PROG_F77], [AC_DEFUN([_LT_PROG_F77])])
|
||||||
|
m4_ifndef([_LT_PROG_FC], [AC_DEFUN([_LT_PROG_FC])])
|
||||||
|
m4_ifndef([_LT_PROG_CXX], [AC_DEFUN([_LT_PROG_CXX])])
|
@ -37,22 +37,6 @@ import sys
|
|||||||
gpgme_h = ''
|
gpgme_h = ''
|
||||||
include_dirs = [os.getcwd()]
|
include_dirs = [os.getcwd()]
|
||||||
library_dirs = []
|
library_dirs = []
|
||||||
in_tree = False
|
|
||||||
extra_swig_opts = []
|
|
||||||
extra_macros = dict()
|
|
||||||
|
|
||||||
top_builddir = os.environ.get('top_builddir')
|
|
||||||
if top_builddir:
|
|
||||||
# In-tree build.
|
|
||||||
in_tree = True
|
|
||||||
gpgme_h = os.path.join(top_builddir, 'src/gpgme.h')
|
|
||||||
library_dirs = [os.path.join(top_builddir,
|
|
||||||
'src/.libs')] # XXX uses libtool internals
|
|
||||||
extra_macros.update(
|
|
||||||
HAVE_CONFIG_H=1,
|
|
||||||
HAVE_DATA_H=1,
|
|
||||||
IN_TREE_BUILD=1,
|
|
||||||
)
|
|
||||||
|
|
||||||
if hasattr(subprocess, 'DEVNULL'):
|
if hasattr(subprocess, 'DEVNULL'):
|
||||||
devnull = subprocess.DEVNULL
|
devnull = subprocess.DEVNULL
|
||||||
@ -68,22 +52,14 @@ major, minor, patch = map(int, version.split('.'))
|
|||||||
if not (major > 1 or (major == 1 and minor >= 7)):
|
if not (major > 1 or (major == 1 and minor >= 7)):
|
||||||
sys.exit('Need at least GPGME version 1.7, found {}.'.format(version_raw))
|
sys.exit('Need at least GPGME version 1.7, found {}.'.format(version_raw))
|
||||||
|
|
||||||
if not gpgme_h:
|
|
||||||
gpgme_h = os.path.join('@prefix@', 'include', 'gpgme.h')
|
|
||||||
|
|
||||||
define_macros = []
|
define_macros = []
|
||||||
if '@GPGME_CONFIG_LIBS@':
|
if '@GPGME_LIBS@':
|
||||||
libs = '@GPGME_CONFIG_LIBS@'.split(' ')
|
libs = '@GPGME_LIBS@'.split(' ')
|
||||||
else:
|
else:
|
||||||
libs = []
|
libs = []
|
||||||
|
|
||||||
# Define extra_macros for both the SWIG and C code
|
if '@GPGME_CFLAGS@':
|
||||||
for k, v in extra_macros.items():
|
for item in '@GPGME_CFLAGS@'.split(' '):
|
||||||
extra_swig_opts.append('-D{0}={1}'.format(k, v))
|
|
||||||
define_macros.append((k, str(v)))
|
|
||||||
|
|
||||||
if '@GPGME_CONFIG_CFLAGS@':
|
|
||||||
for item in '@GPGME_CONFIG_CFLAGS@'.split(' '):
|
|
||||||
if item.startswith('-I'):
|
if item.startswith('-I'):
|
||||||
include_dirs.append(item[2:])
|
include_dirs.append(item[2:])
|
||||||
elif item.startswith('-D'):
|
elif item.startswith('-D'):
|
||||||
@ -120,6 +96,18 @@ if uname_s.startswith('MINGW32'):
|
|||||||
library_dirs.append(os.path.join(tgt, item))
|
library_dirs.append(os.path.join(tgt, item))
|
||||||
break
|
break
|
||||||
|
|
||||||
|
if not gpgme_h:
|
||||||
|
if os.path.exists(os.path.join('@prefix@', 'include', 'gpgme.h')):
|
||||||
|
gpgme_h = os.path.join('@prefix@', 'include', 'gpgme.h')
|
||||||
|
else:
|
||||||
|
for include_dir in (include_dirs or ['/usr/include']):
|
||||||
|
if os.path.exists(os.path.join(include_dir, 'gpgme.h')):
|
||||||
|
gpgme_h = os.path.join(include_dir, 'gpgme.h')
|
||||||
|
break
|
||||||
|
|
||||||
|
if not gpgme_h:
|
||||||
|
sys.exit('gpgme.h not found.')
|
||||||
|
|
||||||
|
|
||||||
def in_srcdir(name):
|
def in_srcdir(name):
|
||||||
return os.path.join(os.environ.get('srcdir', ''), name)
|
return os.path.join(os.environ.get('srcdir', ''), name)
|
||||||
@ -230,7 +218,7 @@ class BuildExtFirstHack(build):
|
|||||||
|
|
||||||
|
|
||||||
swig_sources = []
|
swig_sources = []
|
||||||
swig_opts = ['-threads'] + extra_swig_opts
|
swig_opts = ['-threads']
|
||||||
swige = Extension(
|
swige = Extension(
|
||||||
'gpg._gpgme',
|
'gpg._gpgme',
|
||||||
sources=swig_sources,
|
sources=swig_sources,
|
||||||
|
BIN
lang/python/tests/13CBE3758AFE42B5E5E2AE4CED27AFA455E3F87F
Normal file
BIN
lang/python/tests/13CBE3758AFE42B5E5E2AE4CED27AFA455E3F87F
Normal file
Binary file not shown.
BIN
lang/python/tests/13CD0F3BDF24BE53FE192D62F18737256FF6E4FD
Normal file
BIN
lang/python/tests/13CD0F3BDF24BE53FE192D62F18737256FF6E4FD
Normal file
Binary file not shown.
BIN
lang/python/tests/76F7E2B35832976B50A27A282D9B87E44577EB66
Normal file
BIN
lang/python/tests/76F7E2B35832976B50A27A282D9B87E44577EB66
Normal file
Binary file not shown.
BIN
lang/python/tests/7A030357C0F253A5BBCD282FFC4E521B37558F5C
Normal file
BIN
lang/python/tests/7A030357C0F253A5BBCD282FFC4E521B37558F5C
Normal file
Binary file not shown.
BIN
lang/python/tests/A0747D5F9425E6664F4FFBEED20FBCA79FDED2BD
Normal file
BIN
lang/python/tests/A0747D5F9425E6664F4FFBEED20FBCA79FDED2BD
Normal file
Binary file not shown.
@ -19,14 +19,11 @@
|
|||||||
GPG = gpg
|
GPG = gpg
|
||||||
GPG_AGENT = gpg-agent
|
GPG_AGENT = gpg-agent
|
||||||
|
|
||||||
test_srcdir = $(top_srcdir)/tests/gpg
|
|
||||||
|
|
||||||
GNUPGHOME=$(abs_builddir)
|
GNUPGHOME=$(abs_builddir)
|
||||||
TESTS_ENVIRONMENT = GNUPGHOME=$(GNUPGHOME) \
|
TESTS_ENVIRONMENT = GNUPGHOME=$(GNUPGHOME) \
|
||||||
LC_ALL=C GPG_AGENT_INFO= \
|
LC_ALL=C GPG_AGENT_INFO= \
|
||||||
top_srcdir=$(top_srcdir) \
|
top_srcdir=$(top_srcdir) \
|
||||||
srcdir=$(srcdir) \
|
srcdir=$(srcdir)
|
||||||
LD_LIBRARY_PATH="../../../src/.libs:$(LD_LIBRARY_PATH)"
|
|
||||||
|
|
||||||
py_tests ?= t-wrapper.py \
|
py_tests ?= t-wrapper.py \
|
||||||
t-callbacks.py \
|
t-callbacks.py \
|
||||||
@ -56,8 +53,20 @@ py_tests ?= t-wrapper.py \
|
|||||||
t-quick-key-signing.py
|
t-quick-key-signing.py
|
||||||
|
|
||||||
XTESTS = initial.py $(py_tests) final.py
|
XTESTS = initial.py $(py_tests) final.py
|
||||||
|
|
||||||
|
private_keys = \
|
||||||
|
13CD0F3BDF24BE53FE192D62F18737256FF6E4FD \
|
||||||
|
76F7E2B35832976B50A27A282D9B87E44577EB66 \
|
||||||
|
A0747D5F9425E6664F4FFBEED20FBCA79FDED2BD \
|
||||||
|
13CBE3758AFE42B5E5E2AE4CED27AFA455E3F87F \
|
||||||
|
7A030357C0F253A5BBCD282FFC4E521B37558F5C
|
||||||
|
|
||||||
EXTRA_DIST = support.py $(XTESTS) encrypt-only.asc sign-only.asc \
|
EXTRA_DIST = support.py $(XTESTS) encrypt-only.asc sign-only.asc \
|
||||||
run-tests.py
|
pubdemo.asc secdemo.asc cipher-1.asc cipher-2.asc \
|
||||||
|
cipher-3.asc cipher-no-sig.asc \
|
||||||
|
pubkey-1.asc seckey-1.asc $(private_keys) \
|
||||||
|
start-stop-agent pinentry \
|
||||||
|
run-tests.py
|
||||||
|
|
||||||
# XXX: Currently, one cannot override automake's 'check' target. As a
|
# XXX: Currently, one cannot override automake's 'check' target. As a
|
||||||
# workaround, we avoid defining 'TESTS', thus automake will not emit
|
# workaround, we avoid defining 'TESTS', thus automake will not emit
|
||||||
@ -79,34 +88,27 @@ CLEANFILES = secring.gpg pubring.gpg pubring.kbx trustdb.gpg dirmngr.conf \
|
|||||||
random_seed .gpg-v21-migrated tofu.db \
|
random_seed .gpg-v21-migrated tofu.db \
|
||||||
pubring-stamp gpg-sample.stamp
|
pubring-stamp gpg-sample.stamp
|
||||||
|
|
||||||
private_keys = \
|
|
||||||
$(test_srcdir)/13CD0F3BDF24BE53FE192D62F18737256FF6E4FD \
|
|
||||||
$(test_srcdir)/76F7E2B35832976B50A27A282D9B87E44577EB66 \
|
|
||||||
$(test_srcdir)/A0747D5F9425E6664F4FFBEED20FBCA79FDED2BD \
|
|
||||||
$(test_srcdir)/13CBE3758AFE42B5E5E2AE4CED27AFA455E3F87F \
|
|
||||||
$(test_srcdir)/7A030357C0F253A5BBCD282FFC4E521B37558F5C
|
|
||||||
|
|
||||||
clean-local:
|
clean-local:
|
||||||
-$(TESTS_ENVIRONMENT) $(top_srcdir)/tests/start-stop-agent --stop
|
-$(TESTS_ENVIRONMENT) $(srcdir)/start-stop-agent --stop
|
||||||
-rm -fR -- private-keys-v1.d openpgp-revocs.d S.gpg-agent sshcontrol
|
-rm -fR -- private-keys-v1.d openpgp-revocs.d S.gpg-agent sshcontrol
|
||||||
|
|
||||||
|
|
||||||
BUILT_SOURCES = gpg.conf gpg-agent.conf pubring-stamp \
|
BUILT_SOURCES = gpg.conf gpg-agent.conf pubring-stamp \
|
||||||
gpg-sample.stamp
|
gpg-sample.stamp
|
||||||
|
|
||||||
gpg-sample.stamp: $(private_keys)
|
gpg-sample.stamp: $(srcdir)/$(private_keys)
|
||||||
-$(TESTS_ENVIRONMENT) gpgconf --kill all
|
-$(TESTS_ENVIRONMENT) gpgconf --kill all
|
||||||
$(MKDIR_P) ./private-keys-v1.d
|
$(MKDIR_P) ./private-keys-v1.d
|
||||||
for k in $(private_keys); do \
|
for k in $(private_keys); do \
|
||||||
cp $$k private-keys-v1.d/$${k#$(test_srcdir)/}.key; \
|
cp $(srcdir)/$$k private-keys-v1.d/$$k.key; \
|
||||||
done
|
done
|
||||||
echo x > ./gpg-sample.stamp
|
echo x > ./gpg-sample.stamp
|
||||||
|
|
||||||
pubring-stamp: $(test_srcdir)/pubdemo.asc gpg-sample.stamp
|
pubring-stamp: $(srcdir)/pubdemo.asc gpg-sample.stamp
|
||||||
$(TESTS_ENVIRONMENT) $(GPG) --batch --no-permission-warning \
|
$(TESTS_ENVIRONMENT) $(GPG) --batch --no-permission-warning \
|
||||||
--import $(test_srcdir)/pubdemo.asc
|
--import $(srcdir)/pubdemo.asc
|
||||||
-$(TESTS_ENVIRONMENT) $(GPG) --batch --no-permission-warning \
|
-$(TESTS_ENVIRONMENT) $(GPG) --batch --no-permission-warning \
|
||||||
--import $(test_srcdir)/secdemo.asc
|
--import $(srcdir)/secdemo.asc
|
||||||
-$(TESTS_ENVIRONMENT) gpgconf --kill all
|
-$(TESTS_ENVIRONMENT) gpgconf --kill all
|
||||||
echo x > ./pubring-stamp
|
echo x > ./pubring-stamp
|
||||||
|
|
||||||
@ -117,7 +119,7 @@ gpg.conf:
|
|||||||
|
|
||||||
gpg-agent.conf:
|
gpg-agent.conf:
|
||||||
# This is required for gpg2, which does not support command fd.
|
# This is required for gpg2, which does not support command fd.
|
||||||
echo pinentry-program $(abs_top_srcdir)/tests/gpg/pinentry >$@
|
echo pinentry-program $(abs_srcdir)/pinentry >$@
|
||||||
echo disable-scdaemon >> $@
|
echo disable-scdaemon >> $@
|
||||||
|
|
||||||
|
|
||||||
|
13
lang/python/tests/cipher-1.asc
Normal file
13
lang/python/tests/cipher-1.asc
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
-----BEGIN PGP MESSAGE-----
|
||||||
|
|
||||||
|
hQEOA2rm1+5GqHH4EAP/XKz8pdonnZg2dqJhjdas4vQHPxspxLhgf7OuYigodBpI
|
||||||
|
l7srTvqtuRsDFNorgURW6DjPqfGqpZsn2uf8enUskunHVMQFBILX38d+G5SkisqF
|
||||||
|
uOZUlmh0ZfVocCBGYt8ZPfa9ObmitPmZvhCReCHFlTj588ZjofKuNjmfw+QfmNcD
|
||||||
|
/j4z4ijv6dKHQCm7EAjnOsCw9SbrAVpRXjibN7KT+w6QT6m+5w9k4RfhkTOlqrHq
|
||||||
|
5d3ZyxLctdTkXlk0hXz1Mey4AEKTtlZGvrQVIhaX4hcB4NFJB0fZJ/pnKypi1H6q
|
||||||
|
0bSBq2p6kCzJuNvrEr4wk4B1NsOTBacUSffXLrfsEH2F0ngBzN7d/KHBImu81F8w
|
||||||
|
x96f6dELyYetV0UwhyFrPrA3lBQf9q5cNDqPiCHooUFOudQ5t0h7VtSU3fyaYoit
|
||||||
|
cJGPFkIxhv+VAbEW/h5muEg3KO1iEqLP4RK3y0Jjy4pyEauAgviM68Vjf4OVvgta
|
||||||
|
/IblIrp1FHxoCpA=
|
||||||
|
=sEuD
|
||||||
|
-----END PGP MESSAGE-----
|
15
lang/python/tests/cipher-2.asc
Normal file
15
lang/python/tests/cipher-2.asc
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
-----BEGIN PGP MESSAGE-----
|
||||||
|
|
||||||
|
hQEOA++dwnahcsiBEAQAqaF1yuTJ26FmJHndyaHUjazx7j8/Z/Ht3O+jSAOaoJFR
|
||||||
|
84rK4Tte0JQYTCl3XxwSEwr48OAtyeTstLjabGAvBoHrXVP3xC0U7kBalZm2lwcq
|
||||||
|
A8dDDoa3uMkWi1OJ3e2o79/z6SdTHEgRIRomAku1JaXFGTd8OsFhW782RpKUBOID
|
||||||
|
/jMs9o2sa/gDhWVaeC3SaQovl2xb45ev0nMibED916BQvv3NkH5/EzeM6v788h63
|
||||||
|
4yUkWWNr0/bnJ21chlxIbvICjHfuGAEDw+i4HhK/nLBL3Ep4ADtLP7OPZJHlcQgI
|
||||||
|
g8mAztasBxTGGUuFYvRT0X7sbaSPxLR26vbTCYAo/P/80sA4AYGhBuYPsRN4JzX9
|
||||||
|
QaSrToKjPbaZqq+nHQYCvi6m5xAjMT0HVdXejMtZMKwv4TRm7IVCimtIZqrlvw7c
|
||||||
|
Kj+ZcDGq9qb7urnzC5mdAZkXyNtZxmMKYFI0ci7zMnflvIM87JrVEjZbjjiXlcVy
|
||||||
|
mSxhufOOweLJARkJ4mKVq1tr8REu8/ots4fDzUIAITM3z8pKA7doWAH2VTo0Idmc
|
||||||
|
wYOoTLkiq1Z8fxeryB6U66C831PDiWe7W0usRSVo5rZ7laLZeOGl33fAAZCNLTgv
|
||||||
|
tOPWWg5rCpRTVXgQ6Edl7DtzKI1z4EJbuEUs6shW+OT3bNISiDz2am8remU=
|
||||||
|
=9AEU
|
||||||
|
-----END PGP MESSAGE-----
|
18
lang/python/tests/cipher-3.asc
Normal file
18
lang/python/tests/cipher-3.asc
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
-----BEGIN PGP MESSAGE-----
|
||||||
|
|
||||||
|
hQEOA++dwnahcsiBEAQApowkbz0idxMfLIT/a1G4QbZy77cWyaYOM/qh4lH4h7ra
|
||||||
|
f19MZzbRViZYBtJeITszTFmulp31qrF++6gBy8tU7l8VfVfOtvwn1WlRvn2+bsns
|
||||||
|
SicJAXtUiwIF8fbapSrkN6qpg2l+Fnx3SYV7+lh/7Fbf93DquwVEn+GwvgkyCQkD
|
||||||
|
/j5UVU6PJ+k5E5JG7CMzLZHnpW1MtKUqKRG9sTW83SvvI5Wl9VMgjmdO6bZRPKPY
|
||||||
|
Fr5udYJ1v4CIpVTb0O/TgAaiw7/Ak4SOg6jK0H0l1vuPPRjyzx43G4Y4lZ/EoCzT
|
||||||
|
gU+0kiDD+O7xLDml5jPWTYov7LkhRMKI4Ugp37FzbF9p0sClAR1mY4WlAN23ku0W
|
||||||
|
3bw54zSi7S6sh+i/uOmjZ+ziXr/S1pHFN2TNAkpH42o6VDhJ4vYk5KIB/mn/IoP1
|
||||||
|
G57JUhLqpSHO7LF8X45eBLT3tKC3rIaILHXcXE5PeyMiOrl1snIClrpX+Qn6dRPX
|
||||||
|
cYssX/0OQwE77bAla5QpZEy6YLOC4Ej4oTX5QU1rHNyLfvIDhwtphKMvbbssmsVI
|
||||||
|
tAMvrGQudEwLSlvNlnJsI79jqmbi5W8PYr+ssvOvrd5hWoKti7EdglWddFNVVjZl
|
||||||
|
ooJgztXUnPcufhaimQtNvX0Tj2hI8QwTxGPNO3aesPCQI0GbSUSqpvu6mlaQY2Qe
|
||||||
|
NJNkfTH23fzoG61nFxIQ0HYbuBp0hJnGOXfHtMNxyjoAs1yEJbyQ20Lso/Vrsf3J
|
||||||
|
sY7jkisFrURxTGQyBxxbnIO+nJPemOzV9Q/qo6Lj9yW0KagaffWogw/6X/xOvL4u
|
||||||
|
aM8pI7NOi48b
|
||||||
|
=mh2s
|
||||||
|
-----END PGP MESSAGE-----
|
13
lang/python/tests/cipher-no-sig.asc
Normal file
13
lang/python/tests/cipher-no-sig.asc
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
-----BEGIN PGP MESSAGE-----
|
||||||
|
|
||||||
|
hQEOA++dwnahcsiBEAP8CPkDWzZrcMJ1fyaPoQAhlx18p44+7vTF5zYCkMVT+i4E
|
||||||
|
X/zcIreDYDpFNHzK2orNW/LGGNpMf3ZyDAYw7eDWgPwld2PJh2/ZfR/dXoGcAEd4
|
||||||
|
vhbhA1D/ymQn+lxgSXNLMonxaoCqFK7cKStLCHfaPMbQ0S5GXU0IRwjfSn76oxwE
|
||||||
|
AKzTa/54g8XNL9Dku9c/KATzopdDLzAzN6oBJlgRbjhc3T8mzTVJF91s+ow8dEC+
|
||||||
|
0U2GBwkL5ZOKTFelSO3dBsH7RBNbYiJA+DbZ6nZia2KAtlLgyr4Z5vGh9bmltJl/
|
||||||
|
1qdIdRF/La3wA/6bL10YMYF+7IJ9DiuDi/NRmSsO/ZWt0nMBXnzOeyLgxdbW1RS1
|
||||||
|
NPWzKC/4RqvnWJmm7W3p0JG8v2ad+97O5KsOcqJnaKJOY0jKXeORrhih2DG32rpe
|
||||||
|
4bhskRTIBJBaPtPnRGevlxardQi+Spbd75yqccCLjkQF0HhCLiHW9SJiLSMdnY1U
|
||||||
|
U9th3ZR5
|
||||||
|
=uvfB
|
||||||
|
-----END PGP MESSAGE-----
|
22
lang/python/tests/pinentry
Executable file
22
lang/python/tests/pinentry
Executable file
@ -0,0 +1,22 @@
|
|||||||
|
#! /bin/sh
|
||||||
|
# Dummy pinentry
|
||||||
|
#
|
||||||
|
# Copyright 2008 g10 Code GmbH
|
||||||
|
#
|
||||||
|
# This file is free software; as a special exception the author gives
|
||||||
|
# unlimited permission to copy and/or distribute it, with or without
|
||||||
|
# modifications, as long as this notice is preserved.
|
||||||
|
#
|
||||||
|
# This file is distributed in the hope that it will be useful, but
|
||||||
|
# WITHOUT ANY WARRANTY, to the extent permitted by law; without even the
|
||||||
|
# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
|
||||||
|
# PURPOSE.
|
||||||
|
|
||||||
|
echo OK Your orders please
|
||||||
|
|
||||||
|
while read cmd; do
|
||||||
|
case $cmd in
|
||||||
|
GETPIN) echo D abc; echo OK;;
|
||||||
|
*) echo OK;;
|
||||||
|
esac
|
||||||
|
done
|
585
lang/python/tests/pubdemo.asc
Normal file
585
lang/python/tests/pubdemo.asc
Normal file
@ -0,0 +1,585 @@
|
|||||||
|
26 demo keys [2005-10-18]
|
||||||
|
|
||||||
|
pub 1024D/68697734 1999-03-08 Alpha Test (demo key) <alpha@example.net>
|
||||||
|
uid Alice (demo key)
|
||||||
|
uid Alfa Test (demo key) <alfa@example.net>
|
||||||
|
sub 1024g/46A871F8 1999-03-08
|
||||||
|
pub 1024D/A9E3B0B2 1999-03-08 Bravo Test (demo key) <bravo@example.net>
|
||||||
|
uid Bob (demo key)
|
||||||
|
sub 1024g/E29BA37F 1999-03-08
|
||||||
|
pub 1024D/1AFDAB6C 1999-03-08 Charlie Test (demo key) <charlie@example.net>
|
||||||
|
sub 1024g/BC43DA60 1999-03-08
|
||||||
|
pub 1024D/EB9DC9E6 1999-03-08 Delta Test (demo key) <delta@example.net>
|
||||||
|
sub 1024g/B0C45424 1999-03-08
|
||||||
|
pub 1024D/FAEF6D1B 1999-03-08 Echo Test (demo key) <echo@example.net>
|
||||||
|
uid Eve (demo key)
|
||||||
|
uid Echelon (demo key)
|
||||||
|
sub 1024g/7272144D 1999-03-08
|
||||||
|
pub 1024D/7372E243 1999-03-08 Foxtrot Test (demo key) <foxtrot@example.net>
|
||||||
|
sub 1024g/EE45198E 1999-03-08
|
||||||
|
pub 1024D/8FC282E6 1999-03-08 Golf Test (demo key) <golf@example.net>
|
||||||
|
sub 1024g/9DCAD354 1999-03-08
|
||||||
|
pub 1024D/34C6E3F1 1999-03-08 Hotel Test (demo key) <hotel@example.net>
|
||||||
|
sub 1024g/D622AD0A 1999-03-08
|
||||||
|
pub 1024D/04259677 1999-03-08 India Test (demo key) <india@example.net>
|
||||||
|
sub 1024g/61F76C73 1999-03-08
|
||||||
|
pub 1024D/D2699313 1999-03-08 Juliet Test (demo key) <juliet@example.net>
|
||||||
|
sub 1024g/35F8F136 1999-03-08
|
||||||
|
pub 1024D/43C2D0C7 1999-03-08 Kilo Test (demo key) <kilo@example.net>
|
||||||
|
sub 1024g/9AF64D02 1999-03-08
|
||||||
|
pub 1024D/B79103F8 1999-03-08 Lima Test (demo key) <lima@example.net>
|
||||||
|
sub 1024g/FE56350C 1999-03-08
|
||||||
|
pub 1024D/BE5CF886 1999-03-08 Mike Test (demo key) <mike@example.net>
|
||||||
|
uid Mallory (demo key)
|
||||||
|
sub 1024g/4F31EAE8 1999-03-08
|
||||||
|
pub 1024D/30CEC684 1999-03-08 November Test (demo key) <november@example.net>
|
||||||
|
sub 1024g/8B70E472 1999-03-08
|
||||||
|
pub 1024D/6D9732AC 1999-03-08 Oscar Test (demo key) <oscar@example.net>
|
||||||
|
sub 1024g/2681619F 1999-03-08
|
||||||
|
pub 1024D/3FF13206 1999-03-08 Papa test (demo key) <papa@example.net>
|
||||||
|
sub 1024g/63330D9C 1999-03-08
|
||||||
|
pub 1024D/3C661C84 1999-03-08 Quebec Test (demo key) <quebec@example.net>
|
||||||
|
sub 1024g/A029ACF4 1999-03-08
|
||||||
|
pub 1024D/777FBED3 1999-03-08 Romeo Test (demo key) <romeo@example.net>
|
||||||
|
sub 1024g/11D102EA 1999-03-08
|
||||||
|
pub 1024D/A3AE3EA1 1999-03-08 Sierra Test (demo key) <sierra@example.net>
|
||||||
|
sub 1024g/0F1B50B4 1999-03-08
|
||||||
|
pub 1024D/85A81F38 1999-03-08 Tango Test (demo key) <tango@example.net>
|
||||||
|
sub 1024g/101C0402 1999-03-08
|
||||||
|
pub 1024D/653244D6 1999-03-08 Uniform Test (demo key) <uniform@example.net>
|
||||||
|
sub 1024g/5522BDB9 1999-03-08
|
||||||
|
pub 1024D/61F04784 1999-03-08 Victor Test (demo key) <victor@example.org>
|
||||||
|
sub 1024g/07287134 1999-03-08
|
||||||
|
pub 1024D/EC67DBDE 1999-03-08 Whisky Test (demo key) <whisky@example.net>
|
||||||
|
sub 1024g/FD6E27F6 1999-03-08
|
||||||
|
sub 1024D/E51987C9 2005-10-18 [expires: 2005-10-18]
|
||||||
|
sub 1024R/40DB9D43 2005-10-18 [expires: 2005-10-18]
|
||||||
|
pub 1024D/567FB34A 1999-03-08 XRay Test (demo key) <xray@example.net>
|
||||||
|
sub 1024g/41E408BE 1999-03-08
|
||||||
|
pub 1024D/4B11B25F 1999-03-08 Yankee Test (demo key) <yankee@example.net>
|
||||||
|
sub 1024g/F7B080AD 1999-03-08
|
||||||
|
pub 1024D/54ACD246 1999-03-08 Zulu Test (demo key) <zulu@example.net>
|
||||||
|
sub 1024g/A172C881 1999-03-08
|
||||||
|
|
||||||
|
-----BEGIN PGP PUBLIC KEY BLOCK-----
|
||||||
|
|
||||||
|
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
|
||||||
|
fMeR
|
||||||
|
=oe6c
|
||||||
|
-----END PGP PUBLIC KEY BLOCK-----
|
26
lang/python/tests/pubkey-1.asc
Normal file
26
lang/python/tests/pubkey-1.asc
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
-----BEGIN PGP PUBLIC KEY BLOCK-----
|
||||||
|
Version: GnuPG v2.1.0-gitb3c71eb (GNU/Linux)
|
||||||
|
|
||||||
|
mQGiBDo41NoRBADSfQazKGYf8nokq6zUKH/6INtV6MypSzSGmX2XErnARkIIPPYj
|
||||||
|
cQRQ8zCbGV7ZU2ezVbzhFLUSJveE8PZUzzCrLp1O2NSyBTRcR5HVSXW95nJfY8eV
|
||||||
|
pOvZRAKul0BVLh81kYTsrfzaaCjh9VWNP26LoeN2r+PjZyktXe7gM3C4SwCgoTxK
|
||||||
|
WUVi9HoT2HCLY7p7oig5hEcEALdCJal0UYomX3nJapIVLVZg3vkidr1RICYMb2vz
|
||||||
|
58i17h8sxEtobD1vdIKNejulntaRAXs4n0tDYD9z7pRlwG1CLz1R9WxYzeOOqUDr
|
||||||
|
fnVXdmU8L/oVWABat8v1V7QQhjMMf+41fuzVwDMMGqjVPLhu4X6wp3A8uyM3YDnQ
|
||||||
|
VMN1A/4n2G5gHoOvjqxn8Ch5tBAdMGfO8gH4RjQOwzm2R1wPQss/yzUN1+tlMZGX
|
||||||
|
K2dQ2FCWC/hDUSNaEQRlI15wxxBNZ2RQwlzE2A8v113DpvyzOtv0QO95gJ1teCXC
|
||||||
|
7j/BN9asgHaBBc39JLO/TcpuI7Hf8PQ5VcP2F0UE3lczGhXbLLRESm9lIFJhbmRv
|
||||||
|
bSBIYWNrZXIgKHRlc3Qga2V5IHdpdGggcGFzc3BocmFzZSAiYWJjIikgPGpvZUBl
|
||||||
|
eGFtcGxlLmNvbT6IYgQTEQIAIgUCTbdXqQIbIwYLCQgHAwIGFQgCCQoLBBYCAwEC
|
||||||
|
HgECF4AACgkQr4IkT5zZ/VUcCACfQvSPi//9/gBv8SVrK6O4DiyD+jAAn3LEnfF1
|
||||||
|
4j6MjwlqXTqol2VgQn1yuQENBDo41N0QBACedJb7Qhm50JSPe1V+rSZKLHT5nc3l
|
||||||
|
2k1n7//wNsJkgDW2J7snIRjGtSzeNxMPh+hVzFidzAf3sbOlARQoBrMPPKpnJWtm
|
||||||
|
6LEDf2lSwO36l0/bo6qDRmiFRJoHWytTJEjxVwRclVt4bXqHfNw9FKhZZbcKeAN2
|
||||||
|
oHgmBVSU6edHdwADBQP+OGAkEG4PcfSb8x191R+wkV/q2hA5Ay9z289Dx2rO28CO
|
||||||
|
4M2fhhcjSmgr6x0DsrkfESCiG47UGJ169eu+QqJwk3HiF4crGN9rE5+VelBVFtrd
|
||||||
|
MWkX2rPLGQWyw8iCZKbeH8g/ujmkaLovSmalzDcLe4v1xSLaP7Fnfzit0iIGZAGI
|
||||||
|
RgQYEQIABgUCOjjU3QAKCRCvgiRPnNn9VVSaAJ9+rj1lIQnRl20i8Rom2Hwbe3re
|
||||||
|
9QCfSYFnkZUw0yKF2DfCfqrDzdGAsbaIRgQYEQIABgUCOjjU3gAKCRCvgiRPnNn9
|
||||||
|
Ve4iAJ9FrGMlFR7s+GWf1scTeeyrthKrPQCfSpc/Yps72aFI7hPfyIa9MuerVZ4=
|
||||||
|
=QRit
|
||||||
|
-----END PGP PUBLIC KEY BLOCK-----
|
62
lang/python/tests/secdemo.asc
Normal file
62
lang/python/tests/secdemo.asc
Normal file
@ -0,0 +1,62 @@
|
|||||||
|
-----BEGIN PGP PRIVATE KEY BLOCK-----
|
||||||
|
Version: GnuPG v2.1.0-gitb3c71eb (GNU/Linux)
|
||||||
|
|
||||||
|
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
|
||||||
|
U2ofR3zHkQ==
|
||||||
|
=c9V4
|
||||||
|
-----END PGP PRIVATE KEY BLOCK-----
|
30
lang/python/tests/seckey-1.asc
Normal file
30
lang/python/tests/seckey-1.asc
Normal file
@ -0,0 +1,30 @@
|
|||||||
|
-----BEGIN PGP PRIVATE KEY BLOCK-----
|
||||||
|
Version: GnuPG v2.1.0-gitb3c71eb (GNU/Linux)
|
||||||
|
|
||||||
|
lQHpBDo41NoRBADSfQazKGYf8nokq6zUKH/6INtV6MypSzSGmX2XErnARkIIPPYj
|
||||||
|
cQRQ8zCbGV7ZU2ezVbzhFLUSJveE8PZUzzCrLp1O2NSyBTRcR5HVSXW95nJfY8eV
|
||||||
|
pOvZRAKul0BVLh81kYTsrfzaaCjh9VWNP26LoeN2r+PjZyktXe7gM3C4SwCgoTxK
|
||||||
|
WUVi9HoT2HCLY7p7oig5hEcEALdCJal0UYomX3nJapIVLVZg3vkidr1RICYMb2vz
|
||||||
|
58i17h8sxEtobD1vdIKNejulntaRAXs4n0tDYD9z7pRlwG1CLz1R9WxYzeOOqUDr
|
||||||
|
fnVXdmU8L/oVWABat8v1V7QQhjMMf+41fuzVwDMMGqjVPLhu4X6wp3A8uyM3YDnQ
|
||||||
|
VMN1A/4n2G5gHoOvjqxn8Ch5tBAdMGfO8gH4RjQOwzm2R1wPQss/yzUN1+tlMZGX
|
||||||
|
K2dQ2FCWC/hDUSNaEQRlI15wxxBNZ2RQwlzE2A8v113DpvyzOtv0QO95gJ1teCXC
|
||||||
|
7j/BN9asgHaBBc39JLO/TcpuI7Hf8PQ5VcP2F0UE3lczGhXbLP4HAwL0A7A1a/jY
|
||||||
|
6s5JxysLUpKA31U2SrKxePmkmzYSuAiValUVdfkmLRrLSwmNJSy5NcrBHGimja1O
|
||||||
|
fUUmPTg465j1+vD/tERKb2UgUmFuZG9tIEhhY2tlciAodGVzdCBrZXkgd2l0aCBw
|
||||||
|
YXNzcGhyYXNlICJhYmMiKSA8am9lQGV4YW1wbGUuY29tPohiBBMRAgAiBQJNt1ep
|
||||||
|
AhsjBgsJCAcDAgYVCAIJCgsEFgIDAQIeAQIXgAAKCRCvgiRPnNn9VRwIAJ9C9I+L
|
||||||
|
//3+AG/xJWsro7gOLIP6MACfcsSd8XXiPoyPCWpdOqiXZWBCfXKdAWAEOjjU3RAE
|
||||||
|
AJ50lvtCGbnQlI97VX6tJkosdPmdzeXaTWfv//A2wmSANbYnuychGMa1LN43Ew+H
|
||||||
|
6FXMWJ3MB/exs6UBFCgGsw88qmcla2bosQN/aVLA7fqXT9ujqoNGaIVEmgdbK1Mk
|
||||||
|
SPFXBFyVW3hteod83D0UqFlltwp4A3ageCYFVJTp50d3AAMFA/44YCQQbg9x9Jvz
|
||||||
|
HX3VH7CRX+raEDkDL3Pbz0PHas7bwI7gzZ+GFyNKaCvrHQOyuR8RIKIbjtQYnXr1
|
||||||
|
675ConCTceIXhysY32sTn5V6UFUW2t0xaRfas8sZBbLDyIJkpt4fyD+6OaRoui9K
|
||||||
|
ZqXMNwt7i/XFIto/sWd/OK3SIgZkAf4HAwIoimqPHVJZM85dNw6JtvLKFvvmkm3X
|
||||||
|
uoCUG5nU6cgk6vetUYiykuKpU4zG3mDtdZdIZf76hJJ6lZTSHH9frLy7bRYPfu/k
|
||||||
|
U1AFd1T1OxENiEYEGBECAAYFAjo41N0ACgkQr4IkT5zZ/VVUmgCffq49ZSEJ0Zdt
|
||||||
|
IvEaJth8G3t63vUAn0mBZ5GVMNMihdg3wn6qw83RgLG2iEYEGBECAAYFAjo41N4A
|
||||||
|
CgkQr4IkT5zZ/VXuIgCfRaxjJRUe7Phln9bHE3nsq7YSqz0An0qXP2KbO9mhSO4T
|
||||||
|
38iGvTLnq1We
|
||||||
|
=m0YJ
|
||||||
|
-----END PGP PRIVATE KEY BLOCK-----
|
69
lang/python/tests/start-stop-agent
Executable file
69
lang/python/tests/start-stop-agent
Executable file
@ -0,0 +1,69 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
# Copyright (C) 2013 g10 Code GmbH
|
||||||
|
#
|
||||||
|
# This file is free software; as a special exception the author gives
|
||||||
|
# unlimited permission to copy and/or distribute it, with or without
|
||||||
|
# modifications, as long as this notice is preserved. This file is
|
||||||
|
# distributed in the hope that it will be useful, but WITHOUT ANY
|
||||||
|
# WARRANTY, to the extent permitted by law; without even the implied
|
||||||
|
# warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||||
|
|
||||||
|
if [ -z "$(command -v gpg-connect-agent)" ]; then
|
||||||
|
echo "gpg-agent not installed and thus not started" >&2
|
||||||
|
exit 0;
|
||||||
|
fi
|
||||||
|
|
||||||
|
GPG_AGENT_INFO=
|
||||||
|
export GPG_AGENT_INFO
|
||||||
|
GPG_AGENT=$(which gpg-agent)
|
||||||
|
|
||||||
|
token=$(echo "gpgme-$(pwd)" | tr ' ' '_')
|
||||||
|
|
||||||
|
if [ "$1" = "--stop" ]; then
|
||||||
|
if [ "$(gpg-connect-agent --no-autostart getval\ $token /bye 2>/dev/null | head -1)" \
|
||||||
|
!= "D set" ]; then
|
||||||
|
echo "gpg-agent not running" >&2
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
echo "stopping gpg-agent " >&2
|
||||||
|
gpg-connect-agent KILLAGENT /bye >/dev/null 2>&1
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Update 'agent-program' in the configuration files to make sure we
|
||||||
|
# will always start exactly this agent again if we ever need to.
|
||||||
|
for F in gpg.conf gpgsm.conf
|
||||||
|
do
|
||||||
|
if test -f "$GNUPGHOME/$F"
|
||||||
|
then
|
||||||
|
cat "$GNUPGHOME/$F" > "$GNUPGHOME/$F~"
|
||||||
|
sed -e "s#^agent-program.*#agent-program ${GPG_AGENT}|--debug-quick-random#" \
|
||||||
|
>"$GNUPGHOME/$F" <"$GNUPGHOME/$F~"
|
||||||
|
rm -f "$GNUPGHOME/$F~"
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
if [ "$(gpg-connect-agent --no-autostart getval\ $token /bye 2>/dev/null | head -1)" \
|
||||||
|
= "D set" ]; then
|
||||||
|
echo "gpg-agent already running" >&2
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "starting gpg-agent.." >&2
|
||||||
|
|
||||||
|
# GnuPG prior to 2.1.12 needs --allow-loopback-pinentry for the
|
||||||
|
# loopback entry to work. Old versions do not understand this though,
|
||||||
|
# so we need to be careful.
|
||||||
|
if "$GPG_AGENT" --gpgconf-test --allow-loopback-pinentry &&
|
||||||
|
test -f "$GNUPGHOME/gpg-agent.conf" &&
|
||||||
|
! grep -q allow-loopback-pinentry "$GNUPGHOME/gpg-agent.conf"; then
|
||||||
|
echo allow-loopback-pinentry >> "$GNUPGHOME/gpg-agent.conf"
|
||||||
|
fi
|
||||||
|
|
||||||
|
gpg-connect-agent --agent-program="${GPG_AGENT}|--debug-quick-random" putval\ $token\ set /bye
|
||||||
|
if [ $? -ne 0 -o "$(gpg-connect-agent getval\ $token /bye 2>/dev/null | head -1)" \
|
||||||
|
!= "D set" ]; then
|
||||||
|
echo "error starting gpg-agent" >&2
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
exit 0
|
@ -68,7 +68,7 @@ no_such_key = "A" * 40
|
|||||||
|
|
||||||
|
|
||||||
def make_filename(name):
|
def make_filename(name):
|
||||||
return os.path.join(os.environ['top_srcdir'], 'tests', 'gpg', name)
|
return os.path.join(os.environ['top_srcdir'], 'tests', name)
|
||||||
|
|
||||||
|
|
||||||
def in_srcdir(name):
|
def in_srcdir(name):
|
||||||
|
Loading…
Reference in New Issue
Block a user