чување 9fc626fa425edcde88b482c3102a12ce86419cc6
родитељ f87152ea9c14b3ab8320359dcc96a1a6614f6852
Аутор: Страхиња Радић <contact@strahinja.org>
Датум: Thu, 15 Sep 2022 20:43:04 +0200
Add cyrus-sasl
Signed-off-by: Страхиња Радић <contact@strahinja.org>
Diffstat:
измењених датотека: 6, додавања: 132(+), брисања: 1(-)
diff --git a/TODO b/TODO
@@ -1,7 +1,7 @@
TODO
====
-[ ] Add SASL, rebuild s-nail, neomutt, isync
+[x] Add SASL, rebuild s-nail, neomutt, isync
[ ] Add urlview
diff --git a/cyrus-sasl/config.mk b/cyrus-sasl/config.mk
@@ -0,0 +1,6 @@
+PKGBASE= cyrus-sasl
+PKGVER= 2.1.28
+LEGALFILES= COPYING
+PREFIX= /sucks
+SYSCONFDIR= /etc
+SRCTARBALLS= https://github.com/cyrusimap/cyrus-sasl/releases/download/$PKGBASE-$PKGVER/$PKGBASE-$PKGVER.tar.gz
diff --git a/cyrus-sasl/mkfile b/cyrus-sasl/mkfile
@@ -0,0 +1,67 @@
+mkpklib=/lib/mkpk
+<$mkpklib/defaults.mk
+<config.mk
+<$mkpklib/derivatives.mk
+
+PKG= $PKGBASE-$PKGVER
+BINDIR= $PREFIX/bin
+DATADIR= $PREFIX/share
+MANDIR= $DATADIR/man
+#CFLAGS= $CFLAGS -static-libstdc++ -static-libgcc
+#CXXFLAGS= $CFLAGS
+#LDFLAGS= -static -Wl,-Bstatic
+
+$PKGBASE:QV:
+ for patch in $(find pat -type f -name '*.patch' | sort); do
+ if [ -e $patch.applied ]; then
+ continue
+ fi
+ printf " PATCH\t%s\n" "$patch"
+ patch -Np1 -i $patch || exit 1
+ :>$patch.applied
+ done
+ printf " AUTO\t-vif\n"
+ autoreconf -vif
+ exit 1
+ printf " CD\tbuild\n"
+ cd build
+ # TODO: Fix libmount to allow static linking; disabled libmount for now
+ unset CFLAGS CXXFLAGS LDFLAGS
+ printf " MESON\t%s\n" --prefix=$PREFIX
+ meson --prefix=$PREFIX \
+ -Dman=true -Dselinux=disabled \
+ -Ddefault_library=static \
+ -Dlibmount=disabled \
+ ..
+ printf " NINJA\n"
+ ninja
+ printf " CD\t-\n"
+ cd - >/dev/null
+
+install:QV: $PKGBASE install-legal
+ printf " CD\tbuild\n"
+ cd build
+ printf " NINJA\tinstall %s\n" "DESTDIR=../$DESTDIR"
+ DESTDIR=../$DESTDIR ninja install
+ printf " CD\t-\n"
+ cd - >/dev/null
+ printf " LN\t%s %s\n" glib-2.0.pc $DESTDIR$PREFIX/lib/pkgconfig/glib.pc
+ ln -sf glib-2.0.pc $DESTDIR$PREFIX/lib/pkgconfig/glib.pc
+
+install-legal:QV: $PKGBASE
+ for legalfile in $LEGALFILES; do
+ printf " INST\t%s\n" "$legalfile"
+ $INSTALL -Dm0644 "$legalfile" $LEGALDIR/$legalfile
+ done
+
+clean:QV:
+ if [ -d build ]; then
+ printf " CD\tbuild\n"
+ cd build
+ printf " NINJA\tclean\n"
+ ninja clean
+ printf " CD\t-\n"
+ cd - >/dev/null
+ fi
+
+<$mkpklib/package.mk
diff --git a/cyrus-sasl/pat/cyrus-sasl-2.1.27-as_needed.patch b/cyrus-sasl/pat/cyrus-sasl-2.1.27-as_needed.patch
@@ -0,0 +1,25 @@
+Author: Matthias Klose <doko@ubuntu.com>
+Desription: Fix FTBFS, add $(SASL_DB_LIB) as dependency to libsasldb, and use
+it.
+--- cyrus-sasl-2.1.27/saslauthd/Makefile.am
++++ cyrus-sasl-2.1.27/saslauthd/Makefile.am
+@@ -25,7 +25,7 @@
+ saslauthd_DEPENDENCIES = saslauthd-main.o $(LTLIBOBJS_FULL)
+ saslauthd_LDADD = @SASL_KRB_LIB@ \
+ @GSSAPIBASE_LIBS@ @LIB_CRYPT@ @LIB_SIA@ \
+- @LIB_SOCKET@ @SASL_DB_LIB@ @LIB_PAM@ @LDAP_LIBS@ $(LTLIBOBJS_FULL) $(CRYPTO_COMPAT_OBJS) $(LIBSASLDB_OBJS)
++ @LIB_SOCKET@ ../sasldb/libsasldb.la @LIB_PAM@ @LDAP_LIBS@ $(LTLIBOBJS_FULL) $(CRYPTO_COMPAT_OBJS) $(LIBSASLDB_OBJS)
+
+ testsaslauthd_SOURCES = testsaslauthd.c utils.c
+ testsaslauthd_LDADD = @LIB_SOCKET@
+--- cyrus-sasl-2.1.27/sasldb/Makefile.am
++++ cyrus-sasl-2.1.27/sasldb/Makefile.am
+@@ -54,6 +54,6 @@
+
+ libsasldb_la_SOURCES = allockey.c sasldb.h
+ EXTRA_libsasldb_la_SOURCES = $(extra_common_sources)
+-libsasldb_la_DEPENDENCIES = $(SASL_DB_BACKEND)
+-libsasldb_la_LIBADD = $(SASL_DB_BACKEND) $(SASL_DB_LIB)
++libsasldb_la_DEPENDENCIES = $(SASL_DB_BACKEND) $(SASL_DB_LIB)
++libsasldb_la_LIBADD = $(SASL_DB_BACKEND) $(SASL_DB_LIB)
+ libsasldb_la_LDFLAGS = -no-undefined
diff --git a/cyrus-sasl/pat/cyrus-sasl-2.1.27-avoid_pic_overwrite.patch b/cyrus-sasl/pat/cyrus-sasl-2.1.27-avoid_pic_overwrite.patch
@@ -0,0 +1,17 @@
+Author: Fabian Fagerholm <fabbe@debian.org>
+Description: This patch makes sure the non-PIC version of libsasldb.a, which
+is created out of non-PIC objects, is not going to overwrite the PIC version,
+which is created out of PIC objects. The PIC version is placed in .libs, and
+the non-PIC version in the current directory. This ensures that both non-PIC
+and PIC versions are available in the correct locations.
+--- cyrus-sasl-2.1.27/lib/Makefile.am
++++ cyrus-sasl-2.1.27/lib/Makefile.am
+@@ -98,7 +98,7 @@
+
+ libsasl2.a: libsasl2.la $(SASL_STATIC_OBJS)
+ @echo adding static plugins and dependencies
+- $(AR) cru .libs/$@ $(SASL_STATIC_OBJS)
++ $(AR) cru $@ $(SASL_STATIC_OBJS)
+ @for i in ./libsasl2.la ../common/libplugin_common.la ../sasldb/libsasldb.la ../plugins/lib*.la; do \
+ if test ! -f $$i; then continue; fi; . $$i; \
+ for j in $$dependency_libs foo; do \
diff --git a/cyrus-sasl/pat/cyrus-sasl-2.1.27-gss_c_nt_hostbased_service.patch b/cyrus-sasl/pat/cyrus-sasl-2.1.27-gss_c_nt_hostbased_service.patch
@@ -0,0 +1,16 @@
+Gentoo bug #389349
+--- cyrus-sasl-2.1.27/m4/sasl2.m4
++++ cyrus-sasl-2.1.27/m4/sasl2.m4
+@@ -220,7 +220,11 @@
+ [AC_WARN([Cybersafe define not found])])
+
+ elif test "$ac_cv_header_gssapi_h" = "yes"; then
+- AC_EGREP_HEADER(GSS_C_NT_HOSTBASED_SERVICE, gssapi.h,
++ AC_EGREP_CPP(hostbased_service_gss_nt_yes, gssapi.h,
++ [#include <gssapi.h>
++ #ifdef GSS_C_NT_HOSTBASED_SERVICE
++ hostbased_service_gss_nt_yes
++ #endif],
+ [AC_DEFINE(HAVE_GSS_C_NT_HOSTBASED_SERVICE,,
+ [Define if your GSSAPI implementation defines GSS_C_NT_HOSTBASED_SERVICE])])
+ elif test "$ac_cv_header_gssapi_gssapi_h"; then