diff --git a/net/freeipa-server/Makefile b/net/freeipa-server/Makefile index e86badffca7e..cf096bddf907 100644 --- a/net/freeipa-server/Makefile +++ b/net/freeipa-server/Makefile @@ -1,164 +1,165 @@ PORTNAME= freeipa-server DISTVERSION= 4.13.2 -PORTREVISION= 2 +PORTREVISION= 3 CATEGORIES= net MASTER_SITES= https://codeberg.org/freeipa/freeipa/releases/download/release-${DISTVERSION:S/./-/g}/ DISTNAME= freeipa-${DISTVERSION} MAINTAINER= joneum@FreeBSD.org COMMENT= FreeIPA server WWW= https://www.freeipa.org/ LICENSE= GPLv3+ LICENSE_FILE= ${WRKSRC}/COPYING BUILD_DEPENDS= ${LOCALBASE}/bin/getopt:misc/getopt \ ${LOCALBASE}/libdata/pkgconfig/dirsrv.pc:net/389-ds-base \ ${LOCALBASE}/libdata/pkgconfig/sss_idmap.pc:security/sssd2 \ ${PY_SETUPTOOLS} \ ${PYTHON_PKGNAMEPREFIX}lesscpy>0:www/py-lesscpy@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}pip>0:devel/py-pip@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}rjsmin>0:archivers/py-rjsmin@${PY_FLAVOR} \ bash:shells/bash LIB_DEPENDS= libcurl.so:ftp/curl \ libini_config.so:devel/ding-libs \ libintl.so:devel/gettext-runtime \ libjansson.so:devel/jansson \ libkrad.so:security/krb5 \ libnspr4.so:devel/nspr \ libpopt.so:devel/popt \ libpwquality.so:security/libpwquality \ libsasl2.so:security/cyrus-sasl2 \ libsss_nss_idmap.so:security/sssd2 \ libtalloc.so:${SAMBA_TALLOC_PORT} \ libtevent.so:${SAMBA_TEVENT_PORT} \ libunistring.so:devel/libunistring \ libuuid.so:misc/libuuid \ libxmlrpc.so:net/xmlrpc-c RUN_DEPENDS= ${LOCALBASE}/bin/chronyc:net/chrony \ ${LOCALBASE}/libexec/apache24/mod_auth_gssapi.so:www/freeipa-auth-gssapi \ ${LOCALBASE}/libexec/apache24/mod_deflate.so:www/apache24 \ ${LOCALBASE}/libexec/apache24/mod_expires.so:www/apache24 \ ${LOCALBASE}/libexec/apache24/mod_lookup_identity.so:www/mod_lookup_identity \ ${LOCALBASE}/libexec/apache24/mod_proxy.so:www/apache24 \ ${LOCALBASE}/libexec/apache24/mod_proxy_ajp.so:www/apache24 \ ${LOCALBASE}/libexec/apache24/mod_proxy_http.so:www/apache24 \ ${LOCALBASE}/libexec/apache24/mod_rewrite.so:www/apache24 \ ${LOCALBASE}/libexec/apache24/mod_session.so:www/apache24 \ ${LOCALBASE}/libexec/apache24/mod_session_cookie.so:www/apache24 \ ${LOCALBASE}/libexec/apache24/mod_ssl.so:www/apache24 \ ${LOCALBASE}/libexec/apache24/mod_wsgi.so:www/mod_wsgi@${PY_FLAVOR} \ ${LOCALBASE}/sbin/certmonger:security/certmonger \ ${LOCALBASE}/sbin/gssproxy:security/gssproxy \ ${LOCALBASE}/sbin/httpd:www/apache24 \ ${LOCALBASE}/sbin/oddjobd:sysutils/oddjob \ ${PYTHON_PKGNAMEPREFIX}dbus>0:devel/py-dbus@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}gssapi>0:security/py-gssapi@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}ifaddr>0:net/py-ifaddr@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}jwcrypto>0:security/py-jwcrypto@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}kdcproxy>0:security/py-kdcproxy@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}lib389>=0:net/py-lib389@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}netaddr>0:net/py-netaddr@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}python-augeas>0:textproc/py-python-augeas@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}python-dateutil>0:devel/py-python-dateutil@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}qrcode>0:textproc/py-qrcode@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}sqlite3>0:databases/py-sqlite3@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}urllib3>0:net/py-urllib3@${PY_FLAVOR} \ 389-ds-base>=0:net/389-ds-base \ dogtag-pki>0:security/dogtag-pki \ slapi-nis>=0.70.0:net/slapi-nis \ sssd2>=2.13.1_2:security/sssd2 USES= autoreconf gettext-runtime gettext-tools gmake gssapi:mit iconv \ ldap libtool localbase:ldflags nodejs:build pkgconfig python \ samba shebangfix ssl USE_RC_SUBR= ipa-custodia freeipa-server SHEBANG_FILES= install/ui/util/build.sh install/ui/util/change-profile.sh \ install/ui/util/clean.sh install/ui/util/compile.sh \ install/ui/util/make-builder.sh install/ui/util/make-dojo.sh \ install/ui/util/make-patternfly.sh install/ui/util/make-ui.sh \ install/ui/util/prepare-dojo.sh install/ui/util/sync.sh GNU_CONFIGURE= yes CONFIGURE_ARGS= --disable-client \ --with-ipaplatform=freebsd \ --with-vendor-suffix=+FreeBSD CONFIGURE_ENV= LIBS="-lintl" \ LIBVERTO_CFLAGS="-I${LOCALBASE}/include" \ LIBVERTO_LIBS="-L${LOCALBASE}/lib -lverto" CFLAGS+= -D__BSD_VISIBLE=1 CONFLICTS_INSTALL= freeipa-client BINARY_ALIAS= getopt=${LOCALBASE}/bin/getopt SUB_FILES= ipa-otpd-wrapper SUB_LIST+= PYTHON_CMD=${PYTHON_CMD} USERS= ipaapi kdcproxy GROUPS= ipaapi kdcproxy PLIST_SUB= DISTVERSION=${DISTVERSION} OPTIONS_DEFINE= DOCS post-patch: @${REINPLACE_CMD} -e 's|%%PREFIX%%|${PREFIX}|g' \ -e 's|%%LOCALBASE%%|${LOCALBASE}|g' \ ${WRKSRC}/client/ipa-join.c \ ${WRKSRC}/install/share/ipa-kdc-proxy.conf.template \ ${WRKSRC}/install/tools/ipa-httpd-kdcproxy.in \ ${WRKSRC}/install/updates/80-schema_compat.update \ ${WRKSRC}/ipaplatform/base/paths.py \ ${WRKSRC}/ipaplatform/freebsd/paths.py \ ${WRKSRC}/ipaplatform/freebsd/services.py \ ${WRKSRC}/ipapython/ipautil.py \ ${WRKSRC}/ipaserver/install/cainstance.py \ - ${WRKSRC}/ipaserver/install/server/upgrade.py + ${WRKSRC}/ipaserver/install/server/upgrade.py \ + ${WRKSRC}/util/ipa_ldap.h post-build: ${MAKE_CMD} -C ${WRKSRC}/client \ LIBINTL_LIBS="-lintl" ipa-getkeytab ipa-rmkeytab ipa-join post-install: ${CHMOD} 0555 ${STAGEDIR}${PREFIX}/libexec/ipa/certmonger/* ${INSTALL_SCRIPT} ${WRKSRC}/client/ipa-client-install.in \ ${STAGEDIR}${PREFIX}/sbin/ipa-client-install @${REINPLACE_CMD} -e "1s|^#!/usr/bin/python3.*|#!${PYTHON_CMD} -I|" \ ${STAGEDIR}${PREFIX}/sbin/ipa-client-install @${RM} ${STAGEDIR}${PREFIX}/sbin/ipa-client-install.bak ${INSTALL_SCRIPT} ${WRKSRC}/client/ipa-client-automount.in \ ${STAGEDIR}${PREFIX}/sbin/ipa-client-automount @${REINPLACE_CMD} -e "1s|/usr/bin/python3|${PYTHON_CMD} -I|" \ ${STAGEDIR}${PREFIX}/sbin/ipa-client-automount @${RM} ${STAGEDIR}${PREFIX}/sbin/ipa-client-automount.bak ${INSTALL_PROGRAM} ${WRKSRC}/client/ipa-getkeytab \ ${STAGEDIR}${PREFIX}/sbin/ipa-getkeytab ${INSTALL_PROGRAM} ${WRKSRC}/client/ipa-rmkeytab \ ${STAGEDIR}${PREFIX}/sbin/ipa-rmkeytab ${INSTALL_PROGRAM} ${WRKSRC}/client/ipa-join \ ${STAGEDIR}${PREFIX}/sbin/ipa-join ${INSTALL_SCRIPT} ${WRKDIR}/ipa-otpd-wrapper \ ${STAGEDIR}${PREFIX}/libexec/ipa/ipa-otpd-wrapper @${MKDIR} ${STAGEDIR}${PREFIX}/etc/newsyslog.conf.d ${INSTALL_DATA} ${FILESDIR}/freeipa-server.newsyslog.conf \ ${STAGEDIR}${PREFIX}/etc/newsyslog.conf.d/freeipa-server.conf.sample @${MKDIR} ${STAGEDIR}/var/db/ipa-client/pki @${MKDIR} ${STAGEDIR}/var/db/ipa-client/sysrestore @${MKDIR} ${STAGEDIR}${PREFIX}/share/ipa/client ${INSTALL_DATA} ${WRKSRC}/client/share/freeipa.template \ ${STAGEDIR}${PREFIX}/share/ipa/client/freeipa.template ${INSTALL_DATA} ${WRKSRC}/client/share/freeipa-realm.template \ ${STAGEDIR}${PREFIX}/share/ipa/client/freeipa-realm.template post-install-DOCS-on: @${MKDIR} ${STAGEDIR}${DOCSDIR} ${INSTALL_DATA} ${FILESDIR}/README.md ${STAGEDIR}${DOCSDIR}/README.md .include diff --git a/net/freeipa-server/files/patch-ipaclient_install_client.py b/net/freeipa-server/files/patch-ipaclient_install_client.py new file mode 100644 index 000000000000..e58eff24f858 --- /dev/null +++ b/net/freeipa-server/files/patch-ipaclient_install_client.py @@ -0,0 +1,11 @@ +--- ipaclient/install/client.py.orig 2026-09-05 20:54:40 UTC ++++ ipaclient/install/client.py +@@ -728,6 +728,8 @@ def configure_krb5_snippet(): + paths.USR_SHARE_IPA_CLIENT_DIR, + os.path.basename(paths.KRB5_FREEIPA_DEFAULTS) + ".template" + ) ++ os.makedirs(os.path.dirname(paths.KRB5_FREEIPA_DEFAULTS), ++ mode=0o755, exist_ok=True) + shutil.copy(template, paths.KRB5_FREEIPA_DEFAULTS) + os.chmod(paths.KRB5_FREEIPA_DEFAULTS, 0o644) + tasks.restore_context(paths.KRB5_FREEIPA_DEFAULTS) diff --git a/net/freeipa-server/files/patch-util_ipa__ldap.h b/net/freeipa-server/files/patch-util_ipa__ldap.h new file mode 100644 index 000000000000..b5db315e6214 --- /dev/null +++ b/net/freeipa-server/files/patch-util_ipa__ldap.h @@ -0,0 +1,11 @@ +--- util/ipa_ldap.h.orig 2026-09-05 20:54:40 UTC ++++ util/ipa_ldap.h +@@ -20,7 +20,7 @@ + + #include + +-#define DEFAULT_CA_CERT_FILE "/etc/ipa/ca.crt" ++#define DEFAULT_CA_CERT_FILE "%%PREFIX%%/etc/ipa/ca.crt" + + #define LDAP_SASL_EXTERNAL "EXTERNAL" + #define LDAP_SASL_GSSAPI "GSSAPI"