# # spec file for package fuse3 # # Copyright (c) 2020 SUSE LLC # # 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 https://bugs.opensuse.org/ # Name: fuse3 Version: 3.9.2 Release: 1.1 Summary: Reference implementation of the "Filesystem in Userspace" License: GPL-2.0-or-later AND LGPL-2.1-or-later AND BSD-2-Clause Group: System/Filesystems URL: https://github.com/libfuse/libfuse Source: https://github.com/libfuse/libfuse/releases/download/fuse-%{version}/fuse-%{version}.tar.xz Source1: https://github.com/libfuse/libfuse/releases/download/fuse-%{version}/fuse-%{version}.tar.xz.asc Source2: fuse.keyring Source1000: baselibs.conf Patch1: conf-rename.patch BuildRequires: fdupes BuildRequires: meson BuildRequires: pkgconfig BuildRequires: pkgconfig(udev) Requires: util-linux >= 2.18 Requires(pre): group(trusted) Requires(pre): permissions Supplements: filesystem(fuse) %description With FUSE, a user space program can export a file system to the Linux kernel. After installing fuse-devel, administrators can compile and install other user space file systems which can be found at https://github.com/libfuse/libfuse/wiki/ %package -n libfuse3-3 Summary: Library of FUSE, the User space File System for GNU/Linux and BSD Group: System/Filesystems %description -n libfuse3-3 With FUSE, a user space program can export a file system to the Linux kernel. After installing fuse-devel, administrators can compile and install other user space file systems which can be found at https://github.com/libfuse/libfuse/wiki/ %package doc Summary: Documentation for the FUSE library version 3 Group: Documentation/HTML %description doc This package contains the documentation for FUSE (userspace filesystem). %package devel Summary: Development package for FUSE (userspace filesystem) modules Group: Development/Languages/C and C++ Requires: fuse3 = %{version} Requires: glibc-devel Requires: libfuse3-3 = %{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 file systems in user space. With fuse-devel, administrators can compile and install other user space file systems which can be found at https://github.com/libfuse/libfuse/wiki/ %prep %setup -q -n fuse-%{version} %patch1 -p1 %build %define _lto_cflags %{nil} %meson -Duseroot=false %meson_build %install %meson_install find %{buildroot} -type f -name "*.la" -delete -print mkdir %{buildroot}/sbin mkdir %{buildroot}/%{_lib} ln -s -v %{_sbindir}/mount.fuse3 %{buildroot}/sbin pushd %{buildroot}/%{_libdir} for libname in $(ls *.so.*);do ln -s -v /%{_libdir}/$libname %{buildroot}/%{_lib} done popd # Remove unneeded stuff rm -r %{buildroot}%{_prefix}/lib/udev rm -r %{buildroot}%{_initddir} %fdupes -s doc %post %set_permissions %{_bindir}/fusermount3 %verifyscript %verify_permissions -e %{_bindir}/fusermount3 %post -n libfuse3-3 -p /sbin/ldconfig %postun -n libfuse3-3 -p /sbin/ldconfig %files %license LICENSE GPL2.txt LGPL2.txt %doc AUTHORS ChangeLog.rst %verify(not mode) %attr(4750,root,trusted) %{_bindir}/fusermount3 /sbin/mount.fuse3 %{_sbindir}/mount.fuse3 %config %{_sysconfdir}/fuse3.conf %{_mandir}/man1/fusermount3.1%{?ext_man} %{_mandir}/man8/mount.fuse3.8%{?ext_man} %files -n libfuse3-3 /%{_lib}/libfuse3.so.3* %{_libdir}/libfuse3.so.3* %files doc %doc example doc %files devel %{_libdir}/libfuse3.so %{_includedir}/fuse3/*.h %{_includedir}/fuse3 %{_libdir}/pkgconfig/*.pc %changelog * Thu Jun 11 2020 Ismail Dönmez - Update to version 3.9.2 * Remove obsolete workarounds in examples. * Do not require C++ compiler for building. * Minor bugfixes. - Drop BR on c++_compiler * Fri Mar 20 2020 Ismail Dönmez - Update to version 3.9.1 * Fixed memory leak in fuse_session_new(). * Fixed an issue with the linker version script. * Make ioctl prototype conditional on FUSE_USE_VERSION. Define FUSE_USE_VERSION < 35 to get old ioctl prototype with int commands; define FUSE_USE_VERSION >= 35 to get new ioctl prototype with unsigned int commands. * Various small bugfixes. * Sat Dec 14 2019 Ismail Dönmez - Update to version 3.9.0 * Added support for FUSE_EXPLICIT_INVAL_DATA to enable onl invalidate cached pages on explicit request. * Sun Nov 3 2019 Ismail Dönmez - Update to version 3.8.0 * Added support for FUSE_LSEEK operation which can be used to report holes in sparse files. * Tue Jul 9 2019 Ismail Dönmez - Update to version 3.6.2 * The init script is now installed to /etc/ rather than /usr/local/etc by default. * Minor bugfixes - Drop fuse-install-fix.patch, not needed with -Duseroot=false - Add conf-rename.patch, which is split from the above now removed patch * Thu Jun 20 2019 Martin Liška - Disable LTO due to symbol versioning (boo#1138803). * Thu Jun 13 2019 Ismail Dönmez - Update to version 3.6.1 * Fixed version number (release 3.6.0 was shipped with a declared version of 3.0.0). * Thu Jun 13 2019 Ismail Dönmez - Update to version 3.6.0 * Added a new example (passthrough_hp). The functionality is similar to passthrough_ll, but the implementation focuses on performance and correctness rather than simplicity. * Added support for fuse kernel feature max_pages which allows to increase the maximum number of pages that can be used per request. This feature was introduced in kernel 4.20. max_pages is set based on the value in max_write. By default max_write will be 1MiB now for kernels that support max_pages. If you want smaller buffers or writes you have to set max_write manually. * Wed Apr 17 2019 Paolo Stivanin - Update to 3.5.0: * Changed ioctl commands to "unsigned int" in order to support commands which do not fit into a signed int. Commands issued by applications are still truncated to 32 bits. * Added SMB2 to whitelist (so users can now mount FUSE filesystems on mountpoints within SMB 2.0 filesystems). * Added a new cache_readdir flag to fuse_file_info to enable caching of readdir results. Supported by kernels 4.20 and newer. * Add support and documentation for FUSE_CAP_NO_OPENDIR_SUPPORT. * Tue Mar 19 2019 Jan Engelhardt - Amend License: field with BSD2c, from https://github.com/libfuse/libfuse/commit/4c699e7debd99b178b9574e7dd20f36937ef296e#diff-3f1e2bdc537057b6ac2f74d095a431b8 * Mon Mar 18 2019 Paolo Stivanin - Update to 3.4.2 * The examples/passthrough_ll.c example filesystem has been significantly extended. * Support for copy_file_range has been added. * Build system updates for non-Linux systems. * Fixed a memory leak * Added OpenAFS and HFS+ to whitelist * Docu updates * Thu Nov 29 2018 Jan Engelhardt - Update descriptions. - Do not make documentation mandatory. * Mon Nov 26 2018 Ismail Dönmez - Update to version 3.3.0 * The auto_unmount mode now works correctly in combination with autofs. * The FUSE_CAP_READDIRPLUS_AUTO capability is no longer enabled by default unless the file system defines both a readdir() and a readdirplus() handler. * The description of the FUSE_CAP_READDIRPLUS_AUTO flag has been improved. * Allow open /dev/fuse file descriptors to be passed via mountpoints of the special format /dev/fd/%%u. This allows mounting to be handled by the parent so the FUSE filesystem process can run fully unprivileged. * Add a drop_privileges option to mount.fuse3 which causes it to open /dev/fuse and mount the file system itself, then run the FUSE file filesystem fully unprivileged and unable to re-acquire privilege via setuid, fscaps, etc. * Documented under which conditions the fuse_lowlevel_notify_* functions may block. * The chmod, chown, truncate, utimens and getattr handlers of the high-level API now all receive an additional struct fuse_file_info pointer. There are more API changes, consult https://github.com/libfuse/libfuse/releases/tag/fuse-3.3.0 for details. * Thu Oct 4 2018 Ismail Dönmez - Initial release v3.2.6