diff options
| author | Andreas Oberritter <obi@opendreambox.org> | 2016-11-30 13:04:00 +0100 |
|---|---|---|
| committer | Joe MacDonald <joe_macdonald@mentor.com> | 2016-12-17 10:57:36 -0500 |
| commit | 264430e380128bfae6f867e05e66e02d04be908d (patch) | |
| tree | 76810aa37dad889fc503854e8a6f0204b9c38d13 /meta-networking/recipes-connectivity/samba/samba_4.4.5.bb | |
| parent | 21c63e1b99df3542bd4911e46e5ada4429be9f47 (diff) | |
| download | meta-openembedded-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/recipes-connectivity/samba/samba_4.4.5.bb')
| -rw-r--r-- | meta-networking/recipes-connectivity/samba/samba_4.4.5.bb | 134 |
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() { | |||
| 153 | rm -rf ${D}/run ${D}${localstatedir}/run ${D}${localstatedir}/log | 153 | rm -rf ${D}/run ${D}${localstatedir}/run ${D}${localstatedir}/log |
| 154 | } | 154 | } |
| 155 | 155 | ||
| 156 | PACKAGES =+ "${PN}-python ${PN}-pidl libwinbind libwinbind-krb5-locator \ | 156 | PACKAGES =+ "${PN}-python ${PN}-pidl \ |
| 157 | libwbclient libnss-winbind winbind libnetapi libsmbsharemodes \ | 157 | winbind \ |
| 158 | libsmbclient lib${BPN}-base ${PN}-base ${PN}-ctdb-tests \ | 158 | ${PN}-common ${PN}-base ${PN}-ctdb-tests \ |
| 159 | smbclient" | 159 | smbclient" |
| 160 | 160 | ||
| 161 | python samba_populate_packages() { | ||
| 162 | def module_hook(file, pkg, pattern, format, basename): | ||
| 163 | pn = d.getVar('PN', True) | ||
| 164 | d.appendVar('RRECOMMENDS_%s-base' % pn, ' %s' % pkg) | ||
| 165 | |||
| 166 | mlprefix = d.getVar('MLPREFIX', True) or '' | ||
| 167 | pam_libdir = d.expand('${base_libdir}/security') | ||
| 168 | pam_pkgname = mlprefix + 'pam-plugin%s' | ||
| 169 | do_split_packages(d, pam_libdir, '^pam_(.*)\.so$', pam_pkgname, 'PAM plugin for %s', extra_depends='', prepend=True) | ||
| 170 | |||
| 171 | libdir = d.getVar('libdir', True) | ||
| 172 | do_split_packages(d, libdir, '^lib(.*)\.so\..*$', 'lib%s', 'Samba %s library', extra_depends='${PN}-common', prepend=True, allow_links=True) | ||
| 173 | pkglibdir = '%s/samba' % libdir | ||
| 174 | do_split_packages(d, pkglibdir, '^lib(.*)\.so$', 'lib%s', 'Samba %s library', extra_depends='${PN}-common', prepend=True) | ||
| 175 | moduledir = '%s/samba/auth' % libdir | ||
| 176 | do_split_packages(d, moduledir, '^(.*)\.so$', 'samba-auth-%s', 'Samba %s authentication backend', hook=module_hook, extra_depends='', prepend=True) | ||
| 177 | moduledir = '%s/samba/pdb' % libdir | ||
| 178 | do_split_packages(d, moduledir, '^(.*)\.so$', 'samba-pdb-%s', 'Samba %s password backend', hook=module_hook, extra_depends='', prepend=True) | ||
| 179 | } | ||
| 180 | |||
| 181 | PACKAGESPLITFUNCS_prepend = "samba_populate_packages " | ||
| 182 | |||
| 161 | RDEPENDS_${PN} += "${PN}-base" | 183 | RDEPENDS_${PN} += "${PN}-base" |
| 162 | 184 | ||
| 163 | FILES_${PN}-base = "${sbindir}/nmbd \ | 185 | FILES_${PN}-base = "${sbindir}/nmbd \ |
| @@ -178,121 +200,25 @@ FILES_${PN}-ctdb-tests = "${bindir}/ctdb_run_tests \ | |||
| 178 | /run/ctdb \ | 200 | /run/ctdb \ |
| 179 | " | 201 | " |
| 180 | 202 | ||
| 181 | # figured out by | 203 | FILES_${BPN}-common = "${sysconfdir}/default \ |
| 182 | # 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" | 204 | ${sysconfdir}/samba \ |
| 183 | # | ||
| 184 | # while [ "${FILES}" != "${OLDFILES}" ] | ||
| 185 | # do | ||
| 186 | # OLDFILES="${FILES}" | ||
| 187 | # 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), ")"'` | ||
| 188 | # NF=`find tmp/work/cortexa9hf-vfp-neon-poky-linux-gnueabi/samba/4.1.12-r0/image/usr/lib -type f | egrep "${NEEDED}" | sort -u` | ||
| 189 | # | ||
| 190 | # FILES=`perl -le 'foreach (@ARGV) { $f{$_}++ }; print join(" ", sort keys %f)' ${FILES} ${NF}` | ||
| 191 | # done | ||
| 192 | # | ||
| 193 | # 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'` | ||
| 194 | # for l in ${LIBS} | ||
| 195 | # do | ||
| 196 | # echo $l | ||
| 197 | # done | ||
| 198 | |||
| 199 | FILES_lib${BPN}-base = "\ | ||
| 200 | ${sysconfdir}/default \ | ||
| 201 | ${sysconfdir}/samba \ | ||
| 202 | ${libdir}/libdcerpc-binding.so.* \ | ||
| 203 | ${libdir}/libgensec.so.* \ | ||
| 204 | ${libdir}/libndr-krb5pac.so.* \ | ||
| 205 | ${libdir}/libndr-nbt.so.* \ | ||
| 206 | ${libdir}/libndr-standard.so.* \ | ||
| 207 | ${libdir}/libndr.so.* \ | ||
| 208 | ${libdir}/libnetapi.so.* \ | ||
| 209 | ${libdir}/libpdb.so.* \ | ||
| 210 | ${libdir}/libsamba-credentials.so.* \ | ||
| 211 | ${libdir}/libsamba-hostconfig.so.* \ | ||
| 212 | ${libdir}/libsamba-util.so.* \ | ||
| 213 | ${libdir}/libsamdb.so.* \ | ||
| 214 | ${libdir}/libsmbconf.so.* \ | ||
| 215 | ${libdir}/libtevent-util.so.* \ | ||
| 216 | ${libdir}/samba/libCHARSET3.so \ | ||
| 217 | ${libdir}/samba/libaddns.so \ | ||
| 218 | ${libdir}/samba/libads.so \ | ||
| 219 | ${libdir}/samba/libasn1util.so \ | ||
| 220 | ${libdir}/samba/libauth.so \ | ||
| 221 | ${libdir}/samba/libauth_sam_reply.so \ | ||
| 222 | ${libdir}/samba/libauthkrb5.so \ | ||
| 223 | ${libdir}/samba/libccan.so \ | ||
| 224 | ${libdir}/samba/libcli-ldap-common.so \ | ||
| 225 | ${libdir}/samba/libcli-nbt.so \ | ||
| 226 | ${libdir}/samba/libcli_cldap.so \ | ||
| 227 | ${libdir}/samba/libcli_smb_common.so \ | ||
| 228 | ${libdir}/samba/libcli_spoolss.so \ | ||
| 229 | ${libdir}/samba/libcliauth.so \ | ||
| 230 | ${libdir}/samba/libdbwrap.so \ | ||
| 231 | ${libdir}/samba/libdcerpc-samba.so \ | ||
| 232 | ${libdir}/samba/liberrors.so \ | ||
| 233 | ${libdir}/samba/libflag_mapping.so \ | ||
| 234 | ${libdir}/samba/libgse.so \ | ||
| 235 | ${libdir}/samba/libinterfaces.so \ | ||
| 236 | ${libdir}/samba/libkrb5samba.so \ | ||
| 237 | ${libdir}/samba/libldbsamba.so \ | ||
| 238 | ${libdir}/samba/liblibcli_lsa3.so \ | ||
| 239 | ${libdir}/samba/liblibcli_netlogon3.so \ | ||
| 240 | ${libdir}/samba/liblibsmb.so \ | ||
| 241 | ${libdir}/samba/libmsrpc3.so \ | ||
| 242 | ${libdir}/samba/libndr-samba.so \ | ||
| 243 | ${libdir}/samba/libndr-samba4.so \ | ||
| 244 | ${libdir}/samba/libnpa_tstream.so \ | ||
| 245 | ${libdir}/samba/libntdb.so.* \ | ||
| 246 | ${libdir}/samba/libpopt_samba3.so \ | ||
| 247 | ${libdir}/samba/libprinting_migrate.so \ | ||
| 248 | ${libdir}/samba/libsamba-modules.so \ | ||
| 249 | ${libdir}/samba/libsamba-security.so \ | ||
| 250 | ${libdir}/samba/libsamba-sockets.so \ | ||
| 251 | ${libdir}/samba/libsamba3-util.so \ | ||
| 252 | ${libdir}/samba/libsamdb-common.so \ | ||
| 253 | ${libdir}/samba/libsecrets3.so \ | ||
| 254 | ${libdir}/samba/libserver-role.so \ | ||
| 255 | ${libdir}/samba/libsmb_transport.so \ | ||
| 256 | ${libdir}/samba/libsmbd_base.so \ | ||
| 257 | ${libdir}/samba/libsmbd_conn.so \ | ||
| 258 | ${libdir}/samba/libsmbd_shim.so \ | ||
| 259 | ${libdir}/samba/libsmbregistry.so \ | ||
| 260 | ${libdir}/samba/libtdb-wrap.so \ | ||
| 261 | ${libdir}/samba/libutil_cmdline.so \ | ||
| 262 | ${libdir}/samba/libutil_ntdb.so \ | ||
| 263 | ${libdir}/samba/libutil_reg.so \ | ||
| 264 | ${libdir}/samba/libutil_setid.so \ | ||
| 265 | ${libdir}/samba/libutil_tdb.so \ | ||
| 266 | ${libdir}/samba/pdb/smbpasswd.so \ | ||
| 267 | ${libdir}/samba/pdb/tdbsam.so \ | ||
| 268 | ${libdir}/samba/pdb/wbc_sam.so \ | ||
| 269 | " | 205 | " |
| 270 | 206 | ||
| 271 | FILES_${PN} += "${libdir}/vfs/*.so \ | 207 | FILES_${PN} += "${libdir}/vfs/*.so \ |
| 272 | ${libdir}/charset/*.so \ | 208 | ${libdir}/charset/*.so \ |
| 273 | ${libdir}/*.dat \ | 209 | ${libdir}/*.dat \ |
| 274 | ${libdir}/auth/*.so \ | 210 | ${libdir}/auth/*.so \ |
| 275 | ${base_libdir}/security/pam_smbpass.so \ | ||
| 276 | " | 211 | " |
| 277 | 212 | ||
| 278 | FILES_libwbclient = "${libdir}/libwbclient.so.* ${libdir}/samba/libwinbind-client.so" | ||
| 279 | FILES_libnetapi = "${libdir}/libnetapi.so.*" | ||
| 280 | FILES_libsmbsharemodes = "${libdir}/libsmbsharemodes.so.*" | ||
| 281 | FILES_libsmbclient = "${libdir}/libsmbclient.so.*" | ||
| 282 | FILES_winbind = "${sbindir}/winbindd \ | 213 | FILES_winbind = "${sbindir}/winbindd \ |
| 283 | ${bindir}/wbinfo \ | 214 | ${bindir}/wbinfo \ |
| 284 | ${bindir}/ntlm_auth \ | 215 | ${bindir}/ntlm_auth \ |
| 216 | ${libdir}/samba/idmap \ | ||
| 217 | ${libdir}/samba/nss_info \ | ||
| 218 | ${libdir}/winbind_krb5_locator.so \ | ||
| 285 | ${sysconfdir}/init.d/winbind \ | 219 | ${sysconfdir}/init.d/winbind \ |
| 286 | ${systemd_system_unitdir}/winbind.service" | 220 | ${systemd_system_unitdir}/winbind.service" |
| 287 | 221 | ||
| 288 | FILES_libnss-winbind = "${libdir}/libnss_*${SOLIBS} \ | ||
| 289 | ${libdir}/nss_info \ | ||
| 290 | " | ||
| 291 | |||
| 292 | FILES_libwinbind = "${base_libdir}/security/pam_winbind.so \ | ||
| 293 | ${systemd_system_unitdir}/winbind.service" | ||
| 294 | FILES_libwinbind-krb5-locator = "${libdir}/winbind_krb5_locator.so" | ||
| 295 | |||
| 296 | FILES_${PN}-python = "${PYTHON_SITEPACKAGES_DIR}" | 222 | FILES_${PN}-python = "${PYTHON_SITEPACKAGES_DIR}" |
| 297 | 223 | ||
| 298 | FILES_smbclient = "${bindir}/cifsdd \ | 224 | FILES_smbclient = "${bindir}/cifsdd \ |
