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 | |
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')
-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 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 | ||
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 \ |