This commit is contained in:
Tom Callaway 2017-03-26 10:40:39 -04:00
parent 74f133fbe7
commit 24dc940606
4 changed files with 177 additions and 38 deletions

1
.gitignore vendored
View File

@ -7,3 +7,4 @@ fuse-2.8.4.tar.gz
/fuse-2.9.3.tar.gz
/fuse-2.9.4.tar.gz
/fuse-2.9.7.tar.gz
/fuse-3.0.0.tar.gz

View File

@ -0,0 +1,13 @@
diff -up libfuse-fuse-3.0.0/lib/fuse.c.parens libfuse-fuse-3.0.0/lib/fuse.c
--- libfuse-fuse-3.0.0/lib/fuse.c.parens 2017-03-21 09:31:31.979537796 -0400
+++ libfuse-fuse-3.0.0/lib/fuse.c 2017-03-21 09:31:42.676250718 -0400
@@ -1653,7 +1653,7 @@ int fuse_fs_open(struct fuse_fs *fs, con
fprintf(stderr, "open flags: 0x%x %s\n", fi->flags,
path);
- err = fs->op.open(path, fi);
+ err = (fs->op.open)(path, fi);
if (fs->debug && !err)
fprintf(stderr, " open[%llu] flags: 0x%x %s\n",
diff -up libfuse-fuse-3.0.0/lib/fuse_lowlevel.c.parens libfuse-fuse-3.0.0/lib/fuse_lowlevel.c

198
fuse.spec
View File

@ -1,111 +1,235 @@
Name: fuse
Version: 2.9.7
Release: 2%{?dist}
Summary: File System in Userspace (FUSE) utilities
%global fuse2ver 2.9.7
%global fuse2sver 2
%global fuse3ver 3.0.0
Group: System Environment/Base
License: GPL+
URL: http://fuse.sf.net
Source0: https://github.com/libfuse/libfuse/archive/%{name}-%{version}.tar.gz
Source1: %{name}.conf
Name: fuse
Version: %{fuse2ver}
Release: 1%{?dist}
Summary: File System in Userspace (FUSE) v2 utilities
License: GPL+
URL: http://fuse.sf.net
#fuse2 sources
Source0: https://github.com/libfuse/libfuse/archive/%{name}-%{fuse2ver}.tar.gz
#fuse3 sources
Source1: https://github.com/libfuse/libfuse/archive/%{name}-%{fuse3ver}.tar.gz
Source2: %{name}.conf
Patch1: fuse-0001-More-parentheses.patch
Patch1: fuse-3.0.0-More-parentheses.patch
Patch2: fuse-0001-More-parentheses.patch
# https://bugzilla.redhat.com/show_bug.cgi?id=970768
Patch2: fuse-2.9.2-namespace-conflict-fix.patch
Requires: which
Conflicts: filesystem < 3
BuildRequires: libselinux-devel
Patch3: fuse-2.9.2-namespace-conflict-fix.patch
Requires: which
Conflicts: filesystem < 3
BuildRequires: libselinux-devel
BuildRequires: autoconf, automake, libtool, gettext-devel
Requires: fuse-common = %{fuse3ver}
%description
With FUSE it is possible to implement a fully functional filesystem in a
userspace program. This package contains the FUSE userspace tools to
userspace program. This package contains the FUSE v2 userspace tools to
mount a FUSE filesystem.
%package -n fuse3
Version: %{fuse3ver}
Summary: File System in Userspace (FUSE) v3 utilitie
Requires: fuse-common = %{fuse3ver}
%description -n fuse3
With FUSE it is possible to implement a fully functional filesystem in a
userspace program. This package contains the FUSE v3 userspace tools to
mount a FUSE filesystem.
%package libs
Summary: File System in Userspace (FUSE) libraries
Group: System Environment/Libraries
License: LGPLv2+
Conflicts: filesystem < 3
Version: %{fuse2ver}
Summary: File System in Userspace (FUSE) v2 libraries
Group: System Environment/Libraries
License: LGPLv2+
Conflicts: filesystem < 3
%description libs
Devel With FUSE it is possible to implement a fully functional filesystem in a
userspace program. This package contains the FUSE libraries.
userspace program. This package contains the FUSE v2 libraries.
%package -n fuse3-libs
Version: %{fuse3ver}
Summary: File System in Userspace (FUSE) v3 libraries
Group: System Environment/Libraries
License: LGPLv2+
Conflicts: filesystem < 3
%description -n fuse3-libs
Devel With FUSE it is possible to implement a fully functional filesystem in a
userspace program. This package contains the FUSE v3 libraries.
%package devel
Summary: File System in Userspace (FUSE) devel files
Group: Development/Libraries
Requires: %{name}-libs = %{version}-%{release}
Requires: pkgconfig
License: LGPLv2+
Conflicts: filesystem < 3
Version: %{fuse2ver}
Summary: File System in Userspace (FUSE) v2 devel files
Group: Development/Libraries
Requires: %{name}-libs = %{fuse2ver}-%{release}
Requires: pkgconfig
License: LGPLv2+
Conflicts: filesystem < 3
%description devel
With FUSE it is possible to implement a fully functional filesystem in a
userspace program. This package contains development files (headers,
pgk-config) to develop FUSE based applications/filesystems.
pgk-config) to develop FUSE v2 based applications/filesystems.
%package -n fuse3-devel
Version: %{fuse3ver}
Summary: File System in Userspace (FUSE) v3 devel files
Group: Development/Libraries
Requires: %{name}3-libs = %{fuse3ver}-%{release}
Requires: pkgconfig
License: LGPLv2+
Conflicts: filesystem < 3
%description -n fuse3-devel
With FUSE it is possible to implement a fully functional filesystem in a
userspace program. This package contains development files (headers,
pgk-config) to develop FUSE v3 based applications/filesystems.
%package common
Version: %{fuse3ver}
Summary: Common files for File System in Userspace (FUSE) v2 and v3
License: GPL+
%description common
Common files for FUSE v2 and FUSE v3.
%prep
%setup -q -n lib%{name}-%{name}-%{version}
%setup -q -T -c -n fuse2and3 -a0 -a1
# fuse 3
pushd lib%{name}-%{name}-%{fuse3ver}
./makeconf.sh
#disable device creation during build/install
sed -i 's|mknod|echo Disabled: mknod |g' util/Makefile.in
%patch1 -p1 -b .add_parentheses
%patch2 -p1 -b .conflictfix
popd
# fuse 2
pushd lib%{name}-%{name}-%{fuse2ver}
./makeconf.sh
#disable device creation during build/install
sed -i 's|mknod|echo Disabled: mknod |g' util/Makefile.in
%patch2 -p1 -b .add_parentheses
%patch3 -p1 -b .conflictfix
popd
%build
# fuse 3
pushd lib%{name}-%{name}-%{fuse3ver}
# Can't pass --disable-static here, or else the utils don't build
export MOUNT_FUSE_PATH="%{_sbindir}"
CFLAGS="%{optflags} -D_GNU_SOURCE" %configure
make %{?_smp_mflags}
popd
# fuse 2
pushd lib%{name}-%{name}-%{fuse2ver}
# Can't pass --disable-static here, or else the utils don't build
export MOUNT_FUSE_PATH="%{_sbindir}"
CFLAGS="%{optflags} -D_GNU_SOURCE" %configure
make %{?_smp_mflags}
popd
%install
# fuse 3
pushd lib%{name}-%{name}-%{fuse3ver}
make install DESTDIR=%{buildroot}
popd
find %{buildroot} -type f -name "*.la" -exec rm -f {} ';'
# change from 4755 to 0755 to allow stripping -- fixed later in files
chmod 0755 %{buildroot}/%{_bindir}/fusermount
chmod 0755 %{buildroot}/%{_bindir}/fusermount3
# fuse 2
pushd lib%{name}-%{name}-%{fuse2ver}
install -m 0755 lib/.libs/libfuse.so.%{fuse2ver} %{buildroot}/%{_libdir}
install -m 0755 lib/.libs/libulockmgr.so.1.0.1 %{buildroot}/%{_libdir}
install -p fuse.pc %{buildroot}/%{_libdir}/pkgconfig/
install -m 0755 util/fusermount %{buildroot}/%{_bindir}
install -m 0755 util/mount.fuse %{buildroot}/%{_sbindir}
install -m 0755 util/ulockmgr_server %{buildroot}/%{_bindir}
mkdir -p %{buildroot}/%{_includedir}/fuse
install -p include/old/fuse.h %{buildroot}/%{_includedir}/
install -p include/ulockmgr.h %{buildroot}/%{_includedir}/
for i in cuse_lowlevel.h fuse_common_compat.h fuse_common.h fuse_compat.h fuse.h fuse_lowlevel_compat.h fuse_lowlevel.h fuse_opt.h; do
install -p include/$i %{buildroot}/%{_includedir}/fuse/
done
popd
pushd %{buildroot}/%{_libdir}
ln -s libfuse.so.%{fuse2ver} libfuse.so.%{fuse2sver}
ln -s libfuse.so.%{fuse2ver} libfuse.so
ln -s libulockmgr.so.1.0.1 libulockmgr.so.1
ln -s libulockmgr.so.1.0.1 libulockmgr.so
popd
# Get rid of static libs
rm -f %{buildroot}/%{_libdir}/*.a
# No need to create init-script
rm -f %{buildroot}%{_sysconfdir}/init.d/fuse
rm -f %{buildroot}%{_sysconfdir}/init.d/fuse3
# Install config-file
install -p -m 0644 %{SOURCE1} %{buildroot}%{_sysconfdir}
install -p -m 0644 %{SOURCE2} %{buildroot}%{_sysconfdir}
# Delete pointless udev rules, which do not belong in /etc (brc#748204)
rm -f %{buildroot}%{_sysconfdir}/udev/rules.d/99-fuse.rules
rm -f %{buildroot}%{_libdir}/udev/rules.d/99-fuse3.rules
%post libs -p /sbin/ldconfig
%post -n fuse3-libs -p /sbin/ldconfig
%postun libs -p /sbin/ldconfig
%postun -n fuse3-libs -p /sbin/ldconfig
%files
%license COPYING
%doc AUTHORS ChangeLog NEWS README.md README.NFS
%license libfuse-fuse-%{fuse2ver}/COPYING
%doc libfuse-fuse-%{fuse2ver}/AUTHORS libfuse-fuse-%{fuse2ver}/ChangeLog libfuse-fuse-%{fuse2ver}/NEWS libfuse-fuse-%{fuse2ver}/README.md libfuse-fuse-%{fuse2ver}/README.NFS
%{_sbindir}/mount.fuse
%attr(4755,root,root) %{_bindir}/fusermount
%{_bindir}/ulockmgr_server
%files -n fuse3
%license libfuse-fuse-%{fuse3ver}/COPYING
%doc libfuse-fuse-%{fuse3ver}/AUTHORS libfuse-fuse-%{fuse3ver}/ChangeLog.rst libfuse-fuse-%{fuse3ver}/README.md
%{_sbindir}/mount.fuse3
%attr(4755,root,root) %{_bindir}/fusermount3
%files common
%config(noreplace) %{_sysconfdir}/%{name}.conf
%{_mandir}/man1/*
%{_mandir}/man8/*
%files libs
%license COPYING.LIB
%license libfuse-fuse-%{fuse2ver}/COPYING.LIB
%{_libdir}/libfuse.so.*
%{_libdir}/libulockmgr.so.*
%files -n fuse3-libs
%license libfuse-fuse-%{fuse3ver}/COPYING.LIB
%{_libdir}/libfuse3.so.*
%files devel
%{_libdir}/libfuse.so
%{_libdir}/libulockmgr.so
%{_libdir}/pkgconfig/*.pc
%{_libdir}/pkgconfig/fuse.pc
%{_includedir}/fuse.h
%{_includedir}/ulockmgr.h
%{_includedir}/fuse
%files -n fuse3-devel
%{_libdir}/libfuse3.so
%{_libdir}/pkgconfig/fuse3.pc
%{_includedir}/fuse3/
%changelog
* Tue Mar 21 2017 Tom Callaway <spot@fedoraproject.org> - 3.0.0-1
- update to 3.0.0
- split out fuse3 packages
* Fri Feb 10 2017 Fedora Release Engineering <releng@fedoraproject.org> - 2.9.7-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild

View File

@ -1 +1,2 @@
91c97e5ae0a40312115dfecc4887bd9d fuse-2.9.7.tar.gz
SHA512 (fuse-2.9.7.tar.gz) = 960a576352663cfb730abd0020103c45f6fd8873d08ca40565a61421a7a80c110b31e88db5f45fc7e3d5e8b7a16a9e973483eda42c58c430dfb0599bc952800b
SHA512 (fuse-3.0.0.tar.gz) = c13874da7906b4b01030c2a0b185db0d87d5097b59395534f6a893edf6ddd88f4ddb6bda613c4a3076e5e2ca627600039aa45ea749c1ae1ee0fa3abdb5cae2b1