summaryrefslogtreecommitdiffstats
path: root/meta-networking/recipes-connectivity
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/recipes-connectivity
parent21c63e1b99df3542bd4911e46e5ada4429be9f47 (diff)
downloadmeta-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')
-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 b17e0cf8b..c4b629822 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
156PACKAGES =+ "${PN}-python ${PN}-pidl libwinbind libwinbind-krb5-locator \ 156PACKAGES =+ "${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
161python 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
181PACKAGESPLITFUNCS_prepend = "samba_populate_packages "
182
161RDEPENDS_${PN} += "${PN}-base" 183RDEPENDS_${PN} += "${PN}-base"
162 184
163FILES_${PN}-base = "${sbindir}/nmbd \ 185FILES_${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 203FILES_${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
199FILES_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
271FILES_${PN} += "${libdir}/vfs/*.so \ 207FILES_${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
278FILES_libwbclient = "${libdir}/libwbclient.so.* ${libdir}/samba/libwinbind-client.so"
279FILES_libnetapi = "${libdir}/libnetapi.so.*"
280FILES_libsmbsharemodes = "${libdir}/libsmbsharemodes.so.*"
281FILES_libsmbclient = "${libdir}/libsmbclient.so.*"
282FILES_winbind = "${sbindir}/winbindd \ 213FILES_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
288FILES_libnss-winbind = "${libdir}/libnss_*${SOLIBS} \
289 ${libdir}/nss_info \
290"
291
292FILES_libwinbind = "${base_libdir}/security/pam_winbind.so \
293 ${systemd_system_unitdir}/winbind.service"
294FILES_libwinbind-krb5-locator = "${libdir}/winbind_krb5_locator.so"
295
296FILES_${PN}-python = "${PYTHON_SITEPACKAGES_DIR}" 222FILES_${PN}-python = "${PYTHON_SITEPACKAGES_DIR}"
297 223
298FILES_smbclient = "${bindir}/cifsdd \ 224FILES_smbclient = "${bindir}/cifsdd \