aboutsummaryrefslogtreecommitdiffstats
path: root/meta-networking
diff options
context:
space:
mode:
authorAndreas Oberritter <obi@opendreambox.org>2016-11-30 13:04:00 +0100
committerJoe MacDonald <joe_macdonald@mentor.com>2016-12-17 10:57:36 -0500
commit264430e380128bfae6f867e05e66e02d04be908d (patch)
tree76810aa37dad889fc503854e8a6f0204b9c38d13 /meta-networking
parent21c63e1b99df3542bd4911e46e5ada4429be9f47 (diff)
downloadmeta-openembedded-contrib-264430e380128bfae6f867e05e66e02d04be908d.tar.gz
samba: split libraries into their own packages
It's quite hard to track library dependencies manually between releases. Splitting libraries into their own packages creates some overhead but effectively uses less storage in minimal installations. Signed-off-by: Andreas Oberritter <obi@opendreambox.org> Signed-off-by: Joe MacDonald <joe_macdonald@mentor.com>
Diffstat (limited to 'meta-networking')
-rw-r--r--meta-networking/recipes-connectivity/samba/samba_4.4.5.bb134
1 files changed, 30 insertions, 104 deletions
diff --git a/meta-networking/recipes-connectivity/samba/samba_4.4.5.bb b/meta-networking/recipes-connectivity/samba/samba_4.4.5.bb
index b17e0cf8bc..c4b6298226 100644
--- a/meta-networking/recipes-connectivity/samba/samba_4.4.5.bb
+++ b/meta-networking/recipes-connectivity/samba/samba_4.4.5.bb
@@ -153,11 +153,33 @@ do_install_append() {
rm -rf ${D}/run ${D}${localstatedir}/run ${D}${localstatedir}/log
}
-PACKAGES =+ "${PN}-python ${PN}-pidl libwinbind libwinbind-krb5-locator \
- libwbclient libnss-winbind winbind libnetapi libsmbsharemodes \
- libsmbclient lib${BPN}-base ${PN}-base ${PN}-ctdb-tests \
+PACKAGES =+ "${PN}-python ${PN}-pidl \
+ winbind \
+ ${PN}-common ${PN}-base ${PN}-ctdb-tests \
smbclient"
+python samba_populate_packages() {
+ def module_hook(file, pkg, pattern, format, basename):
+ pn = d.getVar('PN', True)
+ d.appendVar('RRECOMMENDS_%s-base' % pn, ' %s' % pkg)
+
+ mlprefix = d.getVar('MLPREFIX', True) or ''
+ pam_libdir = d.expand('${base_libdir}/security')
+ pam_pkgname = mlprefix + 'pam-plugin%s'
+ do_split_packages(d, pam_libdir, '^pam_(.*)\.so$', pam_pkgname, 'PAM plugin for %s', extra_depends='', prepend=True)
+
+ libdir = d.getVar('libdir', True)
+ do_split_packages(d, libdir, '^lib(.*)\.so\..*$', 'lib%s', 'Samba %s library', extra_depends='${PN}-common', prepend=True, allow_links=True)
+ pkglibdir = '%s/samba' % libdir
+ do_split_packages(d, pkglibdir, '^lib(.*)\.so$', 'lib%s', 'Samba %s library', extra_depends='${PN}-common', prepend=True)
+ moduledir = '%s/samba/auth' % libdir
+ do_split_packages(d, moduledir, '^(.*)\.so$', 'samba-auth-%s', 'Samba %s authentication backend', hook=module_hook, extra_depends='', prepend=True)
+ moduledir = '%s/samba/pdb' % libdir
+ do_split_packages(d, moduledir, '^(.*)\.so$', 'samba-pdb-%s', 'Samba %s password backend', hook=module_hook, extra_depends='', prepend=True)
+}
+
+PACKAGESPLITFUNCS_prepend = "samba_populate_packages "
+
RDEPENDS_${PN} += "${PN}-base"
FILES_${PN}-base = "${sbindir}/nmbd \
@@ -178,121 +200,25 @@ FILES_${PN}-ctdb-tests = "${bindir}/ctdb_run_tests \
/run/ctdb \
"
-# figured out by
-# FILES="tmp/work/cortexa9hf-vfp-neon-poky-linux-gnueabi/samba/4.1.12-r0/image/usr/sbin/smbd tmp/work/cortexa9hf-vfp-neon-poky-linux-gnueabi/samba/4.1.12-r0/image/usr/sbin/nmbd"
-#
-# while [ "${FILES}" != "${OLDFILES}" ]
-# do
-# OLDFILES="${FILES}"
-# NEEDED=`tmp/sysroots/x86_64-linux/usr/libexec/arm-poky-linux-gnueabi.gcc-cross-initial-arm/gcc/arm-poky-linux-gnueabi/5.2.0/objdump -x ${FILES} | grep NEEDED | egrep -E 'so(.[0-9]|$)' | sort -u | perl -MData::Dumper -le 'while (<>) {chomp; push @lib, (split)[1]}; print "(", join("|", @lib), ")"'`
-# NF=`find tmp/work/cortexa9hf-vfp-neon-poky-linux-gnueabi/samba/4.1.12-r0/image/usr/lib -type f | egrep "${NEEDED}" | sort -u`
-#
-# FILES=`perl -le 'foreach (@ARGV) { $f{$_}++ }; print join(" ", sort keys %f)' ${FILES} ${NF}`
-# done
-#
-# LIBS=`echo ${FILES} | sed -e 's,tmp/work/cortexa9hf-vfp-neon-poky-linux-gnueabi/samba/4.1.12-r0/image/usr/lib,${libdir},g' -e 's,.so.[0-9]+.*$,.so.*,g'`
-# for l in ${LIBS}
-# do
-# echo $l
-# done
-
-FILES_lib${BPN}-base = "\
- ${sysconfdir}/default \
- ${sysconfdir}/samba \
- ${libdir}/libdcerpc-binding.so.* \
- ${libdir}/libgensec.so.* \
- ${libdir}/libndr-krb5pac.so.* \
- ${libdir}/libndr-nbt.so.* \
- ${libdir}/libndr-standard.so.* \
- ${libdir}/libndr.so.* \
- ${libdir}/libnetapi.so.* \
- ${libdir}/libpdb.so.* \
- ${libdir}/libsamba-credentials.so.* \
- ${libdir}/libsamba-hostconfig.so.* \
- ${libdir}/libsamba-util.so.* \
- ${libdir}/libsamdb.so.* \
- ${libdir}/libsmbconf.so.* \
- ${libdir}/libtevent-util.so.* \
- ${libdir}/samba/libCHARSET3.so \
- ${libdir}/samba/libaddns.so \
- ${libdir}/samba/libads.so \
- ${libdir}/samba/libasn1util.so \
- ${libdir}/samba/libauth.so \
- ${libdir}/samba/libauth_sam_reply.so \
- ${libdir}/samba/libauthkrb5.so \
- ${libdir}/samba/libccan.so \
- ${libdir}/samba/libcli-ldap-common.so \
- ${libdir}/samba/libcli-nbt.so \
- ${libdir}/samba/libcli_cldap.so \
- ${libdir}/samba/libcli_smb_common.so \
- ${libdir}/samba/libcli_spoolss.so \
- ${libdir}/samba/libcliauth.so \
- ${libdir}/samba/libdbwrap.so \
- ${libdir}/samba/libdcerpc-samba.so \
- ${libdir}/samba/liberrors.so \
- ${libdir}/samba/libflag_mapping.so \
- ${libdir}/samba/libgse.so \
- ${libdir}/samba/libinterfaces.so \
- ${libdir}/samba/libkrb5samba.so \
- ${libdir}/samba/libldbsamba.so \
- ${libdir}/samba/liblibcli_lsa3.so \
- ${libdir}/samba/liblibcli_netlogon3.so \
- ${libdir}/samba/liblibsmb.so \
- ${libdir}/samba/libmsrpc3.so \
- ${libdir}/samba/libndr-samba.so \
- ${libdir}/samba/libndr-samba4.so \
- ${libdir}/samba/libnpa_tstream.so \
- ${libdir}/samba/libntdb.so.* \
- ${libdir}/samba/libpopt_samba3.so \
- ${libdir}/samba/libprinting_migrate.so \
- ${libdir}/samba/libsamba-modules.so \
- ${libdir}/samba/libsamba-security.so \
- ${libdir}/samba/libsamba-sockets.so \
- ${libdir}/samba/libsamba3-util.so \
- ${libdir}/samba/libsamdb-common.so \
- ${libdir}/samba/libsecrets3.so \
- ${libdir}/samba/libserver-role.so \
- ${libdir}/samba/libsmb_transport.so \
- ${libdir}/samba/libsmbd_base.so \
- ${libdir}/samba/libsmbd_conn.so \
- ${libdir}/samba/libsmbd_shim.so \
- ${libdir}/samba/libsmbregistry.so \
- ${libdir}/samba/libtdb-wrap.so \
- ${libdir}/samba/libutil_cmdline.so \
- ${libdir}/samba/libutil_ntdb.so \
- ${libdir}/samba/libutil_reg.so \
- ${libdir}/samba/libutil_setid.so \
- ${libdir}/samba/libutil_tdb.so \
- ${libdir}/samba/pdb/smbpasswd.so \
- ${libdir}/samba/pdb/tdbsam.so \
- ${libdir}/samba/pdb/wbc_sam.so \
+FILES_${BPN}-common = "${sysconfdir}/default \
+ ${sysconfdir}/samba \
"
FILES_${PN} += "${libdir}/vfs/*.so \
${libdir}/charset/*.so \
${libdir}/*.dat \
${libdir}/auth/*.so \
- ${base_libdir}/security/pam_smbpass.so \
"
-FILES_libwbclient = "${libdir}/libwbclient.so.* ${libdir}/samba/libwinbind-client.so"
-FILES_libnetapi = "${libdir}/libnetapi.so.*"
-FILES_libsmbsharemodes = "${libdir}/libsmbsharemodes.so.*"
-FILES_libsmbclient = "${libdir}/libsmbclient.so.*"
FILES_winbind = "${sbindir}/winbindd \
${bindir}/wbinfo \
${bindir}/ntlm_auth \
+ ${libdir}/samba/idmap \
+ ${libdir}/samba/nss_info \
+ ${libdir}/winbind_krb5_locator.so \
${sysconfdir}/init.d/winbind \
${systemd_system_unitdir}/winbind.service"
-FILES_libnss-winbind = "${libdir}/libnss_*${SOLIBS} \
- ${libdir}/nss_info \
-"
-
-FILES_libwinbind = "${base_libdir}/security/pam_winbind.so \
- ${systemd_system_unitdir}/winbind.service"
-FILES_libwinbind-krb5-locator = "${libdir}/winbind_krb5_locator.so"
-
FILES_${PN}-python = "${PYTHON_SITEPACKAGES_DIR}"
FILES_smbclient = "${bindir}/cifsdd \