When working with the 3.2.0rc1 source tarball, and building RPMs for RHEL4 from the packaging/RHEL/ directory, and after purging a residual symlink that was causing the 3.2.0rc1 source tree to build using the 3.2.0pre1 tree, and after re-applying my fixes for #5491 & #5492, I encountered the following error during build: -------------------------- RPM build errors: File not found: /var/tmp/samba-3.2.0-root/usr/bin/smbmount File not found: /var/tmp/samba-3.2.0-root/usr/bin/smbmnt File not found: /var/tmp/samba-3.2.0-root/usr/bin/smbumount File not found by glob: /var/tmp/samba-3.2.0-root/usr/share/man/man8/smbmnt.8* File not found by glob: /var/tmp/samba-3.2.0-root/usr/share/man/man8/smbmount.8* File not found by glob: /var/tmp/samba-3.2.0-root/usr/share/man/man8/smbumount.8* bash: Done. -------------------------- The following changes to the spec file allowed the RPM build to proceed past this error. However, I am unsure as to the status of the missing smbmnt/smbmount/smbumount files -- are they intended to have been removed? It would seem not to me, since there are a number of symlinks established to these files... -------------------------- --- packaging/RHEL/samba.spec.tmpl 2008-05-31 16:08:00.000000000 -0500 +++ packaging/RHEL/samba.spec 2008-05-31 17:57:59.000000000 -0500 @@ -430,9 +430,9 @@ %{_bindir}/rpcclient %{_bindir}/smbcacls -%{_bindir}/smbmount -%{_bindir}/smbmnt -%{_bindir}/smbumount +#%{_bindir}/smbmount +#%{_bindir}/smbmnt +#%{_bindir}/smbumount %{_bindir}/findsmb %{_bindir}/smbcquotas %{_bindir}/nmblookup @@ -444,9 +444,9 @@ %{_bindir}/net %{_bindir}/smbtree -%{_mandir}/man8/smbmnt.8* -%{_mandir}/man8/smbmount.8* -%{_mandir}/man8/smbumount.8* +#%{_mandir}/man8/smbmnt.8* +#%{_mandir}/man8/smbmount.8* +#%{_mandir}/man8/smbumount.8* %{_mandir}/man8/mount.cifs.8.* %{_mandir}/man8/umount.cifs.8.* %{_mandir}/man8/smbspool.8* -------------------------- After bypassing this set of missing files during the build, I then encountered an even longer list: -------------------------- RPM build errors: Installed (but unpackaged) file(s) found: /usr/bin/ldbadd /usr/bin/ldbdel /usr/bin/ldbedit /usr/bin/ldbmodify /usr/bin/ldbsearch /usr/include/netapi.h /usr/include/talloc.h /usr/include/tdb.h /usr/include/wbclient.h /usr/lib/samba/libnetapi.so /usr/lib/samba/libtalloc.so /usr/lib/samba/libtdb.so /usr/lib/samba/libwbclient.so /usr/share/man/man1/ldbadd.1.gz /usr/share/man/man1/ldbdel.1.gz /usr/share/man/man1/ldbedit.1.gz /usr/share/man/man1/ldbmodify.1.gz /usr/share/man/man1/ldbsearch.1.gz -------------------------- The ldb* files are similar to the error noted in $5494, but I suspect the build in #5494 was being done against the 3.2.0pre1 source tree. Here, I have ensured that only the 3.2.0rc1 source tree is used. The following additions to the samba.spec file allowed the RPM build to proceed past these errors, to completion: -------------------------- --- packaging/RHEL/samba.spec.working 2008-05-31 17:57:59.000000000 -0500 +++ packaging/RHEL/samba.spec 2008-05-31 19:13:39.000000000 -0500 @@ -371,6 +371,8 @@ %{_bindir}/pdbedit %{_bindir}/eventlogadm +%{_bindir}/ldb* + %{_libdir}/samba/idmap/*.so %{_libdir}/samba/nss_info/*.so %{_libdir}/samba/vfs/*.so @@ -461,6 +463,7 @@ %{_mandir}/man1/smbtree.1* %{_mandir}/man8/net.8* %{_mandir}/man1/smbcquotas.1* +%{_mandir}/man1/ldb*.1* ########## @@ -482,6 +485,15 @@ %{_includedir}/smb_share_modes.h %{_libdir}/libsmbsharemodes.* +%{_includedir}/netapi.h +%{_libdir}/samba/libnetapi.* +%{_includedir}/talloc.h +%{_libdir}/samba/libtalloc.* +%{_includedir}/tdb.h +%{_libdir}/samba/libtdb.* +%{_includedir}/wbclient.h +%{_libdir}/samba/libwbclient.* + %{_libdir}/samba/*.dat %{_libdir}/samba/*.msg %{_libdir}/samba/charset/*.so --------------------------
Upon installation of these packages, restarting the smb or winbind services yields the following error: -------------------- Starting SMB services: smbd: error while loading shared libraries: libtalloc.so.1: cannot open shared object file: no such file or directory -------------------- Evidently, the shared libraries are being installed by the spec-built packages at /usr/lib/samba/ instead of /usr/lib/, and the typical symlinks (*.so.1) are not being generated & installed by the spec file.
Hi - thanks for reporting! There have been numerous changes to the build system, but the packaging/RHEL folder has not been adapted - Sorry for that. Please compare the spec file in the packaging/RHEL-CTDB folder: this _has_ been updated. * the smbmount related stuff has vanished - your patch is correct. * the ldb tools files have been added. one would like to be more specific in the files' section though, I guess. * the several .so and .h files are from the new shared libraries. Here "make install" is also still broken in 3.2.X (It is fixed in v3-3-test, i.e. will be fixed in 3.3.0, see bug #5592). Generally what one has to do in principle (for each lib) is the following: - rm %{_libdir}/samba/libfoo.so - install bin/libfoo.so %{_libdir}/libfoo.so.SOVER - ln -s libfoo.so.SOVER %{_libdir}/libfoo.so - add %{_libdir}/libfoo.so.SOVER to files section of the package - add %{_includedir}/foo.h and %{_libdir}/libfoo.so to the corresponding devel-package Here SOVER means the major version number for the library, e.g. it is 1 (one) for libtdb and libtalloc. Again, please compare the RHEL-CTDB specfile for an idea what to do. That the library is installed in /usr/lib/samba instead of /usr/lib is why it is not found when you call any binaires. Hence the hack above. When you look at the spec file, you see that it already does this kind of thing with libsmbclient (since long). Basically, just copy that. Let me see if I find time to fix the packaging/RHEL stuff. Otherwise, feel free to submit a patch! Thanks - Michael
Fixes will be included in 3.2.4. Closing out bug report. Thanks for the report!