From 641aabf595c78702d16c99d1191a4ac655472ff8 Mon Sep 17 00:00:00 2001 From: Max Krummenacher Date: Sun, 27 Jan 2019 10:01:46 +0100 Subject: [PATCH] sddm: make libpam optional Rescently pam was added as new setting in DISTRO_FEATURES. If it is not defined sddm currently fails as it unconditionally depends on pam. This fixes: | ERROR: Nothing PROVIDES 'libpam' (but .../sddm_git.bb DEPENDS on or otherwise requires it) | libpam was skipped: missing required distro feature 'pam' (not in DISTRO_FEATURES) Signed-off-by: Max Krummenacher --- .../recipes-graphics/sddm/sddm_git.bb | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/recipes-misc/recipes-graphics/sddm/sddm_git.bb b/recipes-misc/recipes-graphics/sddm/sddm_git.bb index 1d35ef65..cc37ed34 100644 --- a/recipes-misc/recipes-graphics/sddm/sddm_git.bb +++ b/recipes-misc/recipes-graphics/sddm/sddm_git.bb @@ -10,8 +10,9 @@ REQUIRED_DISTRO_FEATURES = "x11" inherit cmake_qt5_extra qmake5_base pkgconfig systemd useradd distro_features_check DEPENDS += "extra-cmake-modules-native qtbase qtdeclarative qttools libxcb" -# REVISIT optionals -DEPENDS += "libpam" + +PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'pam', d)}" +PACKAGECONFIG[pam] = "-DENABLE_PAM=ON, -DENABLE_PAM=OFF, libpam" # Note: we should check default config changes by running sddm --example-config on target. # This is usually done during build but does not work for our cross environment @@ -38,17 +39,21 @@ do_configure_append() { sed -i 's:${STAGING_DIR_HOST}.*${libdir}:${libdir}:g' ${B}/src/common/Constants.h } +install_pam() { + install -d ${D}${sysconfdir}/pam.d + install -m 644 ${WORKDIR}/sddm.pam ${D}${sysconfdir}/pam.d/sddm + install -m 644 ${WORKDIR}/sddm-autologin.pam ${D}${sysconfdir}/pam.d/sddm-autologin +} + do_install_append() { install -d ${D}/${sysconfdir}/sddm.conf.d install -m 644 ${WORKDIR}/sddm.conf ${D}/${sysconfdir}/sddm.conf.d/00-default.conf - install -d ${D}${sysconfdir}/pam.d - install -m 644 ${WORKDIR}/sddm.pam ${D}${sysconfdir}/pam.d/sddm - install -m 644 ${WORKDIR}/sddm-autologin.pam ${D}${sysconfdir}/pam.d/sddm-autologin - install -d ${D}${localstatedir}/lib/sddm chown -R sddm:sddm ${D}${localstatedir}/lib/sddm chmod 0750 ${D}${localstatedir}/lib/sddm + + ${@bb.utils.contains('DISTRO_FEATURES', 'pam', 'install_pam', '', d)} } FILES_${PN} += "${OE_QMAKE_PATH_QML}" @@ -69,7 +74,7 @@ RDEPENDS_${PN} += " \ qtbase-plugins \ qtdeclarative-plugins \ qtdeclarative-qmlplugins \ - pam-plugin-tally \ + ${@bb.utils.contains('DISTRO_FEATURES', 'pam', 'pam-plugin-tally', '', d)} \ " RRECOMMENDS_${PN += " \