Created
June 25, 2024 14:27
-
-
Save fuhry/10d3a9d0cfed6d6463c5d6c10abaf1c0 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
diff -Naur a/configure.ac b/configure.ac | |
--- a/configure.ac 2024-06-01 00:56:52.000000000 -0400 | |
+++ b/configure.ac 2024-06-25 09:59:35.527039765 -0400 | |
@@ -143,7 +143,7 @@ | |
AC_ARG_WITH(uams-path, [ --with-uams-path=PATH path to UAMs [[$libdir/netatalk]]], [uams_path="$withval"], [uams_path="$libdir/netatalk"]) | |
dnl Check for libgcrypt, if found enables DHX2 UAM | |
-AC_NETATALK_PATH_LIBGCRYPT([1:1.2.3]) | |
+AC_NETATALK_LIBGCRYPT | |
dnl Check for openssl, if found enables DHX UAM and Randnum UAM | |
AC_NETATALK_PATH_SSL | |
diff -Naur a/.github/workflows/build.yml b/.github/workflows/build.yml | |
--- a/.github/workflows/build.yml 2024-06-01 00:56:52.000000000 -0400 | |
+++ b/.github/workflows/build.yml 2024-06-25 09:59:35.527039765 -0400 | |
@@ -638,14 +638,11 @@ | |
echo "Building with Autotools" | |
./bootstrap | |
./configure \ | |
+ MAKE=gmake \ | |
--enable-krbV-uam \ | |
--enable-pgp-uam \ | |
- --with-bdb=/usr/pkg \ | |
--with-init-style=netbsd \ | |
- --with-libgcrypt-dir=/usr/pkg \ | |
- --with-tracker-pkgconfig-version=3.0 \ | |
- MAKE=gmake \ | |
- PKG_CONFIG_PATH=/usr/pkg/lib/pkgconfig | |
+ --with-tracker-pkgconfig-version=3.0 | |
gmake -j $(nproc) | |
gmake install | |
service netatalk onestart | |
@@ -814,23 +811,21 @@ | |
set -e | |
export PATH=/opt/local/sbin:/opt/local/bin:/usr/gnu/bin:/usr/bin:/usr/sbin:/sbin:$PATH | |
echo "Building with Autotools" | |
+ export PKG_CONFIG_PATH=/opt/local/lib/pkgconfig | |
./bootstrap | |
./configure \ | |
--enable-pgp-uam \ | |
--with-bdb=/opt/local \ | |
--with-init-style=solaris \ | |
--with-ldap=/opt/local \ | |
- --with-libgcrypt-dir=/opt/local \ | |
- --with-tracker-pkgconfig-version=3.0 \ | |
- MAKE=gmake \ | |
- PKG_CONFIG_PATH=/opt/local/lib/pkgconfig | |
- gmake -j $(nproc) | |
- gmake install | |
+ --with-tracker-pkgconfig-version=3.0 | |
+ make -j $(nproc) | |
+ make install | |
svcadm enable svc:/network/netatalk:default | |
sleep 2 | |
/usr/local/bin/asip-status localhost | |
svcadm disable svc:/network/netatalk:default | |
- gmake uninstall | |
+ make uninstall | |
echo "Building with Meson" | |
meson setup build \ | |
-Dpkg_config_path=/opt/local/lib/pkgconfig \ | |
@@ -845,6 +840,7 @@ | |
ninja -C build uninstall | |
build-solaris: | |
+ if: false | |
name: Solaris | |
runs-on: ubuntu-latest | |
permissions: | |
diff -Naur a/macros/libgcrypt.m4 b/macros/libgcrypt.m4 | |
--- a/macros/libgcrypt.m4 2024-06-01 00:56:52.000000000 -0400 | |
+++ b/macros/libgcrypt.m4 2024-06-25 09:59:35.527039765 -0400 | |
@@ -1,126 +1,26 @@ | |
-dnl AM_PATH_LIBGCRYPT([MINIMUM-VERSION, | |
-dnl [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND ]]]) | |
-dnl Test for libgcrypt and define LIBGCRYPT_CFLAGS and LIBGCRYPT_LIBS. | |
-dnl MINIMUN-VERSION is a string with the version number optionalliy prefixed | |
-dnl with the API version to also check the API compatibility. Example: | |
-dnl a MINIMUN-VERSION of 1:1.2.5 won't pass the test unless the installed | |
-dnl version of libgcrypt is at least 1.2.5 *and* the API number is 1. Using | |
-dnl this features allows to prevent build against newer versions of libgcrypt | |
-dnl with a changed API. | |
-dnl | |
-AC_DEFUN([AC_NETATALK_PATH_LIBGCRYPT], | |
-[ AC_ARG_WITH(libgcrypt-dir, | |
- AS_HELP_STRING([--with-libgcrypt-dir=PATH], | |
- [path where LIBGCRYPT is installed (optional). | |
- Must contain lib and include dirs.]), | |
- libgcrypt_config_prefix="$withval", libgcrypt_config_prefix="") | |
- if test x$libgcrypt_config_prefix != x ; then | |
- if test x${LIBGCRYPT_CONFIG+set} != xset ; then | |
- LIBGCRYPT_CONFIG=$libgcrypt_config_prefix/bin/libgcrypt-config | |
- fi | |
- fi | |
+dnl Check for libgcrypt | |
+AC_DEFUN([AC_NETATALK_LIBGCRYPT], [ | |
- ok=no | |
- | |
-if test x$libgcrypt_config_prefix != xno ; then | |
- | |
- AC_PATH_PROG(LIBGCRYPT_CONFIG, libgcrypt-config, no) | |
- tmp=ifelse([$1], ,1:1.2.0,$1) | |
- if echo "$tmp" | grep ':' >/dev/null 2>/dev/null ; then | |
- req_libgcrypt_api=`echo "$tmp" | sed 's/\(.*\):\(.*\)/\1/'` | |
- min_libgcrypt_version=`echo "$tmp" | sed 's/\(.*\):\(.*\)/\2/'` | |
- else | |
- req_libgcrypt_api=0 | |
- min_libgcrypt_version="$tmp" | |
- fi | |
- | |
- AC_MSG_CHECKING(for LIBGCRYPT - version >= $min_libgcrypt_version) | |
- if test "$LIBGCRYPT_CONFIG" != "no" ; then | |
- req_major=`echo $min_libgcrypt_version | \ | |
- sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\)/\1/'` | |
- req_minor=`echo $min_libgcrypt_version | \ | |
- sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\)/\2/'` | |
- req_micro=`echo $min_libgcrypt_version | \ | |
- sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\)/\3/'` | |
- libgcrypt_config_version=`$LIBGCRYPT_CONFIG --version` | |
- major=`echo $libgcrypt_config_version | \ | |
- sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\).*/\1/'` | |
- minor=`echo $libgcrypt_config_version | \ | |
- sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\).*/\2/'` | |
- micro=`echo $libgcrypt_config_version | \ | |
- sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\).*/\3/'` | |
- if test "$major" -gt "$req_major"; then | |
- ok=yes | |
+AC_ARG_WITH(libgcrypt-dir, | |
+ AS_HELP_STRING([--with-libgcrypt-dir=PATH], | |
+ [path where LIBGCRYPT is installed (optional). | |
+ Must contain lib and include dirs.]), | |
+ netatalk_cv_libgcrypt=$withval) | |
+ if test x$netatalk_cv_libgcrypt != x ; then | |
+ LIBGCRYPT_CFLAGS="-I$netatalk_cv_libgcrypt/include" | |
+ LIBGCRYPT_LIBS="-L$netatalk_cv_libgcrypt/lib" | |
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 ($libgcrypt_config_version)]) | |
- else | |
- AC_MSG_RESULT(no) | |
- fi | |
-fi | |
- | |
- if test $ok = yes; then | |
- # If we have a recent libgcrypt, we should also check that the | |
- # API is compatible | |
- if test "$req_libgcrypt_api" -gt 0 ; then | |
- tmp=`$LIBGCRYPT_CONFIG --api-version 2>/dev/null || echo 0` | |
- if test "$tmp" -gt 0 ; then | |
- AC_MSG_CHECKING([libgcrypt API version]) | |
- if test "$req_libgcrypt_api" -eq "$tmp" ; then | |
- AC_MSG_RESULT([okay]) | |
- else | |
- ok=no | |
- AC_MSG_RESULT([does not match. want=$req_libgcrypt_api got=$tmp]) | |
- fi | |
- fi | |
- fi | |
- fi | |
- if test $ok = yes; then | |
- # Opensolaris 11/08 provided libgcrypt doesn't have CAST5, | |
- # so we better check the general case | |
- AC_MSG_CHECKING([libgcrypt hast CAST5 API]) | |
- cast=`$LIBGCRYPT_CONFIG --algorithms 2>/dev/null | grep cast5 | sed 's/\(.*\)\(cast5\)\(.*\)/\2/'` | |
- if test x$cast = xcast5 ; then | |
- AC_MSG_RESULT([yes]) | |
- else | |
- AC_MSG_RESULT([no]) | |
- echo "*** Detected libgcryt without CAST5 ***" | |
- echo "*** Please install/build another one and point to it with ***" | |
- echo "*** --with-libgcrypt-dir=<path-to-lib> ***" | |
- ok=no | |
- fi | |
- fi | |
- | |
- if test $ok = yes; then | |
- LIBGCRYPT_CFLAGS=`$LIBGCRYPT_CONFIG --cflags` | |
- LIBGCRYPT_LIBS=`$LIBGCRYPT_CONFIG --libs` | |
- neta_cv_compile_dhx2=yes | |
- neta_cv_have_libgcrypt=yes | |
- AC_MSG_NOTICE([Enabling DHX2 UAM]) | |
- AC_DEFINE(HAVE_LIBGCRYPT, 1, [Define if the DHX2 modules should be built with libgcrypt]) | |
- AC_DEFINE(UAM_DHX2, 1, [Define if the DHX2 UAM modules should be compiled]) | |
- ifelse([$2], , :, [$2]) | |
- else | |
- if test x$libgcrypt_config_prefix != x"no" ; then | |
- AC_MSG_ERROR([Could not find libgcrypt development files needed for the DHX2 UAM, please install the libgcrypt devel package]) | |
+ PKG_CHECK_MODULES(LIBGCRYPT, [libgcrypt >= 1.2.3], | |
+ ac_cv_have_libgcrypt=yes, | |
+ [AC_MSG_ERROR([Could not find libgcrypt development files needed for the DHX2 UAM, please install libgcrypt version 1.2.3 or later])]) | |
+ fi | |
+ if test x"$ac_cv_have_libgcrypt" = x"yes" -o x$netatalk_cv_libgcrypt != x; then | |
+ neta_cv_compile_dhx2=yes | |
+ neta_cv_have_libgcrypt=yes | |
+ AC_MSG_NOTICE([Enabling DHX2 UAM]) | |
+ AC_DEFINE(HAVE_LIBGCRYPT, 1, [Define if the DHX2 modules should be built with libgcrypt]) | |
+ AC_DEFINE(UAM_DHX2, 1, [Define if the DHX2 UAM modules should be compiled]) | |
+ AC_SUBST(LIBGCRYPT_CFLAGS) | |
+ AC_SUBST(LIBGCRYPT_LIBS) | |
fi | |
- LIBGCRYPT_CFLAGS="" | |
- LIBGCRYPT_LIBS="" | |
- ifelse([$3], , :, [$3]) | |
- fi | |
- AC_SUBST(LIBGCRYPT_CFLAGS) | |
- AC_SUBST(LIBGCRYPT_LIBS) | |
]) | |
diff -Naur a/meson.build b/meson.build | |
--- a/meson.build 2024-06-01 00:56:52.000000000 -0400 | |
+++ b/meson.build 2024-06-25 10:19:51.563901351 -0400 | |
@@ -925,7 +925,7 @@ | |
include_directories: include_directories(libgcrypt_dir / 'include'), | |
) | |
else | |
- libgcrypt = dependency('libgcrypt', required: false) | |
+ libgcrypt = dependency('libgcrypt', version : '>=1.2.3', required: false) | |
if not libgcrypt.found() | |
libgcrypt = cc.find_library( | |
'libgcrypt', | |
@@ -935,39 +935,15 @@ | |
endif | |
endif | |
-libgcrypt_config = find_program( | |
- 'libgcrypt-config', | |
- dirs: libgcrypt_dir + '/bin', | |
- required: false, | |
-) | |
+have_libgcrypt = libgcrypt.found() | |
-cast5_api = run_command( | |
- libgcrypt_config, | |
- '--algorithms', | |
- check: false, | |
-).stdout().strip().contains('cast5') | |
- | |
-# Reserved for future use: | |
-# libgcrypt_version = libgcrypt_config.version().version_compare('>=1.2.3') | |
- | |
-if not libgcrypt.found() | |
- have_libgcrypt = false | |
+if have_gcrypt | |
+ cdata.set('HAVE_LIBGCRYPT', 1) | |
+ cdata.set('UAM_DHX2', 1) | |
+else | |
error( | |
- 'Libgcrypt library required for DHX2 UAM! Please install version 1.2.3 or later', | |
+ 'Detected libgcrypt without CAST5, please install a more recent version that contains this API', | |
) | |
-else | |
- # Reserved for future use: | |
- # have_libgcrypt = libgcrypt_version and cast5_api | |
- have_libgcrypt = libgcrypt.found() and cast5_api | |
- if not cast5_api | |
- have_libgcrypt = false | |
- error( | |
- 'Detected libgcrypt without CAST5, please install a more recent version that contains this API', | |
- ) | |
- else | |
- cdata.set('HAVE_LIBGCRYPT', 1) | |
- cdata.set('UAM_DHX2', 1) | |
- endif | |
endif | |
# |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment