mirror of https://codeberg.org/cage/tinmop/
- removed dependency from libidn2
punycode encoding comes from an internal implementation istead of using an C library.
This commit is contained in:
parent
52393e2a5e
commit
0fc46fa1b5
16
Makefile.in
16
Makefile.in
|
@ -1,4 +1,4 @@
|
||||||
# Makefile.in generated by automake 1.16.2 from Makefile.am.
|
# Makefile.in generated by automake 1.16.3 from Makefile.am.
|
||||||
# @configure_input@
|
# @configure_input@
|
||||||
|
|
||||||
# Copyright (C) 1994-2020 Free Software Foundation, Inc.
|
# Copyright (C) 1994-2020 Free Software Foundation, Inc.
|
||||||
|
@ -256,6 +256,8 @@ am__relativize = \
|
||||||
DIST_ARCHIVES = $(distdir).tar.gz
|
DIST_ARCHIVES = $(distdir).tar.gz
|
||||||
GZIP_ENV = --best
|
GZIP_ENV = --best
|
||||||
DIST_TARGETS = dist-gzip
|
DIST_TARGETS = dist-gzip
|
||||||
|
# Exists only to be overridden by the user if desired.
|
||||||
|
AM_DISTCHECK_DVI_TARGET = dvi
|
||||||
distuninstallcheck_listfiles = find . -type f -print
|
distuninstallcheck_listfiles = find . -type f -print
|
||||||
am__distuninstallcheck_listfiles = $(distuninstallcheck_listfiles) \
|
am__distuninstallcheck_listfiles = $(distuninstallcheck_listfiles) \
|
||||||
| sed 's|^\./|$(prefix)/|' | grep -v '$(infodir)/dir$$'
|
| sed 's|^\./|$(prefix)/|' | grep -v '$(infodir)/dir$$'
|
||||||
|
@ -288,8 +290,6 @@ GMSGFMT = @GMSGFMT@
|
||||||
GMSGFMT_015 = @GMSGFMT_015@
|
GMSGFMT_015 = @GMSGFMT_015@
|
||||||
GPG = @GPG@
|
GPG = @GPG@
|
||||||
GREP = @GREP@
|
GREP = @GREP@
|
||||||
IDN_CFLAGS = @IDN_CFLAGS@
|
|
||||||
IDN_LIBS = @IDN_LIBS@
|
|
||||||
INSTALL = @INSTALL@
|
INSTALL = @INSTALL@
|
||||||
INSTALL_DATA = @INSTALL_DATA@
|
INSTALL_DATA = @INSTALL_DATA@
|
||||||
INSTALL_PROGRAM = @INSTALL_PROGRAM@
|
INSTALL_PROGRAM = @INSTALL_PROGRAM@
|
||||||
|
@ -321,9 +321,6 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@
|
||||||
PACKAGE_URL = @PACKAGE_URL@
|
PACKAGE_URL = @PACKAGE_URL@
|
||||||
PACKAGE_VERSION = @PACKAGE_VERSION@
|
PACKAGE_VERSION = @PACKAGE_VERSION@
|
||||||
PATH_SEPARATOR = @PATH_SEPARATOR@
|
PATH_SEPARATOR = @PATH_SEPARATOR@
|
||||||
PKG_CONFIG = @PKG_CONFIG@
|
|
||||||
PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
|
|
||||||
PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
|
|
||||||
POSUB = @POSUB@
|
POSUB = @POSUB@
|
||||||
SED = @SED@
|
SED = @SED@
|
||||||
SET_MAKE = @SET_MAKE@
|
SET_MAKE = @SET_MAKE@
|
||||||
|
@ -845,7 +842,7 @@ distcheck: dist
|
||||||
$(DISTCHECK_CONFIGURE_FLAGS) \
|
$(DISTCHECK_CONFIGURE_FLAGS) \
|
||||||
--srcdir=../.. --prefix="$$dc_install_base" \
|
--srcdir=../.. --prefix="$$dc_install_base" \
|
||||||
&& $(MAKE) $(AM_MAKEFLAGS) \
|
&& $(MAKE) $(AM_MAKEFLAGS) \
|
||||||
&& $(MAKE) $(AM_MAKEFLAGS) dvi \
|
&& $(MAKE) $(AM_MAKEFLAGS) $(AM_DISTCHECK_DVI_TARGET) \
|
||||||
&& $(MAKE) $(AM_MAKEFLAGS) check \
|
&& $(MAKE) $(AM_MAKEFLAGS) check \
|
||||||
&& $(MAKE) $(AM_MAKEFLAGS) install \
|
&& $(MAKE) $(AM_MAKEFLAGS) install \
|
||||||
&& $(MAKE) $(AM_MAKEFLAGS) installcheck \
|
&& $(MAKE) $(AM_MAKEFLAGS) installcheck \
|
||||||
|
@ -907,7 +904,8 @@ installdirs-am:
|
||||||
done
|
done
|
||||||
install: $(BUILT_SOURCES)
|
install: $(BUILT_SOURCES)
|
||||||
$(MAKE) $(AM_MAKEFLAGS) install-recursive
|
$(MAKE) $(AM_MAKEFLAGS) install-recursive
|
||||||
install-exec: install-exec-recursive
|
install-exec: $(BUILT_SOURCES)
|
||||||
|
$(MAKE) $(AM_MAKEFLAGS) install-exec-recursive
|
||||||
install-data: install-data-recursive
|
install-data: install-data-recursive
|
||||||
uninstall: uninstall-recursive
|
uninstall: uninstall-recursive
|
||||||
|
|
||||||
|
@ -1013,7 +1011,7 @@ uninstall-am: uninstall-binSCRIPTS uninstall-dist_confDATA \
|
||||||
uninstall-man: uninstall-man1
|
uninstall-man: uninstall-man1
|
||||||
|
|
||||||
.MAKE: $(am__recursive_targets) all check install install-am \
|
.MAKE: $(am__recursive_targets) all check install install-am \
|
||||||
install-strip
|
install-exec install-strip
|
||||||
|
|
||||||
.PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am \
|
.PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am \
|
||||||
am--refresh check check-am clean clean-cscope clean-generic \
|
am--refresh check check-am clean clean-cscope clean-generic \
|
||||||
|
|
|
@ -37,8 +37,7 @@
|
||||||
** Programs
|
** Programs
|
||||||
|
|
||||||
+ to build the package:
|
+ to build the package:
|
||||||
xgettext;
|
xgettext.
|
||||||
a C compiler.
|
|
||||||
|
|
||||||
+ to install the package, including running the script to install
|
+ to install the package, including running the script to install
|
||||||
lisp libraries (~quick_quicklisp.sh~):
|
lisp libraries (~quick_quicklisp.sh~):
|
||||||
|
@ -86,14 +85,13 @@ manager of your distribution (~apt~, ~yum~ etc).
|
||||||
** Foreign (C language) library
|
** Foreign (C language) library
|
||||||
|
|
||||||
- libssl (TLS socket)
|
- libssl (TLS socket)
|
||||||
- linidn2 (i18n domain name aka idna)
|
|
||||||
|
|
||||||
The C library should be installed with their header (~*.h~)
|
The C library should be installed with their header (~*.h~)
|
||||||
files. On Debian or derived system this means installing the
|
files. On Debian or derived system this means installing the
|
||||||
library package with the ~-dev~ suffix as shown below:
|
library package with the ~-dev~ suffix as shown below:
|
||||||
|
|
||||||
#+BEGIN_SRC sh
|
#+BEGIN_SRC sh
|
||||||
# apt-get install libssl-dev libidn2-dev
|
# apt-get install libssl-dev
|
||||||
#+END_SRC
|
#+END_SRC
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -76,7 +76,7 @@ Table of Contents
|
||||||
3.1 Programs
|
3.1 Programs
|
||||||
────────────
|
────────────
|
||||||
|
|
||||||
⁃ to build the package: xgettext; a C compiler.
|
⁃ to build the package: xgettext.
|
||||||
|
|
||||||
⁃ to install the package, including running the script to install lisp
|
⁃ to install the package, including running the script to install lisp
|
||||||
libraries (`quick_quicklisp.sh'):
|
libraries (`quick_quicklisp.sh'):
|
||||||
|
@ -128,14 +128,13 @@ Table of Contents
|
||||||
────────────────────────────────
|
────────────────────────────────
|
||||||
|
|
||||||
• libssl (TLS socket)
|
• libssl (TLS socket)
|
||||||
• linidn2 (i18n domain name aka idna)
|
|
||||||
|
|
||||||
The C library should be installed with their header (`*.h') files.
|
The C library should be installed with their header (`*.h') files.
|
||||||
On Debian or derived system this means installing the library
|
On Debian or derived system this means installing the library
|
||||||
package with the `-dev' suffix as shown below:
|
package with the `-dev' suffix as shown below:
|
||||||
|
|
||||||
┌────
|
┌────
|
||||||
│ # apt-get install libssl-dev libidn2-dev
|
│ # apt-get install libssl-dev
|
||||||
└────
|
└────
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
# generated automatically by aclocal 1.16.2 -*- Autoconf -*-
|
# generated automatically by aclocal 1.16.3 -*- Autoconf -*-
|
||||||
|
|
||||||
# Copyright (C) 1996-2020 Free Software Foundation, Inc.
|
# Copyright (C) 1996-2020 Free Software Foundation, Inc.
|
||||||
|
|
||||||
|
@ -86,282 +86,6 @@ AC_DEFUN([gt_INTL_MACOSX],
|
||||||
AC_SUBST([INTL_MACOSX_LIBS])
|
AC_SUBST([INTL_MACOSX_LIBS])
|
||||||
])
|
])
|
||||||
|
|
||||||
# pkg.m4 - Macros to locate and utilise pkg-config. -*- Autoconf -*-
|
|
||||||
# serial 12 (pkg-config-0.29.2)
|
|
||||||
|
|
||||||
dnl Copyright © 2004 Scott James Remnant <scott@netsplit.com>.
|
|
||||||
dnl Copyright © 2012-2015 Dan Nicholson <dbn.lists@gmail.com>
|
|
||||||
dnl
|
|
||||||
dnl This program is free software; you can redistribute it and/or modify
|
|
||||||
dnl it under the terms of the GNU General Public License as published by
|
|
||||||
dnl the Free Software Foundation; either version 2 of the License, or
|
|
||||||
dnl (at your option) any later version.
|
|
||||||
dnl
|
|
||||||
dnl This program is distributed in the hope that it will be useful, but
|
|
||||||
dnl WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
||||||
dnl General Public License for more details.
|
|
||||||
dnl
|
|
||||||
dnl You should have received a copy of the GNU General Public License
|
|
||||||
dnl along with this program; if not, write to the Free Software
|
|
||||||
dnl Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
|
|
||||||
dnl 02111-1307, USA.
|
|
||||||
dnl
|
|
||||||
dnl As a special exception to the GNU General Public License, if you
|
|
||||||
dnl distribute this file as part of a program that contains a
|
|
||||||
dnl configuration script generated by Autoconf, you may include it under
|
|
||||||
dnl the same distribution terms that you use for the rest of that
|
|
||||||
dnl program.
|
|
||||||
|
|
||||||
dnl PKG_PREREQ(MIN-VERSION)
|
|
||||||
dnl -----------------------
|
|
||||||
dnl Since: 0.29
|
|
||||||
dnl
|
|
||||||
dnl Verify that the version of the pkg-config macros are at least
|
|
||||||
dnl MIN-VERSION. Unlike PKG_PROG_PKG_CONFIG, which checks the user's
|
|
||||||
dnl installed version of pkg-config, this checks the developer's version
|
|
||||||
dnl of pkg.m4 when generating configure.
|
|
||||||
dnl
|
|
||||||
dnl To ensure that this macro is defined, also add:
|
|
||||||
dnl m4_ifndef([PKG_PREREQ],
|
|
||||||
dnl [m4_fatal([must install pkg-config 0.29 or later before running autoconf/autogen])])
|
|
||||||
dnl
|
|
||||||
dnl See the "Since" comment for each macro you use to see what version
|
|
||||||
dnl of the macros you require.
|
|
||||||
m4_defun([PKG_PREREQ],
|
|
||||||
[m4_define([PKG_MACROS_VERSION], [0.29.2])
|
|
||||||
m4_if(m4_version_compare(PKG_MACROS_VERSION, [$1]), -1,
|
|
||||||
[m4_fatal([pkg.m4 version $1 or higher is required but ]PKG_MACROS_VERSION[ found])])
|
|
||||||
])dnl PKG_PREREQ
|
|
||||||
|
|
||||||
dnl PKG_PROG_PKG_CONFIG([MIN-VERSION])
|
|
||||||
dnl ----------------------------------
|
|
||||||
dnl Since: 0.16
|
|
||||||
dnl
|
|
||||||
dnl Search for the pkg-config tool and set the PKG_CONFIG variable to
|
|
||||||
dnl first found in the path. Checks that the version of pkg-config found
|
|
||||||
dnl is at least MIN-VERSION. If MIN-VERSION is not specified, 0.9.0 is
|
|
||||||
dnl used since that's the first version where most current features of
|
|
||||||
dnl pkg-config existed.
|
|
||||||
AC_DEFUN([PKG_PROG_PKG_CONFIG],
|
|
||||||
[m4_pattern_forbid([^_?PKG_[A-Z_]+$])
|
|
||||||
m4_pattern_allow([^PKG_CONFIG(_(PATH|LIBDIR|SYSROOT_DIR|ALLOW_SYSTEM_(CFLAGS|LIBS)))?$])
|
|
||||||
m4_pattern_allow([^PKG_CONFIG_(DISABLE_UNINSTALLED|TOP_BUILD_DIR|DEBUG_SPEW)$])
|
|
||||||
AC_ARG_VAR([PKG_CONFIG], [path to pkg-config utility])
|
|
||||||
AC_ARG_VAR([PKG_CONFIG_PATH], [directories to add to pkg-config's search path])
|
|
||||||
AC_ARG_VAR([PKG_CONFIG_LIBDIR], [path overriding pkg-config's built-in search path])
|
|
||||||
|
|
||||||
if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then
|
|
||||||
AC_PATH_TOOL([PKG_CONFIG], [pkg-config])
|
|
||||||
fi
|
|
||||||
if test -n "$PKG_CONFIG"; then
|
|
||||||
_pkg_min_version=m4_default([$1], [0.9.0])
|
|
||||||
AC_MSG_CHECKING([pkg-config is at least version $_pkg_min_version])
|
|
||||||
if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then
|
|
||||||
AC_MSG_RESULT([yes])
|
|
||||||
else
|
|
||||||
AC_MSG_RESULT([no])
|
|
||||||
PKG_CONFIG=""
|
|
||||||
fi
|
|
||||||
fi[]dnl
|
|
||||||
])dnl PKG_PROG_PKG_CONFIG
|
|
||||||
|
|
||||||
dnl PKG_CHECK_EXISTS(MODULES, [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND])
|
|
||||||
dnl -------------------------------------------------------------------
|
|
||||||
dnl Since: 0.18
|
|
||||||
dnl
|
|
||||||
dnl Check to see whether a particular set of modules exists. Similar to
|
|
||||||
dnl PKG_CHECK_MODULES(), but does not set variables or print errors.
|
|
||||||
dnl
|
|
||||||
dnl Please remember that m4 expands AC_REQUIRE([PKG_PROG_PKG_CONFIG])
|
|
||||||
dnl only at the first occurence in configure.ac, so if the first place
|
|
||||||
dnl it's called might be skipped (such as if it is within an "if", you
|
|
||||||
dnl have to call PKG_CHECK_EXISTS manually
|
|
||||||
AC_DEFUN([PKG_CHECK_EXISTS],
|
|
||||||
[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl
|
|
||||||
if test -n "$PKG_CONFIG" && \
|
|
||||||
AC_RUN_LOG([$PKG_CONFIG --exists --print-errors "$1"]); then
|
|
||||||
m4_default([$2], [:])
|
|
||||||
m4_ifvaln([$3], [else
|
|
||||||
$3])dnl
|
|
||||||
fi])
|
|
||||||
|
|
||||||
dnl _PKG_CONFIG([VARIABLE], [COMMAND], [MODULES])
|
|
||||||
dnl ---------------------------------------------
|
|
||||||
dnl Internal wrapper calling pkg-config via PKG_CONFIG and setting
|
|
||||||
dnl pkg_failed based on the result.
|
|
||||||
m4_define([_PKG_CONFIG],
|
|
||||||
[if test -n "$$1"; then
|
|
||||||
pkg_cv_[]$1="$$1"
|
|
||||||
elif test -n "$PKG_CONFIG"; then
|
|
||||||
PKG_CHECK_EXISTS([$3],
|
|
||||||
[pkg_cv_[]$1=`$PKG_CONFIG --[]$2 "$3" 2>/dev/null`
|
|
||||||
test "x$?" != "x0" && pkg_failed=yes ],
|
|
||||||
[pkg_failed=yes])
|
|
||||||
else
|
|
||||||
pkg_failed=untried
|
|
||||||
fi[]dnl
|
|
||||||
])dnl _PKG_CONFIG
|
|
||||||
|
|
||||||
dnl _PKG_SHORT_ERRORS_SUPPORTED
|
|
||||||
dnl ---------------------------
|
|
||||||
dnl Internal check to see if pkg-config supports short errors.
|
|
||||||
AC_DEFUN([_PKG_SHORT_ERRORS_SUPPORTED],
|
|
||||||
[AC_REQUIRE([PKG_PROG_PKG_CONFIG])
|
|
||||||
if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
|
|
||||||
_pkg_short_errors_supported=yes
|
|
||||||
else
|
|
||||||
_pkg_short_errors_supported=no
|
|
||||||
fi[]dnl
|
|
||||||
])dnl _PKG_SHORT_ERRORS_SUPPORTED
|
|
||||||
|
|
||||||
|
|
||||||
dnl PKG_CHECK_MODULES(VARIABLE-PREFIX, MODULES, [ACTION-IF-FOUND],
|
|
||||||
dnl [ACTION-IF-NOT-FOUND])
|
|
||||||
dnl --------------------------------------------------------------
|
|
||||||
dnl Since: 0.4.0
|
|
||||||
dnl
|
|
||||||
dnl Note that if there is a possibility the first call to
|
|
||||||
dnl PKG_CHECK_MODULES might not happen, you should be sure to include an
|
|
||||||
dnl explicit call to PKG_PROG_PKG_CONFIG in your configure.ac
|
|
||||||
AC_DEFUN([PKG_CHECK_MODULES],
|
|
||||||
[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl
|
|
||||||
AC_ARG_VAR([$1][_CFLAGS], [C compiler flags for $1, overriding pkg-config])dnl
|
|
||||||
AC_ARG_VAR([$1][_LIBS], [linker flags for $1, overriding pkg-config])dnl
|
|
||||||
|
|
||||||
pkg_failed=no
|
|
||||||
AC_MSG_CHECKING([for $2])
|
|
||||||
|
|
||||||
_PKG_CONFIG([$1][_CFLAGS], [cflags], [$2])
|
|
||||||
_PKG_CONFIG([$1][_LIBS], [libs], [$2])
|
|
||||||
|
|
||||||
m4_define([_PKG_TEXT], [Alternatively, you may set the environment variables $1[]_CFLAGS
|
|
||||||
and $1[]_LIBS to avoid the need to call pkg-config.
|
|
||||||
See the pkg-config man page for more details.])
|
|
||||||
|
|
||||||
if test $pkg_failed = yes; then
|
|
||||||
AC_MSG_RESULT([no])
|
|
||||||
_PKG_SHORT_ERRORS_SUPPORTED
|
|
||||||
if test $_pkg_short_errors_supported = yes; then
|
|
||||||
$1[]_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "$2" 2>&1`
|
|
||||||
else
|
|
||||||
$1[]_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "$2" 2>&1`
|
|
||||||
fi
|
|
||||||
# Put the nasty error message in config.log where it belongs
|
|
||||||
echo "$$1[]_PKG_ERRORS" >&AS_MESSAGE_LOG_FD
|
|
||||||
|
|
||||||
m4_default([$4], [AC_MSG_ERROR(
|
|
||||||
[Package requirements ($2) were not met:
|
|
||||||
|
|
||||||
$$1_PKG_ERRORS
|
|
||||||
|
|
||||||
Consider adjusting the PKG_CONFIG_PATH environment variable if you
|
|
||||||
installed software in a non-standard prefix.
|
|
||||||
|
|
||||||
_PKG_TEXT])[]dnl
|
|
||||||
])
|
|
||||||
elif test $pkg_failed = untried; then
|
|
||||||
AC_MSG_RESULT([no])
|
|
||||||
m4_default([$4], [AC_MSG_FAILURE(
|
|
||||||
[The pkg-config script could not be found or is too old. Make sure it
|
|
||||||
is in your PATH or set the PKG_CONFIG environment variable to the full
|
|
||||||
path to pkg-config.
|
|
||||||
|
|
||||||
_PKG_TEXT
|
|
||||||
|
|
||||||
To get pkg-config, see <http://pkg-config.freedesktop.org/>.])[]dnl
|
|
||||||
])
|
|
||||||
else
|
|
||||||
$1[]_CFLAGS=$pkg_cv_[]$1[]_CFLAGS
|
|
||||||
$1[]_LIBS=$pkg_cv_[]$1[]_LIBS
|
|
||||||
AC_MSG_RESULT([yes])
|
|
||||||
$3
|
|
||||||
fi[]dnl
|
|
||||||
])dnl PKG_CHECK_MODULES
|
|
||||||
|
|
||||||
|
|
||||||
dnl PKG_CHECK_MODULES_STATIC(VARIABLE-PREFIX, MODULES, [ACTION-IF-FOUND],
|
|
||||||
dnl [ACTION-IF-NOT-FOUND])
|
|
||||||
dnl ---------------------------------------------------------------------
|
|
||||||
dnl Since: 0.29
|
|
||||||
dnl
|
|
||||||
dnl Checks for existence of MODULES and gathers its build flags with
|
|
||||||
dnl static libraries enabled. Sets VARIABLE-PREFIX_CFLAGS from --cflags
|
|
||||||
dnl and VARIABLE-PREFIX_LIBS from --libs.
|
|
||||||
dnl
|
|
||||||
dnl Note that if there is a possibility the first call to
|
|
||||||
dnl PKG_CHECK_MODULES_STATIC might not happen, you should be sure to
|
|
||||||
dnl include an explicit call to PKG_PROG_PKG_CONFIG in your
|
|
||||||
dnl configure.ac.
|
|
||||||
AC_DEFUN([PKG_CHECK_MODULES_STATIC],
|
|
||||||
[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl
|
|
||||||
_save_PKG_CONFIG=$PKG_CONFIG
|
|
||||||
PKG_CONFIG="$PKG_CONFIG --static"
|
|
||||||
PKG_CHECK_MODULES($@)
|
|
||||||
PKG_CONFIG=$_save_PKG_CONFIG[]dnl
|
|
||||||
])dnl PKG_CHECK_MODULES_STATIC
|
|
||||||
|
|
||||||
|
|
||||||
dnl PKG_INSTALLDIR([DIRECTORY])
|
|
||||||
dnl -------------------------
|
|
||||||
dnl Since: 0.27
|
|
||||||
dnl
|
|
||||||
dnl Substitutes the variable pkgconfigdir as the location where a module
|
|
||||||
dnl should install pkg-config .pc files. By default the directory is
|
|
||||||
dnl $libdir/pkgconfig, but the default can be changed by passing
|
|
||||||
dnl DIRECTORY. The user can override through the --with-pkgconfigdir
|
|
||||||
dnl parameter.
|
|
||||||
AC_DEFUN([PKG_INSTALLDIR],
|
|
||||||
[m4_pushdef([pkg_default], [m4_default([$1], ['${libdir}/pkgconfig'])])
|
|
||||||
m4_pushdef([pkg_description],
|
|
||||||
[pkg-config installation directory @<:@]pkg_default[@:>@])
|
|
||||||
AC_ARG_WITH([pkgconfigdir],
|
|
||||||
[AS_HELP_STRING([--with-pkgconfigdir], pkg_description)],,
|
|
||||||
[with_pkgconfigdir=]pkg_default)
|
|
||||||
AC_SUBST([pkgconfigdir], [$with_pkgconfigdir])
|
|
||||||
m4_popdef([pkg_default])
|
|
||||||
m4_popdef([pkg_description])
|
|
||||||
])dnl PKG_INSTALLDIR
|
|
||||||
|
|
||||||
|
|
||||||
dnl PKG_NOARCH_INSTALLDIR([DIRECTORY])
|
|
||||||
dnl --------------------------------
|
|
||||||
dnl Since: 0.27
|
|
||||||
dnl
|
|
||||||
dnl Substitutes the variable noarch_pkgconfigdir as the location where a
|
|
||||||
dnl module should install arch-independent pkg-config .pc files. By
|
|
||||||
dnl default the directory is $datadir/pkgconfig, but the default can be
|
|
||||||
dnl changed by passing DIRECTORY. The user can override through the
|
|
||||||
dnl --with-noarch-pkgconfigdir parameter.
|
|
||||||
AC_DEFUN([PKG_NOARCH_INSTALLDIR],
|
|
||||||
[m4_pushdef([pkg_default], [m4_default([$1], ['${datadir}/pkgconfig'])])
|
|
||||||
m4_pushdef([pkg_description],
|
|
||||||
[pkg-config arch-independent installation directory @<:@]pkg_default[@:>@])
|
|
||||||
AC_ARG_WITH([noarch-pkgconfigdir],
|
|
||||||
[AS_HELP_STRING([--with-noarch-pkgconfigdir], pkg_description)],,
|
|
||||||
[with_noarch_pkgconfigdir=]pkg_default)
|
|
||||||
AC_SUBST([noarch_pkgconfigdir], [$with_noarch_pkgconfigdir])
|
|
||||||
m4_popdef([pkg_default])
|
|
||||||
m4_popdef([pkg_description])
|
|
||||||
])dnl PKG_NOARCH_INSTALLDIR
|
|
||||||
|
|
||||||
|
|
||||||
dnl PKG_CHECK_VAR(VARIABLE, MODULE, CONFIG-VARIABLE,
|
|
||||||
dnl [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND])
|
|
||||||
dnl -------------------------------------------
|
|
||||||
dnl Since: 0.28
|
|
||||||
dnl
|
|
||||||
dnl Retrieves the value of the pkg-config variable for the given module.
|
|
||||||
AC_DEFUN([PKG_CHECK_VAR],
|
|
||||||
[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl
|
|
||||||
AC_ARG_VAR([$1], [value of $3 for $2, overriding pkg-config])dnl
|
|
||||||
|
|
||||||
_PKG_CONFIG([$1], [variable="][$3]["], [$2])
|
|
||||||
AS_VAR_COPY([$1], [pkg_cv_][$1])
|
|
||||||
|
|
||||||
AS_VAR_IF([$1], [""], [$5], [$4])dnl
|
|
||||||
])dnl PKG_CHECK_VAR
|
|
||||||
|
|
||||||
# Copyright (C) 2002-2020 Free Software Foundation, Inc.
|
# Copyright (C) 2002-2020 Free Software Foundation, Inc.
|
||||||
#
|
#
|
||||||
# This file is free software; the Free Software Foundation
|
# This file is free software; the Free Software Foundation
|
||||||
|
@ -377,7 +101,7 @@ AC_DEFUN([AM_AUTOMAKE_VERSION],
|
||||||
[am__api_version='1.16'
|
[am__api_version='1.16'
|
||||||
dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to
|
dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to
|
||||||
dnl require some minimum version. Point them to the right macro.
|
dnl require some minimum version. Point them to the right macro.
|
||||||
m4_if([$1], [1.16.2], [],
|
m4_if([$1], [1.16.3], [],
|
||||||
[AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl
|
[AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl
|
||||||
])
|
])
|
||||||
|
|
||||||
|
@ -393,7 +117,7 @@ m4_define([_AM_AUTOCONF_VERSION], [])
|
||||||
# Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced.
|
# Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced.
|
||||||
# This function is AC_REQUIREd by AM_INIT_AUTOMAKE.
|
# This function is AC_REQUIREd by AM_INIT_AUTOMAKE.
|
||||||
AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION],
|
AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION],
|
||||||
[AM_AUTOMAKE_VERSION([1.16.2])dnl
|
[AM_AUTOMAKE_VERSION([1.16.3])dnl
|
||||||
m4_ifndef([AC_AUTOCONF_VERSION],
|
m4_ifndef([AC_AUTOCONF_VERSION],
|
||||||
[m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl
|
[m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl
|
||||||
_AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))])
|
_AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))])
|
||||||
|
@ -1045,12 +769,7 @@ AC_DEFUN([AM_MISSING_HAS_RUN],
|
||||||
[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
|
[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
|
||||||
AC_REQUIRE_AUX_FILE([missing])dnl
|
AC_REQUIRE_AUX_FILE([missing])dnl
|
||||||
if test x"${MISSING+set}" != xset; then
|
if test x"${MISSING+set}" != xset; then
|
||||||
case $am_aux_dir in
|
MISSING="\${SHELL} '$am_aux_dir/missing'"
|
||||||
*\ * | *\ *)
|
|
||||||
MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;;
|
|
||||||
*)
|
|
||||||
MISSING="\${SHELL} $am_aux_dir/missing" ;;
|
|
||||||
esac
|
|
||||||
fi
|
fi
|
||||||
# Use eval to expand $SHELL
|
# Use eval to expand $SHELL
|
||||||
if eval "$MISSING --is-lightweight"; then
|
if eval "$MISSING --is-lightweight"; then
|
||||||
|
|
|
@ -597,11 +597,6 @@ BASH
|
||||||
GPG
|
GPG
|
||||||
CURL
|
CURL
|
||||||
LISP_COMPILER
|
LISP_COMPILER
|
||||||
IDN_LIBS
|
|
||||||
IDN_CFLAGS
|
|
||||||
PKG_CONFIG_LIBDIR
|
|
||||||
PKG_CONFIG_PATH
|
|
||||||
PKG_CONFIG
|
|
||||||
POSUB
|
POSUB
|
||||||
LTLIBINTL
|
LTLIBINTL
|
||||||
LIBINTL
|
LIBINTL
|
||||||
|
@ -734,12 +729,7 @@ CFLAGS
|
||||||
LDFLAGS
|
LDFLAGS
|
||||||
LIBS
|
LIBS
|
||||||
CPPFLAGS
|
CPPFLAGS
|
||||||
CPP
|
CPP'
|
||||||
PKG_CONFIG
|
|
||||||
PKG_CONFIG_PATH
|
|
||||||
PKG_CONFIG_LIBDIR
|
|
||||||
IDN_CFLAGS
|
|
||||||
IDN_LIBS'
|
|
||||||
|
|
||||||
|
|
||||||
# Initialize some variables set by options.
|
# Initialize some variables set by options.
|
||||||
|
@ -1398,13 +1388,6 @@ Some influential environment variables:
|
||||||
CPPFLAGS (Objective) C/C++ preprocessor flags, e.g. -I<include dir> if
|
CPPFLAGS (Objective) C/C++ preprocessor flags, e.g. -I<include dir> if
|
||||||
you have headers in a nonstandard directory <include dir>
|
you have headers in a nonstandard directory <include dir>
|
||||||
CPP C preprocessor
|
CPP C preprocessor
|
||||||
PKG_CONFIG path to pkg-config utility
|
|
||||||
PKG_CONFIG_PATH
|
|
||||||
directories to add to pkg-config's search path
|
|
||||||
PKG_CONFIG_LIBDIR
|
|
||||||
path overriding pkg-config's built-in search path
|
|
||||||
IDN_CFLAGS C compiler flags for IDN, overriding pkg-config
|
|
||||||
IDN_LIBS linker flags for IDN, overriding pkg-config
|
|
||||||
|
|
||||||
Use these variables to override the choices made by `configure' or to help
|
Use these variables to override the choices made by `configure' or to help
|
||||||
it to find libraries and programs with nonstandard names/locations.
|
it to find libraries and programs with nonstandard names/locations.
|
||||||
|
@ -2207,12 +2190,7 @@ program_transform_name=`$as_echo "$program_transform_name" | sed "$ac_script"`
|
||||||
am_aux_dir=`cd "$ac_aux_dir" && pwd`
|
am_aux_dir=`cd "$ac_aux_dir" && pwd`
|
||||||
|
|
||||||
if test x"${MISSING+set}" != xset; then
|
if test x"${MISSING+set}" != xset; then
|
||||||
case $am_aux_dir in
|
MISSING="\${SHELL} '$am_aux_dir/missing'"
|
||||||
*\ * | *\ *)
|
|
||||||
MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;;
|
|
||||||
*)
|
|
||||||
MISSING="\${SHELL} $am_aux_dir/missing" ;;
|
|
||||||
esac
|
|
||||||
fi
|
fi
|
||||||
# Use eval to expand $SHELL
|
# Use eval to expand $SHELL
|
||||||
if eval "$MISSING --is-lightweight"; then
|
if eval "$MISSING --is-lightweight"; then
|
||||||
|
@ -6148,218 +6126,6 @@ $as_echo "#define HAVE_DCGETTEXT 1" >>confdefs.h
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then
|
|
||||||
if test -n "$ac_tool_prefix"; then
|
|
||||||
# Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args.
|
|
||||||
set dummy ${ac_tool_prefix}pkg-config; ac_word=$2
|
|
||||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
|
|
||||||
$as_echo_n "checking for $ac_word... " >&6; }
|
|
||||||
if ${ac_cv_path_PKG_CONFIG+:} false; then :
|
|
||||||
$as_echo_n "(cached) " >&6
|
|
||||||
else
|
|
||||||
case $PKG_CONFIG in
|
|
||||||
[\\/]* | ?:[\\/]*)
|
|
||||||
ac_cv_path_PKG_CONFIG="$PKG_CONFIG" # Let the user override the test with a path.
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
|
|
||||||
for as_dir in $PATH
|
|
||||||
do
|
|
||||||
IFS=$as_save_IFS
|
|
||||||
test -z "$as_dir" && as_dir=.
|
|
||||||
for ac_exec_ext in '' $ac_executable_extensions; do
|
|
||||||
if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
|
|
||||||
ac_cv_path_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext"
|
|
||||||
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
|
|
||||||
break 2
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
done
|
|
||||||
IFS=$as_save_IFS
|
|
||||||
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
fi
|
|
||||||
PKG_CONFIG=$ac_cv_path_PKG_CONFIG
|
|
||||||
if test -n "$PKG_CONFIG"; then
|
|
||||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $PKG_CONFIG" >&5
|
|
||||||
$as_echo "$PKG_CONFIG" >&6; }
|
|
||||||
else
|
|
||||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
|
|
||||||
$as_echo "no" >&6; }
|
|
||||||
fi
|
|
||||||
|
|
||||||
|
|
||||||
fi
|
|
||||||
if test -z "$ac_cv_path_PKG_CONFIG"; then
|
|
||||||
ac_pt_PKG_CONFIG=$PKG_CONFIG
|
|
||||||
# Extract the first word of "pkg-config", so it can be a program name with args.
|
|
||||||
set dummy pkg-config; ac_word=$2
|
|
||||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
|
|
||||||
$as_echo_n "checking for $ac_word... " >&6; }
|
|
||||||
if ${ac_cv_path_ac_pt_PKG_CONFIG+:} false; then :
|
|
||||||
$as_echo_n "(cached) " >&6
|
|
||||||
else
|
|
||||||
case $ac_pt_PKG_CONFIG in
|
|
||||||
[\\/]* | ?:[\\/]*)
|
|
||||||
ac_cv_path_ac_pt_PKG_CONFIG="$ac_pt_PKG_CONFIG" # Let the user override the test with a path.
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
|
|
||||||
for as_dir in $PATH
|
|
||||||
do
|
|
||||||
IFS=$as_save_IFS
|
|
||||||
test -z "$as_dir" && as_dir=.
|
|
||||||
for ac_exec_ext in '' $ac_executable_extensions; do
|
|
||||||
if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
|
|
||||||
ac_cv_path_ac_pt_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext"
|
|
||||||
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
|
|
||||||
break 2
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
done
|
|
||||||
IFS=$as_save_IFS
|
|
||||||
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
fi
|
|
||||||
ac_pt_PKG_CONFIG=$ac_cv_path_ac_pt_PKG_CONFIG
|
|
||||||
if test -n "$ac_pt_PKG_CONFIG"; then
|
|
||||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_PKG_CONFIG" >&5
|
|
||||||
$as_echo "$ac_pt_PKG_CONFIG" >&6; }
|
|
||||||
else
|
|
||||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
|
|
||||||
$as_echo "no" >&6; }
|
|
||||||
fi
|
|
||||||
|
|
||||||
if test "x$ac_pt_PKG_CONFIG" = x; then
|
|
||||||
PKG_CONFIG=""
|
|
||||||
else
|
|
||||||
case $cross_compiling:$ac_tool_warned in
|
|
||||||
yes:)
|
|
||||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
|
|
||||||
$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
|
|
||||||
ac_tool_warned=yes ;;
|
|
||||||
esac
|
|
||||||
PKG_CONFIG=$ac_pt_PKG_CONFIG
|
|
||||||
fi
|
|
||||||
else
|
|
||||||
PKG_CONFIG="$ac_cv_path_PKG_CONFIG"
|
|
||||||
fi
|
|
||||||
|
|
||||||
fi
|
|
||||||
if test -n "$PKG_CONFIG"; then
|
|
||||||
_pkg_min_version=0.9.0
|
|
||||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking pkg-config is at least version $_pkg_min_version" >&5
|
|
||||||
$as_echo_n "checking pkg-config is at least version $_pkg_min_version... " >&6; }
|
|
||||||
if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then
|
|
||||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
|
|
||||||
$as_echo "yes" >&6; }
|
|
||||||
else
|
|
||||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
|
|
||||||
$as_echo "no" >&6; }
|
|
||||||
PKG_CONFIG=""
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
pkg_failed=no
|
|
||||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for libidn2" >&5
|
|
||||||
$as_echo_n "checking for libidn2... " >&6; }
|
|
||||||
|
|
||||||
if test -n "$IDN_CFLAGS"; then
|
|
||||||
pkg_cv_IDN_CFLAGS="$IDN_CFLAGS"
|
|
||||||
elif test -n "$PKG_CONFIG"; then
|
|
||||||
if test -n "$PKG_CONFIG" && \
|
|
||||||
{ { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libidn2\""; } >&5
|
|
||||||
($PKG_CONFIG --exists --print-errors "libidn2") 2>&5
|
|
||||||
ac_status=$?
|
|
||||||
$as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
|
|
||||||
test $ac_status = 0; }; then
|
|
||||||
pkg_cv_IDN_CFLAGS=`$PKG_CONFIG --cflags "libidn2" 2>/dev/null`
|
|
||||||
test "x$?" != "x0" && pkg_failed=yes
|
|
||||||
else
|
|
||||||
pkg_failed=yes
|
|
||||||
fi
|
|
||||||
else
|
|
||||||
pkg_failed=untried
|
|
||||||
fi
|
|
||||||
if test -n "$IDN_LIBS"; then
|
|
||||||
pkg_cv_IDN_LIBS="$IDN_LIBS"
|
|
||||||
elif test -n "$PKG_CONFIG"; then
|
|
||||||
if test -n "$PKG_CONFIG" && \
|
|
||||||
{ { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libidn2\""; } >&5
|
|
||||||
($PKG_CONFIG --exists --print-errors "libidn2") 2>&5
|
|
||||||
ac_status=$?
|
|
||||||
$as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
|
|
||||||
test $ac_status = 0; }; then
|
|
||||||
pkg_cv_IDN_LIBS=`$PKG_CONFIG --libs "libidn2" 2>/dev/null`
|
|
||||||
test "x$?" != "x0" && pkg_failed=yes
|
|
||||||
else
|
|
||||||
pkg_failed=yes
|
|
||||||
fi
|
|
||||||
else
|
|
||||||
pkg_failed=untried
|
|
||||||
fi
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
if test $pkg_failed = yes; then
|
|
||||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
|
|
||||||
$as_echo "no" >&6; }
|
|
||||||
|
|
||||||
if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
|
|
||||||
_pkg_short_errors_supported=yes
|
|
||||||
else
|
|
||||||
_pkg_short_errors_supported=no
|
|
||||||
fi
|
|
||||||
if test $_pkg_short_errors_supported = yes; then
|
|
||||||
IDN_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "libidn2" 2>&1`
|
|
||||||
else
|
|
||||||
IDN_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "libidn2" 2>&1`
|
|
||||||
fi
|
|
||||||
# Put the nasty error message in config.log where it belongs
|
|
||||||
echo "$IDN_PKG_ERRORS" >&5
|
|
||||||
|
|
||||||
as_fn_error $? "Package requirements (libidn2) were not met:
|
|
||||||
|
|
||||||
$IDN_PKG_ERRORS
|
|
||||||
|
|
||||||
Consider adjusting the PKG_CONFIG_PATH environment variable if you
|
|
||||||
installed software in a non-standard prefix.
|
|
||||||
|
|
||||||
Alternatively, you may set the environment variables IDN_CFLAGS
|
|
||||||
and IDN_LIBS to avoid the need to call pkg-config.
|
|
||||||
See the pkg-config man page for more details." "$LINENO" 5
|
|
||||||
elif test $pkg_failed = untried; then
|
|
||||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
|
|
||||||
$as_echo "no" >&6; }
|
|
||||||
{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
|
|
||||||
$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
|
|
||||||
as_fn_error $? "The pkg-config script could not be found or is too old. Make sure it
|
|
||||||
is in your PATH or set the PKG_CONFIG environment variable to the full
|
|
||||||
path to pkg-config.
|
|
||||||
|
|
||||||
Alternatively, you may set the environment variables IDN_CFLAGS
|
|
||||||
and IDN_LIBS to avoid the need to call pkg-config.
|
|
||||||
See the pkg-config man page for more details.
|
|
||||||
|
|
||||||
To get pkg-config, see <http://pkg-config.freedesktop.org/>.
|
|
||||||
See \`config.log' for more details" "$LINENO" 5; }
|
|
||||||
else
|
|
||||||
IDN_CFLAGS=$pkg_cv_IDN_CFLAGS
|
|
||||||
IDN_LIBS=$pkg_cv_IDN_LIBS
|
|
||||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
|
|
||||||
$as_echo "yes" >&6; }
|
|
||||||
|
|
||||||
fi
|
|
||||||
|
|
||||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for SSL_get_version in -lssl" >&5
|
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for SSL_get_version in -lssl" >&5
|
||||||
$as_echo_n "checking for SSL_get_version in -lssl... " >&6; }
|
$as_echo_n "checking for SSL_get_version in -lssl... " >&6; }
|
||||||
if ${ac_cv_lib_ssl_SSL_get_version+:} false; then :
|
if ${ac_cv_lib_ssl_SSL_get_version+:} false; then :
|
||||||
|
|
|
@ -21,8 +21,6 @@ AM_INIT_AUTOMAKE([-Wall foreign])
|
||||||
|
|
||||||
AM_GNU_GETTEXT([external])
|
AM_GNU_GETTEXT([external])
|
||||||
|
|
||||||
PKG_CHECK_MODULES([IDN], [libidn2])
|
|
||||||
|
|
||||||
AC_CHECK_LIB([ssl], [SSL_get_version], [], AC_MSG_ERROR([Can not find libssl.]))
|
AC_CHECK_LIB([ssl], [SSL_get_version], [], AC_MSG_ERROR([Can not find libssl.]))
|
||||||
|
|
||||||
AC_PATH_PROG([LISP_COMPILER],[sbcl],[no])
|
AC_PATH_PROG([LISP_COMPILER],[sbcl],[no])
|
||||||
|
|
|
@ -306,14 +306,14 @@
|
||||||
(fragment nil)
|
(fragment nil)
|
||||||
(client-certificate nil)
|
(client-certificate nil)
|
||||||
(certificate-key nil))
|
(certificate-key nil))
|
||||||
(let* ((iri (make-gemini-iri host
|
(let* ((iri (make-gemini-iri (idn:host-unicode->ascii host)
|
||||||
(percent-encode-path path)
|
(percent-encode-path path)
|
||||||
:query (percent-encode-query query)
|
:query (percent-encode-query query)
|
||||||
:port port
|
:port port
|
||||||
:fragment (percent-encode-fragment fragment)))
|
:fragment (percent-encode-fragment fragment)))
|
||||||
(ctx (cl+ssl:make-context :verify-mode cl+ssl:+ssl-verify-none+)))
|
(ctx (cl+ssl:make-context :verify-mode cl+ssl:+ssl-verify-none+)))
|
||||||
(cl+ssl:with-global-context (ctx :auto-free-p t)
|
(cl+ssl:with-global-context (ctx :auto-free-p t)
|
||||||
(let ((socket (usocket:socket-connect (idn:unicode->ascii host)
|
(let ((socket (usocket:socket-connect (idn:host-unicode->ascii host)
|
||||||
port
|
port
|
||||||
:element-type '(unsigned-byte 8))))
|
:element-type '(unsigned-byte 8))))
|
||||||
(unwind-protect
|
(unwind-protect
|
||||||
|
|
|
@ -1,52 +0,0 @@
|
||||||
(in-package :idn)
|
|
||||||
|
|
||||||
(pkg-config-cflags "libidn2")
|
|
||||||
|
|
||||||
(include "idn2.h")
|
|
||||||
|
|
||||||
(cenum (idn2-rc)
|
|
||||||
((:ok "IDN2_OK"))
|
|
||||||
((:malloc "IDN2_MALLOC"))
|
|
||||||
((:no-codeset "IDN2_NO_CODESET"))
|
|
||||||
((:iconv-fail "IDN2_ICONV_FAIL"))
|
|
||||||
((:encoding-error "IDN2_ENCODING_ERROR"))
|
|
||||||
((:nfc "IDN2_NFC"))
|
|
||||||
((:punycode-bad-input "IDN2_PUNYCODE_BAD_INPUT"))
|
|
||||||
((:punycode-big-output "IDN2_PUNYCODE_BIG_OUTPUT"))
|
|
||||||
((:punycode-overflow "IDN2_PUNYCODE_OVERFLOW"))
|
|
||||||
((:too-big-domain "IDN2_TOO_BIG_DOMAIN"))
|
|
||||||
((:too-big-label "IDN2_TOO_BIG_LABEL"))
|
|
||||||
((:invalid-alabel "IDN2_INVALID_ALABEL"))
|
|
||||||
((:ualabel-mismatch "IDN2_UALABEL_MISMATCH"))
|
|
||||||
((:invalid-flags "IDN2_INVALID_FLAGS"))
|
|
||||||
((:not-nfc "IDN2_NOT_NFC"))
|
|
||||||
((:2hyphen "IDN2_2HYPHEN"))
|
|
||||||
((:hyphen-startend "IDN2_HYPHEN_STARTEND"))
|
|
||||||
((:leading-combining "IDN2_LEADING_COMBINING"))
|
|
||||||
((:disallowed "IDN2_DISALLOWED"))
|
|
||||||
((:contextj "IDN2_CONTEXTJ"))
|
|
||||||
((:contextj-no-rule "IDN2_CONTEXTJ_NO_RULE"))
|
|
||||||
((:contexto "IDN2_CONTEXTO"))
|
|
||||||
((:contexto-no-rule "IDN2_CONTEXTO_NO_RULE"))
|
|
||||||
((:unassigned "IDN2_UNASSIGNED"))
|
|
||||||
((:bidi "IDN2_BIDI"))
|
|
||||||
((:dot-in-label "IDN2_DOT_IN_LABEL"))
|
|
||||||
((:invalid-transitional "IDN2_INVALID_TRANSITIONAL"))
|
|
||||||
((:invalid-nontransitional "IDN2_INVALID_NONTRANSITIONAL")))
|
|
||||||
|
|
||||||
;;; this value does not exists for old version of the library, removing
|
|
||||||
;;; to allow compilation on old system
|
|
||||||
;; ((:alabel-roundtrip-failed "IDN2_ALABEL_ROUNDTRIP_FAILED")))
|
|
||||||
|
|
||||||
(cenum (flags)
|
|
||||||
((:nfc-input "IDN2_NFC_INPUT"))
|
|
||||||
((:alabel-roundtrip "IDN2_ALABEL_ROUNDTRIP"))
|
|
||||||
((:transitional "IDN2_TRANSITIONAL"))
|
|
||||||
((:nontransitional "IDN2_NONTRANSITIONAL"))
|
|
||||||
((:allow-unassigned "IDN2_ALLOW_UNASSIGNED"))
|
|
||||||
((:use-std3-ascii-rules "IDN2_USE_STD3_ASCII_RULES"))
|
|
||||||
((:no-tr46 "IDN2_NO_TR46")))
|
|
||||||
|
|
||||||
;;; this value does not exists for old version of the library, removing
|
|
||||||
;;; to allow compilation on old system
|
|
||||||
;; ((:no-alabel-roundtrip "IDN2_NO_ALABEL_ROUNDTRIP")))
|
|
189
src/idn.lisp
189
src/idn.lisp
|
@ -1,89 +1,124 @@
|
||||||
(in-package :idn)
|
(in-package :idn)
|
||||||
|
|
||||||
(cffi:define-foreign-library libidn2
|
(defgeneric basic-code-point-p (object))
|
||||||
(:unix (:or "libidn2.so.0" "libidn2.so"))
|
|
||||||
(t (:default "libmagic")))
|
|
||||||
|
|
||||||
(cffi:use-foreign-library libidn2)
|
(defmethod basic-code-point-p ((object character))
|
||||||
|
(basic-code-point-p (char-code object)))
|
||||||
|
|
||||||
;; int idn2_to_ascii_8z (const char * input, char ** output, int flags)
|
(defmethod basic-code-point-p ((object integer))
|
||||||
|
(<= 0 object #x7f))
|
||||||
|
|
||||||
(cffi:defcfun (idn2-to-ascii-8z "idn2_to_ascii_8z")
|
(defun digit->code-point (digit)
|
||||||
:int
|
(code-char (cond
|
||||||
(input :pointer)
|
((<= 0 digit 25)
|
||||||
(output :pointer)
|
(+ 97 digit))
|
||||||
(flags :int))
|
((<= 26 digit 35)
|
||||||
|
(+ (- digit 26) 48))
|
||||||
|
(t
|
||||||
|
(error "digit overflow")))))
|
||||||
|
|
||||||
;; int idn2_to_unicode_8z8z (const char *input, char **output, int flags)
|
(defun div (a b)
|
||||||
|
(floor (/ a b)))
|
||||||
|
|
||||||
(cffi:defcfun (idn2-to-unicode-8z8z "idn2_to_unicode_8z8z")
|
(define-constant +base+ 36 :test #'=)
|
||||||
:int
|
|
||||||
(input :pointer)
|
|
||||||
(output :pointer)
|
|
||||||
(flags :int)) ; unused
|
|
||||||
|
|
||||||
(define-condition punycode-conversion-error (error)
|
(define-constant +t-min+ 1 :test #'=)
|
||||||
((host
|
|
||||||
:initarg :host
|
|
||||||
:reader host)
|
|
||||||
(error-code
|
|
||||||
:initarg :error-code
|
|
||||||
:reader error-code))
|
|
||||||
(:report (lambda (condition stream)
|
|
||||||
(format stream
|
|
||||||
"error converting ~a to ASCII (code: ~a)"
|
|
||||||
(host condition)
|
|
||||||
(error-code condition))))
|
|
||||||
(:documentation "Error conversion unicode -> ASCII"))
|
|
||||||
|
|
||||||
(defun ->ascii-default-flags ()
|
(define-constant +t-max+ 26 :test #'=)
|
||||||
(logior (cffi:foreign-enum-value 'flags :nontransitional)
|
|
||||||
(cffi:foreign-enum-value 'flags :nfc-input)))
|
|
||||||
|
|
||||||
(defun unicode->ascii (host &optional (flags (->ascii-default-flags)))
|
(define-constant +skew+ 38 :test #'=)
|
||||||
(labels ((deref (ptr** index)
|
|
||||||
(cffi:mem-aref (cffi:mem-aref ptr** :pointer)
|
|
||||||
:char index)))
|
|
||||||
(cffi:with-foreign-string (input host)
|
|
||||||
(cffi:with-foreign-object (buf* :unsigned-char)
|
|
||||||
(cffi:with-foreign-object (buf** :pointer)
|
|
||||||
(setf (cffi:mem-ref buf** :pointer) buf*)
|
|
||||||
(let ((results (idn2-to-ascii-8z input buf** flags)))
|
|
||||||
(unwind-protect
|
|
||||||
(if (= (cffi:foreign-enum-value 'idn2-rc :ok)
|
|
||||||
results)
|
|
||||||
(with-output-to-string (punycode)
|
|
||||||
(loop for i from 0 while (/= (deref buf** i)
|
|
||||||
0)
|
|
||||||
do
|
|
||||||
(let ((octect (deref buf** i)))
|
|
||||||
(write-char (code-char octect) punycode))))
|
|
||||||
(error 'punycode-conversion-error
|
|
||||||
:host host
|
|
||||||
:error-code (cffi:foreign-enum-keyword 'idn2-rc results)))
|
|
||||||
(cffi:foreign-free (cffi:mem-aref buf** :pointer)))))))))
|
|
||||||
|
|
||||||
|
(define-constant +damp+ 700 :test #'=)
|
||||||
|
|
||||||
(defun ascii->unicode (host)
|
(define-constant +initial-bias+ 72 :test #'=)
|
||||||
(labels ((deref (ptr** index)
|
|
||||||
(cffi:mem-aref (cffi:mem-aref ptr** :pointer)
|
(define-constant +delimiter+ #\- :test #'char=)
|
||||||
:char index)))
|
|
||||||
(cffi:with-foreign-string (input host)
|
(define-constant +encoded-string-prefix+ "xn--" :test #'string=)
|
||||||
(cffi:with-foreign-object (buf* :unsigned-char)
|
|
||||||
(cffi:with-foreign-object (buf** :pointer)
|
(define-constant +delta-overflow+ (1- (expt 2 26)) :test #'=)
|
||||||
(setf (cffi:mem-ref buf** :pointer) buf*)
|
|
||||||
(let ((results (idn2-to-unicode-8z8z input buf** 0)))
|
(define-constant +initial-n+ #x80 :test #'=)
|
||||||
(unwind-protect
|
|
||||||
(if (= (cffi:foreign-enum-value 'idn2-rc :ok)
|
(defun unicode->ascii (unicode-text)
|
||||||
results)
|
(let* ((n +initial-n+)
|
||||||
(let ((octects (misc:make-array-frame 0 0 '(unsigned-byte 8))))
|
(delta 0)
|
||||||
(loop for i from 0 while (/= (deref buf** i)
|
(bias +initial-bias+)
|
||||||
0)
|
(basic-code-points (remove-if-not #'basic-code-point-p unicode-text))
|
||||||
do
|
(h (length basic-code-points))
|
||||||
(vector-push-extend (logand (deref buf** i) 255)
|
(b (length basic-code-points))
|
||||||
octects))
|
(output (if (> b 0)
|
||||||
(babel:octets-to-string octects))
|
(text-utils:strcat basic-code-points (string +delimiter+))
|
||||||
(error 'punycode-conversion-error
|
basic-code-points)))
|
||||||
:host host
|
(labels ((adapt (delta num-points first-time)
|
||||||
:error-code (cffi:foreign-enum-keyword 'idn2-rc results)))
|
(if first-time
|
||||||
(cffi:foreign-free (cffi:mem-aref buf** :pointer)))))))))
|
(setf delta (div delta +damp+))
|
||||||
|
(setf delta (div delta 2)))
|
||||||
|
(incf delta (div delta num-points))
|
||||||
|
(let ((k 0))
|
||||||
|
(loop while (> delta
|
||||||
|
(div (* (- +base+ +t-min+)
|
||||||
|
+t-max+)
|
||||||
|
2))
|
||||||
|
do
|
||||||
|
(setf delta (div delta (- +base+ +t-min+)))
|
||||||
|
(incf k +base+))
|
||||||
|
(+ k
|
||||||
|
(div (* (+ (- +base+ +t-min+) 1)
|
||||||
|
delta)
|
||||||
|
(+ delta +skew+)))))
|
||||||
|
(maybe-signal-overflow (delta)
|
||||||
|
(when (> delta +delta-overflow+)
|
||||||
|
(error "overflow detected"))))
|
||||||
|
(loop while (< h (length unicode-text)) do
|
||||||
|
(let ((minimum-code-greater-than-n (num:find-min (remove-if (lambda (a) (< a n))
|
||||||
|
(map 'list
|
||||||
|
#'char-code
|
||||||
|
unicode-text)))))
|
||||||
|
(setf delta (+ delta (* (- minimum-code-greater-than-n n)
|
||||||
|
(+ h 1))))
|
||||||
|
(maybe-signal-overflow delta)
|
||||||
|
(setf n minimum-code-greater-than-n)
|
||||||
|
(loop for character across unicode-text do
|
||||||
|
(let ((code-point (char-code character)))
|
||||||
|
(cond
|
||||||
|
((< code-point n)
|
||||||
|
(incf delta)
|
||||||
|
(maybe-signal-overflow delta))
|
||||||
|
((= code-point n)
|
||||||
|
(let ((q delta))
|
||||||
|
(loop named inner-loop for k from +base+ by +base+ do
|
||||||
|
(let ((tx (cond
|
||||||
|
((<= k bias)
|
||||||
|
+t-min+)
|
||||||
|
((>= k (+ bias +t-max+))
|
||||||
|
+t-max+)
|
||||||
|
(t
|
||||||
|
(- k bias)))))
|
||||||
|
(when (< q tx)
|
||||||
|
(return-from inner-loop))
|
||||||
|
(let ((new-char (digit->code-point (+ tx (rem (- q tx)
|
||||||
|
(- +base+ tx))))))
|
||||||
|
(setf output (text-utils:strcat output (string new-char))))
|
||||||
|
(setf q (div (- q tx)
|
||||||
|
(- +base+ tx)))))
|
||||||
|
(setf output (text-utils:strcat output (string (digit->code-point q))))
|
||||||
|
(setf bias (adapt delta (1+ h) (= h b)))
|
||||||
|
(setf delta 0)
|
||||||
|
(incf h))))))
|
||||||
|
(incf delta)
|
||||||
|
(incf n)))
|
||||||
|
(cond
|
||||||
|
((text-utils:string-empty-p output)
|
||||||
|
output)
|
||||||
|
((char= (alexandria:last-elt output) +delimiter+)
|
||||||
|
(misc:all-but-last-elt output))
|
||||||
|
(t
|
||||||
|
(text-utils:strcat +encoded-string-prefix+ output))))))
|
||||||
|
|
||||||
|
(defun host-unicode->ascii (unicode-host)
|
||||||
|
(if (find #\. unicode-host :test #'char=)
|
||||||
|
(let ((splitted (cl-ppcre:split "\\." unicode-host)))
|
||||||
|
(text-utils:join-with-strings (mapcar #'unicode->ascii splitted)
|
||||||
|
"."))
|
||||||
|
(unicode->ascii unicode-host)))
|
||||||
|
|
|
@ -15,10 +15,12 @@
|
||||||
;; along with this program. If not, see <http://www.gnu.org/licenses/>.
|
;; along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
(defpackage :idn
|
(defpackage :idn
|
||||||
(:use :cl)
|
(:use
|
||||||
|
:cl
|
||||||
|
:alexandria)
|
||||||
(:export
|
(:export
|
||||||
:unicode->ascii
|
:host-unicode->ascii
|
||||||
:ascii->unicode))
|
:host-ascii->unicode))
|
||||||
|
|
||||||
(defpackage :config
|
(defpackage :config
|
||||||
(:use :cl)
|
(:use :cl)
|
||||||
|
|
|
@ -0,0 +1,37 @@
|
||||||
|
;; tinmop: an humble gemini and pleroma client
|
||||||
|
;; Copyright (C) 2021 cage
|
||||||
|
|
||||||
|
;; 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 3 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, see [[http://www.gnu.org/licenses/][http://www.gnu.org/licenses/]].
|
||||||
|
|
||||||
|
(in-package :idn-tests)
|
||||||
|
|
||||||
|
(defsuite idn-suite (all-suite))
|
||||||
|
|
||||||
|
(defun test-encode (unicode expected)
|
||||||
|
(string= (idn::host-unicode->ascii unicode)
|
||||||
|
expected))
|
||||||
|
|
||||||
|
(deftest test-unicode->ascii (idn-suite)
|
||||||
|
(assert-true (test-encode "إختبار" "xn--kgbechtv"))
|
||||||
|
(assert-true (test-encode "آزمایشی" "xn--hgbk6aj7f53bba"))
|
||||||
|
(assert-true (test-encode "测试" "xn--0zwm56d"))
|
||||||
|
(assert-true (test-encode "測試" "xn--g6w251d"))
|
||||||
|
(assert-true (test-encode "испытание" "xn--80akhbyknj4f"))
|
||||||
|
(assert-true (test-encode "परीक्षा" "xn--11b5bs3a9aj6g"))
|
||||||
|
(assert-true (test-encode "δοκιμή" "xn--jxalpdlp"))
|
||||||
|
(assert-true (test-encode "테스트" "xn--9t4b11yi5a" ))
|
||||||
|
(assert-true (test-encode "טעסט" "xn--deba0ad"))
|
||||||
|
(assert-true (test-encode "テスト" "xn--zckzah"))
|
||||||
|
(assert-true (test-encode "பரிட்சை" "xn--hlcj6aya9esc7a")))
|
|
@ -110,3 +110,11 @@
|
||||||
:text-utils
|
:text-utils
|
||||||
:all-tests)
|
:all-tests)
|
||||||
(:export))
|
(:export))
|
||||||
|
|
||||||
|
(defpackage :idn-tests
|
||||||
|
(:use :cl
|
||||||
|
:clunit
|
||||||
|
:misc
|
||||||
|
:text-utils
|
||||||
|
:all-tests)
|
||||||
|
(:export))
|
||||||
|
|
|
@ -21,7 +21,6 @@
|
||||||
:version "0.5.0"
|
:version "0.5.0"
|
||||||
:pathname "src"
|
:pathname "src"
|
||||||
:serial t
|
:serial t
|
||||||
:defsystem-depends-on ("cffi-grovel")
|
|
||||||
:depends-on (:alexandria
|
:depends-on (:alexandria
|
||||||
:cl-ppcre
|
:cl-ppcre
|
||||||
:tooter
|
:tooter
|
||||||
|
@ -53,7 +52,6 @@
|
||||||
:percent-encoding
|
:percent-encoding
|
||||||
:uiop)
|
:uiop)
|
||||||
:components ((:file "package")
|
:components ((:file "package")
|
||||||
(:cffi-grovel-file "grovel-idn")
|
|
||||||
(:file "idn")
|
(:file "idn")
|
||||||
(:file "config")
|
(:file "config")
|
||||||
(:file "constants")
|
(:file "constants")
|
||||||
|
@ -140,6 +138,7 @@
|
||||||
(:file "thread-window-tests")
|
(:file "thread-window-tests")
|
||||||
(:file "gemini-parser-tests")
|
(:file "gemini-parser-tests")
|
||||||
(:file "program-events-tests")
|
(:file "program-events-tests")
|
||||||
(:file "x509-tests")))))
|
(:file "x509-tests")
|
||||||
|
(:file "idn-tests")))))
|
||||||
|
|
||||||
;; (push :debug-mode *features*)
|
;; (push :debug-mode *features*)
|
||||||
|
|
Loading…
Reference in New Issue