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 <max.krummenacher@toradex.com>
This commit is contained in:
Max Krummenacher
2019-01-27 10:01:46 +01:00
parent 5da9bf34fd
commit 523d52fc7c

View File

@@ -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 += " \