aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDima Panov <fluffy@FreeBSD.org>2024-06-06 08:05:59 +0000
committerDima Panov <fluffy@FreeBSD.org>2024-06-06 08:10:09 +0000
commitf145c0c973d16ba53bdd148278e6824e0f47dfdd (patch)
treeaf2f199c172018d22470d1390f3a52ffb912b16d
parentaf47301dd57499c05ad627d3a81048e192f14f81 (diff)
net-mgmt/realmd: add new port
realmd is an on demand system DBus service, which allows callers to configure network authentication and domain membership in a standard way. realmd discovers information about the domain or realm automatically and does not require complicated configuration in order to join a domain or realm. Sponsored by: Serenity Cybersecurity, LLC
-rw-r--r--net-mgmt/Makefile1
-rw-r--r--net-mgmt/realmd/Makefile49
-rw-r--r--net-mgmt/realmd/distinfo3
-rw-r--r--net-mgmt/realmd/files/patch-configure.ac27
-rw-r--r--net-mgmt/realmd/files/patch-service_realm-disco-mscldap.c12
-rw-r--r--net-mgmt/realmd/files/patch-service_realm-disco-rootdse.c12
-rw-r--r--net-mgmt/realmd/files/patch-service_realm-ldap.c11
-rw-r--r--net-mgmt/realmd/files/patch-service_realm-provider.c18
-rw-r--r--net-mgmt/realmd/files/patch-service_realm-samba-enroll.c22
-rw-r--r--net-mgmt/realmd/files/realmd-freebsd.conf.in61
-rw-r--r--net-mgmt/realmd/pkg-descr1
-rw-r--r--net-mgmt/realmd/pkg-plist111
12 files changed, 328 insertions, 0 deletions
diff --git a/net-mgmt/Makefile b/net-mgmt/Makefile
index c3dc7747465f..e23838498843 100644
--- a/net-mgmt/Makefile
+++ b/net-mgmt/Makefile
@@ -345,6 +345,7 @@
SUBDIR += rancid3
SUBDIR += rate
SUBDIR += rcpd
+ SUBDIR += realmd
SUBDIR += remarp
SUBDIR += resource-agents
SUBDIR += riemann
diff --git a/net-mgmt/realmd/Makefile b/net-mgmt/realmd/Makefile
new file mode 100644
index 000000000000..fe3872c85e3f
--- /dev/null
+++ b/net-mgmt/realmd/Makefile
@@ -0,0 +1,49 @@
+PORTNAME= realmd
+PORTVERSION= 0.17.1
+CATEGORIES= net-mgmt
+
+MAINTAINER= fluffy@FreeBSD.org
+COMMENT= DBus service for configuring kerberos and other online identities
+WWW= https://www.freedesktop.org/software/realmd/
+
+LICENSE= LGPL21
+
+BUILD_DEPENDS= gsed:textproc/gsed
+LIB_DEPENDS= libpolkit-gobject-1.so:sysutils/polkit
+
+USES= autoreconf gettext gmake gnome gssapi:mit,flags iconv ldap \
+ libtool localbase pathfix pkgconfig ssl tar:bz2
+USE_GNOME= glib20
+
+USE_GITLAB= yes
+GL_SITE= https://gitlab.freedesktop.org
+GL_ACCOUNT= realmd
+
+GNU_CONFIGURE= yes
+TEST_TARGET= check
+
+BINARY_ALIAS= sed=${LOCALBASE}/bin/gsed
+
+OPTIONS_DEFINE= DOCS
+
+CONFIGURE_ARGS= ${GSSAPI_CONFIGURE_ARGS} \
+ --with-distro=freebsd \
+ --without-systemd-journal \
+ --without-systemd-unit-dir
+CONFIGURE_ENV+= KRB5_CONFIG=${KRB5CONFIG}
+
+DOCS_CONFIGURE_ENABLE= doc
+DOCS_BUILD_DEPENDS= ${LOCALBASE}/share/xsl/docbook/manpages/docbook.xsl:textproc/docbook-xsl \
+ xsltproc:textproc/libxslt \
+ xmlto:textproc/xmlto
+
+SUB_FILES= realmd-freebsd.conf
+SUB_LIST= SAMBA=samba${SAMBA_DEFAULT:S/.//}
+
+post-patch:
+ @${REINPLACE_CMD} -e 's/INSTALL_PROGRAM/INSTALL_DATA/g' ${WRKSRC}/service/Makefile.am
+
+pre-install:
+ @${INSTALL_DATA} ${WRKDIR}/realmd-freebsd.conf ${WRKSRC}/service/realmd-freebsd.conf
+
+.include <bsd.port.mk>
diff --git a/net-mgmt/realmd/distinfo b/net-mgmt/realmd/distinfo
new file mode 100644
index 000000000000..ca0ede9d6654
--- /dev/null
+++ b/net-mgmt/realmd/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1716207148
+SHA256 (realmd-0.17.1.tar.bz2) = b514bdb6fe93a72fbc7fd796665d7476615d8ba0c7b61436771951316c333e6a
+SIZE (realmd-0.17.1.tar.bz2) = 315250
diff --git a/net-mgmt/realmd/files/patch-configure.ac b/net-mgmt/realmd/files/patch-configure.ac
new file mode 100644
index 000000000000..a9b8440ff21f
--- /dev/null
+++ b/net-mgmt/realmd/files/patch-configure.ac
@@ -0,0 +1,27 @@
+--- configure.ac.orig 2022-09-29 11:05:56 UTC
++++ configure.ac
+@@ -155,8 +155,13 @@ for lib in "" "-lresolv"; do
+ saved_LIBS="$LIBS"
+ LIBS="$LIBS $lib"
+ AC_LINK_IFELSE([
+- AC_LANG_PROGRAM([#include <resolv.h>],
+- [res_query (0, 0, 0, 0, 0)])
++ AC_LANG_PROGRAM([#include <sys/types.h>],
++ [#include <netinet/in.h>],
++ [#include <arpa/nameser.h>],
++ [#include <resolv.h>],
++ [res_query (0, 0, 0, 0, 0);
++ ns_get32 (NULL);
++ ns_get16 (NULL);])
+ ],
+ [ AC_MSG_RESULT(${lib:-libc}); have_res_query="yes"; break; ],
+ [ LIBS="$saved_LIBS" ])
+@@ -266,7 +271,7 @@ AC_SUBST(DBUS_SERVICES_DIR)
+ DBUS_SERVICES_DIR="${datadir}/dbus-1/system-services"
+ AC_SUBST(DBUS_SERVICES_DIR)
+
+-DBUS_POLICY_DIR="${sysconfdir}/dbus-1/system.d"
++DBUS_POLICY_DIR="${datadir}/dbus-1/system.d"
+ AC_SUBST(DBUS_POLICY_DIR)
+
+ POLKIT_ACTION_DIR="${datadir}/polkit-1/actions"
diff --git a/net-mgmt/realmd/files/patch-service_realm-disco-mscldap.c b/net-mgmt/realmd/files/patch-service_realm-disco-mscldap.c
new file mode 100644
index 000000000000..e07a7dcd1fb6
--- /dev/null
+++ b/net-mgmt/realmd/files/patch-service_realm-disco-mscldap.c
@@ -0,0 +1,12 @@
+--- service/realm-disco-mscldap.c.orig 2022-09-29 11:05:56 UTC
++++ service/realm-disco-mscldap.c
+@@ -22,6 +22,9 @@
+ #include <glib/gi18n.h>
+
+ #include <errno.h>
++#include <sys/types.h>
++#include <netinet/in.h>
++#include <arpa/nameser.h>
+ #include <resolv.h>
+ #include <unistd.h>
+
diff --git a/net-mgmt/realmd/files/patch-service_realm-disco-rootdse.c b/net-mgmt/realmd/files/patch-service_realm-disco-rootdse.c
new file mode 100644
index 000000000000..6055fa43db3e
--- /dev/null
+++ b/net-mgmt/realmd/files/patch-service_realm-disco-rootdse.c
@@ -0,0 +1,12 @@
+--- service/realm-disco-rootdse.c.orig 2022-09-29 11:05:56 UTC
++++ service/realm-disco-rootdse.c
+@@ -23,6 +23,9 @@
+
+ #include <glib/gi18n.h>
+
++#include <sys/types.h>
++#include <netinet/in.h>
++#include <arpa/nameser.h>
+ #include <resolv.h>
+
+ typedef struct _Closure Closure;
diff --git a/net-mgmt/realmd/files/patch-service_realm-ldap.c b/net-mgmt/realmd/files/patch-service_realm-ldap.c
new file mode 100644
index 000000000000..244f824e6a13
--- /dev/null
+++ b/net-mgmt/realmd/files/patch-service_realm-ldap.c
@@ -0,0 +1,11 @@
+--- service/realm-ldap.c.orig 2022-09-29 11:05:56 UTC
++++ service/realm-ldap.c
+@@ -259,7 +259,7 @@ realm_ldap_connect_anonymous (GSocketAddress *address,
+ if (rc != 0) {
+ g_warning ("couldn't set SO_SNDTIMEO");
+ }
+- rc = setsockopt (ls->sock, IPPROTO_TCP, TCP_USER_TIMEOUT,
++ rc = setsockopt (ls->sock, IPPROTO_TCP, TCP_KEEPINIT*1000,
+ &milli, sizeof (milli));
+ if (rc != 0) {
+ g_warning ("couldn't set TCP_USER_TIMEOUT");
diff --git a/net-mgmt/realmd/files/patch-service_realm-provider.c b/net-mgmt/realmd/files/patch-service_realm-provider.c
new file mode 100644
index 000000000000..a17b65f76fb1
--- /dev/null
+++ b/net-mgmt/realmd/files/patch-service_realm-provider.c
@@ -0,0 +1,18 @@
+--- service/realm-provider.c.orig 2022-09-29 11:05:56 UTC
++++ service/realm-provider.c
+@@ -28,9 +28,15 @@
+ #include <glib/gi18n.h>
+ #include <gio/gio.h>
+
++#include <unistd.h>
+ #include <errno.h>
+
+ #define TIMEOUT_SECONDS 15
++
++#if defined(__FreeBSD__)
++#include <sys/param.h>
++#define HOST_NAME_MAX MAXHOSTNAMELEN
++#endif
+
+ G_DEFINE_TYPE (RealmProvider, realm_provider, G_TYPE_DBUS_OBJECT_SKELETON);
+
diff --git a/net-mgmt/realmd/files/patch-service_realm-samba-enroll.c b/net-mgmt/realmd/files/patch-service_realm-samba-enroll.c
new file mode 100644
index 000000000000..7c89a81a69e0
--- /dev/null
+++ b/net-mgmt/realmd/files/patch-service_realm-samba-enroll.c
@@ -0,0 +1,22 @@
+--- service/realm-samba-enroll.c.orig 2022-09-29 11:05:56 UTC
++++ service/realm-samba-enroll.c
+@@ -29,6 +29,7 @@
+ #include <glib/gstdio.h>
+
+ #include <ldap.h>
++#include <unistd.h>
+
+ #include <errno.h>
+ #include <fcntl.h>
+@@ -43,6 +44,11 @@
+ #else
+ #define SMBCLI_KERBEROS "-k"
+ #define SMBCLI_CONF "-s"
++#endif
++
++#if defined(__FreeBSD__)
++#include <sys/param.h>
++#define HOST_NAME_MAX MAXHOSTNAMELEN
+ #endif
+
+ typedef struct {
diff --git a/net-mgmt/realmd/files/realmd-freebsd.conf.in b/net-mgmt/realmd/files/realmd-freebsd.conf.in
new file mode 100644
index 000000000000..5e0644b9fe1c
--- /dev/null
+++ b/net-mgmt/realmd/files/realmd-freebsd.conf.in
@@ -0,0 +1,61 @@
+# Default values for realmd
+[service]
+debug = no
+automatic-install = yes
+
+[paths]
+net = %%LOCALBASE%%/bin/net
+winbindd = %%LOCALBASE%%/sbin/winbindd
+smb.conf = %%LOCALBASE%%/etc/smb4.conf
+sssd.conf = %%LOCALBASE%%/etc/sssd/sssd.conf
+adcli = %%LOCALBASE%%/sbin/adcli
+ipa-client-install = %%LOCALBASE%%/sbin/ipa-client-install
+pam_winbind.conf = %%LOCALBASE%%/etc/security/pam_winbind.conf
+krb5.conf = /etc/krb5.conf
+
+[active-directory]
+default-client = sssd
+os-name =
+os-version =
+
+[providers]
+sssd = yes
+samba = yes
+example = no
+
+[samba-packages]
+%%SAMBA%% = %%LOCALBASE%%/bin/net
+
+[winbind-packages]
+
+[sssd-packages]
+sssd2 = %%LOCALBASE%%/sbin/sssd
+
+[adcli-packages]
+adcli = %%LOCALBASE%%/sbin/adcli
+
+[commands]
+
+winbind-enable-logins =
+winbind-disable-logins =
+sssd-enable-logins =
+sssd-disable-logins =
+
+winbind-enable-service = /usr/sbin/sysrc winbindd_enable="YES"
+winbind-disable-service = /usr/sbin/sysrc winbindd_enable="NO"
+winbind-restart-service = /usr/sbin/service samba_server restart
+winbind-stop-service = /usr/sbin/service samba_server stop
+
+sssd-enable-service = /usr/sbin/service sssd enable
+sssd-disable-service = /usr/sbin/service sssd disable
+sssd-restart-service = /usr/sbin/service sssd restart
+sssd-stop-service = /usr/sbin/service sssd stop
+sssd-caches-flush = %%LOCALBASE%%/sbin/sss_cache --users --groups --netgroups --services --autofs-maps
+
+[users]
+default-shell = /bin/sh
+default-home = /home/%U@%D
+
+[example.com]
+example-administrator = Administrator
+example-password = bureaucracy
diff --git a/net-mgmt/realmd/pkg-descr b/net-mgmt/realmd/pkg-descr
new file mode 100644
index 000000000000..d8227a7ee97f
--- /dev/null
+++ b/net-mgmt/realmd/pkg-descr
@@ -0,0 +1 @@
+DBus service for configuring kerberos and other online identities
diff --git a/net-mgmt/realmd/pkg-plist b/net-mgmt/realmd/pkg-plist
new file mode 100644
index 000000000000..be29bc6d951c
--- /dev/null
+++ b/net-mgmt/realmd/pkg-plist
@@ -0,0 +1,111 @@
+lib/realmd/realmd-defaults.conf
+lib/realmd/realmd-distro.conf
+libexec/realmd
+sbin/realm
+share/dbus-1/system.d/org.freedesktop.realmd.conf
+share/dbus-1/system-services/org.freedesktop.realmd.service
+%%PORTDOCS%%%%DOCSDIR%%/book.devhelp2
+%%PORTDOCS%%%%DOCSDIR%%/dbus-interface-raw.html
+%%PORTDOCS%%%%DOCSDIR%%/dbus-interface-reference.html
+%%PORTDOCS%%%%DOCSDIR%%/development.html
+%%PORTDOCS%%%%DOCSDIR%%/gdbus-org.freedesktop.realmd.Kerberos.html
+%%PORTDOCS%%%%DOCSDIR%%/gdbus-org.freedesktop.realmd.KerberosMembership.html
+%%PORTDOCS%%%%DOCSDIR%%/gdbus-org.freedesktop.realmd.Provider.html
+%%PORTDOCS%%%%DOCSDIR%%/gdbus-org.freedesktop.realmd.Realm.html
+%%PORTDOCS%%%%DOCSDIR%%/gdbus-org.freedesktop.realmd.Service.html
+%%PORTDOCS%%%%DOCSDIR%%/gtk-doc.css
+%%PORTDOCS%%%%DOCSDIR%%/guide-active-directory-client.html
+%%PORTDOCS%%%%DOCSDIR%%/guide-active-directory-join.html
+%%PORTDOCS%%%%DOCSDIR%%/guide-active-directory-permit.html
+%%PORTDOCS%%%%DOCSDIR%%/guide-active-directory.html
+%%PORTDOCS%%%%DOCSDIR%%/guide-integration.html
+%%PORTDOCS%%%%DOCSDIR%%/guide-ipa-client.html
+%%PORTDOCS%%%%DOCSDIR%%/guide-ipa-join.html
+%%PORTDOCS%%%%DOCSDIR%%/guide-ipa-permit.html
+%%PORTDOCS%%%%DOCSDIR%%/guide-ipa.html
+%%PORTDOCS%%%%DOCSDIR%%/guide-kerberos.html
+%%PORTDOCS%%%%DOCSDIR%%/guide.html
+%%PORTDOCS%%%%DOCSDIR%%/home.png
+%%PORTDOCS%%%%DOCSDIR%%/index.html
+%%PORTDOCS%%%%DOCSDIR%%/left.png
+%%PORTDOCS%%%%DOCSDIR%%/realm-manual.html
+%%PORTDOCS%%%%DOCSDIR%%/realm.html
+%%PORTDOCS%%%%DOCSDIR%%/realmd-conf.html
+%%PORTDOCS%%%%DOCSDIR%%/realmd-docs.proc
+%%PORTDOCS%%%%DOCSDIR%%/right.png
+%%PORTDOCS%%%%DOCSDIR%%/style.css
+%%PORTDOCS%%%%DOCSDIR%%/up.png
+share/locale/ar/LC_MESSAGES/realmd.mo
+share/locale/as/LC_MESSAGES/realmd.mo
+share/locale/az/LC_MESSAGES/realmd.mo
+share/locale/bg/LC_MESSAGES/realmd.mo
+share/locale/bn_IN/LC_MESSAGES/realmd.mo
+share/locale/ca/LC_MESSAGES/realmd.mo
+share/locale/ca@valencia/LC_MESSAGES/realmd.mo
+share/locale/cs/LC_MESSAGES/realmd.mo
+share/locale/cy/LC_MESSAGES/realmd.mo
+share/locale/da/LC_MESSAGES/realmd.mo
+share/locale/de/LC_MESSAGES/realmd.mo
+share/locale/el/LC_MESSAGES/realmd.mo
+share/locale/en_GB/LC_MESSAGES/realmd.mo
+share/locale/eo/LC_MESSAGES/realmd.mo
+share/locale/es/LC_MESSAGES/realmd.mo
+share/locale/et/LC_MESSAGES/realmd.mo
+share/locale/eu/LC_MESSAGES/realmd.mo
+share/locale/fa/LC_MESSAGES/realmd.mo
+share/locale/fi/LC_MESSAGES/realmd.mo
+share/locale/fo/LC_MESSAGES/realmd.mo
+share/locale/fr/LC_MESSAGES/realmd.mo
+share/locale/ga/LC_MESSAGES/realmd.mo
+share/locale/gl/LC_MESSAGES/realmd.mo
+share/locale/gu/LC_MESSAGES/realmd.mo
+share/locale/he/LC_MESSAGES/realmd.mo
+share/locale/hi/LC_MESSAGES/realmd.mo
+share/locale/hr/LC_MESSAGES/realmd.mo
+share/locale/hu/LC_MESSAGES/realmd.mo
+share/locale/ia/LC_MESSAGES/realmd.mo
+share/locale/id/LC_MESSAGES/realmd.mo
+share/locale/it/LC_MESSAGES/realmd.mo
+share/locale/ja/LC_MESSAGES/realmd.mo
+share/locale/ka/LC_MESSAGES/realmd.mo
+share/locale/kk/LC_MESSAGES/realmd.mo
+share/locale/kn/LC_MESSAGES/realmd.mo
+share/locale/ko/LC_MESSAGES/realmd.mo
+share/locale/lt/LC_MESSAGES/realmd.mo
+share/locale/lv/LC_MESSAGES/realmd.mo
+share/locale/ml/LC_MESSAGES/realmd.mo
+share/locale/mr/LC_MESSAGES/realmd.mo
+share/locale/ms/LC_MESSAGES/realmd.mo
+share/locale/nb/LC_MESSAGES/realmd.mo
+share/locale/nl/LC_MESSAGES/realmd.mo
+share/locale/nn/LC_MESSAGES/realmd.mo
+share/locale/oc/LC_MESSAGES/realmd.mo
+share/locale/or/LC_MESSAGES/realmd.mo
+share/locale/pa/LC_MESSAGES/realmd.mo
+share/locale/pl/LC_MESSAGES/realmd.mo
+share/locale/pt/LC_MESSAGES/realmd.mo
+share/locale/pt_BR/LC_MESSAGES/realmd.mo
+share/locale/ro/LC_MESSAGES/realmd.mo
+share/locale/ru/LC_MESSAGES/realmd.mo
+share/locale/si/LC_MESSAGES/realmd.mo
+share/locale/sk/LC_MESSAGES/realmd.mo
+share/locale/sl/LC_MESSAGES/realmd.mo
+share/locale/sq/LC_MESSAGES/realmd.mo
+share/locale/sr@latin/LC_MESSAGES/realmd.mo
+share/locale/sv/LC_MESSAGES/realmd.mo
+share/locale/ta/LC_MESSAGES/realmd.mo
+share/locale/te/LC_MESSAGES/realmd.mo
+share/locale/th/LC_MESSAGES/realmd.mo
+share/locale/tr/LC_MESSAGES/realmd.mo
+share/locale/uk/LC_MESSAGES/realmd.mo
+share/locale/vi/LC_MESSAGES/realmd.mo
+share/locale/wa/LC_MESSAGES/realmd.mo
+share/locale/zh_CN/LC_MESSAGES/realmd.mo
+share/locale/zh_HK/LC_MESSAGES/realmd.mo
+share/locale/zh_TW/LC_MESSAGES/realmd.mo
+%%PORTDOCS%%share/man/man5/realmd.conf.5.gz
+%%PORTDOCS%%share/man/man8/realm.8.gz
+share/polkit-1/actions/org.freedesktop.realmd.policy
+@dir /var/cache/realmd
+@dir /var/lib/realmd
+@dir /var/lib