summaryrefslogtreecommitdiff
path: root/net-nds/gssproxy
diff options
context:
space:
mode:
Diffstat (limited to 'net-nds/gssproxy')
-rw-r--r--net-nds/gssproxy/Manifest2
-rw-r--r--net-nds/gssproxy/files/gssproxy-0.9.2-c23.patch106
-rw-r--r--net-nds/gssproxy/gssproxy-0.9.2-r1.ebuild117
3 files changed, 225 insertions, 0 deletions
diff --git a/net-nds/gssproxy/Manifest b/net-nds/gssproxy/Manifest
index 0967e2040aba..c3350b12668c 100644
--- a/net-nds/gssproxy/Manifest
+++ b/net-nds/gssproxy/Manifest
@@ -1,6 +1,8 @@
AUX gssproxy 371 BLAKE2B d51ab4a06138dcc4af7b1706948534bd3b0b0fe1e715085eeb910bfacab9bb9d46af132901d9ed59feaab889409f917c72527377cf233ddce928e02a287bea99 SHA512 ec7b7e6684ed93ec6a71d5c4bfef7f6a6a61b22202607064e906165e1b5a14f283476d25ef19551040b462f173352ce330a3781b20d0865d4799f087cd707c28
+AUX gssproxy-0.9.2-c23.patch 3443 BLAKE2B ecb189ef76654c673663cb62a1c89916d7dcbb0dd793fc5e618f2f59f82ec29e994d4404b1d9b86ce1dc21bbb342f887de5118d2f3d1bce323e3204b51cbcb65 SHA512 29ee79ee56d97cc6456bb857f2f9ad5ec70f0cbf01a1f2152f080e9157ed25af846e9b385f7d30576ec444cf504916d589fe66ad37adeea129fca2741c3bbb09
AUX gssproxy-0.9.2-docbook-upgrade.patch 1773 BLAKE2B dab4cf17d5d14e1b48bec64cfb94af4e5c64022c5bc0ee4f7b8fee3eacc51fc88ccec45a874e3f163d737c6ceceed9a37fbe53a339a4f51135b02ad05cfb115b SHA512 e35da02cfe5c36abd275e4ad9aa258ced8c63ba7a1b10a3334db94f6bf62c5d7d8dd55600769b0bdee1e8a2a7f277af89a6e90da6a3b801365a99c6946d0885a
AUX gssproxy-0.9.2-no-git-log.patch 508 BLAKE2B d819ad3b940439961473a747e293140c391c510f85d31cabf1e3d59e2863bd5b5c52087f64c140dbec3b2dbab5e53d8c4693d95c4597f71fb87a73585fadfd67 SHA512 3b156ce84aab59bbb823e6af5e6be36bd777b3524d91410cb8a47ce223a9fef38d8a9c014c61d6b65d894a9b4e4e1272ccf6346a4a49aa84774af47e687de7f3
DIST gssproxy-0.9.2.tar.gz 586240 BLAKE2B 4480070740ce77a9ed8714bbe8cb24684292317cc61e6c13e06b368bef6d722fdefb3c5230d15773050960851382435a15a0106e5d920c74b13afbbab9ff9194 SHA512 6de484c9c1715e8b845106e1b16e1c29805e4104db296eb44ea15e6b6973fd1df0b043d2cdc2798f04c7a0ce66279e356a285684bc3573ef847532ab2b87aca3
+EBUILD gssproxy-0.9.2-r1.ebuild 3393 BLAKE2B d5e4a4d3c6642f114648c1a116135c65b8e25a8a360bb347a511e74d71817eeed8dc8c7e7249011f0e213e24312e544e84d8fb0af614cd361a663f8a2dac5949 SHA512 5d01956bc139da32fa7fd3957a7f5fbc2dcf41c3da798780dba62b253b1eb85a0903e43135c0e117cae360100193ca8d545d6260c0371c5be602da8ac28fb55e
EBUILD gssproxy-0.9.2.ebuild 3360 BLAKE2B 65588d21fa2f6e1582d7e6ff9fe30e4d2a8a996c6bbf9eb9fba84b3486b6335f9048c746dbb637bfd666dc59bc349b60d6fcd268362bd74301405cbaeef81ce1 SHA512 a75a369b7353567021e2a6d05c91ae7a24ff1f1a33c72f38641f3781c3d2a87c83c9b1e6036c33218df407bf23739e820a7b1addfd1ceb2849163f23bc4d96e5
MISC metadata.xml 304 BLAKE2B 62385ec2c869cf41a61f53284d3c345fe1f26b36741777d4b161d8a522a58942d13ea155e25af7b70f726d716e7c99d628f4cdf7fdbf4dcdf82439095e634475 SHA512 13382010642d9de241dbcc1bc880dc1b3daa3f266d8b75da6ec2db9aa92011ce203e96ad55f6d04a00f0df8ae40c83aa262ac26fd4b0d1bfb66d577b94c02c8d
diff --git a/net-nds/gssproxy/files/gssproxy-0.9.2-c23.patch b/net-nds/gssproxy/files/gssproxy-0.9.2-c23.patch
new file mode 100644
index 000000000000..12d81aff1638
--- /dev/null
+++ b/net-nds/gssproxy/files/gssproxy-0.9.2-c23.patch
@@ -0,0 +1,106 @@
+https://github.com/gssapi/gssproxy/commit/91c87d24bf844875701957f01552b674cced2ca8
+
+From 91c87d24bf844875701957f01552b674cced2ca8 Mon Sep 17 00:00:00 2001
+From: Simo Sorce <simo@redhat.com>
+Date: Mon, 10 Feb 2025 14:55:37 -0500
+Subject: [PATCH] Change declaration of function map
+
+Newer compilers complain if funciton is declared w/o arguments,
+so we redeclare the xdrptoc_t as xdrfn and give it proper arguments
+
+Signed-off-by: Simo Sorce <simo@redhat.com>
+---
+ rpcgen/gp_xdr.h | 4 ++++
+ src/client/gpm_common.c | 8 ++++++--
+ src/gp_rpc_process.c | 8 ++++++--
+ 3 files changed, 16 insertions(+), 4 deletions(-)
+
+diff --git a/rpcgen/gp_xdr.h b/rpcgen/gp_xdr.h
+index bbd747d0a..e7a476f3d 100644
+--- a/rpcgen/gp_xdr.h
++++ b/rpcgen/gp_xdr.h
+@@ -5,6 +5,10 @@
+
+ #include "gssrpc/rpc.h"
+
++/* Equivalent to xdrptoc_t but with proper arguments so that modern
++ * compilers do not complain */
++typedef int xdrfn(XDR *, void *);
++
+ #define xdr_u_quad_t gp_xdr_uint64_t
+
+ bool_t gp_xdr_uint64_t(XDR *xdrs, uint64_t *objp);
+diff --git a/src/client/gpm_common.c b/src/client/gpm_common.c
+index 22a74ab48..2c0925d05 100644
+--- a/src/client/gpm_common.c
++++ b/src/client/gpm_common.c
+@@ -676,6 +676,8 @@ int gpm_make_call(int proc, union gp_rpc_arg *arg, union gp_rpc_res *res)
+ gp_rpc_msg msg;
+ XDR xdr_call_ctx = {0};
+ XDR xdr_reply_ctx = {0};
++ xdrfn *arg_fn;
++ xdrfn *res_fn;
+ char *send_buffer = NULL;
+ char *recv_buffer = NULL;
+ uint32_t send_length;
+@@ -726,7 +728,8 @@ int gpm_make_call(int proc, union gp_rpc_arg *arg, union gp_rpc_res *res)
+ }
+
+ /* encode data */
+- xdrok = gpm_xdr_set[proc].arg_fn(&xdr_call_ctx, (char *)arg);
++ arg_fn = gpm_xdr_set[proc].arg_fn;
++ xdrok = arg_fn(&xdr_call_ctx, arg);
+ if (!xdrok) {
+ ret = EINVAL;
+ goto done;
+@@ -765,7 +768,8 @@ int gpm_make_call(int proc, union gp_rpc_arg *arg, union gp_rpc_res *res)
+ }
+
+ /* decode answer */
+- xdrok = gpm_xdr_set[proc].res_fn(&xdr_reply_ctx, (char *)res);
++ res_fn = gpm_xdr_set[proc].res_fn;
++ xdrok = res_fn(&xdr_reply_ctx, res);
+ if (!xdrok) {
+ ret = EINVAL;
+ }
+diff --git a/src/gp_rpc_process.c b/src/gp_rpc_process.c
+index eaffc55eb..1ac7c167f 100644
+--- a/src/gp_rpc_process.c
++++ b/src/gp_rpc_process.c
+@@ -196,6 +196,7 @@ static int gp_rpc_decode_call(XDR *xdr_call_ctx,
+ gp_rpc_accept_status *acc,
+ gp_rpc_reject_status *rej)
+ {
++ xdrfn *arg_fn;
+ bool xdrok;
+ int ret;
+
+@@ -204,7 +205,8 @@ static int gp_rpc_decode_call(XDR *xdr_call_ctx,
+ return ret;
+ }
+
+- xdrok = gp_xdr_set[*proc].arg_fn(xdr_call_ctx, (char *)arg);
++ arg_fn = gp_xdr_set[*proc].arg_fn;
++ xdrok = arg_fn(xdr_call_ctx, arg);
+ if (!xdrok) {
+ *acc = GP_RPC_GARBAGE_ARGS;
+ return EINVAL;
+@@ -283,6 +285,7 @@ static int gp_rpc_encode_reply(XDR *xdr_reply_ctx,
+ gp_rpc_accept_status acc,
+ gp_rpc_reject_status rej)
+ {
++ xdrfn *res_fn;
+ bool xdrok;
+ int ret;
+
+@@ -291,7 +294,8 @@ static int gp_rpc_encode_reply(XDR *xdr_reply_ctx,
+ return ret;
+ }
+
+- xdrok = gp_xdr_set[proc].res_fn(xdr_reply_ctx, (char *)res);
++ res_fn = gp_xdr_set[proc].res_fn;
++ xdrok = res_fn(xdr_reply_ctx, res);
+
+ if (!xdrok) {
+ return gp_rpc_encode_reply_header(xdr_reply_ctx, xid, EINVAL,
+
diff --git a/net-nds/gssproxy/gssproxy-0.9.2-r1.ebuild b/net-nds/gssproxy/gssproxy-0.9.2-r1.ebuild
new file mode 100644
index 000000000000..5c938e4ca513
--- /dev/null
+++ b/net-nds/gssproxy/gssproxy-0.9.2-r1.ebuild
@@ -0,0 +1,117 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit autotools
+
+DESCRIPTION="Daemon to proxy GSSAPI context establishment and channel handling"
+HOMEPAGE="https://github.com/gssapi/gssproxy"
+SRC_URI="https://github.com/gssapi/${PN}/releases/download/v${PV}/${P}.tar.gz"
+
+LICENSE="BSD-1"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~mips ~ppc ~ppc64 ~s390 ~sparc ~x86"
+IUSE="debug selinux systemd"
+
+DEPEND="
+ >=dev-libs/libverto-0.2.2
+ >=dev-libs/ding-libs-0.6.1
+ virtual/krb5
+ selinux? ( sys-libs/libselinux )
+"
+RDEPEND="
+ ${DEPEND}
+ selinux? ( sec-policy/selinux-gssproxy )
+"
+# We need xml stuff to build the man pages, and people really want/need
+# the man pages for this package :), bug #585200
+BDEPEND="
+ app-text/docbook-xml-dtd:4.5
+ dev-libs/libxslt
+ virtual/pkgconfig
+"
+
+# Many requirements to run tests, including running slapd as root, hence
+# unfeasible.
+RESTRICT="test"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-0.9.2-no-git-log.patch
+ "${FILESDIR}"/${P}-docbook-upgrade.patch
+ "${FILESDIR}"/${P}-c23.patch
+)
+
+# pkg_setup() {
+# # Here instead of flag-logic in DEPEND, since virtual/krb5 does not
+# # allow to specify the openldap use flag, which heimdal doesn't
+# # support.
+# # Using mit-krb5 explicitly because heimdal doesn't install kerberos
+# # schemata required for the tests of gss-proxy.
+# if use test && ! has_version "app-crypt/mit-krb5[openldap]"; then
+# eerror "Tests of this package require the kerberos schemata installed from app-crypt/mit-krb5[openldap]."
+# die "Tests enabled but no app-crypt/mit-krb5[openldap] being installed."
+# fi
+# }
+
+# Was required in 0.7.0 to fix the schema- and slapd-path. Reason for
+# comment: see RESTRICT comment
+# src_prepare() {
+# default
+# # The tests look for kerberos schemata in the documentation
+# # directory of krb5, however these are installed in /etc/openldap
+# # and only if the openldap useflag is supplied
+# sed -i \
+# -e 's#/usr/share/doc/krb5-server-ldap*#/etc/openldap/schema#' \
+# -e "s#\(subprocess.Popen..\"\)slapd#\1/usr/$(get_libdir)/openldap/slapd#" \
+# "${S}/tests/testlib.py" || die
+# }
+
+src_prepare() {
+ default
+
+ # Just for gssproxy-0.9.2-no-git-log.patch
+ eautoreconf
+}
+
+src_configure() {
+ local myeconfargs=(
+ # The build assumes localstatedir is /var and takes care of
+ # using all the right subdirs itself.
+ --localstatedir="${EPREFIX}"/var
+
+ --with-os=gentoo
+ --with-initscript=$(usex systemd systemd none)
+ $(use_with selinux)
+ $(use_with debug gssidebug)
+
+ # We already set FORTIFY_SOURCE by default along with the
+ # other bits. But setting it on each compile line interferes
+ # with efforts to try e.g. FORTIFY_SOURCE=3. So, disable it,
+ # but there's no actual difference to the safety of the binaries
+ # because of Gentoo's configuration/patches to the toolchain.
+ --without-hardening
+ )
+
+ econf "${myeconfargs[@]}"
+}
+
+src_install() {
+ default
+
+ # This is a plugin module, so no need for la file.
+ find "${ED}"/usr -name proxymech.la -delete || die
+
+ doinitd "${FILESDIR}"/gssproxy
+ insinto /etc/gssproxy
+ doins examples/*.conf
+
+ keepdir /var/lib/gssproxy
+ keepdir /var/lib/gssproxy/clients
+ keepdir /var/lib/gssproxy/rcache
+ fperms 0700 /var/lib/gssproxy/clients
+ fperms 0700 /var/lib/gssproxy/rcache
+
+ # The build installs a bunch of empty dirs, so prune them.
+ find "${ED}" -depth -type d -empty -delete || die
+}