Bug#590639: add libzfs
Package: freebsd-libs
Severity: wishlist
Tags: patch
This patch adds libzfs and related libraries to freebsd-libs:
libzfs
libavl
libnvpair
libuutil
These are all the libraries necessary to build the ZFS tools (zpool
and zfs). I will provide a patch for freebsd-utils too.
diff -Nur freebsd-libs-8.0.old/debian/control freebsd-libs-8.0/debian/control
--- freebsd-libs-8.0.old/debian/control 2010-07-27 19:54:52.000000000 -0400
+++ freebsd-libs-8.0/debian/control 2010-07-27 19:59:31.942892493 -0400
@@ -218,3 +218,17 @@
Description: Development files for libkiconv
This package contains the header files and static library needed to
compile applications that use libkiconv.
+
+Package: libzfs0
+Architecture: kfreebsd-any
+Depends: ${shlibs:Depends}, ${misc:Depends}
+Description: FreeBSD ZFS and related libraries
+ The ZFS libraries provide support for managing ZFS filesystems.
+
+Package: libzfs-dev
+Section: libdevel
+Architecture: kfreebsd-any
+Depends: libzfs0 (= ${binary:Version}), ${misc:Depends}, libc0.1-dev | libc-dev
+Description: Development files for libzfs
+ This package contains the header files and static library needed to
+ compile applications that use libzfs.
diff -Nur freebsd-libs-8.0.old/debian/libzfs0.install freebsd-libs-8.0/debian/libzfs0.install
--- freebsd-libs-8.0.old/debian/libzfs0.install 1969-12-31 19:00:00.000000000 -0500
+++ freebsd-libs-8.0/debian/libzfs0.install 2010-07-27 20:18:10.902701936 -0400
@@ -0,0 +1,4 @@
+usr/lib/libavl*.so.* lib
+usr/lib/libzfs*.so.* lib
+usr/lib/libuutil*.so.* lib
+usr/lib/libnvpair*.so.* lib
diff -Nur freebsd-libs-8.0.old/debian/libzfs-dev.install freebsd-libs-8.0/debian/libzfs-dev.install
--- freebsd-libs-8.0.old/debian/libzfs-dev.install 1969-12-31 19:00:00.000000000 -0500
+++ freebsd-libs-8.0/debian/libzfs-dev.install 2010-07-27 20:03:31.842799801 -0400
@@ -0,0 +1,8 @@
+usr/lib/libavl*.a
+usr/lib/libavl.so
+usr/lib/libzfs*.a
+usr/lib/libzfs.so
+usr/lib/libuutil*.a
+usr/lib/libuutil.so
+usr/lib/libnvpair*.a
+usr/lib/libnvpair.so
diff -Nur freebsd-libs-8.0.old/debian/patches/14_zfs_glibc_kludge.diff freebsd-libs-8.0/debian/patches/14_zfs_glibc_kludge.diff
--- freebsd-libs-8.0.old/debian/patches/14_zfs_glibc_kludge.diff 1969-12-31 19:00:00.000000000 -0500
+++ freebsd-libs-8.0/debian/patches/14_zfs_glibc_kludge.diff 2010-07-27 20:08:27.215970169 -0400
@@ -0,0 +1,96 @@
+diff -ur -x debian freebsd-libs-8.0.old/cddl/compat/opensolaris/misc/mnttab.c freebsd-libs-8.0/cddl/compat/opensolaris/misc/mnttab.c
+--- freebsd-libs-8.0.old/cddl/compat/opensolaris/misc/mnttab.c 2008-11-17 15:49:29.000000000 -0500
++++ freebsd-libs-8.0/cddl/compat/opensolaris/misc/mnttab.c 2010-07-27 20:07:02.656479850 -0400
+@@ -89,7 +89,7 @@
+ }
+
+ int
+-getmntany(FILE *fd __unused, struct mnttab *mgetp, struct mnttab *mrefp)
++getmntany(FILE *fd, struct mnttab *mgetp, struct mnttab *mrefp)
+ {
+ static struct statfs *sfs = NULL;
+ static char mntopts[MNTMAXSTR];
+diff -ur -x debian freebsd-libs-8.0.old/cddl/compat/opensolaris/misc/zmount.c freebsd-libs-8.0/cddl/compat/opensolaris/misc/zmount.c
+--- freebsd-libs-8.0.old/cddl/compat/opensolaris/misc/zmount.c 2008-11-17 15:49:29.000000000 -0500
++++ freebsd-libs-8.0/cddl/compat/opensolaris/misc/zmount.c 2010-07-27 20:07:02.659058030 -0400
+@@ -92,6 +92,9 @@
+ iov = NULL;
+ iovlen = 0;
+ build_iovec(&iov, &iovlen, "fstype", fstype, (size_t)-1);
++#ifndef __DECONST
++#define __DECONST(type, var) ((type)(uintptr_t)(const void *)(var))
++#endif
+ build_iovec(&iov, &iovlen, "fspath", __DECONST(char *, dir),
+ (size_t)-1);
+ build_iovec(&iov, &iovlen, "from", __DECONST(char *, spec), (size_t)-1);
+diff -ur -x debian freebsd-libs-8.0.old/cddl/contrib/opensolaris/lib/libuutil/common/uu_pname.c freebsd-libs-8.0/cddl/contrib/opensolaris/lib/libuutil/common/uu_pname.c
+--- freebsd-libs-8.0.old/cddl/contrib/opensolaris/lib/libuutil/common/uu_pname.c 2008-03-28 18:16:18.000000000 -0400
++++ freebsd-libs-8.0/cddl/contrib/opensolaris/lib/libuutil/common/uu_pname.c 2010-07-27 20:07:02.660028620 -0400
+@@ -31,7 +31,7 @@
+ #include <libintl.h>
+ #include <limits.h>
+ #include <string.h>
+-#include <stdlib.h>
++#include </usr/include/stdlib.h>
+ #include <stdarg.h>
+ #include <stdio.h>
+ #include <errno.h>
+diff -ur -x debian freebsd-libs-8.0.old/sys/cddl/compat/opensolaris/rpc/xdr.h freebsd-libs-8.0/sys/cddl/compat/opensolaris/rpc/xdr.h
+--- freebsd-libs-8.0.old/sys/cddl/compat/opensolaris/rpc/xdr.h 2009-08-19 20:08:58.000000000 -0400
++++ freebsd-libs-8.0/sys/cddl/compat/opensolaris/rpc/xdr.h 2010-07-27 20:07:02.661041790 -0400
+@@ -32,7 +32,31 @@
+
+ #include_next <rpc/xdr.h>
+
+-#ifndef _KERNEL
++/* Copied from the FreeBSD version of <rpc/xdr.h> */
++#ifdef __GLIBC__
++/*
++ * These are XDR control operators
++ */
++
++#define XDR_GET_BYTES_AVAIL 1
++#define XDR_PEEK 2
++#define XDR_SKIPBYTES 3
++
++struct xdr_bytesrec {
++ bool_t xc_is_last_record;
++ size_t xc_num_avail;
++};
++
++typedef struct xdr_bytesrec xdr_bytesrec;
++#endif
++
++#if defined(__GLIBC__)
++
++/* GNU libc doesn't implement XDR control method */
++#define XDR_CONTROL(xdrs, req, op) (1)
++#define xdr_control(xdrs, req, op) XDR_CONTROL(xdrs, req, op)
++
++#elif !defined(_KERNEL)
+
+ #include <assert.h>
+
+diff -ur -x debian freebsd-libs-8.0.old/sys/cddl/compat/opensolaris/sys/types.h freebsd-libs-8.0/sys/cddl/compat/opensolaris/sys/types.h
+--- freebsd-libs-8.0.old/sys/cddl/compat/opensolaris/sys/types.h 2008-11-17 15:49:29.000000000 -0500
++++ freebsd-libs-8.0/sys/cddl/compat/opensolaris/sys/types.h 2010-07-27 20:07:02.662057600 -0400
+@@ -66,7 +66,7 @@
+ typedef int major_t;
+
+ #else
+-#ifdef NEED_SOLARIS_BOOLEAN
++#if 1 //def NEED_SOLARIS_BOOLEAN
+ #if defined(__XOPEN_OR_POSIX)
+ typedef enum { _B_FALSE, _B_TRUE } boolean_t;
+ #else
+diff -ur -x debian freebsd-libs-8.0.old/sys/cddl/contrib/opensolaris/uts/common/sys/debug.h freebsd-libs-8.0/sys/cddl/contrib/opensolaris/uts/common/sys/debug.h
+--- freebsd-libs-8.0.old/sys/cddl/contrib/opensolaris/uts/common/sys/debug.h 2008-05-22 03:33:39.000000000 -0400
++++ freebsd-libs-8.0/sys/cddl/contrib/opensolaris/uts/common/sys/debug.h 2010-07-27 20:07:02.664079110 -0400
+@@ -34,6 +34,7 @@
+ #pragma ident "%Z%%M% %I% %E% SMI"
+
+ #include <sys/types.h>
++//#include_next <sys/debug.h>
+
+ #ifdef __cplusplus
+ extern "C" {
diff -Nur freebsd-libs-8.0.old/debian/patches/15_zfs_glibc_misc.diff freebsd-libs-8.0/debian/patches/15_zfs_glibc_misc.diff
--- freebsd-libs-8.0.old/debian/patches/15_zfs_glibc_misc.diff 1969-12-31 19:00:00.000000000 -0500
+++ freebsd-libs-8.0/debian/patches/15_zfs_glibc_misc.diff 2010-07-27 20:09:23.819255269 -0400
@@ -0,0 +1,59 @@
+diff -ur -x debian freebsd-libs-8.0.old/cddl/contrib/opensolaris/head/thread.h freebsd-libs-8.0/cddl/contrib/opensolaris/head/thread.h
+--- freebsd-libs-8.0.old/cddl/contrib/opensolaris/head/thread.h 2009-07-09 16:22:05.000000000 -0400
++++ freebsd-libs-8.0/cddl/contrib/opensolaris/head/thread.h 2010-07-27 20:09:06.102102259 -0400
+@@ -30,7 +30,10 @@
+ #pragma ident "%Z%%M% %I% %E% SMI"
+
+ #include <pthread.h>
++/* On GNU libc, non-POSIX facilities are in <pthread.h> */
++#ifndef __GLIBC__
+ #include <pthread_np.h>
++#endif
+ #include <assert.h>
+
+ /*
+diff -ur -x debian freebsd-libs-8.0.old/sys/cddl/compat/opensolaris/sys/sysmacros.h freebsd-libs-8.0/sys/cddl/compat/opensolaris/sys/sysmacros.h
+--- freebsd-libs-8.0.old/sys/cddl/compat/opensolaris/sys/sysmacros.h 2009-02-28 11:21:25.000000000 -0500
++++ freebsd-libs-8.0/sys/cddl/compat/opensolaris/sys/sysmacros.h 2010-07-27 20:09:06.103115289 -0400
+@@ -103,7 +103,7 @@
+ * High order bit is 31 (or 63 in _LP64 kernel).
+ */
+ static __inline int
+-highbit(ulong_t i)
++highbit(unsigned long i)
+ {
+ register int h = 1;
+
+diff -ur -x debian freebsd-libs-8.0.old/sys/cddl/compat/opensolaris/sys/time.h freebsd-libs-8.0/sys/cddl/compat/opensolaris/sys/time.h
+--- freebsd-libs-8.0.old/sys/cddl/compat/opensolaris/sys/time.h 2008-11-17 15:49:29.000000000 -0500
++++ freebsd-libs-8.0/sys/cddl/compat/opensolaris/sys/time.h 2010-07-27 20:09:06.104125719 -0400
+@@ -29,7 +29,12 @@
+ #ifndef _OPENSOLARIS_SYS_TIME_H_
+ #define _OPENSOLARIS_SYS_TIME_H_
+
++/* GNU libc has <sys/time.h> but no <time.h> */
++#ifdef __GLIBC__
++#include_next <time.h>
++#else
+ #include_next <sys/time.h>
++#endif
+
+ #define SEC 1
+ #define MILLISEC 1000
+diff -ur -x debian freebsd-libs-8.0.old/sys/cddl/contrib/opensolaris/common/nvpair/nvpair.c freebsd-libs-8.0/sys/cddl/contrib/opensolaris/common/nvpair/nvpair.c
+--- freebsd-libs-8.0.old/sys/cddl/contrib/opensolaris/common/nvpair/nvpair.c 2009-08-15 22:21:24.000000000 -0400
++++ freebsd-libs-8.0/sys/cddl/contrib/opensolaris/common/nvpair/nvpair.c 2010-07-27 20:09:06.109193269 -0400
+@@ -2199,11 +2199,11 @@
+ int err = 0;
+ nvstream_t nvs;
+ int nvl_endian;
+-#if BYTE_ORDER == _LITTLE_ENDIAN
++#if BYTE_ORDER == LITTLE_ENDIAN
+ int host_endian = 1;
+ #else
+ int host_endian = 0;
+-#endif /* _LITTLE_ENDIAN */
++#endif /* LITTLE_ENDIAN */
+ nvs_header_t *nvh = (void *)buf;
+
+ if (buflen == NULL || nvl == NULL ||
diff -Nur freebsd-libs-8.0.old/debian/patches/16_zfs_glibc_namespace.diff freebsd-libs-8.0/debian/patches/16_zfs_glibc_namespace.diff
--- freebsd-libs-8.0.old/debian/patches/16_zfs_glibc_namespace.diff 1969-12-31 19:00:00.000000000 -0500
+++ freebsd-libs-8.0/debian/patches/16_zfs_glibc_namespace.diff 2010-07-27 20:10:05.610706069 -0400
@@ -0,0 +1,124 @@
+diff -ur -x debian freebsd-libs-8.0.old/cddl/compat/opensolaris/include/solaris.h freebsd-libs-8.0/cddl/compat/opensolaris/include/solaris.h
+--- freebsd-libs-8.0.old/cddl/compat/opensolaris/include/solaris.h 2008-04-22 03:43:00.000000000 -0400
++++ freebsd-libs-8.0/cddl/compat/opensolaris/include/solaris.h 2010-07-27 20:09:52.788482289 -0400
+@@ -5,6 +5,9 @@
+
+ #include <sys/ccompile.h>
+
++/* GNU libc has its own dirent64 declaration */
++#ifndef __GLIBC__
+ #define dirent64 dirent
++#endif
+
+ #endif /* !_SOLARIS_H_ */
+diff -ur -x debian freebsd-libs-8.0.old/cddl/compat/opensolaris/misc/fsshare.c freebsd-libs-8.0/cddl/compat/opensolaris/misc/fsshare.c
+--- freebsd-libs-8.0.old/cddl/compat/opensolaris/misc/fsshare.c 2008-03-28 18:16:18.000000000 -0400
++++ freebsd-libs-8.0/cddl/compat/opensolaris/misc/fsshare.c 2010-07-27 20:09:52.789492219 -0400
+@@ -67,7 +67,7 @@
+ * mountpoint specified in the 'skip' argument.
+ */
+ static char *
+-getline(FILE *fd, const char *skip)
++xgetline(FILE *fd, const char *skip)
+ {
+ static char line[MAXLINESIZE];
+ size_t len, skiplen;
+@@ -198,7 +198,7 @@
+
+ /* Place big, fat warning at the begining of the file. */
+ fprintf(newfd, "%s", FILE_HEADER);
+- while (oldfd != NULL && (line = getline(oldfd, mountpoint)) != NULL)
++ while (oldfd != NULL && (line = xgetline(oldfd, mountpoint)) != NULL)
+ fprintf(newfd, "%s\n", line);
+ if (oldfd != NULL && ferror(oldfd) != 0) {
+ error = ferror(oldfd);
+diff -ur -x debian freebsd-libs-8.0.old/cddl/compat/opensolaris/misc/mnttab.c freebsd-libs-8.0/cddl/compat/opensolaris/misc/mnttab.c
+--- freebsd-libs-8.0.old/cddl/compat/opensolaris/misc/mnttab.c 2008-11-17 15:49:29.000000000 -0500
++++ freebsd-libs-8.0/cddl/compat/opensolaris/misc/mnttab.c 2010-07-27 20:09:52.790512709 -0400
+@@ -63,7 +63,7 @@
+ }
+
+ char *
+-hasmntopt(struct mnttab *mnt, char *opt)
++solaris_hasmntopt(struct mnttab *mnt, char *opt)
+ {
+ char tmpopts[MNT_LINE_MAX];
+ char *f, *opts = tmpopts;
+diff -ur -x debian freebsd-libs-8.0.old/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_dataset.c freebsd-libs-8.0/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_dataset.c
+--- freebsd-libs-8.0.old/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_dataset.c 2008-11-17 15:49:29.000000000 -0500
++++ freebsd-libs-8.0/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_dataset.c 2010-07-27 20:09:52.798610639 -0400
+@@ -2166,11 +2166,11 @@
+ case ZFS_PROP_NBMAND:
+ *val = getprop_uint64(zhp, prop, source);
+
+- if (hasmntopt(&mnt, mntopt_on) && !*val) {
++ if (solaris_hasmntopt(&mnt, mntopt_on) && !*val) {
+ *val = B_TRUE;
+ if (src)
+ *src = ZPROP_SRC_TEMPORARY;
+- } else if (hasmntopt(&mnt, mntopt_off) && *val) {
++ } else if (solaris_hasmntopt(&mnt, mntopt_off) && *val) {
+ *val = B_FALSE;
+ if (src)
+ *src = ZPROP_SRC_TEMPORARY;
+diff -ur -x debian freebsd-libs-8.0.old/cddl/contrib/opensolaris/lib/libzpool/common/kernel.c freebsd-libs-8.0/cddl/contrib/opensolaris/lib/libzpool/common/kernel.c
+--- freebsd-libs-8.0.old/cddl/contrib/opensolaris/lib/libzpool/common/kernel.c 2009-07-09 16:22:05.000000000 -0400
++++ freebsd-libs-8.0/cddl/contrib/opensolaris/lib/libzpool/common/kernel.c 2010-07-27 20:09:52.800641669 -0400
+@@ -463,7 +463,7 @@
+ /*ARGSUSED*/
+ int
+ vn_rdwr(int uio, vnode_t *vp, void *addr, ssize_t len, offset_t offset,
+- int x1, int x2, rlim64_t x3, void *x4, ssize_t *residp)
++ int x1, int x2, solaris_rlim64_t x3, void *x4, ssize_t *residp)
+ {
+ ssize_t iolen, split;
+
+diff -ur -x debian freebsd-libs-8.0.old/cddl/contrib/opensolaris/lib/libzpool/common/sys/zfs_context.h freebsd-libs-8.0/cddl/contrib/opensolaris/lib/libzpool/common/sys/zfs_context.h
+--- freebsd-libs-8.0.old/cddl/contrib/opensolaris/lib/libzpool/common/sys/zfs_context.h 2009-07-09 16:22:05.000000000 -0400
++++ freebsd-libs-8.0/cddl/contrib/opensolaris/lib/libzpool/common/sys/zfs_context.h 2010-07-27 20:09:52.802661419 -0400
+@@ -105,8 +105,8 @@
+
+ #define ZFS_LOG(...) do { } while (0)
+
+-typedef u_longlong_t rlim64_t;
+-#define RLIM64_INFINITY ((rlim64_t)-3)
++typedef u_longlong_t solaris_rlim64_t;
++#define RLIM64_INFINITY ((solaris_rlim64_t)-3)
+
+ #ifdef ZFS_DEBUG
+ extern void dprintf_setup(int *argc, char **argv);
+@@ -438,7 +438,7 @@
+ extern int vn_openat(char *path, int x1, int oflags, int mode, vnode_t **vpp,
+ int x2, int x3, vnode_t *vp, int fd);
+ extern int vn_rdwr(int uio, vnode_t *vp, void *addr, ssize_t len,
+- offset_t offset, int x1, int x2, rlim64_t x3, void *x4, ssize_t *residp);
++ offset_t offset, int x1, int x2, solaris_rlim64_t x3, void *x4, ssize_t *residp);
+ extern void vn_close(vnode_t *vp, int openflag, cred_t *cr, kthread_t *td);
+
+ #define vn_remove(path, x1, x2) remove(path)
+diff -ur -x debian freebsd-libs-8.0.old/sys/cddl/compat/opensolaris/sys/dirent.h freebsd-libs-8.0/sys/cddl/compat/opensolaris/sys/dirent.h
+--- freebsd-libs-8.0.old/sys/cddl/compat/opensolaris/sys/dirent.h 2008-03-28 18:16:18.000000000 -0400
++++ freebsd-libs-8.0/sys/cddl/compat/opensolaris/sys/dirent.h 2010-07-27 20:09:52.803673879 -0400
+@@ -32,7 +32,10 @@
+ #include_next <sys/dirent.h>
+
+ typedef struct dirent dirent64_t;
++/* GNU libc has its own dirent64 declaration */
++#ifndef __GLIBC__
+ #define dirent64 dirent
++#endif
+ #define ino64_t ino_t
+
+ #define d_ino d_fileno
+diff -ur -x debian freebsd-libs-8.0.old/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vnops.c freebsd-libs-8.0/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vnops.c
+--- freebsd-libs-8.0.old/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vnops.c 2009-10-12 16:36:55.000000000 -0400
++++ freebsd-libs-8.0/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vnops.c 2010-07-27 20:09:52.816846339 -0400
+@@ -677,7 +677,7 @@
+ zfs_write(vnode_t *vp, uio_t *uio, int ioflag, cred_t *cr, caller_context_t *ct)
+ {
+ znode_t *zp = VTOZ(vp);
+- rlim64_t limit = MAXOFFSET_T;
++ solaris_rlim64_t limit = MAXOFFSET_T;
+ ssize_t start_resid = uio->uio_resid;
+ ssize_t tx_bytes;
+ uint64_t end_size;
diff -Nur freebsd-libs-8.0.old/debian/patches/17_zfs_stdint.diff freebsd-libs-8.0/debian/patches/17_zfs_stdint.diff
--- freebsd-libs-8.0.old/debian/patches/17_zfs_stdint.diff 1969-12-31 19:00:00.000000000 -0500
+++ freebsd-libs-8.0/debian/patches/17_zfs_stdint.diff 2010-07-27 20:10:50.934592629 -0400
@@ -0,0 +1,36 @@
+diff -ur -x debian freebsd-libs-8.0.old/sys/cddl/compat/opensolaris/sys/types.h freebsd-libs-8.0/sys/cddl/compat/opensolaris/sys/types.h
+--- freebsd-libs-8.0.old/sys/cddl/compat/opensolaris/sys/types.h 2008-11-17 15:49:29.000000000 -0500
++++ freebsd-libs-8.0/sys/cddl/compat/opensolaris/sys/types.h 2010-07-27 20:10:36.439355449 -0400
+@@ -33,7 +33,7 @@
+ * This is a bag of dirty hacks to keep things compiling.
+ */
+
+-#include <sys/stdint.h>
++#include <stdint.h>
+ #include_next <sys/types.h>
+
+ #define MAXNAMELEN 256
+diff -ur -x debian freebsd-libs-8.0.old/sys/cddl/contrib/opensolaris/common/avl/avl.c freebsd-libs-8.0/sys/cddl/contrib/opensolaris/common/avl/avl.c
+--- freebsd-libs-8.0.old/sys/cddl/contrib/opensolaris/common/avl/avl.c 2008-11-17 15:49:29.000000000 -0500
++++ freebsd-libs-8.0/sys/cddl/contrib/opensolaris/common/avl/avl.c 2010-07-27 20:10:36.441379999 -0400
+@@ -92,7 +92,7 @@
+
+ #include <sys/types.h>
+ #include <sys/param.h>
+-#include <sys/stdint.h>
++#include <stdint.h>
+ #include <sys/debug.h>
+ #include <sys/avl.h>
+
+diff -ur -x debian freebsd-libs-8.0.old/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zfs_context.h freebsd-libs-8.0/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zfs_context.h
+--- freebsd-libs-8.0.old/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zfs_context.h 2009-08-17 05:03:47.000000000 -0400
++++ freebsd-libs-8.0/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zfs_context.h 2010-07-27 20:10:36.442398029 -0400
+@@ -33,7 +33,7 @@
+ #endif
+
+ #include <sys/param.h>
+-#include <sys/stdint.h>
++#include <stdint.h>
+ #include <sys/note.h>
+ #include <sys/kernel.h>
+ #include <sys/debug.h>
diff -Nur freebsd-libs-8.0.old/debian/patches/18_zfs_makefile.diff freebsd-libs-8.0/debian/patches/18_zfs_makefile.diff
--- freebsd-libs-8.0.old/debian/patches/18_zfs_makefile.diff 1969-12-31 19:00:00.000000000 -0500
+++ freebsd-libs-8.0/debian/patches/18_zfs_makefile.diff 2010-07-27 20:13:40.403051378 -0400
@@ -0,0 +1,10 @@
+diff -ur -x debian freebsd-libs-8.0.old/cddl/lib/libzfs/Makefile freebsd-libs-8.0/cddl/lib/libzfs/Makefile
+--- freebsd-libs-8.0.old/cddl/lib/libzfs/Makefile 2008-11-17 15:49:29.000000000 -0500
++++ freebsd-libs-8.0/cddl/lib/libzfs/Makefile 2010-07-27 20:11:17.801799169 -0400
+@@ -47,5 +47,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
++CFLAGS+= -I${.CURDIR}/../../../lib/libgeom
+
+ .include <bsd.lib.mk>
diff -Nur freebsd-libs-8.0.old/debian/patches/19_zfs_mountd.diff freebsd-libs-8.0/debian/patches/19_zfs_mountd.diff
--- freebsd-libs-8.0.old/debian/patches/19_zfs_mountd.diff 1969-12-31 19:00:00.000000000 -0500
+++ freebsd-libs-8.0/debian/patches/19_zfs_mountd.diff 2010-07-27 20:12:04.869561328 -0400
@@ -0,0 +1,29 @@
+diff -ur -x debian freebsd-libs-8.0.old/cddl/compat/opensolaris/misc/fsshare.c freebsd-libs-8.0/cddl/compat/opensolaris/misc/fsshare.c
+--- freebsd-libs-8.0.old/cddl/compat/opensolaris/misc/fsshare.c 2008-03-28 18:16:18.000000000 -0400
++++ freebsd-libs-8.0/cddl/compat/opensolaris/misc/fsshare.c 2010-07-27 20:11:53.585550998 -0400
+@@ -35,7 +35,6 @@
+ #include <errno.h>
+ #include <libutil.h>
+ #include <assert.h>
+-#include <pathnames.h> /* _PATH_MOUNTDPID */
+ #include <fsshare.h>
+
+ #define FILE_HEADER "# !!! DO NOT EDIT THIS FILE MANUALLY !!!\n\n"
+@@ -45,6 +44,9 @@
+ static void
+ restart_mountd(void)
+ {
++ fprintf (stderr, "warning: mountd isn't supported in "
++ "Debian GNU/kFreeBSD yet\n");
++#if 0
+ struct pidfh *pfh;
+ pid_t mountdpid;
+
+@@ -60,6 +62,7 @@
+ }
+ /* We have mountd(8) PID in mountdpid varible. */
+ kill(mountdpid, SIGHUP);
++#endif
+ }
+
+ /*
diff -Nur freebsd-libs-8.0.old/debian/patches/series freebsd-libs-8.0/debian/patches/series
--- freebsd-libs-8.0.old/debian/patches/series 2010-07-27 19:54:52.000000000 -0400
+++ freebsd-libs-8.0/debian/patches/series 2010-07-27 20:14:20.471386297 -0400
@@ -10,3 +10,9 @@
11_netgraph.diff
12_usb.diff
13_libusb-update.diff
+14_zfs_glibc_kludge.diff
+15_zfs_glibc_misc.diff
+16_zfs_glibc_namespace.diff
+17_zfs_stdint.diff
+18_zfs_makefile.diff
+19_zfs_mountd.diff
diff -Nur freebsd-libs-8.0.old/debian/rules freebsd-libs-8.0/debian/rules
--- freebsd-libs-8.0.old/debian/rules 2010-07-27 19:54:52.000000000 -0400
+++ freebsd-libs-8.0/debian/rules 2010-07-27 20:18:49.584629926 -0400
@@ -9,7 +9,7 @@
# This has to be exported to make some magic below work.
export DH_OPTIONS
-CFLAGS = -Wall -g -pipe -fPIC -I. -D_GNU_SOURCE -D'__FBSDID(string)='
+CFLAGS = -Wall -g -pipe -fPIC -I. -D_GNU_SOURCE -D'__FBSDID(string)=' -D__va_list=__builtin_va_list
ifneq (,$(filter noopt,$(DEB_BUILD_OPTIONS)))
CFLAGS += -O0
@@ -31,6 +31,14 @@
for i in lib/libcam lib/libdevstat lib/libgeom lib/libipx \
lib/libkiconv lib/libnetgraph \
lib/libkvm lib/libmemstat lib/libsbuf lib/libusb \
+ cddl/lib/libzfs \
+ cddl/lib/libnvpair \
+ cddl/lib/libuutil \
+ cddl/lib/libavl \
+ cddl/compat/opensolaris \
+ cddl/contrib/opensolaris \
+ sys/cddl/compat/opensolaris \
+ sys/cddl/contrib/opensolaris \
lib/libusbhid sys/cam ; do \
svn export $(SVN)/$$i $(ORIGDIR)/$$i ; \
done
@@ -48,7 +56,7 @@
QUILT_PATCHES=debian/patches quilt push -a || test $$? = 2
touch $@
-build: build-cam build-geom build-sbuf build-ipx build-kiconv build-kvm build-usbhid build-usb build-devstat build-memstat build-netgraph
+build: build-cam build-geom build-sbuf build-ipx build-kiconv build-kvm build-usbhid build-usb build-devstat build-memstat build-netgraph build-zfs
build-cam: build-cam-stamp
build-cam-stamp: patch build-sbuf
@@ -105,6 +113,14 @@
$(PMAKE) -C $(CURDIR)/lib/libusb
touch $@
+build-zfs: build-zfs-stamp
+build-zfs-stamp: patch
+ $(PMAKE) -C $(CURDIR)/cddl/lib/libavl
+ $(PMAKE) -C $(CURDIR)/cddl/lib/libzfs
+ $(PMAKE) -C $(CURDIR)/cddl/lib/libnvpair
+ $(PMAKE) -C $(CURDIR)/cddl/lib/libuutil
+ touch $@
+
clean:
dh_testdir
dh_testroot
@@ -119,6 +135,10 @@
$(PMAKE) -C $(CURDIR)/lib/libsbuf clean
$(PMAKE) -C $(CURDIR)/lib/libusbhid clean
$(PMAKE) -C $(CURDIR)/lib/libusb clean
+ $(PMAKE) -C $(CURDIR)/cddl/lib/libavl clean
+ $(PMAKE) -C $(CURDIR)/cddl/lib/libzfs clean
+ $(PMAKE) -C $(CURDIR)/cddl/lib/libnvpair clean
+ $(PMAKE) -C $(CURDIR)/cddl/lib/libuutil clean
QUILT_PATCHES=debian/patches quilt pop -a -R || test $$? = 2
rm -rf .pc
rm -f *stamp
@@ -142,6 +162,10 @@
$(PMAKE) -C $(CURDIR)/lib/libnetgraph install
$(PMAKE) -C $(CURDIR)/lib/libusbhid install
$(PMAKE) -C $(CURDIR)/lib/libusb install
+ $(PMAKE) -C $(CURDIR)/cddl/lib/libavl install
+ $(PMAKE) -C $(CURDIR)/cddl/lib/libzfs install
+ $(PMAKE) -C $(CURDIR)/cddl/lib/libnvpair install
+ $(PMAKE) -C $(CURDIR)/cddl/lib/libuutil install
mkdir -p $(CURDIR)/debian/tmp/usr/lib/pkgconfig
install -m644 debian/libusb*.pc $(CURDIR)/debian/tmp/usr/lib/pkgconfig
Reply to: