# # spec file for package fuse # # Copyright (c) 2016 SUSE LINUX GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed # upon. The license for this file, and modifications and additions to the # file, is the same license as for the pristine package itself (unless the # license for the pristine package is not an Open Source License, in which # case the license is the MIT License). An "Open Source License" is a # license that conforms to the Open Source Definition (Version 1.9) # published by the Open Source Initiative. # Please submit bugfixes or comments via http://bugs.opensuse.org/ # %define tag 2_9_5 Name: fuse Version: 2.9.5 Release: 1.1 Summary: User space File System License: GPL-2.0+ and LGPL-2.1+ Group: System/Filesystems Url: https://github.com/libfuse/libfuse Source: https://github.com/libfuse/libfuse/releases/download/fuse_%{tag}/fuse-%{version}.tar.gz Source2: fuse.rpmlintrc Source3: baselibs.conf Source4: fuse.conf Source5: https://github.com/libfuse/libfuse/releases/download/fuse_%{tag}/fuse-%{version}.tar.gz.asc Source6: fuse.keyring Patch0: fuse-install-fix.diff Patch3: fusermount-compile-as-pie.patch Patch4: aarch64-build-fix.patch BuildRequires: autoconf BuildRequires: automake BuildRequires: libtool BuildRequires: pkgconfig # FIXME: use proper Requires(pre/post/preun/...) PreReq: permissions BuildRoot: %{_tmppath}/%{name}-%{version}-build %if 0%{?suse_version} > 1130 Requires: util-linux >= 2.18 %else Requires: util-linux(fake+no-canonicalize) %endif %if 0%{?suse_version} >= 1000 Supplements: filesystem(fuse) %endif %description With FUSE, a user space program can export a file system through the kernel-default (Linux kernel). User space file systems which are implemented using FUSE are provided by the following packages: - curlftpfs (mount FTP servers), - encfs (layered file encryption), - fuseiso (mount iso, img, bin, mdf and nrg CD-ROM images), - fusepod (mount iPods), - fusesmb (mount a fully browseable network neighborhood), - gphotofs (mount gphoto-supported cameras), - ntfs-3g (mount NTFS volumes read-write), - obexfs (mount of bluetooth devices), - sshfs (mount over ssh), - wdfs (mount of WebDAV shares) This package contains the mount binaries for fuse (might not be needed by some FUSE filesystems like ntfs-3g) and the documentation for FUSE. After installing fuse-devel, administrators can compile and install other user space file systems which can be found at http://fuse.sourceforge.net/wiki %package -n libulockmgr1 Summary: Library of FUSE, the User space File System for GNU/Linux and BSD Group: System/Filesystems %description -n libulockmgr1 With FUSE, a user space program can export a file system through the kernel-default (Linux kernel). %package -n libfuse2 Summary: Library of FUSE, the User space File System for GNU/Linux and BSD Group: System/Filesystems %description -n libfuse2 With FUSE, a user space program can export a file system through the kernel-default (Linux kernel). A FUSE file system which only needs libfuse2 is ntfs-3g, other FUSE file systems might need the fuse package in addition to have fusermount and /sbin/mount.fuse. After installing fuse-devel, administrators can compile and install other user space file systems which can be found at http://fuse.sourceforge.net/wiki %package devel Summary: Development package for FUSE (userspace filesystem) modules Group: Development/Languages/C and C++ Requires: fuse = %{version} Requires: glibc-devel Requires: libfuse2 = %{version} Requires: libulockmgr1 = %{version} %description devel This package contains all include files, libraries and configuration files needed to develop programs that use the fuse (FUSE) library to implement kernel-default (Linux) file systems in user space. With fuse-devel, administrators can compile and install other user space file systems which can be found at http://fuse.sourceforge.net/wiki %package devel-static Summary: Development package for FUSE (userspace filesystem) modules Group: Development/Languages/C and C++ Requires: fuse-devel = %{version} Provides: fuse-devel:%{_libdir}/libfuse.a %description devel-static This package contains all include files, libraries and configuration files needed to develop programs that use the fuse (FUSE) library to implement kernel-default (Linux) file systems in user space. With fuse-devel, administrators can compile and install other user space file systems which can be found at http://fuse.sourceforge.net/wiki %prep %setup -q %patch0 -p1 %patch3 -p1 %patch4 %build export CFLAGS="%{optflags} -g -fno-strict-aliasing" export MOUNT_FUSE_PATH=%{_sbindir} autoreconf -fi %configure --with-pic \ --with-pkgconfigdir=%{_libdir}/pkgconfig \ --enable-lib \ --enable-util \ --enable-example make %{?_smp_mflags} %install make DESTDIR=%{buildroot} install %{?_smp_mflags} rm -rf %{buildroot}/%{_sysconfdir}/init.d install -m644 -D %{SOURCE4} %{buildroot}/%{_sysconfdir}/fuse.conf # Needed for OpenSUSE buildservice %if 0%{?suse_version} <= 1020 install -m644 -D util/udev.rules %{buildroot}/%{_sysconfdir}/udev/rules.d/99-fuse.rules %endif find %{buildroot} -type f -name "*.la" -delete -print # not needed for fuse, might reappar in separate package: rm -f %{buildroot}/%{_libdir}/libulockmgr.a #UsrMerge mkdir %{buildroot}/sbin mkdir %{buildroot}/%{_lib} ln -s -v %{_sbindir}/mount.fuse %{buildroot}/sbin pushd %{buildroot}/%{_libdir} for libname in $(ls *.so.*);do ln -s -v /%{_libdir}/$libname %{buildroot}/%{_lib} done popd #EndUsrMerge (cd example && make clean) rm -rf example/.deps example/Makefile.am example/Makefile.in rm -rf doc/Makefile.am doc/Makefile.in doc/Makefile %post %if 0%{?suse_version} >= 1140 %set_permissions %{_bindir}/fusermount %else %run_permissions %endif %verifyscript %verify_permissions -e %{_bindir}/fusermount %post -n libfuse2 -p /sbin/ldconfig %postun -n libfuse2 -p /sbin/ldconfig %post -n libulockmgr1 -p /sbin/ldconfig %postun -n libulockmgr1 -p /sbin/ldconfig %files %defattr(-,root,root) %doc AUTHORS ChangeLog NEWS README* COPYING* %if 0%{?suse_version} <= 1020 %dir %{_sysconfdir}/udev %dir %{_sysconfdir}/udev/rules.d %{_sysconfdir}/udev/rules.d/99-fuse.rules %endif %verify(not mode) %attr(4750,root,trusted) %{_bindir}/fusermount #UsrMerge /sbin/mount.fuse #EndUsrMerge %{_sbindir}/mount.fuse %config %{_sysconfdir}/fuse.conf %{_bindir}/ulockmgr_server %{_mandir}/man1/fusermount.1.* %{_mandir}/man1/ulockmgr_server.1.* %{_mandir}/man8/mount.fuse.8.* %files -n libfuse2 %defattr(-,root,root) #UsrMerge /%{_lib}/libfuse.so.2* #EndUsrMerge %{_libdir}/libfuse.so.2* %files -n libulockmgr1 %defattr(-,root,root) #UsrMerge /%{_lib}/libulockmgr.so.* #EndUsrMerge %{_libdir}/libulockmgr.so.* %files devel %defattr(-,root,root) %doc example doc %{_libdir}/libfuse.so %{_libdir}/libulockmgr.so %{_includedir}/fuse.h %{_includedir}/fuse %{_libdir}/pkgconfig/*.pc %{_includedir}/ulockmgr.h %files devel-static %defattr(-,root,root) %{_libdir}/libfuse.a %changelog * Fri Jan 22 2016 astieger@suse.com - fuse 2.9.5: * fix warning in mount.c:receive_fd(). * fix possible memory leak. * new upstream project and source URL * add new maintainer keyring and verify source signature * Fri May 22 2015 mszeredi@suse.cz - Update to version 2.9.4 - fix exec environment for mount and umount (bsc#931452, CVE-2015-3202) - properly restore the default signal handler - fix directory file handle passed to ioctl() method. - fix for uids/gids larger than 2147483647 - initialize stat buffer passed to ->getattr() and ->fgetattr() * Wed Dec 10 2014 bwiedemann@suse.com - include commented default fuse.conf (bnc#908292) * Wed Jul 24 2013 mszeredi@suse.cz - Update to version 2.9.3 - Bug fixes - Remove fuse-gnu_source.patch (fixed upstream) * Sun Jun 16 2013 dmueller@suse.com - add aarch64-build-fix.patch * Wed Mar 27 2013 mmeister@suse.com - Added url as source. Please see http://en.opensuse.org/SourceUrls * Tue Mar 26 2013 dmueller@suse.com - fix build for SLE_11 * Fri Mar 8 2013 idonmez@suse.com - Use autoreconf directly instead of makeconf.sh * Mon Mar 4 2013 archie@dellroad.org - Update to version 2.9.2 - Add support for fallocate() (kernel >= 3.5) - Bug fixes - Remove fix-pthread-in-fuse.pc.patch; now included in upstream - Don't patch generated files such as configure and Makefile.in; instead, regenerate them using makeconf.sh from SVN repository * Sat Feb 2 2013 coolo@suse.com - update license to new format * Mon Jul 2 2012 coolo@suse.com - avoid autoreconf to avoid breaking on updates of auto* tools * Sat May 26 2012 jengelh@inai.de - Remove redundant tags/sections from specfile - Parallel build with %%_smp_mflags - Trim list of FUSE fses from description (it's literally endless) and text inappropraite for subpackages * Wed May 16 2012 mszeredi@suse.cz - Fix -pthread in fuse.pc [bnc#761117] * Thu Apr 26 2012 rschweikert@suse.com - place binaries in /usr tree (UsrMerge project) * Sun Apr 22 2012 puzel@suse.com - update to 2.9.0 - Add "zero copy" support for kernel 2.6.35 or newer - Make maximum background requests tunable on kernel 2.6.32 or newer - Require --no-canonicalize in (u)mount (util-linux version 2.18 or newer) to fix security problems with fusermount - Use dynamically sized hash tables in high level library - Memory use of filesystem daemon can shrink more easily - Add "auto_unmount" option - Add "remember" option - Add man pages for fusermount, mount.fuse and ulockmgr_server - API changes: - Introduce "store" and "retrieve" for accessing kernel buffers on kernel 2.6.36 or newer - Introduce abstract buffer for zero copy operations - Allow path calculation to be omitted on certain operations - Allow batching forget requests - Add "flock" method - Add support for ioctl on directories - Add delete notification - drop fuse-pc-remove-libdir-from-Libs.diff (upstream) * Wed Jan 25 2012 mszeredi@suse.cz - use %%set_permissions instead of %%run_permissions in specfile * Wed Jan 25 2012 mszeredi@suse.cz - compile /bin/fusermount as a position independent executable [bnc#743155] * Wed Jan 25 2012 mszeredi@suse.cz - update to 2.8.7 * fix ambiguous symbol version for fuse_chan_new * prevent calling ulockmgr_server with illegal arguments * fix hang in wait_on_path() * Thu Nov 3 2011 mszeredi@suse.cz - handle case of failure to allocate request [bnc#723616] * Sat Oct 1 2011 coolo@suse.com - add libtool as buildrequire to make the spec file more reliable * Mon Sep 26 2011 mhrusecky@suse.cz - enabling libulockmgr * Mon Aug 29 2011 crrodriguez@opensuse.org - Must define _GNU_SOURCE to get clone() system call. * Mon Mar 21 2011 coolo@novell.com - licenses package is about to die * Thu Feb 17 2011 mszeredi@suse.cz - In case of failure to add to /etc/mtab don't umount. [bnc#668820] [CVE-2011-0541] * Tue Nov 16 2010 mszeredi@suse.cz - Fix symlink attack for mount and umount [bnc#651598] * Wed Oct 27 2010 mszeredi@suse.cz - Remove /etc/init.d/boot.fuse [bnc#648843] * Tue Sep 28 2010 mszeredi@suse.cz - update to 2.8.5 * fix option escaping for fusermount [bnc#641480] * Wed Apr 28 2010 mszeredi@suse.cz - keep examples and internal docs in devel package (from jnweiger) * Mon Apr 26 2010 mszeredi@suse.cz - update to 2.8.4 * fix checking for symlinks in umount from /tmp * fix umounting if /tmp is a symlink * Tue Feb 2 2010 mszeredi@suse.cz - update to 2.8.3 * fix unmounting with util-linux version >= 2.17 * Wed Jan 27 2010 mszeredi@suse.cz - update to 2.8.2 * fix unmount race (CVE-2009-3297) * fix deadlock with "audit" subsystem on mount (also requires util-linux-ng version >=2.17) * Wed Jan 6 2010 jengelh@medozas.de - package baselibs.conf * Wed Dec 16 2009 kruber@zib.de - update to 2.8.1: * fix missing versioned symbol fuse_get_context@FUSE_2.2 * Sun Sep 6 2009 pascal.bleser@opensuse.org - update to 2.8.0: * more scalable directory tree locking * atomic open(O_TRUNC) support * support big write requests on kernels 2.6.26 and newer * out-of-tree fuse module removed * better NFS exporting support * new ioctl and poll requests * new CUSE (Character Device in Userspace) interface * allow umask processing in userspace * added cache invalidation notifications * bugfixes and small improvements * Thu Jul 30 2009 aj@suse.de - Fix exclude usage. * Tue Apr 21 2009 crrodriguez@suse.de - remove static libraries and "la" files - spec file cleanup - update to version 2.7.4 * Fix missing pthread_mutex_destroy in error path of fuse_lib_opendir(). Patch by Szabolcs Szakacsits * Fri Apr 3 2009 coolo@suse.de - adding baselibs.conf to build -xxbit * Mon Dec 1 2008 ro@suse.de - check for /.buildenv before stop_on_removal * Mon Dec 17 2007 mszeredi@suse.de - Update to version 2.7.2 * Fix a symbol versioning mistake * Fix a deadlock on termination, if umount is synchronous * Fix umounting if /etc/mtab is a symlink * Fri Nov 23 2007 mszeredi@suse.de - Update to version 2.7.1 * Add missing context initialization in fuse_fs_chmod() * Fix a fuse_req leak in do_forget() * Work around hotplug issue * Reset args->argc in fuse_opt_free_args() * Sun Sep 2 2007 aj@suse.de - Fix building. - Rename rpmlintrc to fuse.rpmlintrc and add it as source. * Fri Aug 31 2007 mszeredi@suse.de - fix location of COPYING files (#306681) * Fri Aug 10 2007 bk@suse.de - branch off libfuse2 to avoid having to start fuse on boot (#285101) - Add "Supplements: filesystem(fuse)" in case someone looks for fuse - libulockmgr and ulockmgr_server are separate from fuse (#285101) * Fri Jul 13 2007 mszeredi@suse.de - conditionally add udev rule if building with 10.2 or earlier * Thu Jul 5 2007 bk@suse.de - update to new major release 2.7.0: * Support for stacking filesystem modules * New module for converting filename character sets * "setuid=USER" allows to do "su - USER" for the filesystem * fs subtype has been added to libfuse and the mount commands * Several problems have been addressed, e.g. mount.fuse is rewritten the multithreaded loop uses a semaphore instead of signals, improved locking and O_APPEND is fixed in direct IO mode * Tue Jul 3 2007 bk@suse.de - move libs and programs to /lib and /bin, recommended for ntfs-3g * Mon Jun 18 2007 dmueller@suse.de - fix boot.fuse to start after boot.localfs * Fri May 4 2007 mszeredi@suse.de - fix build error * Wed May 2 2007 mszeredi@suse.de - updated to version 2.6.5 * mount.fuse script fixes * fix exiting on umount for filesystems which block SIGHUP - udev rule for fuse device is now in udev package - don't remove fuse module in the init-script - use 'fusectl' as the filesystem source * Fri Feb 9 2007 ro@suse.de - change fillup_and_insserv to insserv_force_if_yast in post-script (there is no sysconfig file involved here) * Wed Feb 7 2007 mszeredi@suse.cz - added init script which loads the fuse module and mounts the control filesystem (#223663) * Mon Feb 5 2007 mszeredi@suse.cz - updated to version 2.6.3: * fix regression causing an abort during heavy filesystem use * update author's email * Tue Jan 30 2007 tiwai@suse.de - updated to version 2.6.2: * fix 64bit compile problems * fix fuse_teardown problem * fix unaligned access in file descriptor in libfuse * fix detection of fuseblk * fix use after free in fuse_flush * fix compatible API for opts == NULL * Thu Jan 18 2007 tiwai@suse.de - fix compat API (#233870) * Tue Dec 19 2006 tiwai@suse.de - updated to version 2.6.1: * improved fusermout help texts * fix automake problems * Sun Oct 22 2006 cthiel@suse.de - update to version 2.6.0 * Improved read characteristics (asynchronous reads) * Support for aborting filesystem connection * POSIX file locking support * Request interruption support * Building module for Linux kernels earlier than 2.6.9 not supported * Allow block device based filesystems to support swap files * Several bugs fixed, including a rare system hang on SMP * Mon Aug 21 2006 cthiel@suse.de - fix requirements of -devel package, to require fuse by version (#200496) * Tue Aug 8 2006 tiwai@suse.de - fixed a syntax error in udev rules. * Mon Jul 3 2006 cthiel@suse.de - fix build * Mon May 15 2006 tiwai@suse.de - updated to version 2.5.3. * Add missing rwlock initialization * Fix negative entry handling. * Fix race between RELEASE and UNLINK, which might leave .fuse_hidden* files around * libfuse: fix use-after-free bug in interruptred reply_entry(). * Fri Feb 3 2006 cthiel@suse.de - update to version 2.5.2 * lib: if "fsname=" option was given, pass it to fusermount * fuse_opt: fix memory leak in handling "--" option * fuse_opt.h: fix incompatibility with C++ compilers by renaming 'template' structure member to 'templ' * fuse.h: fix compatibility bugs. * Wed Jan 25 2006 mls@suse.de - converted neededforbuild to BuildRequires * Sat Jan 14 2006 cthiel@suse.de - update to version 2.5.0 * Wed Nov 23 2005 cthiel@suse.de - update to version 2.4.2 - changed permission of /usr/bin/fusermount to 4755 * Fri Oct 28 2005 cthiel@suse.de - readded -fno-strict-aliasing * Fri Oct 28 2005 cthiel@suse.de - update to version 2.4.1 * Fri Sep 30 2005 tiwai@suse.de - fixed CFLAGS to pass RPM_OPT_FLAGS. - added -fno-strict-aliasing. * Wed Jun 8 2005 tiwai@suse.de - updated to version 2.3.0. * Tue Feb 3 2004 adrian@suse.de - initial package of version 1.1-pre2