[oe] [meta-oe][PATCH 1/3] samba: fix dependencies and QA issues

Jens Rehsack rehsack at gmail.com
Tue Nov 10 21:22:08 UTC 2015


Fix remaining QA issues (dependency-wise) like

  WARNING: QA Issue: samba rdepends on libacl, but it isn't a build dependency? [build-deps]
  WARNING: QA Issue: samba rdepends on libavahi-client, but it isn't a build dependency? [build-deps]

broken perl library path, having a default PACKAGECONFIG, but allow
user-defined one and rely on PACKAGECONFIG instead of DISTRO_FEATURES.

Signed-off-by: Jens Rehsack <sno at netbsd.org>
---
 meta-oe/recipes-connectivity/samba/samba_4.1.12.bb | 32 ++++++++++++++--------
 1 file changed, 21 insertions(+), 11 deletions(-)

diff --git a/meta-oe/recipes-connectivity/samba/samba_4.1.12.bb b/meta-oe/recipes-connectivity/samba/samba_4.1.12.bb
index af2cc1f..9e86e89 100644
--- a/meta-oe/recipes-connectivity/samba/samba_4.1.12.bb
+++ b/meta-oe/recipes-connectivity/samba/samba_4.1.12.bb
@@ -38,26 +38,36 @@ SRC_URI = "${SAMBA_MIRROR}/stable/samba-${PV}.tar.gz \
 SRC_URI[md5sum] = "232016d7581a1ba11e991ec2674553c4"
 SRC_URI[sha256sum] = "033604674936bf5c77d7df299b0626052b84a41505a6a6afe902f6274fc29898"
 
-inherit systemd waf-samba
+inherit systemd waf-samba cpan-base perlnative
 
-DEPENDS += "readline virtual/libiconv zlib popt talloc libtdb libtevent libldb krb5 ctdb cups"
-RDEPENDS_${PN} += "openldap"
+DEPENDS += "readline virtual/libiconv zlib popt talloc libtdb libtevent libldb krb5 ctdb"
+RDEPENDS_${PN} += "${@bb.utils.contains('PACKAGECONFIG', 'lsb', 'lsb', '', d)}"
 
-PACKAGECONFIG = "${@base_contains('DISTRO_FEATURES', 'pam', 'pam', '', d)}"
-PACKAGECONFIG += "${@base_contains('DISTRO_FEATURES', 'systemd', 'systemd', '', d)}"
+PACKAGECONFIG ??= "${@base_contains('DISTRO_FEATURES', 'pam', 'pam', '', d)} \
+                   ${@base_contains('DISTRO_FEATURES', 'sysvinit', 'lsb', '', d)} \
+                   ${@base_contains('DISTRO_FEATURES', 'systemd', 'systemd', '', d)} \
+                   ${@base_contains('DISTRO_FEATURES', 'zeroconf', 'zeroconf', '', d)} \
+                   acl aio cups ldap \
+"
 
-PACKAGECONFIG[pam] = "--with-pam,--without-pam,libpam"
+PACKAGECONFIG[acl] = "--with-acl-support,---without-acl-support,acl"
+PACKAGECONFIG[aio] = "--with-aio-support,---without-aio-support,libaio"
 PACKAGECONFIG[fam] = "--with-fam,--without-fam,gamin"
+PACKAGECONFIG[pam] = "--with-pam,--without-pam,libpam"
+PACKAGECONFIG[lsb] = ",,lsb"
+PACKAGECONFIG[cups] = "--enable-cups,--disable-cups,cups"
+PACKAGECONFIG[ldap] = "--with-ldap,--without-ldap,openldap"
 PACKAGECONFIG[systemd] = "--with-systemd,--without-systemd,systemd"
+PACKAGECONFIG[zeroconf] = "--enable-avahi,--disable-avahi,avahi"
 
 SAMBA4_IDMAP_MODULES="idmap_ad,idmap_rid,idmap_adex,idmap_hash,idmap_tdb2"
-SAMBA4_PDB_MODULES="pdb_tdbsam,pdb_ldap,pdb_ads,pdb_smbpasswd,pdb_wbc_sam,pdb_samba4"
+SAMBA4_PDB_MODULES="pdb_tdbsam,${@bb.utils.contains('PACKAGECONFIG', 'ldap', 'pdb_ldap,', '', d)}pdb_ads,pdb_smbpasswd,pdb_wbc_sam,pdb_samba4"
 SAMBA4_AUTH_MODULES="auth_unix,auth_wbc,auth_server,auth_netlogond,auth_script,auth_samba4"
 SAMBA4_MODULES="${SAMBA4_IDMAP_MODULES},${SAMBA4_PDB_MODULES},${SAMBA4_AUTH_MODULES}"
 
 SAMBA4_LIBS="heimdal,!zlib,!popt,!talloc,!pytalloc,!pytalloc-util,!tevent,!pytevent,!tdb,!pytdb,!ldb,!pyldb"
 
-PERL_VERNDORLIB="${datadir}/perl5/vendor_perl/"
+PERL_VERNDORLIB="${libdir}/perl5/vendor_perl/${PERLVERSION}"
 
 EXTRA_OECONF += "--enable-fhs \
                  --with-piddir=${localstatedir}/run \
@@ -85,7 +95,7 @@ LDFLAGS += "-Wl,-z,relro,-z,now"
 do_install_append() {
     rmdir --ignore-fail-on-non-empty "${D}/${localstatedir}/run"
 
-    if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then
+    if ${@bb.utils.contains('PACKAGECONFIG', 'systemd', 'true', 'false', d)}; then
         install -d ${D}${systemd_unitdir}/system
         for i in nmb smb winbind; do
             install -m 0644 packaging/systemd/$i.service ${D}${systemd_unitdir}/system
@@ -97,7 +107,7 @@ do_install_append() {
 	install -d ${D}${sysconfdir}/tmpfiles.d
 	echo "d ${localstatedir}/log/samba 0755 root root -" \
             > ${D}${sysconfdir}/tmpfiles.d/99-${BPN}.conf
-    elif ${@bb.utils.contains('DISTRO_FEATURES', 'sysvinit', 'true', 'false', d)}; then
+    elif ${@bb.utils.contains('PACKAGECONFIG', 'lsb', 'true', 'false', d)}; then
 	install -d ${D}${sysconfdir}/init.d
 	install -m 0755 packaging/LSB/samba.sh ${D}${sysconfdir}/init.d
 	update-rc.d -r ${D} samba.sh start 20 3 5 .
@@ -160,4 +170,4 @@ FILES_${PN}-python-dbg = "${libdir}/python${PYTHON_BASEVERSION}/site-packages/.d
                           ${libdir}/python${PYTHON_BASEVERSION}/site-packages/samba/dcerpc/.debug/* \
                          "
 
-FILES_${PN}-pidl = "${datadir}/perl5/vendor_perl/*"
+FILES_${PN}-pidl = "${bindir}/pidl ${PERL_VERNDORLIB}/*"
-- 
1.9.1

fighting with missing lsb on target and needless openldap and cups, I decided to give a larger cleanup a chance :)

Cheers
-- 
Jens Rehsack - rehsack at gmail.com




More information about the Openembedded-devel mailing list