mirror of
https://github.com/openembedded/meta-openembedded.git
synced 2026-06-05 02:50:46 +00:00
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>
This commit is contained in:
committed by
Joe MacDonald
parent
21c63e1b99
commit
264430e380
@@ -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 \
|
||||
|
||||
Reference in New Issue
Block a user