[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

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: