initial checkin after separation from fuse package

This commit is contained in:
Dave Dykstra 2019-04-08 13:14:30 -05:00
parent 278309158c
commit f9dd1d3656
7 changed files with 247 additions and 0 deletions

1
.gitignore vendored Normal file
View File

@ -0,0 +1 @@
/fuse-3.4.2.tar.gz

2
fuse.conf Normal file
View File

@ -0,0 +1,2 @@
# mount_max = 1000
# user_allow_other

View File

@ -0,0 +1,19 @@
From: Peter Lemenkov <lemenkov@gmail.com>
Date: Mon, 9 Aug 2010 12:10:40 +0400
Subject: [PATCH] More parentheses
Signed-off-by: Peter Lemenkov <lemenkov@gmail.com>
diff --git a/lib/fuse.c b/lib/fuse.c
index a40e995..479736c 100755
--- a/lib/fuse.c
+++ b/lib/fuse.c
@@ -1759,7 +1759,7 @@ int fuse_fs_open(struct fuse_fs *fs, const char *path,
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",

View File

@ -0,0 +1,29 @@
From: Tom Callaway <spot@fedoraproject.org>
Date: Mon, 25 Mar 2019 15:17:36 -0400
Subject: [PATCH] disable device creation during build/install
diff --git a/util/install_helper.sh b/util/install_helper.sh
index 688b245..8f40a9f 100755
--- a/util/install_helper.sh
+++ b/util/install_helper.sh
@@ -22,18 +22,12 @@ else
DESTDIR="${DESTDIR%/}"
fi
-chown root:root "${DESTDIR}${bindir}/fusermount3"
+# chown root:root "${DESTDIR}${bindir}/fusermount3"
chmod u+s "${DESTDIR}${bindir}/fusermount3"
install -D -m 644 "${MESON_SOURCE_ROOT}/util/fuse.conf" \
"${DESTDIR}${sysconfdir}/fuse.conf"
-
-if test ! -e "${DESTDIR}/dev/fuse"; then
- mkdir -p "${DESTDIR}/dev"
- mknod "${DESTDIR}/dev/fuse" -m 0666 c 10 229
-fi
-
install -D -m 644 "${MESON_SOURCE_ROOT}/util/udev.rules" \
"${DESTDIR}${udevrulesdir}/99-fuse3.rules"

View File

@ -0,0 +1,63 @@
From: Peter Lemenkov <lemenkov@gmail.com>
Date: Wed, 3 Apr 2019 22:43:48 +0200
Subject: [PATCH] Whitelist smb2 (#392)
See also https://bugzilla.redhat.com/1694552#c7
Signed-off-by: Peter Lemenkov <lemenkov@gmail.com>
diff --git a/ChangeLog.rst b/ChangeLog.rst
index 74bd0be..f711b2f 100644
--- a/ChangeLog.rst
+++ b/ChangeLog.rst
@@ -1,3 +1,6 @@
+* Added SMB2 to whitelist (so users can now mount FUSE filesystems
+ on mountpoints within SMB 2.0 filesystems).
+
libfuse 3.4.2 (2019-03-09)
==========================
diff --git a/util/fusermount.c b/util/fusermount.c
index 7f9b7cd..5e0b104 100644
--- a/util/fusermount.c
+++ b/util/fusermount.c
@@ -1012,35 +1012,36 @@ static int check_perm(const char **mntp, struct stat *stbuf, int *mountpoint_fd)
* but got expanded as we found more filesystems that needed to be
* overlayed. */
typeof(fs_buf.f_type) f_type_whitelist[] = {
- 0x5346414f /* OPENAFS_SUPER_MAGIC */,
0x61756673 /* AUFS_SUPER_MAGIC */,
0x00000187 /* AUTOFS_SUPER_MAGIC */,
0xCA451A4E /* BCACHEFS_STATFS_MAGIC */,
0x9123683E /* BTRFS_SUPER_MAGIC */,
0x00C36400 /* CEPH_SUPER_MAGIC */,
0xFF534D42 /* CIFS_MAGIC_NUMBER */,
- 0X00004D44 /* MSDOS_SUPER_MAGIC */,
0x0000F15F /* ECRYPTFS_SUPER_MAGIC */,
0x0000EF53 /* EXT[234]_SUPER_MAGIC */,
0xF2F52010 /* F2FS_SUPER_MAGIC */,
0x65735546 /* FUSE_SUPER_MAGIC */,
0x01161970 /* GFS2_MAGIC */,
0x47504653 /* GPFS_SUPER_MAGIC */,
- 0x3153464A /* JFS_SUPER_MAGIC */,
+ 0x0000482b /* HFSPLUS_SUPER_MAGIC */,
0x000072B6 /* JFFS2_SUPER_MAGIC */,
+ 0x3153464A /* JFS_SUPER_MAGIC */,
0x0BD00BD0 /* LL_SUPER_MAGIC */,
+ 0X00004D44 /* MSDOS_SUPER_MAGIC */,
0x0000564C /* NCP_SUPER_MAGIC */,
0x00006969 /* NFS_SUPER_MAGIC */,
0x00003434 /* NILFS_SUPER_MAGIC */,
0x5346544E /* NTFS_SB_MAGIC */,
+ 0x5346414f /* OPENAFS_SUPER_MAGIC */,
0x794C7630 /* OVERLAYFS_SUPER_MAGIC */,
0x52654973 /* REISERFS_SUPER_MAGIC */,
+ 0xFE534D42 /* SMB2_SUPER_MAGIC */,
0x73717368 /* SQUASHFS_MAGIC */,
0x01021994 /* TMPFS_MAGIC */,
0x24051905 /* UBIFS_SUPER_MAGIC */,
0x58465342 /* XFS_SB_MAGIC */,
0x2FC12FC1 /* ZFS_SUPER_MAGIC */,
- 0x0000482b /* HFSPLUS_SUPER_MAGIC */,
};
for (i = 0; i < sizeof(f_type_whitelist)/sizeof(f_type_whitelist[0]); i++) {
if (f_type_whitelist[i] == fs_buf.f_type)

131
fuse3.spec Normal file
View File

@ -0,0 +1,131 @@
Name: fuse3
Version: 3.4.2
Release: 3%{?dist}
Summary: File System in Userspace (FUSE) v3 utilities
License: GPL+
URL: http://fuse.sf.net
Source0: https://github.com/libfuse/libfuse/archive/fuse-%{version}.tar.gz
Source1: fuse.conf
Patch1: fuse3-0001-More-parentheses.patch
Patch2: fuse3-0002-disable-device-creation-during-build-install.patch
# https://bugzilla.redhat.com/1694552#c7
# https://github.com/libfuse/libfuse/pull/392
# backported for fuse-3.4.2
Patch3: fuse3-0003-Whitelist-smb2-392.patch
BuildRequires: which
Conflicts: filesystem < 3
BuildRequires: libselinux-devel
BuildRequires: meson, ninja-build, gcc
%if ! 0%{?el6} && ! 0%{?el7}
BuildRequires: systemd-udev
%endif
Requires: %{_sysconfdir}/fuse.conf
# fuse-common 3.4.2-2 had the fuse & fuse3 man pages in it
Conflicts: fuse-common <= 3.4.2-2
%description
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) v3 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 v3 libraries.
%package devel
Summary: File System in Userspace (FUSE) v3 devel files
Requires: %{name}-libs = %{version}-%{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 v3 based applications/filesystems.
%if ! 0%{?el6} && ! 0%{?el7}
%package -n fuse-common
Summary: Common files for File System in Userspace (FUSE) v2 and v3
License: GPL+
%description -n fuse-common
Common files for FUSE v2 and FUSE v3.
%endif
%prep
%setup -n libfuse-fuse-%{version}
%patch1 -p1 -b .add_parentheses
%patch2 -p1 -b .nodev
%patch3 -p1 -b .smb2_whitelist
%build
%if ! 0%{?_vpath_srcdir:1}
%global _vpath_srcdir .
%endif
%meson
%meson_build
%install
export MESON_INSTALL_DESTDIR_PREFIX=%{buildroot}/usr %meson_install
find %{buildroot} .
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}/fusermount3
# Get rid of static libs
rm -f %{buildroot}/%{_libdir}/*.a
# No need to create init-script
rm -f %{buildroot}%{_sysconfdir}/init.d/fuse3
%if 0%{?el6} || 0%{?el7}
# This is in the fuse package here
rm -f %{buildroot}%{_sysconfdir}/fuse.conf
%else
# Install config-file
install -p -m 0644 %{SOURCE1} %{buildroot}%{_sysconfdir}
%endif
# Delete pointless udev rules, which do not belong in /etc (brc#748204)
rm -f %{buildroot}/usr/lib/udev/rules.d/99-fuse3.rules
%if 0%{?el6} || 0%{?el7}
%post -p /sbin/ldconfig libs
%postun -p /sbin/ldconfig libs
%else
%ldconfig_scriptlets libs
%endif
%files
%license LICENSE GPL2.txt
%doc AUTHORS ChangeLog.rst README.md
%{_sbindir}/mount.fuse3
%attr(4755,root,root) %{_bindir}/fusermount3
%{_mandir}/man1/*
%{_mandir}/man8/*
%files libs
%license LGPL2.txt
%{_libdir}/libfuse3.so.*
%files devel
%{_libdir}/libfuse3.so
%{_libdir}/pkgconfig/fuse3.pc
%{_includedir}/fuse3/
%if ! 0%{?el6} && ! 0%{?el7}
%files -n fuse-common
%config(noreplace) %{_sysconfdir}/fuse.conf
%endif
%changelog
* Mon Apr 08 2019 Dave Dykstra <dwd@fedoraproject.org> - 3.4.2-3
- Separate out from fuse package

2
sources Normal file
View File

@ -0,0 +1,2 @@
SHA512 (fuse-2.9.9.tar.gz) = 3d82fafd04f2924299bb09d2bb144935fa004a43fb9a6568e2e1cc5a60fded2efa1711029a0d7f12b3e6e4501f7217f2ee3545646d89da8dece083cb390f23e2
SHA512 (fuse-3.4.2.tar.gz) = ba59f261a51803517cf5d131a74455cf3143e80382c9a9612037cbce9941af867d379955417c384fe0b28e31b5a16f9d0ff35337c7e565830767879458c942be