Package: fuse
Version: 2.7.4-1.1
Severity: important
Tags: patch
User: [email protected]
Usertags: kfreebsd
Please find below a patch to add GNU/kFreeBSD support to fuse. On this
system, the kernel module and the utilities are provided in a separate
source package called fuse4bsd. That's why the patch disable fuse-utils
on non Linux systems.
Could you please apply this patch in the next upload? Thanks in advance.
diff -u fuse-2.7.4/debian/rules fuse-2.7.4/debian/rules
--- fuse-2.7.4/debian/rules
+++ fuse-2.7.4/debian/rules
@@ -12,6 +12,7 @@
DEB_HOST_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_HOST_GNU_TYPE)
DEB_BUILD_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_BUILD_GNU_TYPE)
+DEB_HOST_ARCH_OS ?= $(shell dpkg-architecture -qDEB_HOST_ARCH_OS)
CFLAGS += -Wall -g
ifneq (,$(findstring noopt,$(DEB_BUILD_OPTIONS)))
@@ -56,12 +57,14 @@
dh_clean -k -s
dh_installdirs -s
$(MAKE) install DESTDIR=$(DESTDIR)
+ dh_install -s --source=debian/tmp
+ifeq ($(DEB_HOST_ARCH_OS),linux)
dh_installdirs -pfuse-utils usr/share/lintian/overrides
cp $(CURDIR)/debian/fuse-utils.lintian \
$(CURDIR)/debian/fuse-utils/usr/share/lintian/overrides/fuse-utils
- dh_install -s --source=debian/tmp
install -D -m0640 $(CURDIR)/debian/fuse.conf \
$(CURDIR)/debian/fuse-utils/etc/fuse.conf
+endif
binary-arch: build install-arch
dh_testdir -s
@@ -70,11 +73,13 @@
dh_installdocs -plibfuse2 $(DOCS)
dh_installdocs -plibfuse-dev $(DOCS)
dh_installexamples -s
+ifeq ($(DEB_HOST_ARCH_OS),linux)
for PKG in fuse-utils; do \
rm -rf debian/$$PKG/usr/share/doc/$$PKG; \
cd debian/$$PKG/usr/share/doc/ && ln -s libfuse2 $$PKG; \
done
- dh_installman -s -pfuse-utils debian/fusermount.1
+endif
+ dh_installman -s
dh_link -s
dh_strip -s
dh_compress -s -Xusr/share/doc/libfuse-dev/examples/
@@ -86,7 +91,9 @@
dh_shlibdeps -s
dh_gencontrol -s
dh_md5sums -s
+ifeq ($(DEB_HOST_ARCH_OS),linux)
chmod 4755 debian/fuse-utils/usr/bin/fusermount
+endif
dh_builddeb -s
binary-indep:
diff -u fuse-2.7.4/debian/control fuse-2.7.4/debian/control
--- fuse-2.7.4/debian/control
+++ fuse-2.7.4/debian/control
@@ -3,14 +3,14 @@
Priority: optional
Maintainer: Bartosz Fenski <[email protected]>
Uploaders: Adam Cécile (Le_Vert) <[email protected]>
-Build-Depends: debhelper (>= 5.0.37), autotools-dev, dpatch, lsb-base (>=
3.0-6), bzip2, libselinux1-dev | libselinux-dev
+Build-Depends: debhelper (>= 5.0.37), autotools-dev, dpatch, lsb-base (>=
3.0-6), bzip2, libselinux1-dev [!kfreebsd-amd64 !kfreebsd-i386] |
libselinux-dev [!kfreebsd-amd64 !kfreebsd-i386]
Homepage: http://fuse.sourceforge.net/
Standards-Version: 3.8.0
Package: fuse-utils
Section: utils
Depends: ${shlibs:Depends}, ${misc:Depends}, libfuse2 (= ${binary:Version}),
sed (>= 4), adduser, makedev (>= 2.3.1-80) | udev
-Architecture: any
+Architecture: avr32 alpha amd64 armel hppa i386 ia64 lpia m68k mips mipsel
powerpc ppc64 s390 s390x sh4 sparc
Description: Filesystem in USErspace (utilities)
Simple interface for userspace programs to export a virtual
filesystem to the Linux kernel.
@@ -24,7 +24,7 @@
Package: libfuse-dev
Section: libdevel
Architecture: any
-Depends: libfuse2 (= ${binary:Version}), ${misc:Depends}, libselinux1-dev |
libselinux-dev
+Depends: libfuse2 (= ${binary:Version}), ${misc:Depends}, libselinux1-dev
[!kfreebsd-amd64 !kfreebsd-i386] | libselinux-dev [!kfreebsd-amd64
!kfreebsd-i386]
Suggests: fuse-utils
Description: Filesystem in USErspace (development files)
Simple interface for userspace programs to export a virtual
diff -u fuse-2.7.4/debian/patches/00list fuse-2.7.4/debian/patches/00list
--- fuse-2.7.4/debian/patches/00list
+++ fuse-2.7.4/debian/patches/00list
@@ -1,0 +2 @@
+001-GNU_kFreeBSD
--- fuse-2.7.4.orig/debian/fuse-utils.manpages
+++ fuse-2.7.4/debian/fuse-utils.manpages
@@ -0,0 +1 @@
+debian/fusermount.1
only in patch2:
unchanged:
--- fuse-2.7.4.orig/debian/patches/001-GNU_kFreeBSD
+++ fuse-2.7.4/debian/patches/001-GNU_kFreeBSD
@@ -0,0 +1,166 @@
+#! /bin/sh /usr/share/dpatch/dpatch-run
+## 001-GNU_kFreeBSD
+## by Aurelien Jarno <[email protected]>
+##
+## DP: GNU/kFreeBSD support
+
+...@dpatch@
+
+diff -Nurd fuse-2.7.4.orig/configure fuse-2.7.4/configure
+--- fuse-2.7.4.orig/configure 2008-07-25 20:19:05.000000000 +0200
++++ fuse-2.7.4/configure 2008-07-25 20:19:05.000000000 +0200
+@@ -11461,6 +11461,89 @@
+
+ fi
+
++{ echo "$as_me:$LINENO: checking for library containing devname_r" >&5
++echo $ECHO_N "checking for library containing devname_r... $ECHO_C" >&6; }
++if test "${ac_cv_search_devname_r+set}" = set; then
++ echo $ECHO_N "(cached) $ECHO_C" >&6
++else
++ ac_func_search_save_LIBS=$LIBS
++cat >conftest.$ac_ext <<_ACEOF
++/* confdefs.h. */
++_ACEOF
++cat confdefs.h >>conftest.$ac_ext
++cat >>conftest.$ac_ext <<_ACEOF
++/* end confdefs.h. */
++
++/* Override any GCC internal prototype to avoid an error.
++ Use char because int might match the return type of a GCC
++ builtin and then its argument prototype would still apply. */
++#ifdef __cplusplus
++extern "C"
++#endif
++char devname_r ();
++int
++main ()
++{
++return devname_r ();
++ ;
++ return 0;
++}
++_ACEOF
++for ac_lib in '' freebsd; do
++ if test -z "$ac_lib"; then
++ ac_res="none required"
++ else
++ ac_res=-l$ac_lib
++ LIBS="-l$ac_lib $ac_func_search_save_LIBS"
++ fi
++ rm -f conftest.$ac_objext conftest$ac_exeext
++if { (ac_try="$ac_link"
++case "(($ac_try" in
++ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
++ *) ac_try_echo=$ac_try;;
++esac
++eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
++ (eval "$ac_link") 2>conftest.er1
++ ac_status=$?
++ grep -v '^ *+' conftest.er1 >conftest.err
++ rm -f conftest.er1
++ cat conftest.err >&5
++ echo "$as_me:$LINENO: \$? = $ac_status" >&5
++ (exit $ac_status); } && {
++ test -z "$ac_c_werror_flag" ||
++ test ! -s conftest.err
++ } && test -s conftest$ac_exeext &&
++ $as_test_x conftest$ac_exeext; then
++ ac_cv_search_devname_r=$ac_res
++else
++ echo "$as_me: failed program was:" >&5
++sed 's/^/| /' conftest.$ac_ext >&5
++
++
++fi
++
++rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
++ conftest$ac_exeext
++ if test "${ac_cv_search_devname_r+set}" = set; then
++ break
++fi
++done
++if test "${ac_cv_search_devname_r+set}" = set; then
++ :
++else
++ ac_cv_search_devname_r=no
++fi
++rm conftest.$ac_ext
++LIBS=$ac_func_search_save_LIBS
++fi
++{ echo "$as_me:$LINENO: result: $ac_cv_search_devname_r" >&5
++echo "${ECHO_T}$ac_cv_search_devname_r" >&6; }
++ac_res=$ac_cv_search_devname_r
++if test "$ac_res" != no; then
++ test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
++
++fi
++
+ libfuse_libs="$libfuse_libs $LIBS"
+ LIBS=
+
+diff -Nurd fuse-2.7.4.orig/configure.in fuse-2.7.4/configure.in
+--- fuse-2.7.4.orig/configure.in 2008-07-25 20:17:20.000000000 +0200
++++ fuse-2.7.4/configure.in 2008-07-25 20:17:20.000000000 +0200
+@@ -66,6 +66,7 @@
+ LIBS=
+ AC_SEARCH_LIBS(dlopen, [dl])
+ AC_SEARCH_LIBS(clock_gettime, [rt])
++AC_SEARCH_LIBS(devname_r, [freebsd])
+ libfuse_libs="$libfuse_libs $LIBS"
+ LIBS=
+ AC_ARG_WITH([libiconv-prefix],
+diff -Nurd fuse-2.7.4.orig/lib/fuse.c fuse-2.7.4/lib/fuse.c
+--- fuse-2.7.4.orig/lib/fuse.c 2008-07-25 20:17:21.000000000 +0200
++++ fuse-2.7.4/lib/fuse.c 2009-05-13 14:29:03.000000000 +0200
+@@ -626,7 +626,7 @@
+ fuse_do_prepare_interrupt(req, d);
+ }
+
+-#ifndef __FreeBSD__
++#if !defined(__FreeBSD__) && !defined(__FreeBSD_kernel__)
+
+ static int fuse_compat_open(struct fuse_fs *fs, const char *path,
+ struct fuse_file_info *fi)
+@@ -3107,7 +3107,7 @@
+ if (!f->conf.ac_attr_timeout_set)
+ f->conf.ac_attr_timeout = f->conf.attr_timeout;
+
+-#ifdef __FreeBSD__
++#if defined (__FreeBSD__) || defined (__FreeBSD_kernel__)
+ /*
+ * In FreeBSD, we always use these settings as inode numbers
+ * are needed to make getcwd(3) work.
+@@ -3280,7 +3280,7 @@
+ fuse_modules = mod;
+ }
+
+-#ifndef __FreeBSD__
++#if !defined(__FreeBSD__) && !defined(__FreeBSD_kernel__)
+
+ static struct fuse *fuse_new_common_compat(int fd, const char *opts,
+ const struct fuse_operations *op,
+diff -Nurd fuse-2.7.4.orig/lib/fuse_lowlevel.c fuse-2.7.4/lib/fuse_lowlevel.c
+--- fuse-2.7.4.orig/lib/fuse_lowlevel.c 2008-02-19 20:51:26.000000000
+0100
++++ fuse-2.7.4/lib/fuse_lowlevel.c 2009-05-13 14:29:03.000000000 +0200
+@@ -1321,7 +1321,7 @@
+ }
+
+
+-#ifndef __FreeBSD__
++#if !defined(__FreeBSD__) && !defined(__FreeBSD_kernel__)
+
+ static void fill_open_compat(struct fuse_open_out *arg,
+ const struct fuse_file_info_compat *f)
+diff -Nurd fuse-2.7.4.orig/lib/helper.c fuse-2.7.4/lib/helper.c
+--- fuse-2.7.4.orig/lib/helper.c 2008-02-19 20:51:27.000000000 +0100
++++ fuse-2.7.4/lib/helper.c 2009-05-13 14:29:03.000000000 +0200
+@@ -356,7 +356,7 @@
+
+ #include "fuse_compat.h"
+
+-#ifndef __FreeBSD__
++#if !defined(__FreeBSD__) && !defined(__FreeBSD_kernel__)
+
+ struct fuse *fuse_setup_compat22(int argc, char *argv[],
+ const struct fuse_operations_compat22 *op,
only in patch2:
unchanged:
--- fuse-2.7.4.orig/debian/patches/00patch-opts
+++ fuse-2.7.4/debian/patches/00patch-opts
@@ -0,0 +1 @@
+patch_opts="-g0 -f -Z --no-backup-if-mismatch"
-- System Information:
Debian Release: squeeze/sid
Architecture: kfreebsd-amd64 (x86_64)
Kernel: kFreeBSD 7.1-1-amd64
Locale: LANG=fr_FR.UTF-8, LC_CTYPE=fr_FR.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/bash
--
To UNSUBSCRIBE, email to [email protected]
with a subject of "unsubscribe". Trouble? Contact [email protected]