blob: 78d29c3efdaacd45f4ec6a190dd9fc54000ec1f7 [file] [log] [blame]
Brad Bishop19323692019-04-05 15:28:33 -04001SUMMARY = "system security services daemon"
2DESCRIPTION = "SSSD is a system security services daemon"
3HOMEPAGE = "https://pagure.io/SSSD/sssd/"
4SECTION = "base"
Patrick Williamsde0582f2022-04-08 10:23:27 -05005LICENSE = "GPL-3.0-or-later"
Brad Bishop19323692019-04-05 15:28:33 -04006LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504"
7
Andrew Geissler615f2f12022-07-15 14:00:58 -05008DEPENDS = "acl attr cyrus-sasl libtdb ding-libs libpam c-ares krb5 autoconf-archive"
9DEPENDS:append = " libldb dbus libtalloc libpcre2 glib-2.0 popt e2fsprogs libtevent"
10DEPENDS:append = " openldap bind p11-kit jansson softhsm openssl libunistring"
Andrew Geisslerd1d22e62020-10-16 10:14:32 -050011
Patrick Williams213cb262021-08-07 19:21:33 -050012DEPENDS:append:libc-musl = " musl-nscd"
Brad Bishop19323692019-04-05 15:28:33 -040013
Andrew Geissler1fe918a2020-05-15 14:16:47 -050014# If no crypto has been selected, default to DEPEND on nss, since that's what
15# sssd will pick if no active choice is made during configure
16DEPENDS += "${@bb.utils.contains('PACKAGECONFIG', 'nss', '', \
17 bb.utils.contains('PACKAGECONFIG', 'crypto', '', 'nss', d), d)}"
18
Andrew Geissler59125e02021-07-23 12:56:22 -040019SRC_URI = "https://github.com/SSSD/sssd/releases/download/${PV}/sssd-${PV}.tar.gz \
Andrew Geissler1fe918a2020-05-15 14:16:47 -050020 file://sssd.conf \
21 file://volatiles.99_sssd \
Andrew Geisslera1a6aef2021-06-25 14:23:58 -050022 file://no_gen.patch \
23 file://fix_gid.patch \
24 file://drop_ntpdate_chk.patch \
Andrew Geissler1fe918a2020-05-15 14:16:47 -050025 file://fix-ldblibdir.patch \
Andrew Geissler59125e02021-07-23 12:56:22 -040026 file://musl_fixup.patch \
Andrew Geissler1fe918a2020-05-15 14:16:47 -050027 "
Andrew Geissler59125e02021-07-23 12:56:22 -040028
Andrew Geissler87f5cff2022-09-30 13:13:31 -050029SRC_URI[sha256sum] = "10ef90c63fdbfda905145077679035bd5ad16b24daad13160de8d0ff82ea9950"
Patrick Williamsdb4c27e2022-08-05 08:10:29 -050030
31UPSTREAM_CHECK_URI = "https://github.com/SSSD/${BPN}/releases"
Brad Bishop19323692019-04-05 15:28:33 -040032
Andrew Geissler1fe918a2020-05-15 14:16:47 -050033inherit autotools pkgconfig gettext python3-dir features_check systemd
Brad Bishop19323692019-04-05 15:28:33 -040034
35REQUIRED_DISTRO_FEATURES = "pam"
36
37SSSD_UID ?= "root"
38SSSD_GID ?= "root"
39
40CACHED_CONFIGUREVARS = "ac_cv_member_struct_ldap_conncb_lc_arg=no \
Andrew Geisslera1a6aef2021-06-25 14:23:58 -050041 ac_cv_prog_HAVE_PYTHON3=${PYTHON_DIR} \
Brad Bishop19323692019-04-05 15:28:33 -040042 "
43
Andrew Geissler615f2f12022-07-15 14:00:58 -050044PACKAGECONFIG ?="nss autofs sudo infopipe"
Brad Bishop19323692019-04-05 15:28:33 -040045PACKAGECONFIG += "${@bb.utils.contains('DISTRO_FEATURES', 'selinux', 'selinux', '', d)}"
46PACKAGECONFIG += "${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'systemd', '', d)}"
47
Andrew Geissler1fe918a2020-05-15 14:16:47 -050048PACKAGECONFIG[autofs] = "--with-autofs, --with-autofs=no"
Andrew Geisslera1a6aef2021-06-25 14:23:58 -050049PACKAGECONFIG[crypto] = ", , libcrypto"
Andrew Geissler064f75b2020-06-27 00:14:46 -050050PACKAGECONFIG[curl] = "--with-kcm, --without-kcm, curl jansson"
Andrew Geissler1fe918a2020-05-15 14:16:47 -050051PACKAGECONFIG[infopipe] = "--with-infopipe, --with-infopipe=no, "
Andrew Geisslercc589282020-09-18 13:34:40 -050052PACKAGECONFIG[manpages] = "--with-manpages, --with-manpages=no, libxslt-native docbook-xml-dtd4-native docbook-xsl-stylesheets-native"
Andrew Geissler1fe918a2020-05-15 14:16:47 -050053PACKAGECONFIG[nl] = "--with-libnl, --with-libnl=no, libnl"
Andrew Geisslera1a6aef2021-06-25 14:23:58 -050054PACKAGECONFIG[nss] = ", ,nss,"
Andrew Geissler615f2f12022-07-15 14:00:58 -050055PACKAGECONFIG[oidc_child] = "--with-oidc-child, --without-oidc-child"
Andrew Geissler1fe918a2020-05-15 14:16:47 -050056PACKAGECONFIG[python3] = "--with-python3-bindings, --without-python3-bindings"
Brad Bishop19323692019-04-05 15:28:33 -040057PACKAGECONFIG[samba] = "--with-samba, --with-samba=no, samba"
58PACKAGECONFIG[selinux] = "--with-selinux, --with-selinux=no --with-semanage=no, libselinux"
Andrew Geissler1fe918a2020-05-15 14:16:47 -050059PACKAGECONFIG[ssh] = "--with-ssh, --with-ssh=no, "
60PACKAGECONFIG[sudo] = "--with-sudo, --with-sudo=no, "
61PACKAGECONFIG[systemd] = "--with-initscript=systemd,--with-initscript=sysv"
Brad Bishop19323692019-04-05 15:28:33 -040062
Andrew Geissler1fe918a2020-05-15 14:16:47 -050063EXTRA_OECONF += " \
64 --disable-cifs-idmap-plugin \
65 --without-nfsv4-idmapd-plugin \
66 --without-ipa-getkeytab \
67 --without-python2-bindings \
68 --enable-pammoddir=${base_libdir}/security \
69 --without-python2-bindings \
Andrew Geisslercc589282020-09-18 13:34:40 -050070 --with-xml-catalog-path=${STAGING_ETCDIR_NATIVE}/xml/catalog \
Andrew Geisslera1a6aef2021-06-25 14:23:58 -050071 --with-pid-path=/run \
Andrew Geissler1fe918a2020-05-15 14:16:47 -050072"
Brad Bishop19323692019-04-05 15:28:33 -040073
Patrick Williams213cb262021-08-07 19:21:33 -050074do_configure:prepend() {
Brad Bishop19323692019-04-05 15:28:33 -040075 mkdir -p ${AUTOTOOLS_AUXDIR}/build
76 cp ${STAGING_DATADIR_NATIVE}/gettext/config.rpath ${AUTOTOOLS_AUXDIR}/build/
77
Andrew Geissler615f2f12022-07-15 14:00:58 -050078 # additional_libdir defaults to /usr/lib so replace with staging_libdir globally
79 sed -i -e "s#\$additional_libdir#\${STAGING_LIBDIR}#" ${S}/src/build_macros.m4
Brad Bishop19323692019-04-05 15:28:33 -040080}
81
Patrick Williams213cb262021-08-07 19:21:33 -050082do_compile:prepend () {
Andrew Geisslera1a6aef2021-06-25 14:23:58 -050083 echo '#define NSUPDATE_PATH "${bindir}"' >> ${B}/config.h
84}
Brad Bishop19323692019-04-05 15:28:33 -040085do_install () {
86 oe_runmake install DESTDIR="${D}"
87 rmdir --ignore-fail-on-non-empty "${D}/${bindir}"
Andrew Geissler615f2f12022-07-15 14:00:58 -050088
Brad Bishop19323692019-04-05 15:28:33 -040089 install -d ${D}/${sysconfdir}/${BPN}
Andrew Geissler615f2f12022-07-15 14:00:58 -050090 install -d ${D}/${PYTHON_SITEPACKAGES_DIR}
91 mv ${D}/${BPN} ${D}/${PYTHON_SITEPACKAGES_DIR}
92
Brad Bishop19323692019-04-05 15:28:33 -040093 install -m 600 ${WORKDIR}/${BPN}.conf ${D}/${sysconfdir}/${BPN}
Patrick Williams53961c22022-01-20 11:06:23 -060094
95 # /var/log/sssd needs to be created in runtime. Use rmdir to catch if
96 # upstream stops creating /var/log/sssd, or adds something else in
97 # /var/log.
98 rmdir ${D}${localstatedir}/log/${BPN} ${D}${localstatedir}/log
99 rmdir --ignore-fail-on-non-empty ${D}${localstatedir}
Andrew Geissler1fe918a2020-05-15 14:16:47 -0500100
101 if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then
102 install -d ${D}${sysconfdir}/tmpfiles.d
103 echo "d /var/log/sssd 0750 - - - -" > ${D}${sysconfdir}/tmpfiles.d/sss.conf
104 fi
Brad Bishop19323692019-04-05 15:28:33 -0400105
Patrick Williams53961c22022-01-20 11:06:23 -0600106 if [ "${@bb.utils.filter('DISTRO_FEATURES', 'sysvinit', d)}" ]; then
107 install -d ${D}${sysconfdir}/default/volatiles
108 echo "d ${SSSD_UID}:${SSSD_GID} 0755 ${localstatedir}/log/${BPN} none" > ${D}${sysconfdir}/default/volatiles/99_${BPN}
109 fi
110
Andrew Geisslera1a6aef2021-06-25 14:23:58 -0500111 # Remove /run as it is created on startup
112 rm -rf ${D}/run
Brad Bishop19323692019-04-05 15:28:33 -0400113
Andrew Geissler615f2f12022-07-15 14:00:58 -0500114# rm -fr ${D}/sssd
Andrew Geissler064f75b2020-06-27 00:14:46 -0500115 rm -f ${D}${systemd_system_unitdir}/sssd-secrets.*
Brad Bishop19323692019-04-05 15:28:33 -0400116}
117
Patrick Williams213cb262021-08-07 19:21:33 -0500118pkg_postinst_ontarget:${PN} () {
Brad Bishop19323692019-04-05 15:28:33 -0400119if [ -e /etc/init.d/populate-volatile.sh ] ; then
120 ${sysconfdir}/init.d/populate-volatile.sh update
121fi
122 chown ${SSSD_UID}:${SSSD_GID} ${sysconfdir}/${BPN}/${BPN}.conf
123}
124
Patrick Williams213cb262021-08-07 19:21:33 -0500125CONFFILES:${PN} = "${sysconfdir}/${BPN}/${BPN}.conf"
Brad Bishop19323692019-04-05 15:28:33 -0400126
127INITSCRIPT_NAME = "sssd"
128INITSCRIPT_PARAMS = "start 02 5 3 2 . stop 20 0 1 6 ."
Patrick Williams213cb262021-08-07 19:21:33 -0500129SYSTEMD_SERVICE:${PN} = " \
Andrew Geissler1fe918a2020-05-15 14:16:47 -0500130 ${@bb.utils.contains('PACKAGECONFIG', 'autofs', 'sssd-autofs.service sssd-autofs.socket', '', d)} \
131 ${@bb.utils.contains('PACKAGECONFIG', 'curl', 'sssd-kcm.service sssd-kcm.socket', '', d)} \
132 ${@bb.utils.contains('PACKAGECONFIG', 'infopipe', 'sssd-ifp.service ', '', d)} \
133 ${@bb.utils.contains('PACKAGECONFIG', 'ssh', 'sssd-ssh.service sssd-ssh.socket', '', d)} \
134 ${@bb.utils.contains('PACKAGECONFIG', 'sudo', 'sssd-sudo.service sssd-sudo.socket', '', d)} \
135 sssd-nss.service \
136 sssd-nss.socket \
137 sssd-pam-priv.socket \
138 sssd-pam.service \
139 sssd-pam.socket \
Andrew Geissler1fe918a2020-05-15 14:16:47 -0500140 sssd.service \
141"
Brad Bishop19323692019-04-05 15:28:33 -0400142SYSTEMD_AUTO_ENABLE = "disable"
143
Patrick Williams53961c22022-01-20 11:06:23 -0600144PACKAGES =+ "libsss-sudo"
145ALLOW_EMPTY:libsss-sudo = "1"
Brad Bishop19323692019-04-05 15:28:33 -0400146
Patrick Williams53961c22022-01-20 11:06:23 -0600147FILES:${PN} += "${base_libdir}/security/pam_sss*.so \
Andrew Geissler615f2f12022-07-15 14:00:58 -0500148 ${nonarch_libdir}/tmpfiles.d \
Patrick Williams53961c22022-01-20 11:06:23 -0600149 ${datadir}/dbus-1/system-services/*.service \
150 ${libdir}/krb5/* \
151 ${libdir}/ldb/* \
Andrew Geissler615f2f12022-07-15 14:00:58 -0500152 ${PYTHON_SITEPACKAGES_DIR}/sssd \
Patrick Williams53961c22022-01-20 11:06:23 -0600153 "
Andrew Geissler615f2f12022-07-15 14:00:58 -0500154
Patrick Williams53961c22022-01-20 11:06:23 -0600155FILES:libsss-sudo = "${libdir}/libsss_sudo.so"
Brad Bishop19323692019-04-05 15:28:33 -0400156
Patrick Williams53961c22022-01-20 11:06:23 -0600157RDEPENDS:${PN} = "bind bind-utils dbus libldb libpam libsss-sudo"