aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFrancesco Colista <fcolista@alpinelinux.org>2020-10-02 09:52:44 +0000
committerFrancesco Colista <fcolista@alpinelinux.org>2020-10-02 09:52:47 +0000
commit76c7f3ed595b92b167ea177b8b0f6497e1a77e98 (patch)
treeb682d28ae50b77da172c53e231bd99d87a7b985b
parent2f2545e0d8e4f9863f73cb70eed34a4ade406578 (diff)
downloadaports-76c7f3ed595b92b167ea177b8b0f6497e1a77e98.tar.gz
aports-76c7f3ed595b92b167ea177b8b0f6497e1a77e98.tar.bz2
aports-76c7f3ed595b92b167ea177b8b0f6497e1a77e98.tar.xz
main/apache-mod-auth-kerb: merged gentoo patch
Patch picked from gentoo for "krb5_rc_dfl_init: symbol not found" error Related to issue: https://gitlab.alpinelinux.org/alpine/aports/-/issues/11973
-rw-r--r--main/apache-mod-auth-kerb/APKBUILD6
-rw-r--r--main/apache-mod-auth-kerb/mod_auth_kerb-5.4-fixes.patch40
-rw-r--r--main/apache-mod-auth-kerb/mod_auth_kerb-5.4-rcopshack.patch73
3 files changed, 118 insertions, 1 deletions
diff --git a/main/apache-mod-auth-kerb/APKBUILD b/main/apache-mod-auth-kerb/APKBUILD
index 9cc1751f06..69aaac3094 100644
--- a/main/apache-mod-auth-kerb/APKBUILD
+++ b/main/apache-mod-auth-kerb/APKBUILD
@@ -3,7 +3,7 @@
pkgname=apache-mod-auth-kerb
_pkgname=mod_auth_kerb
pkgver=5.4
-pkgrel=7
+pkgrel=8
pkgdesc="A Kerberos authentication module for the Apache Http Server"
url="https://sourceforge.net/projects/modauthkerb/"
arch="all"
@@ -15,6 +15,8 @@ source="https://downloads.sourceforge.net/project/modauthkerb/mod_auth_kerb/mod_
mod_auth_kerb-5.4-httpd24.patch
mod_auth_kerb_compile.patch
krb5-1.18-fix.patch
+ mod_auth_kerb-5.4-rcopshack.patch
+ mod_auth_kerb-5.4-fixes.patch
mod-auth-kerb.conf
"
builddir="$srcdir"/$_pkgname-$pkgver
@@ -41,4 +43,6 @@ sha512sums="93fdf0e43af1c24e8c8204d09240b708747068ef99dd8d21b45cb4d132d31e6d582d
fb7c8b18adce99c1bd200a8c1dd7794d0ecee49aa6308180b03537be160ea4426150f1421be9e2462f036296fbd220aa823a2689023899c66817baea8416aad9 mod_auth_kerb-5.4-httpd24.patch
f8fd9cce15593592995a53374a7dbbf6171c4f5e9e82d5bf59953fcfa6fa81cf6890ec4c9ddc2e0963060ea34e98b590f037b1f0274c284085350e6bc4792748 mod_auth_kerb_compile.patch
f375dd027eb4b2094a39d321379dade5449a6daac0306eae9bc517344df4e5e65b59ba7b84617df328b00141740da5e515d3f20a448100ee1d95aab9f60e1152 krb5-1.18-fix.patch
+4da4e51baec036fdf035ee6f215453129b4b93a7733887834c08c0c5a7610ebe8e0981ad34a5cd5ed86af58c926bd65417fe09f64ce42d56b41e5051b96f6ca5 mod_auth_kerb-5.4-rcopshack.patch
+4881deb0accbd1ebff88a210036f2c66d443625727580ca25a8a403a96a8fa39edc2a01769584a474d1a1dbf028438a754319c3e318b2bef9114db754d542112 mod_auth_kerb-5.4-fixes.patch
b6cfa12dbfd37f98de4d5b23f16462efbfa394d4e9dd6a15772aa18fbec0704c3d9f6e5d242d501a8f1c3091abf893de261115ee54ea31d9d9e0a4d1724473a4 mod-auth-kerb.conf"
diff --git a/main/apache-mod-auth-kerb/mod_auth_kerb-5.4-fixes.patch b/main/apache-mod-auth-kerb/mod_auth_kerb-5.4-fixes.patch
new file mode 100644
index 0000000000..b86be697ae
--- /dev/null
+++ b/main/apache-mod-auth-kerb/mod_auth_kerb-5.4-fixes.patch
@@ -0,0 +1,40 @@
+
+Compiler warning fixes.
+
+--- mod_auth_kerb-5.4/src/mod_auth_kerb.c.fixes
++++ mod_auth_kerb-5.4/src/mod_auth_kerb.c
+@@ -677,7 +677,8 @@ end:
+ static krb5_error_code
+ verify_krb5_user(request_rec *r, krb5_context context, krb5_principal principal,
+ const char *password, krb5_principal server,
+- krb5_keytab keytab, int krb_verify_kdc, char *krb_service_name, krb5_ccache *ccache)
++ krb5_keytab keytab, int krb_verify_kdc,
++ const char *krb_service_name, krb5_ccache *ccache)
+ {
+ krb5_creds creds;
+ krb5_get_init_creds_opt options;
+@@ -1280,6 +1281,7 @@ get_gss_creds(request_rec *r,
+ return 0;
+ }
+
++#ifndef GSSAPI_SUPPORTS_SPNEGO
+ static int
+ cmp_gss_type(gss_buffer_t token, gss_OID oid)
+ {
+@@ -1306,6 +1308,7 @@ cmp_gss_type(gss_buffer_t token, gss_OID
+
+ return memcmp(p, oid->elements, oid->length);
+ }
++#endif
+
+ static int
+ authenticate_user_gss(request_rec *r, kerb_auth_config *conf,
+@@ -1722,7 +1725,7 @@ kerb_authenticate_user(request_rec *r)
+ return ret;
+ }
+
+-int
++static int
+ have_rcache_type(const char *type)
+ {
+ krb5_error_code ret;
diff --git a/main/apache-mod-auth-kerb/mod_auth_kerb-5.4-rcopshack.patch b/main/apache-mod-auth-kerb/mod_auth_kerb-5.4-rcopshack.patch
new file mode 100644
index 0000000000..abbf4dba47
--- /dev/null
+++ b/main/apache-mod-auth-kerb/mod_auth_kerb-5.4-rcopshack.patch
@@ -0,0 +1,73 @@
+
+Remove the Krb5 1.3.x-specific hack which mucks about with
+libkrb5 internals, and shouldn't.
+
+--- mod_auth_kerb-5.4/src/mod_auth_kerb.c.rcopshack
++++ mod_auth_kerb-5.4/src/mod_auth_kerb.c
+@@ -285,34 +285,6 @@ mkstemp(char *template)
+ }
+ #endif
+
+-#if defined(KRB5) && !defined(HEIMDAL)
+-/* Needed to work around problems with replay caches */
+-#include "mit-internals.h"
+-
+-/* This is our replacement krb5_rc_store function */
+-static krb5_error_code KRB5_LIB_FUNCTION
+-mod_auth_kerb_rc_store(krb5_context context, krb5_rcache rcache,
+- krb5_donot_replay_internal *donot_replay)
+-{
+- return 0;
+-}
+-
+-/* And this is the operations vector for our replay cache */
+-const krb5_rc_ops_internal mod_auth_kerb_rc_ops = {
+- 0,
+- "dfl",
+- krb5_rc_dfl_init,
+- krb5_rc_dfl_recover,
+- krb5_rc_dfl_destroy,
+- krb5_rc_dfl_close,
+- mod_auth_kerb_rc_store,
+- krb5_rc_dfl_expunge,
+- krb5_rc_dfl_get_span,
+- krb5_rc_dfl_get_name,
+- krb5_rc_dfl_resolve
+-};
+-#endif
+-
+ /***************************************************************************
+ Auth Configuration Initialization
+ ***************************************************************************/
+@@ -1252,31 +1224,6 @@ get_gss_creds(request_rec *r,
+ return HTTP_INTERNAL_SERVER_ERROR;
+ }
+
+-#ifndef HEIMDAL
+- /*
+- * With MIT Kerberos 5 1.3.x the gss_cred_id_t is the same as
+- * krb5_gss_cred_id_t and krb5_gss_cred_id_rec contains a pointer to
+- * the replay cache.
+- * This allows us to override the replay cache function vector with
+- * our own one.
+- * Note that this is a dirty hack to get things working and there may
+- * well be unknown side-effects.
+- */
+- {
+- krb5_gss_cred_id_t gss_creds = (krb5_gss_cred_id_t) *server_creds;
+-
+- /* First we try to verify we are linked with 1.3.x to prevent from
+- crashing when linked with 1.4.x */
+- if (gss_creds && (gss_creds->usage == GSS_C_ACCEPT)) {
+- if (gss_creds->rcache && gss_creds->rcache->ops &&
+- gss_creds->rcache->ops->type &&
+- memcmp(gss_creds->rcache->ops->type, "dfl", 3) == 0)
+- /* Override the rcache operations */
+- gss_creds->rcache->ops = &mod_auth_kerb_rc_ops;
+- }
+- }
+-#endif
+-
+ return 0;
+ }
+