-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Hello Robert,
On 29.10.2011 16:35, Robert Millan wrote: > - kfreebsd-image-9.0-* > - zfsutils (8.3~svn226546-1 or later) following our recent discussion I've added a proof of concept patch which is embedding shared libraries into the zfsutils binary package. To make everyone else happy I am installing them into /lib/zfsutils and use RPATH to load them at runtime. Tell me what you think. I also set RPATH for the two remaining libraries /lib/libzfs.so.1 and /lib/libzpool.so.1 as they use symbols of embedded libraries. Please let me know if you achieve problems with that setup. - -- with kind regards, Arno Töll IRC: daemonkeeper on Freenode/OFTC GnuPG Key-ID: 0x9D80F36D -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.11 (GNU/Linux) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/ iQIcBAEBAgAGBQJOsfBNAAoJEMcrUe6dgPNtsiAP/1b+plzu4a3SGr5XtDzLfYSI Y1YWefWVOoCdtGncpJA2q/uyyAs+wv4SBYv37Wi+xTezEzvJ9ElY6vzqeHyViEZQ bsGDn7p9hpf7PBYgAMLBj6Ds/d5QiDtTsWydPqqrlfMi0Pfxfvz5OgrTkx0ltOw4 w5zIn2QhjcB0IctSvvJjZEh8iITmykE7Y0DWj2H0PwxV1A5CUSosNgO5or3RPzT6 J+kCAJwVQ/dNrwes+zd5yEuQPO0A3riE3BFze2OhB7mtmCHuIOssMguFtNphPz6h SAloWm+cvoUKXi0kZqsDWVukgoHCiVaG40QF01nqqi8yEzi6O+H9Kdf5vr6iIxmU IXjAjhwtJhDlZe7vrtMWZ/pywP9m28zIHNq+2Dm3ZBhscqTnmjynKgckA5vQ7XHT VVx9ZIaaBfhtATaiPhW8wSvEJOWQO6TfnI8STTmme/sSGBLFkn3q/vPu3KZ97zGn qq39FX7gc7wAAj8YqtxyLmqb4USTK1XLGMTGfqo/4nHTEilvZdVWQQ+9fDGYnb0W 2JBLh1lslenWUVoye5HNMaE+M3Iwkjv/w6U69Vt81fxE/1HZHF9kUneH1n9WiskX 9AG+ENAUTdbfWLnGJ4jVIX4cX0XbZX752lXZxaXvA5jjwmJPOUIxH2X5KxUZ5XLH iGUNgZtVBlResX2pJqWG =E0AX -----END PGP SIGNATURE-----
Index: debian/libuutil1.install =================================================================== --- debian/libuutil1.install (revision 3801) +++ debian/libuutil1.install (working copy) @@ -1 +0,0 @@ -cddl/lib/libuutil/libuutil.so.* lib Index: debian/control =================================================================== --- debian/control (revision 3801) +++ debian/control (working copy) @@ -7,62 +7,11 @@ Build-Depends: debhelper (>= 7.0.50~), freebsd-buildutils, libbsd-dev (>= 0.1.4), libc0.1-dev (>= 2.10), kfreebsd-kernel-headers (>= 0.51), libgeom-dev, libsbuf-dev, zlib1g-dev +Replaces: libnvpair0, libumem0, libuutil0 Vcs-Browser: http://svn.debian.org/wsvn/glibc-bsd/trunk/zfsutils/ Vcs-Svn: svn://svn.debian.org/glibc-bsd/trunk/zfsutils/ Standards-Version: 3.9.2 -Package: libuutil1 -Section: libs -Architecture: kfreebsd-any -Depends: ${shlibs:Depends}, ${misc:Depends} -Description: OpenSolaris userland utility library - This package contains the OpenSolaris userland utility library. - -Package: libuutil-dev -Section: libdevel -Architecture: kfreebsd-any -Depends: libuutil0 (= ${binary:Version}), ${misc:Depends}, libc0.1-dev | libc-dev -Description: Development files for libuutil - This package contains the header files and static library needed to - compile applications that use libuutil. - -Package: libuutil1-udeb -XC-Package-Type: udeb -Section: debian-installer -Architecture: kfreebsd-any -Depends: ${shlibs:Depends}, ${misc:Depends} -Description: OpenSolaris userland utility library - This package contains the OpenSolaris userland utility library. - . - This is a minimal package for use in debian-installer. - -Package: libnvpair1 -Section: libs -Architecture: kfreebsd-any -Depends: ${shlibs:Depends}, ${misc:Depends} -Description: OpenSolaris name-value pair library - This package contains the OpenSolaris libnvpair library, for managing - name-value pairs. - -Package: libnvpair-dev -Section: libdevel -Architecture: kfreebsd-any -Depends: libnvpair0 (= ${binary:Version}), ${misc:Depends}, libc0.1-dev | libc-dev -Description: Development files for libnvpair - This package contains the header files and static library needed to - compile applications that use libnvpair, a library to manage name-value pairs. - -Package: libnvpair1-udeb -Package-Type: udeb -Section: debian-installer -Architecture: kfreebsd-any -Depends: ${shlibs:Depends}, ${misc:Depends} -Description: OpenSolaris name-value pair library (udeb version) - This package contains the OpenSolaris libnvpair library, for managing - name-value pairs. - . - This is a minimal package for use in debian-installer. - Package: libzfs1 Section: libs Architecture: kfreebsd-any @@ -109,6 +58,16 @@ This package provides the zfs and zpool commands to create and administer ZFS filesystems. + +Package: zfsutils-dev +Architecture: kfreebsd-any +Depends: ${shlibs:Depends}, ${misc:Depends}, zfsutils (= ${binary:Version}) +Description: command-line tools to manage ZFS filesystems (development kit) + The Z file system is a pooled filesystem designed for maximum data integrity, + supporting data snapshots, multiple copies, and data checksums. + . + This package provides header files and static libraries. + Package: zfsutils-udeb Package-Type: udeb Section: debian-installer @@ -123,33 +82,6 @@ . This is a minimal package for use in debian-installer. - -Package: libumem1 -Section: libs -Architecture: kfreebsd-any -Depends: ${shlibs:Depends}, ${misc:Depends} -Description: OpenSolaris name-value pair library - This package contains the OpenSolaris libumem library, to detect - memory management bugs in applications - -Package: libumem-dev -Section: libdevel -Architecture: kfreebsd-any -Depends: libumem0 (= ${binary:Version}), ${misc:Depends}, libc0.1-dev | libc-dev -Description: Development files for libnvpair - This package contains the header files and static library needed to - compile applications that use libumem. - -Package: libumem1-udeb -XC-Package-Type: udeb -Section: debian-installer -Architecture: kfreebsd-any -Depends: ${shlibs:Depends}, ${misc:Depends} -Description: OpenSolaris name-value pair library - This package contains the OpenSolaris libumem library, to detect - memory management bugs in applications - - Package: libzpool1 Section: libs Architecture: kfreebsd-any Index: debian/libumem1.install =================================================================== --- debian/libumem1.install (revision 3801) +++ debian/libumem1.install (working copy) @@ -1 +0,0 @@ -cddl/lib/libumem/libumem.so.* lib Index: debian/libnvpair-dev.links =================================================================== --- debian/libnvpair-dev.links (revision 3801) +++ debian/libnvpair-dev.links (working copy) @@ -1 +0,0 @@ -lib/libnvpair.so.0 usr/lib/libnvpair.so Index: debian/libumem-dev.links =================================================================== --- debian/libumem-dev.links (revision 3801) +++ debian/libumem-dev.links (working copy) @@ -1 +0,0 @@ -lib/libumem.so.0 usr/lib/libumem.so Index: debian/patches/makefile.diff =================================================================== --- debian/patches/makefile.diff (revision 3801) +++ debian/patches/makefile.diff (working copy) @@ -11,7 +11,7 @@ CFLAGS+= -I${.CURDIR}/../../../sys/cddl/compat/opensolaris --- a/cddl/lib/libzfs/Makefile +++ b/cddl/lib/libzfs/Makefile -@@ -7,7 +7,12 @@ +@@ -7,7 +7,14 @@ LIB= zfs DPADD= ${LIBMD} ${LIBPTHREAD} ${LIBUMEM} ${LIBUTIL} @@ -22,12 +22,14 @@ +LDADD+= -L${.CURDIR}/../../../cddl/lib/libnvpair +LDADD+= -L${.CURDIR}/../../../cddl/lib/libuutil +LDADD+= ${.CURDIR}/../../../cddl/lib/libavl/libavl.a ++LDADD+= -Wl,-rpath,$(ZFSUTILS_LIBRARY_PATH) ++ SRCS= deviceid.c \ fsshare.c \ --- a/cddl/lib/libzpool/Makefile +++ b/cddl/lib/libzpool/Makefile -@@ -56,7 +56,11 @@ +@@ -56,7 +56,12 @@ CFLAGS+= -I${.CURDIR}/../../../lib/libthr/arch/${MACHINE_ARCH}/include DPADD= ${LIBMD} ${LIBPTHREAD} ${LIBZ} @@ -37,12 +39,13 @@ +LDADD+= -L${.CURDIR}/../../../cddl/lib/libumem +LDADD+= -L${.CURDIR}/../../../cddl/lib/libnvpair +LDADD+= ${.CURDIR}/../../../cddl/lib/libavl/libavl.a ++LDADD+= -Wl,-rpath,$(ZFSUTILS_LIBRARY_PATH) # atomic.S doesn't like profiling. NO_PROFILE= --- a/cddl/sbin/zfs/Makefile +++ b/cddl/sbin/zfs/Makefile -@@ -22,6 +22,12 @@ +@@ -22,6 +22,13 @@ DPADD= ${LIBBSDXML} ${LIBGEOM} ${LIBM} ${LIBNVPAIR} ${LIBSBUF} ${LIBUMEM} \ ${LIBUTIL} ${LIBUUTIL} ${LIBZFS} @@ -54,11 +57,12 @@ +LDADD+= -L${.CURDIR}/../../../cddl/lib/libuutil +LDADD+= -L${.CURDIR}/../../../cddl/lib/libzfs + ++LDADD+= -Wl,-rpath,$(ZFSUTILS_LIBRARY_PATH) .include <bsd.prog.mk> --- a/cddl/sbin/zpool/Makefile +++ b/cddl/sbin/zpool/Makefile -@@ -27,6 +27,12 @@ +@@ -27,6 +27,15 @@ DPADD= ${LIBAVL} ${LIBBSDXML} ${LIBGEOM} ${LIBM} ${LIBNVPAIR} ${LIBSBUF} \ ${LIBUMEM} ${LIBUTIL} ${LIBUUTIL} ${LIBZFS} @@ -70,11 +74,14 @@ +LDADD+= -L${.CURDIR}/../../../cddl/lib/libumem +LDADD+= -L${.CURDIR}/../../../cddl/lib/libuutil +LDADD+= ${.CURDIR}/../../../cddl/lib/libavl/libavl.a ++ ++LDADD+= -Wl,-rpath,$(ZFSUTILS_LIBRARY_PATH) ++ .include <bsd.prog.mk> --- a/cddl/usr.bin/zinject/Makefile +++ b/cddl/usr.bin/zinject/Makefile -@@ -20,6 +20,13 @@ +@@ -20,6 +20,15 @@ DPADD= ${LIBAVL} ${LIBGEOM} ${LIBM} ${LIBNVPAIR} ${LIBUMEM} ${LIBUUTIL} \ ${LIBZFS} ${LIBZPOOL} ${LIBUUTIL} @@ -87,11 +94,13 @@ +LDADD+= -L${.CURDIR}/../../../cddl/lib/libzfs +LDADD+= -L${.CURDIR}/../../../cddl/lib/libzpool + ++LDADD+= -Wl,-rpath,$(ZFSUTILS_LIBRARY_PATH) ++ .include <bsd.prog.mk> --- a/cddl/usr.bin/ztest/Makefile +++ b/cddl/usr.bin/ztest/Makefile -@@ -18,7 +18,12 @@ +@@ -18,7 +18,15 @@ DPADD= ${LIBM} ${LIBNVPAIR} ${LIBUMEM} ${LIBZPOOL} \ ${LIBPTHREAD} ${LIBZ} ${LIBAVL} @@ -102,12 +111,15 @@ +LDADD+= -L${.CURDIR}/../../../cddl/lib/libumem +LDADD+= -L${.CURDIR}/../../../cddl/lib/libzpool +LDADD+= ${.CURDIR}/../../../cddl/lib/libavl/libavl.a ++ ++LDADD+= -Wl,-rpath,$(ZFSUTILS_LIBRARY_PATH) ++ CSTD= c99 --- a/cddl/usr.sbin/zdb/Makefile +++ b/cddl/usr.sbin/zdb/Makefile -@@ -24,6 +24,12 @@ +@@ -24,6 +24,14 @@ ${LIBUUTIL} ${LIBZ} ${LIBZFS} ${LIBZPOOL} LDADD= -lgeom -lm -lnvpair -lpthread -lumem -luutil -lzfs -lzpool @@ -117,6 +129,8 @@ +LDADD+= -L${.CURDIR}/../../../cddl/lib/libzfs +LDADD+= -L${.CURDIR}/../../../cddl/lib/libzpool + ++LDADD+= -Wl,-rpath,$(ZFSUTILS_LIBRARY_PATH) ++ CSTD= c99 .include <bsd.prog.mk> Index: debian/patches/libmd_static.diff =================================================================== --- debian/patches/libmd_static.diff (revision 3801) +++ debian/patches/libmd_static.diff (working copy) @@ -5,17 +5,17 @@ LIB= zfs DPADD= ${LIBMD} ${LIBPTHREAD} ${LIBUMEM} ${LIBUTIL} -LDADD= -lmd -lpthread -lumem -lnvpair -luutil -lgeom -lm -lbsd -+LDADD= -lpthread -lumem -lnvpair -luutil -lgeom -lm -lbsd ++LDADD= -lpthread -lumem -lnvpair -luutil -lgeom -lm -lbsd LDADD+= -L${.CURDIR}/../../../cddl/lib/libumem LDADD+= -L${.CURDIR}/../../../cddl/lib/libnvpair LDADD+= -L${.CURDIR}/../../../cddl/lib/libuutil LDADD+= ${.CURDIR}/../../../cddl/lib/libavl/libavl.a +LDADD+= ${.CURDIR}/../../../lib/libmd/libmd.a + LDADD+= -Wl,-rpath,$(ZFSUTILS_LIBRARY_PATH) - SRCS= deviceid.c \ - fsshare.c \ -@@ -57,5 +58,6 @@ + +@@ -59,5 +60,6 @@ CFLAGS+= -I${.CURDIR}/../../../cddl/contrib/opensolaris/lib/libnvpair CFLAGS+= -I${.CURDIR}/../../../cddl/contrib/opensolaris/lib/libuutil/common CFLAGS+= -I${.CURDIR}/../../../cddl/contrib/opensolaris/lib/libzfs/common @@ -28,16 +28,16 @@ CFLAGS+= -I${.CURDIR}/../../../lib/libpthread/thread CFLAGS+= -I${.CURDIR}/../../../lib/libpthread/sys CFLAGS+= -I${.CURDIR}/../../../lib/libthr/arch/${MACHINE_ARCH}/include -+CFLAGS+= -I${.CURDIR}/../../../lib/libmd ++CFLAGS+= -I${.CURDIR}/../../../lib/libmd DPADD= ${LIBMD} ${LIBPTHREAD} ${LIBZ} -LDADD= -lmd -lpthread -lz -lumem -lnvpair -lbsd -lrt -+LDADD= -lpthread -lz -lumem -lnvpair -lbsd -lrt ++LDADD= -lpthread -lz -lumem -lnvpair -lbsd -lrt LDADD+= -L${.CURDIR}/../../../cddl/lib/libumem LDADD+= -L${.CURDIR}/../../../cddl/lib/libnvpair LDADD+= ${.CURDIR}/../../../cddl/lib/libavl/libavl.a +LDADD+= ${.CURDIR}/../../../lib/libmd/libmd.a + LDADD+= -Wl,-rpath,$(ZFSUTILS_LIBRARY_PATH) # atomic.S doesn't like profiling. - NO_PROFILE= Index: debian/zfsutils.install =================================================================== --- debian/zfsutils.install (revision 3801) +++ debian/zfsutils.install (working copy) @@ -4,3 +4,6 @@ cddl/usr.bin/ztest/ztest /usr/bin cddl/usr.sbin/zdb/zdb /usr/sbin debian/local/bash_completion.d/zfsutils /etc/bash_completion.d +cddl/lib/libnvpair/libnvpair.so.* /lib/zfsutils +cddl/lib/libumem/libumem.so.* /lib/zfsutils +cddl/lib/libuutil/libuutil.so.* /lib/zfsutils Index: debian/libnvpair1-udeb.install =================================================================== --- debian/libnvpair1-udeb.install (revision 3801) +++ debian/libnvpair1-udeb.install (working copy) @@ -1 +0,0 @@ -cddl/lib/libnvpair/libnvpair.so.* lib Index: debian/libumem1-udeb.install =================================================================== --- debian/libumem1-udeb.install (revision 3801) +++ debian/libumem1-udeb.install (working copy) @@ -1 +0,0 @@ -cddl/lib/libumem/libumem.so.* lib Index: debian/libnvpair-dev.install =================================================================== --- debian/libnvpair-dev.install (revision 3801) +++ debian/libnvpair-dev.install (working copy) @@ -1 +0,0 @@ -cddl/lib/libnvpair/libnvpair.a usr/lib Index: debian/libumem-dev.install =================================================================== --- debian/libumem-dev.install (revision 3801) +++ debian/libumem-dev.install (working copy) @@ -1 +0,0 @@ -cddl/lib/libumem/libumem.a usr/lib Index: debian/libuutil-dev.links =================================================================== --- debian/libuutil-dev.links (revision 3801) +++ debian/libuutil-dev.links (working copy) @@ -1 +0,0 @@ -lib/libuutil.so.0 usr/lib/libuutil.so Index: debian/rules =================================================================== --- debian/rules (revision 3801) +++ debian/rules (working copy) @@ -38,7 +38,8 @@ PATH := /usr/lib/freebsd:$(PATH) DESTDIR = $(CURDIR)/debian/tmp PMAKE = COPTS="$(CFLAGS)" CFLAGS="$(CFLAGS)" NO_WERROR=1 NOGCCERROR=1 \ - NOSHARED=NO NO_SHARED=NO DESTDIR=$(DESTDIR) make + NOSHARED=NO NO_SHARED=NO DESTDIR=$(DESTDIR) \ + ZFSUTILS_LIBRARY_PATH=/lib/zfsutils make export SHLIB_MAJOR = 1 export SHLIBDIR = ./ @@ -187,14 +188,11 @@ # dh_perl # dh_python dh_makeshlibs -a - dh_makeshlibs -plibnvpair$(SHLIB_MAJOR) --add-udeb=libnvpair$(SHLIB_MAJOR)-udeb - dh_makeshlibs -plibuutil$(SHLIB_MAJOR) --add-udeb=libuutil$(SHLIB_MAJOR)-udeb dh_makeshlibs -plibzfs$(SHLIB_MAJOR) --add-udeb=libzfs$(SHLIB_MAJOR)-udeb dh_makeshlibs -plibzpool$(SHLIB_MAJOR) --add-udeb=libzpool$(SHLIB_MAJOR)-udeb - dh_makeshlibs -plibumem$(SHLIB_MAJOR) --add-udeb=libumem$(SHLIB_MAJOR)-udeb dh_makeshlibs -pzfsutils --add-udeb=zfsutils-udeb dh_installdeb -a - dh_shlibdeps -a + dh_shlibdeps -l/lib/zfsutils -a dh_gencontrol -a dh_md5sums -a dh_builddeb -a Index: debian/libuutil1-udeb.install =================================================================== --- debian/libuutil1-udeb.install (revision 3801) +++ debian/libuutil1-udeb.install (working copy) @@ -1 +0,0 @@ -cddl/lib/libuutil/libuutil.so.* lib Index: debian/zfsutils-dev.install =================================================================== --- debian/zfsutils-dev.install (revision 0) +++ debian/zfsutils-dev.install (revision 0) @@ -0,0 +1,7 @@ +cddl/lib/libnvpair/libnvpair.so /lib/zfsutils +cddl/lib/libnvpair/libnvpair.a /lib/zfsutils +cddl/lib/libumem/libumem.so /lib/zfsutils +cddl/lib/libumem/libumem.a /lib/zfsutils +cddl/lib/libuutil/libuutil.so /lib/zfsutils +cddl/lib/libuutil/libuutil.a /lib/zfsutils + Index: debian/libuutil-dev.install =================================================================== --- debian/libuutil-dev.install (revision 3801) +++ debian/libuutil-dev.install (working copy) @@ -1 +0,0 @@ -cddl/lib/libuutil/libuutil.a usr/lib Index: debian/libnvpair1.install =================================================================== --- debian/libnvpair1.install (revision 3801) +++ debian/libnvpair1.install (working copy) @@ -1 +0,0 @@ -cddl/lib/libnvpair/libnvpair.so.* lib