Version 2017.3.23AR.4
parent
b9ad82ced7
commit
5985c31665
|
|
@ -4,3 +4,6 @@ Detailed ChangeLog can be found at
|
||||||
|
|
||||||
The changes and history may also be found on the source repository :
|
The changes and history may also be found on the source repository :
|
||||||
http://sourceforge.net/p/ntfs-3g/ntfs-3g/ci/edge/tree/
|
http://sourceforge.net/p/ntfs-3g/ntfs-3g/ci/edge/tree/
|
||||||
|
|
||||||
|
The ChangeLog specific to the advanced version is available on
|
||||||
|
http://jp-andre.pagesperso-orange.fr/changelog.html
|
||||||
|
|
|
||||||
29
README
29
README
|
|
@ -23,6 +23,10 @@ advanced features, please get the instructions from
|
||||||
|
|
||||||
http://www.tuxera.com/community/ntfs-3g-advanced/
|
http://www.tuxera.com/community/ntfs-3g-advanced/
|
||||||
|
|
||||||
|
This specific version has support for new features as described in
|
||||||
|
|
||||||
|
http://jp-andre.pagesperso-orange.fr/ntfs-3g.html
|
||||||
|
|
||||||
News, support answers, problem submission instructions, support and discussion
|
News, support answers, problem submission instructions, support and discussion
|
||||||
forums, performance numbers and other information are available on the project
|
forums, performance numbers and other information are available on the project
|
||||||
web site at
|
web site at
|
||||||
|
|
@ -73,7 +77,11 @@ There are also a few make targets for building parts :
|
||||||
make drivers : only build drivers and libraries, without ntfsprogs
|
make drivers : only build drivers and libraries, without ntfsprogs
|
||||||
make ntfsprogs : only build ntfsprogs and libntfs-3g, without drivers
|
make ntfsprogs : only build ntfsprogs and libntfs-3g, without drivers
|
||||||
|
|
||||||
Non-Linux: Please see
|
Solaris and OpenIndiana: Please see
|
||||||
|
|
||||||
|
http://jp-andre.pagesperso-orange.fr/openindiana-ntfs-3g.html
|
||||||
|
|
||||||
|
Other: Please see
|
||||||
|
|
||||||
http://www.tuxera.com/community/ntfs-3g-download/
|
http://www.tuxera.com/community/ntfs-3g-download/
|
||||||
|
|
||||||
|
|
@ -118,6 +126,25 @@ And, to end the test, unmount the usual way :
|
||||||
umount /dev/sda1
|
umount /dev/sda1
|
||||||
|
|
||||||
|
|
||||||
|
PRELINKED BINARY VERSION
|
||||||
|
========================
|
||||||
|
|
||||||
|
Statically prelinked versions for X86 are compiled with gcc 4.1.2 and
|
||||||
|
prepared as an upgrade to the ntfs-3g shipped with the live-CD Knoppix 5.1.1.
|
||||||
|
The statically prelinked versions for Sparc are compiled with gcc 4.0.0.
|
||||||
|
Both are restricting to using glibc 2.3.2 and should be usable on
|
||||||
|
virtually any configuration since kernel 2.6.20 having a fuse kernel
|
||||||
|
module (fuse.ko) installed.
|
||||||
|
|
||||||
|
They can be used like ordinary versions. Just copy the appropriate
|
||||||
|
executable file into a readable directory, set the executable flags and
|
||||||
|
start as root with the mount arguments :
|
||||||
|
|
||||||
|
linked-ntfs-3g /dev/sda1 /mnt/windows
|
||||||
|
or
|
||||||
|
sparc-ntfs-3g /dev/sda1 /mnt/windows
|
||||||
|
|
||||||
|
|
||||||
NTFS UTILITIES
|
NTFS UTILITIES
|
||||||
==============
|
==============
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -24,8 +24,8 @@
|
||||||
|
|
||||||
# Autoconf
|
# Autoconf
|
||||||
AC_PREREQ(2.59)
|
AC_PREREQ(2.59)
|
||||||
AC_INIT([ntfs-3g],[2017.3.23],[ntfs-3g-devel@lists.sf.net])
|
AC_INIT([ntfs-3g],[2017.3.23AR.4],[ntfs-3g-devel@lists.sf.net])
|
||||||
LIBNTFS_3G_VERSION="88"
|
LIBNTFS_3G_VERSION="884"
|
||||||
AC_CONFIG_SRCDIR([src/ntfs-3g.c])
|
AC_CONFIG_SRCDIR([src/ntfs-3g.c])
|
||||||
|
|
||||||
# Environment
|
# Environment
|
||||||
|
|
@ -33,7 +33,7 @@ AC_CANONICAL_HOST
|
||||||
AC_CANONICAL_TARGET
|
AC_CANONICAL_TARGET
|
||||||
|
|
||||||
# Automake
|
# Automake
|
||||||
AM_INIT_AUTOMAKE([${PACKAGE_NAME}], [${PACKAGE_VERSION}])
|
AM_INIT_AUTOMAKE()
|
||||||
AC_CONFIG_HEADERS([config.h])
|
AC_CONFIG_HEADERS([config.h])
|
||||||
AC_CONFIG_MACRO_DIR([m4])
|
AC_CONFIG_MACRO_DIR([m4])
|
||||||
AM_MAINTAINER_MODE
|
AM_MAINTAINER_MODE
|
||||||
|
|
@ -497,7 +497,7 @@ AC_C_BIGENDIAN(
|
||||||
]
|
]
|
||||||
,
|
,
|
||||||
)
|
)
|
||||||
AC_C_CONST
|
# AC_C_CONST
|
||||||
AC_C_INLINE
|
AC_C_INLINE
|
||||||
AC_TYPE_OFF_T
|
AC_TYPE_OFF_T
|
||||||
AC_TYPE_SIZE_T
|
AC_TYPE_SIZE_T
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,581 @@
|
||||||
|
# Pass --with externalfuse to compile against system fuse lib
|
||||||
|
# Default is internal fuse-lite.
|
||||||
|
%define with_externalfuse %{?_with_externalfuse:1}%{!?_with_externalfuse:0}
|
||||||
|
|
||||||
|
# For release candidates
|
||||||
|
# %%global subver -RC
|
||||||
|
|
||||||
|
%global oldrhel 0
|
||||||
|
|
||||||
|
%if 0%{?rhel}
|
||||||
|
%if 0%{?rhel} < 7
|
||||||
|
%global oldrhel 1
|
||||||
|
%endif
|
||||||
|
%endif
|
||||||
|
|
||||||
|
Name: ntfs-3g
|
||||||
|
Summary: Linux NTFS userspace driver
|
||||||
|
Version: 2017.3.23AR.4
|
||||||
|
Release: 1.el7
|
||||||
|
License: GPLv2+
|
||||||
|
Group: System Environment/Base
|
||||||
|
Source0: http://jp-andre.pagesperso-orange.fr/%{name}_ntfsprogs-%{version}%{?subver}.tgz
|
||||||
|
%if %{oldrhel}
|
||||||
|
Source1: 20-ntfs-config-write-policy.fdi
|
||||||
|
%endif
|
||||||
|
URL: http://jp-andre.pagesperso-orange.fr
|
||||||
|
%if %{with_externalfuse}
|
||||||
|
BuildRequires: fuse-devel
|
||||||
|
Requires: fuse
|
||||||
|
%endif
|
||||||
|
BuildRequires: libtool, libattr-devel
|
||||||
|
# ntfsprogs BuildRequires
|
||||||
|
BuildRequires: libconfig-devel, libuuid-devel
|
||||||
|
Epoch: 2
|
||||||
|
Provides: ntfsprogs-fuse = %{epoch}:%{version}-%{release}
|
||||||
|
Obsoletes: ntfsprogs-fuse
|
||||||
|
Provides: fuse-ntfs-3g = %{epoch}:%{version}-%{release}
|
||||||
|
|
||||||
|
%description
|
||||||
|
NTFS-3G is a stable, open source, GPL licensed, POSIX, read/write NTFS
|
||||||
|
driver for Linux and many other operating systems. It provides safe
|
||||||
|
handling of the Windows XP, Windows Server 2003, Windows 2000, Windows
|
||||||
|
Vista, Windows Server 2008 and Windows 7 NTFS file systems. NTFS-3G can
|
||||||
|
create, remove, rename, move files, directories, hard links, and streams;
|
||||||
|
it can read and write normal and transparently compressed files, including
|
||||||
|
streams and sparse files; it can handle special files like symbolic links,
|
||||||
|
devices, and FIFOs, ACL, extended attributes; moreover it provides full
|
||||||
|
file access right and ownership support.
|
||||||
|
|
||||||
|
%package devel
|
||||||
|
Summary: Development files and libraries for ntfs-3g
|
||||||
|
Group: Development/Libraries
|
||||||
|
Requires: %{name} = %{epoch}:%{version}-%{release}
|
||||||
|
Requires: pkgconfig
|
||||||
|
Provides: ntfsprogs-devel = %{epoch}:%{version}-%{release}
|
||||||
|
# ntfsprogs-2.0.0-17 was never built. 2.0.0-16 was the last build for that
|
||||||
|
# standalone package.
|
||||||
|
Obsoletes: ntfsprogs-devel < 2.0.0-17
|
||||||
|
|
||||||
|
%description devel
|
||||||
|
Headers and libraries for developing applications that use ntfs-3g
|
||||||
|
functionality.
|
||||||
|
|
||||||
|
%package -n ntfsprogs
|
||||||
|
Summary: NTFS filesystem libraries and utilities
|
||||||
|
Group: System Environment/Base
|
||||||
|
# We don't really provide this. This code is dead and buried now.
|
||||||
|
Provides: ntfsprogs-gnomevfs = %{epoch}:%{version}-%{release}
|
||||||
|
Obsoletes: ntfsprogs-gnomevfs
|
||||||
|
# Needed to fix multilib issue
|
||||||
|
# ntfsprogs-2.0.0-17 was never built. 2.0.0-16 was the last build for that
|
||||||
|
# standalone package.
|
||||||
|
Obsoletes: ntfsprogs < 2.0.0-17
|
||||||
|
|
||||||
|
%description -n ntfsprogs
|
||||||
|
The ntfsprogs package currently consists of a library and utilities such as
|
||||||
|
mkntfs, ntfscat, ntfsls, ntfsresize, and ntfsundelete (for a full list of
|
||||||
|
included utilities see man 8 ntfsprogs after installation).
|
||||||
|
|
||||||
|
%prep
|
||||||
|
%setup -q -n %{name}_ntfsprogs-%{version}%{?subver}
|
||||||
|
|
||||||
|
%build
|
||||||
|
CFLAGS="$RPM_OPT_FLAGS -D_FILE_OFFSET_BITS=64"
|
||||||
|
%configure \
|
||||||
|
--disable-static \
|
||||||
|
--disable-ldconfig \
|
||||||
|
%if 0%{?_with_externalfuse:1}
|
||||||
|
--with-fuse=external \
|
||||||
|
%endif
|
||||||
|
--exec-prefix=/ \
|
||||||
|
%if %{oldrhel}
|
||||||
|
--bindir=/bin \
|
||||||
|
--sbindir=/sbin \
|
||||||
|
--libdir=/%{_lib} \
|
||||||
|
%endif
|
||||||
|
--enable-crypto \
|
||||||
|
--enable-extras
|
||||||
|
make %{?_smp_mflags} LIBTOOL=%{_bindir}/libtool
|
||||||
|
|
||||||
|
%install
|
||||||
|
make LIBTOOL=%{_bindir}/libtool DESTDIR=%{buildroot} install
|
||||||
|
%if %{oldrhel}
|
||||||
|
rm -rf %{buildroot}/%{_lib}/*.la
|
||||||
|
rm -rf %{buildroot}/%{_lib}/*.a
|
||||||
|
%else
|
||||||
|
rm -rf %{buildroot}%{_libdir}/*.la
|
||||||
|
rm -rf %{buildroot}%{_libdir}/*.a
|
||||||
|
%endif
|
||||||
|
|
||||||
|
%if %{oldrhel}
|
||||||
|
rm -rf %{buildroot}/sbin/mount.ntfs-3g
|
||||||
|
cp -a %{buildroot}/bin/ntfs-3g %{buildroot}/sbin/mount.ntfs-3g
|
||||||
|
%else
|
||||||
|
rm -rf %{buildroot}/%{_sbindir}/mount.ntfs-3g
|
||||||
|
cp -a %{buildroot}/%{_bindir}/ntfs-3g %{buildroot}/%{_sbindir}/mount.ntfs-3g
|
||||||
|
%endif
|
||||||
|
|
||||||
|
# Actually make some symlinks for simplicity...
|
||||||
|
# ... since we're obsoleting ntfsprogs-fuse
|
||||||
|
%if %{oldrhel}
|
||||||
|
pushd %{buildroot}/bin
|
||||||
|
ln -s ntfs-3g ntfsmount
|
||||||
|
popd
|
||||||
|
pushd %{buildroot}/sbin
|
||||||
|
%else
|
||||||
|
pushd %{buildroot}/%{_bindir}
|
||||||
|
ln -s ntfs-3g ntfsmount
|
||||||
|
popd
|
||||||
|
pushd %{buildroot}/%{_sbindir}
|
||||||
|
%endif
|
||||||
|
ln -s mount.ntfs-3g mount.ntfs-fuse
|
||||||
|
# And since there is no other package in Fedora that provides an ntfs
|
||||||
|
# mount...
|
||||||
|
ln -s mount.ntfs-3g mount.ntfs
|
||||||
|
popd
|
||||||
|
|
||||||
|
%if %{oldrhel}
|
||||||
|
# Compat symlinks
|
||||||
|
mkdir -p %{buildroot}%{_bindir}
|
||||||
|
pushd %{buildroot}%{_bindir}
|
||||||
|
ln -s /bin/ntfs-3g ntfs-3g
|
||||||
|
ln -s /bin/ntfsmount ntfsmount
|
||||||
|
popd
|
||||||
|
|
||||||
|
# Put the .pc file in the right place.
|
||||||
|
mkdir -p %{buildroot}%{_libdir}/pkgconfig/
|
||||||
|
mv %{buildroot}/%{_lib}/pkgconfig/libntfs-3g.pc %{buildroot}%{_libdir}/pkgconfig/
|
||||||
|
%else
|
||||||
|
mv %{buildroot}/sbin/* %{buildroot}/%{_sbindir}
|
||||||
|
rmdir %{buildroot}/sbin
|
||||||
|
%endif
|
||||||
|
|
||||||
|
# We get this on our own, thanks.
|
||||||
|
rm -rf %{buildroot}%{_defaultdocdir}/%{name}/README
|
||||||
|
|
||||||
|
%if %{oldrhel}
|
||||||
|
mkdir -p %{buildroot}%{_datadir}/hal/fdi/policy/10osvendor/
|
||||||
|
cp -a %{SOURCE1} %{buildroot}%{_datadir}/hal/fdi/policy/10osvendor/
|
||||||
|
%endif
|
||||||
|
|
||||||
|
%post -p /sbin/ldconfig
|
||||||
|
%postun -p /sbin/ldconfig
|
||||||
|
|
||||||
|
%files
|
||||||
|
%doc AUTHORS ChangeLog COPYING COPYING.LIB CREDITS NEWS README
|
||||||
|
%if %{oldrhel}
|
||||||
|
/sbin/mount.ntfs
|
||||||
|
/sbin/mount.ntfs-3g
|
||||||
|
/sbin/mount.ntfs-fuse
|
||||||
|
/sbin/mount.lowntfs-3g
|
||||||
|
/bin/ntfs-3g
|
||||||
|
/bin/ntfsmount
|
||||||
|
#compat symlinks
|
||||||
|
%else
|
||||||
|
%{_sbindir}/mount.ntfs
|
||||||
|
%{_sbindir}/mount.ntfs-3g
|
||||||
|
%{_sbindir}/mount.ntfs-fuse
|
||||||
|
%{_sbindir}/mount.lowntfs-3g
|
||||||
|
%endif
|
||||||
|
%if %{oldrhel}
|
||||||
|
/bin/ntfs-3g.probe
|
||||||
|
/bin/lowntfs-3g
|
||||||
|
%else
|
||||||
|
%{_bindir}/ntfs-3g.probe
|
||||||
|
%{_bindir}/lowntfs-3g
|
||||||
|
%{_bindir}/ntfs-3g
|
||||||
|
%{_bindir}/ntfsmount
|
||||||
|
%endif
|
||||||
|
%if %{oldrhel}
|
||||||
|
/%{_lib}/libntfs-3g.so.*
|
||||||
|
/%{_lib}/ntfs-3g
|
||||||
|
%else
|
||||||
|
%{_libdir}/libntfs-3g.so.*
|
||||||
|
%{_libdir}/ntfs-3g
|
||||||
|
%endif
|
||||||
|
%{_mandir}/man8/mount.lowntfs-3g.*
|
||||||
|
%{_mandir}/man8/mount.ntfs-3g.*
|
||||||
|
%{_mandir}/man8/ntfs-3g*
|
||||||
|
%if %{oldrhel}
|
||||||
|
%{_datadir}/hal/fdi/policy/10osvendor/20-ntfs-config-write-policy.fdi
|
||||||
|
%endif
|
||||||
|
|
||||||
|
%files devel
|
||||||
|
%{_includedir}/ntfs-3g/
|
||||||
|
%if %{oldrhel}
|
||||||
|
/%{_lib}/libntfs-3g.so
|
||||||
|
%else
|
||||||
|
%{_libdir}/libntfs-3g.so
|
||||||
|
%endif
|
||||||
|
%{_libdir}/pkgconfig/libntfs-3g.pc
|
||||||
|
|
||||||
|
%files -n ntfsprogs
|
||||||
|
%doc AUTHORS COPYING COPYING.LIB CREDITS ChangeLog NEWS README
|
||||||
|
%if %{oldrhel}
|
||||||
|
/bin/ntfscat
|
||||||
|
/bin/ntfscluster
|
||||||
|
/bin/ntfscmp
|
||||||
|
/bin/ntfsfix
|
||||||
|
/bin/ntfsinfo
|
||||||
|
/bin/ntfsls
|
||||||
|
%else
|
||||||
|
%{_bindir}/ntfscat
|
||||||
|
%{_bindir}/ntfscluster
|
||||||
|
%{_bindir}/ntfscmp
|
||||||
|
%{_bindir}/ntfsfix
|
||||||
|
%{_bindir}/ntfsinfo
|
||||||
|
%{_bindir}/ntfsls
|
||||||
|
%endif
|
||||||
|
%if %{oldrhel}
|
||||||
|
/bin/ntfsdecrypt
|
||||||
|
/bin/ntfstruncate
|
||||||
|
/bin/ntfswipe
|
||||||
|
/sbin/fsck.ntfs
|
||||||
|
/sbin/mkfs.ntfs
|
||||||
|
/sbin/mkntfs
|
||||||
|
/sbin/ntfsclone
|
||||||
|
/sbin/ntfscp
|
||||||
|
/sbin/ntfslabel
|
||||||
|
/sbin/ntfsresize
|
||||||
|
/sbin/ntfsundelete
|
||||||
|
%else
|
||||||
|
%{_bindir}/ntfsdecrypt
|
||||||
|
%{_bindir}/ntfsrecover
|
||||||
|
%{_bindir}/ntfssecaudit
|
||||||
|
%{_bindir}/ntfstruncate
|
||||||
|
%{_bindir}/ntfsusermap
|
||||||
|
%{_bindir}/ntfswipe
|
||||||
|
%{_sbindir}/mkfs.ntfs
|
||||||
|
%{_sbindir}/mkntfs
|
||||||
|
%{_sbindir}/ntfsclone
|
||||||
|
%{_sbindir}/ntfscp
|
||||||
|
%{_sbindir}/ntfslabel
|
||||||
|
%{_sbindir}/ntfsresize
|
||||||
|
%{_sbindir}/ntfsundelete
|
||||||
|
%endif
|
||||||
|
%{_mandir}/man8/mkntfs.8*
|
||||||
|
%{_mandir}/man8/mkfs.ntfs.8*
|
||||||
|
%{_mandir}/man8/ntfs[^m][^o]*.8*
|
||||||
|
%exclude %{_mandir}/man8/ntfs-3g*
|
||||||
|
|
||||||
|
%changelog
|
||||||
|
* Fri Mar 1 2019 Jean-Pierre Andre 2017.3.23AR.4
|
||||||
|
- adapted to advanced ntfs-3g and basic ntfsprogs
|
||||||
|
|
||||||
|
* Wed Jun 17 2015 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 2:2015.3.14-3
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild
|
||||||
|
|
||||||
|
* Fri May 22 2015 Tom Callaway <spot@fedoraproject.org> 2:2015.3.14-2
|
||||||
|
- fix CVE-2015-3202
|
||||||
|
|
||||||
|
* Tue Apr 7 2015 Tom Callaway <spot@fedoraproject.org> 2:2015.3.14-1
|
||||||
|
- update to 2015.3.14
|
||||||
|
|
||||||
|
* Sat Feb 21 2015 Till Maas <opensource@till.name> - 2:2014.2.15-8
|
||||||
|
- Rebuilt for Fedora 23 Change
|
||||||
|
https://fedoraproject.org/wiki/Changes/Harden_all_packages_with_position-independent_code
|
||||||
|
|
||||||
|
* Tue Jan 13 2015 Tom Callaway <spot@fedoraproject.org> - 2:2014.2.15-7
|
||||||
|
- add patch to ignore -s option
|
||||||
|
|
||||||
|
* Sun Aug 17 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 2:2014.2.15-6
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild
|
||||||
|
|
||||||
|
* Tue Aug 5 2014 Richard W.M. Jones <rjones@redhat.com> - 2:2014.2.15-5
|
||||||
|
- Add upstream patch to fix fstrim so it works on partitions as well
|
||||||
|
as whole disks.
|
||||||
|
|
||||||
|
* Thu Jul 31 2014 Richard W.M. Jones <rjones@redhat.com> - 2:2014.2.15-4
|
||||||
|
- Upstream patches which add fstrim support.
|
||||||
|
|
||||||
|
* Sat Jun 07 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 2:2014.2.15-3
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild
|
||||||
|
|
||||||
|
* Thu Apr 24 2014 Tomáš Mráz <tmraz@redhat.com> - 2:2014.2.15-2
|
||||||
|
- Rebuild for new libgcrypt
|
||||||
|
|
||||||
|
* Wed Feb 26 2014 Tom Callaway <spot@fedoraproject.org> 2:2014.2.15-1
|
||||||
|
- update to 2014.2.15
|
||||||
|
|
||||||
|
* Sat Aug 03 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 2:2013.1.13-6
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild
|
||||||
|
|
||||||
|
* Tue May 28 2013 Tom Callaway <spot@fedoraproject.org> - 2:2013.1.13-5
|
||||||
|
- fix bug preventing reads on compressed files on windows 8 partitions (bz967301)
|
||||||
|
|
||||||
|
* Mon May 6 2013 Tom Callaway <spot@fedoraproject.org> - 2:2013.1.13-4
|
||||||
|
- apply fixes from upstream for issue with 4K sector drives (bz951603)
|
||||||
|
and truncated check for Interix types on a 32-bit CPU (bz958681)
|
||||||
|
|
||||||
|
* Thu Feb 7 2013 Tom Callaway <spot@fedoraproject.org> - 2:2013.1.13-3
|
||||||
|
- drop redundant manpages from ntfsprogs subpackage
|
||||||
|
|
||||||
|
* Thu Jan 31 2013 Tom Callaway <spot@fedoraproject.org> - 2:2013.1.13-2
|
||||||
|
- drop hal files, since hal is very dead
|
||||||
|
|
||||||
|
* Tue Jan 22 2013 Richard W.M. Jones <rjones@redhat.com> - 2:2013.1.13-1
|
||||||
|
- New upstream version 2013.1.13 (RHBZ#902729).
|
||||||
|
- Drop ntfs-3g-junction-point-fix.patch (now upstream).
|
||||||
|
- Drop Windows 8 patches x 2 (both now upstream).
|
||||||
|
- Remove obsolete patches from Fedora git repository.
|
||||||
|
- Fix .gitignore file.
|
||||||
|
|
||||||
|
* Mon Oct 15 2012 Tom Callaway <spot@fedoraproject.org> - 2:2012.1.15-5
|
||||||
|
- Limit obsoletes to last ntfsprogs-* versions ( < 2.0.0-17 ) to
|
||||||
|
minimize yum churn (where it would obsolete itself on every upgrade)
|
||||||
|
BZ#863641
|
||||||
|
|
||||||
|
* Thu Oct 4 2012 Tom Callaway <spot@fedoraproject.org> - 2:2012.1.15-4
|
||||||
|
- add patches from upstream git to add a level of safety in the case where windows 8
|
||||||
|
leaves the NTFS filesystem in an unsafe state and Linux access could result in data loss.
|
||||||
|
Basically, with these patches, Linux will refuse to mount the ntfs partition. For the details
|
||||||
|
refer to: https://bugzilla.redhat.com/show_bug.cgi?id=859373
|
||||||
|
|
||||||
|
* Sun Aug 19 2012 Tom Callaway <spot@fedoraproject.org> - 2:2012.1.15-3
|
||||||
|
- apply upstream fix for junction points (bz849332)
|
||||||
|
|
||||||
|
* Fri Jul 20 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 2:2012.1.15-2
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild
|
||||||
|
|
||||||
|
* Fri Feb 10 2012 Tom Callaway <spot@fedoraproject.org> 2:2012.1.15-1
|
||||||
|
- update to 2012.1.15
|
||||||
|
|
||||||
|
* Wed Feb 1 2012 Kay Sievers <kay@redhat.com> 2:2011.10.9-3
|
||||||
|
- install everything in /usr
|
||||||
|
https://fedoraproject.org/wiki/Features/UsrMove
|
||||||
|
|
||||||
|
* Fri Jan 13 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 2:2011.10.9-2
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild
|
||||||
|
|
||||||
|
* Tue Oct 11 2011 Tom Callaway <spot@fedoraproject.org> - 2:2011.10.9-1
|
||||||
|
- 2011.10.9-RC
|
||||||
|
- patch ntfsck to return 0 instead of 1 on unsupported filesystem cases
|
||||||
|
|
||||||
|
* Mon Sep 12 2011 Tom Callaway <spot@fedoraproject.org> - 2:2011.4.12-5
|
||||||
|
- fix ntfsck symlink (thanks to Chris Smart for catching it)
|
||||||
|
|
||||||
|
* Wed Sep 7 2011 Tom Callaway <spot@fedoraproject.org> - 2:2011.4.12-4
|
||||||
|
- fix issue preventing some volume types from not working properly (bz735862)
|
||||||
|
- create fsck.ntfs symlink to ntfsck (bz735612).
|
||||||
|
- apply cleanups from git trunk for ntfsck (bz 706638)
|
||||||
|
- apply cleanups from git trunk for ntfsfix (bz 711662, 723562)
|
||||||
|
|
||||||
|
* Mon May 9 2011 Tom Callaway <spot@fedoraproject.org> - 2:2011.4.12-3
|
||||||
|
- add Obsoletes to resolve multi-lib upgrade issue (bz702671)
|
||||||
|
|
||||||
|
* Mon Apr 25 2011 Tom Callaway <spot@fedoraproject.org> - 2:2011.4.12-2
|
||||||
|
- add --enable-extras flag (and use it) to ensure proper binary installation
|
||||||
|
|
||||||
|
* Thu Apr 14 2011 Tom Callaway <spot@fedoraproject.org> - 2:2011.4.12-1
|
||||||
|
- update to 2011.4.12
|
||||||
|
- pickup ntfsprogs and obsolete the old separate packages
|
||||||
|
|
||||||
|
* Tue Feb 08 2011 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 2:2011.1.15-2
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild
|
||||||
|
|
||||||
|
* Tue Jan 25 2011 Tom Callaway <spot@fedoraproject.org> - 2:2011.1.15-1
|
||||||
|
- update to 2011.1.15
|
||||||
|
|
||||||
|
* Mon Oct 11 2010 Tom "spot" Callaway <tcallawa@redhat.com> - 2:2010.10.2-1
|
||||||
|
- update to 2010.10.2, all patches merged upstream
|
||||||
|
|
||||||
|
* Thu Sep 9 2010 Tom "spot" Callaway <tcallawa@redhat.com> - 2:2010.8.8-2
|
||||||
|
- add support for context= mount option (Till Maas) (bz502946)
|
||||||
|
|
||||||
|
* Mon Aug 9 2010 Tom "spot" Callaway <tcallawa@redhat.com> - 2:2010.8.8-1
|
||||||
|
- update to 2010.8.8
|
||||||
|
|
||||||
|
* Fri Jul 9 2010 Tom "spot" Callaway <tcallawa@redhat.com> - 2:2010.6.31-1
|
||||||
|
- update to 2010.6.31-RC
|
||||||
|
|
||||||
|
* Fri Jul 9 2010 Tom "spot" Callaway <tcallawa@redhat.com> - 2:2010.5.22-1
|
||||||
|
- update to 2010.5.22
|
||||||
|
|
||||||
|
* Tue May 18 2010 Tom "spot" Callaway <tcallawa@redhat.com> - 2:2010.5.16-1
|
||||||
|
- update to 2010.5.16
|
||||||
|
- fix makefile to build secaudit/usermap tools
|
||||||
|
|
||||||
|
* Mon Mar 8 2010 Tom "spot" Callaway <tcallawa@redhat.com> - 2:2010.3.6-1
|
||||||
|
- update to 2010.3.6
|
||||||
|
|
||||||
|
* Mon Feb 15 2010 Tom "spot" Callaway <tcallawa@redhat.com> - 2:2010.2.6-1
|
||||||
|
- update to 2010.2.6-RC
|
||||||
|
- fix summary text
|
||||||
|
|
||||||
|
* Wed Jan 20 2010 Tom "spot" Callaway <tcallawa@redhat.com> - 2:2010.1.16-1
|
||||||
|
- update to 2010.1.16
|
||||||
|
|
||||||
|
* Fri Nov 20 2009 Tom "spot" Callaway <tcallawa@redhat.com> - 2:2009.11.14-2
|
||||||
|
- missing BuildRequires: libattr-devel
|
||||||
|
|
||||||
|
* Fri Nov 20 2009 Tom "spot" Callaway <tcallawa@redhat.com> - 2:2009.11.14-1
|
||||||
|
- update to 2009.11.14
|
||||||
|
|
||||||
|
* Fri Oct 30 2009 Tom "spot" Callaway <tcallawa@redhat.com> - 2:2009.10.5-0.1.RC
|
||||||
|
- bump to 2009.10.5-RC
|
||||||
|
|
||||||
|
* Thu Sep 17 2009 Peter Lemenkov <lemenkov@gmail.com> - 2:2009.4.4-3
|
||||||
|
- Rebuilt with new fuse
|
||||||
|
|
||||||
|
* Sat Jul 25 2009 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 2:2009.4.4-2
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild
|
||||||
|
|
||||||
|
* Fri Apr 3 2009 Tom "spot" Callaway <tcallawa@redhat.com> - 2:2009.4.4-1
|
||||||
|
- update to 4.4, patch for mount issue merged
|
||||||
|
|
||||||
|
* Mon Mar 30 2009 Tom "spot" Callaway <tcallawa@redhat.com> - 2:2009.3.8-2
|
||||||
|
- Patch from upstream provided as temporary workaround for bz 486619
|
||||||
|
|
||||||
|
* Thu Mar 26 2009 Tom "spot" Callaway <tcallawa@redhat.com> - 2:2009.3.8-1
|
||||||
|
- update to 2009.3.8
|
||||||
|
|
||||||
|
* Wed Feb 25 2009 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 2:2009.2.1-3
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_11_Mass_Rebuild
|
||||||
|
|
||||||
|
* Mon Feb 16 2009 Tom "spot" Callaway <tcallawa@redhat.com> - 2:2009.2.1-2
|
||||||
|
- update fdi to fix nautilus mount bug
|
||||||
|
|
||||||
|
* Thu Feb 12 2009 Tom "spot" Callaway <tcallawa@redhat.com> - 2:2009.2.1-1
|
||||||
|
- update to 2009.2.1
|
||||||
|
|
||||||
|
* Fri Jan 30 2009 Tom "spot" Callaway <tcallawa@redhat.com> - 2:2009.1.1-1
|
||||||
|
- new release, new versioning scheme from upstream
|
||||||
|
|
||||||
|
* Thu Jan 8 2009 Tom "spot" Callaway <tcallawa@redhat.com> - 2:1.5222-0.2.RC
|
||||||
|
- move pkgconfig Requires to -devel package where it belongs
|
||||||
|
|
||||||
|
* Mon Dec 22 2008 Tom "spot" Callaway <tcallawa@redhat.com> - 2:1.5222-0.1.RC
|
||||||
|
- 1.5222-RC
|
||||||
|
|
||||||
|
* Tue Dec 2 2008 Tom "spot" Callaway <tcallawa@redhat.com> - 2:1.5130-1
|
||||||
|
- update to 1.5130
|
||||||
|
|
||||||
|
* Wed Oct 29 2008 Tom "spot" Callaway <tcallawa@redhat.com> - 2:1.5012-4
|
||||||
|
- fix hal file to properly ignore internal recovery partitions
|
||||||
|
|
||||||
|
* Wed Oct 29 2008 Tom "spot" Callaway <tcallawa@redhat.com> - 2:1.5012-3
|
||||||
|
- fix hal file to cover all mount cases (thanks to Richard Hughes)
|
||||||
|
|
||||||
|
* Mon Oct 20 2008 Tom "spot" Callaway <tcallawa@redhat.com> - 2:1.5012-2
|
||||||
|
- add fdi file to enable hal automounting
|
||||||
|
|
||||||
|
* Wed Oct 15 2008 Tom "spot" Callaway <tcallawa@redhat.com> - 2:1.5012-1
|
||||||
|
- update to 1.5012 (same code as 1.2926-RC)
|
||||||
|
|
||||||
|
* Mon Sep 22 2008 Tom "spot" Callaway <tcallawa@redhat.com> - 2:1.2926-0.1.RC
|
||||||
|
- update to 1.2926-RC (rawhide, F10)
|
||||||
|
|
||||||
|
* Fri Aug 22 2008 Tom "spot" Callaway <tcallawa@redhat.com> - 2:1.2812-1
|
||||||
|
- update to 1.2812
|
||||||
|
|
||||||
|
* Sat Jul 12 2008 Tom "spot" Callaway <tcallawa@redhat.com> - 2:1.2712-1
|
||||||
|
- update to 1.2712
|
||||||
|
|
||||||
|
* Mon May 5 2008 Tom "spot" Callaway <tcallawa@redhat.com> - 2:1.2506-1
|
||||||
|
- update to 1.2506
|
||||||
|
|
||||||
|
* Tue Apr 22 2008 Tom "spot" Callaway <tcallawa@redhat.com> - 2:1.2412-1
|
||||||
|
- update to 1.2412
|
||||||
|
|
||||||
|
* Mon Mar 10 2008 Tom "spot" Callaway <tcallawa@redhat.com> - 2:1.2310-2
|
||||||
|
- update sources
|
||||||
|
|
||||||
|
* Mon Mar 10 2008 Tom "spot" Callaway <tcallawa@redhat.com> - 2:1.2310-1
|
||||||
|
- update to 1.2310
|
||||||
|
- make -n a noop (bz 403291)
|
||||||
|
|
||||||
|
* Tue Feb 26 2008 Tom "spot" Callaway <tcallawa@redhat.com> - 2:1.2216-3
|
||||||
|
- rebuild against fixed gcc (PR35264, bugzilla 433546)
|
||||||
|
|
||||||
|
* Tue Feb 19 2008 Fedora Release Engineering <rel-eng@fedoraproject.org> - 2:1.2216-2
|
||||||
|
- Autorebuild for GCC 4.3
|
||||||
|
|
||||||
|
* Mon Feb 18 2008 Tom "spot" Callaway <tcallawa@redhat.com> 2:1.2216-1
|
||||||
|
- update to 1.2216
|
||||||
|
|
||||||
|
* Tue Nov 20 2007 Tom "spot" Callaway <tcallawa@redhat.com> 2:1.1120-1
|
||||||
|
- bump to 1.1120
|
||||||
|
- default to fuse-lite (internal to ntfs-3g), but enable --with externalfuse
|
||||||
|
as an option
|
||||||
|
|
||||||
|
* Thu Nov 8 2007 Tom "spot" Callaway <tcallawa@redhat.com> 2:1.1104-1
|
||||||
|
- bump to 1.1104
|
||||||
|
|
||||||
|
* Mon Oct 29 2007 Tom "spot" Callaway <tcallawa@redhat.com> 2:1.1030-1
|
||||||
|
- bump to 1.1030
|
||||||
|
|
||||||
|
* Sat Oct 6 2007 Tom "spot" Callaway <tcallawa@redhat.com> 2:1.1004-1
|
||||||
|
- bump to 1.1004
|
||||||
|
|
||||||
|
* Thu Sep 20 2007 Tom "spot" Callaway <tcallawa@redhat.com> 2:1.913-2
|
||||||
|
- don't set /sbin/mount.ntfs-3g setuid
|
||||||
|
|
||||||
|
* Mon Sep 17 2007 Tom "spot" Callaway <tcallawa@redhat.com> 2:1.913-1
|
||||||
|
- bump to 1.913
|
||||||
|
|
||||||
|
* Sun Aug 26 2007 Tom "spot" Callaway <tcallawa@redhat.com> 2:1.826-1
|
||||||
|
- bump to 1.826
|
||||||
|
- glibc27 patch is upstreamed
|
||||||
|
|
||||||
|
* Fri Aug 24 2007 Tom "spot" Callaway <tcallawa@redhat.com> 2:1.810-1
|
||||||
|
- bump to 1.810
|
||||||
|
- fix license tag
|
||||||
|
- rebuild for ppc32
|
||||||
|
|
||||||
|
* Sun Jul 22 2007 Tom "spot" Callaway <tcallawa@redhat.com> 2:1.710-1
|
||||||
|
- bump to 1.710
|
||||||
|
- add compat symlinks
|
||||||
|
|
||||||
|
* Wed Jun 27 2007 Tom "spot" Callaway <tcallawa@redhat.com> 2:1.616-1
|
||||||
|
- bump to 1.616
|
||||||
|
|
||||||
|
* Tue May 15 2007 Tom "spot" Callaway <tcallawa@redhat.com> 2:1.516-1
|
||||||
|
- bump to 1.516
|
||||||
|
- fix bugzilla 232031
|
||||||
|
|
||||||
|
* Sun Apr 15 2007 Tom "spot" Callaway <tcallawa@redhat.com> 2:1.417-1
|
||||||
|
- bump to 1.417
|
||||||
|
|
||||||
|
* Sun Apr 15 2007 Tom "spot" Callaway <tcallawa@redhat.com> 2:1.416-1
|
||||||
|
- bump to 1.416
|
||||||
|
- drop patch0, upstreamed
|
||||||
|
|
||||||
|
* Wed Apr 4 2007 Tom "spot" Callaway <tcallawa@redhat.com> 2:1.328-2
|
||||||
|
- allow non-root users to mount/umount ntfs volumes (Laszlo Dvornik)
|
||||||
|
|
||||||
|
* Sat Mar 31 2007 Tom "spot" Callaway <tcallawa@redhat.com> 2:1.328-1
|
||||||
|
- bump to 1.328
|
||||||
|
- drop patch, use --disable-ldconfig instead
|
||||||
|
|
||||||
|
* Wed Feb 21 2007 Tom "spot" Callaway <tcallawa@redhat.com> 2:1.0-1
|
||||||
|
- 1.0 release!
|
||||||
|
|
||||||
|
* Fri Jan 19 2007 Tom "spot" Callaway <tcallawa@redhat.com> 2:0-0.9.20070118
|
||||||
|
- symlink to mount.ntfs
|
||||||
|
|
||||||
|
* Wed Jan 17 2007 Tom "spot" Callaway <tcallawa@redhat.com> 2:0-0.8.20070118
|
||||||
|
- bump to 20070118
|
||||||
|
|
||||||
|
* Wed Jan 17 2007 Tom "spot" Callaway <tcallawa@redhat.com> 2:0-0.7.20070116
|
||||||
|
- bump to latest version for all active dists
|
||||||
|
|
||||||
|
* Wed Jan 3 2007 Tom "spot" Callaway <tcallawa@redhat.com> 1:0-0.6.20070102
|
||||||
|
- bump to latest version (note that upstream fixed their date mistake)
|
||||||
|
|
||||||
|
* Wed Nov 1 2006 Tom "spot" Callaway <tcallawa@redhat.com> 1:0-0.5.20070920
|
||||||
|
- add an obsoletes for ntfsprogs-fuse
|
||||||
|
- make some convenience symlinks
|
||||||
|
|
||||||
|
* Wed Oct 25 2006 Tom "spot" Callaway <tcallawa@redhat.com> 1:0-0.4.20070920
|
||||||
|
- add some extra Provides
|
||||||
|
|
||||||
|
* Mon Oct 16 2006 Tom "spot" Callaway <tcallawa@redhat.com> 1:0-0.3.20070920
|
||||||
|
- add explicit Requires on fuse
|
||||||
|
|
||||||
|
* Mon Oct 16 2006 Tom "spot" Callaway <tcallawa@redhat.com> 1:0-0.2.20070920
|
||||||
|
- fixed versioning (bumped epoch, since it now shows as older)
|
||||||
|
- change sbin symlink to actual copy to be safe
|
||||||
|
|
||||||
|
* Sun Oct 15 2006 Tom "spot" Callaway <tcallawa@redhat.com> 0.1.20070920-1
|
||||||
|
- Initial package for Fedora Extras
|
||||||
372
src/lowntfs-3g.c
372
src/lowntfs-3g.c
|
|
@ -518,99 +518,36 @@ static void set_fuse_error(int *err)
|
||||||
}
|
}
|
||||||
|
|
||||||
#if 0 && (defined(__APPLE__) || defined(__DARWIN__)) /* Unfinished. */
|
#if 0 && (defined(__APPLE__) || defined(__DARWIN__)) /* Unfinished. */
|
||||||
static int ntfs_macfuse_getxtimes(const char *org_path,
|
|
||||||
struct timespec *bkuptime, struct timespec *crtime)
|
static void ntfs_macfuse_getxtimes(fuse_req_t req, fuse_ino_t ino,
|
||||||
|
struct fuse_file_info *fi __attribute__((unused)))
|
||||||
{
|
{
|
||||||
int res = 0;
|
int res = 0;
|
||||||
ntfs_inode *ni;
|
ntfs_inode *ni;
|
||||||
char *path = NULL;
|
|
||||||
ntfschar *stream_name;
|
ntfschar *stream_name;
|
||||||
int stream_name_len;
|
int stream_name_len;
|
||||||
|
struct timespec bkuptime;
|
||||||
|
struct timespec crtime;
|
||||||
|
|
||||||
stream_name_len = ntfs_fuse_parse_path(org_path, &path, &stream_name);
|
memset(&bkuptime, 0, sizeof(struct timespec));
|
||||||
if (stream_name_len < 0)
|
memset(&crtime, 0, sizeof(struct timespec));
|
||||||
return stream_name_len;
|
ni = ntfs_inode_open(ctx->vol, INODE(ino));
|
||||||
memset(bkuptime, 0, sizeof(struct timespec));
|
|
||||||
memset(crtime, 0, sizeof(struct timespec));
|
|
||||||
ni = ntfs_pathname_to_inode(ctx->vol, NULL, path);
|
|
||||||
if (!ni) {
|
if (!ni) {
|
||||||
res = -errno;
|
res = -errno;
|
||||||
goto exit;
|
} else {
|
||||||
|
/* We have no backup timestamp in NTFS. */
|
||||||
|
crtime = ntfs2timespec(ni->creation_time);
|
||||||
|
if (ntfs_inode_close(ni))
|
||||||
|
set_fuse_error(&res);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* We have no backup timestamp in NTFS. */
|
|
||||||
crtime->tv_sec = ni->creation_time;
|
|
||||||
exit:
|
|
||||||
if (ntfs_inode_close(ni))
|
|
||||||
set_fuse_error(&res);
|
|
||||||
free(path);
|
|
||||||
if (stream_name_len)
|
if (stream_name_len)
|
||||||
free(stream_name);
|
free(stream_name);
|
||||||
return res;
|
if (res < 0)
|
||||||
|
fuse_reply_err(req, -res);
|
||||||
|
else
|
||||||
|
fuse_reply_xtimes(req, &bkuptime, &crtime);
|
||||||
}
|
}
|
||||||
|
|
||||||
int ntfs_macfuse_setcrtime(const char *path, const struct timespec *tv)
|
|
||||||
{
|
|
||||||
ntfs_inode *ni;
|
|
||||||
int res = 0;
|
|
||||||
|
|
||||||
if (ntfs_fuse_is_named_data_stream(path))
|
|
||||||
return -EINVAL; /* n/a for named data streams. */
|
|
||||||
ni = ntfs_pathname_to_inode(ctx->vol, NULL, path);
|
|
||||||
if (!ni)
|
|
||||||
return -errno;
|
|
||||||
|
|
||||||
if (tv) {
|
|
||||||
ni->creation_time = tv->tv_sec;
|
|
||||||
ntfs_fuse_update_times(ni, NTFS_UPDATE_CTIME);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (ntfs_inode_close(ni))
|
|
||||||
set_fuse_error(&res);
|
|
||||||
return res;
|
|
||||||
}
|
|
||||||
|
|
||||||
int ntfs_macfuse_setbkuptime(const char *path, const struct timespec *tv)
|
|
||||||
{
|
|
||||||
ntfs_inode *ni;
|
|
||||||
int res = 0;
|
|
||||||
|
|
||||||
if (ntfs_fuse_is_named_data_stream(path))
|
|
||||||
return -EINVAL; /* n/a for named data streams. */
|
|
||||||
ni = ntfs_pathname_to_inode(ctx->vol, NULL, path);
|
|
||||||
if (!ni)
|
|
||||||
return -errno;
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Only pretending to set backup time successfully to please the APIs of
|
|
||||||
* Mac OS X. In reality, NTFS has no backup time.
|
|
||||||
*/
|
|
||||||
|
|
||||||
if (ntfs_inode_close(ni))
|
|
||||||
set_fuse_error(&res);
|
|
||||||
return res;
|
|
||||||
}
|
|
||||||
|
|
||||||
int ntfs_macfuse_setchgtime(const char *path, const struct timespec *tv)
|
|
||||||
{
|
|
||||||
ntfs_inode *ni;
|
|
||||||
int res = 0;
|
|
||||||
|
|
||||||
if (ntfs_fuse_is_named_data_stream(path))
|
|
||||||
return -EINVAL; /* n/a for named data streams. */
|
|
||||||
ni = ntfs_pathname_to_inode(ctx->vol, NULL, path);
|
|
||||||
if (!ni)
|
|
||||||
return -errno;
|
|
||||||
|
|
||||||
if (tv) {
|
|
||||||
ni->last_mft_change_time = tv->tv_sec;
|
|
||||||
ntfs_fuse_update_times(ni, 0);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (ntfs_inode_close(ni))
|
|
||||||
set_fuse_error(&res);
|
|
||||||
return res;
|
|
||||||
}
|
|
||||||
#endif /* defined(__APPLE__) || defined(__DARWIN__) */
|
#endif /* defined(__APPLE__) || defined(__DARWIN__) */
|
||||||
|
|
||||||
static void ntfs_init(void *userdata __attribute__((unused)),
|
static void ntfs_init(void *userdata __attribute__((unused)),
|
||||||
|
|
@ -2194,6 +2131,277 @@ static void ntfs_fuse_setattr(fuse_req_t req, fuse_ino_t ino, struct stat *attr,
|
||||||
fuse_reply_attr(req, &stbuf, ATTR_TIMEOUT);
|
fuse_reply_attr(req, &stbuf, ATTR_TIMEOUT);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if 0 && (defined(__APPLE__) || defined(__DARWIN__)) /* Unfinished. */
|
||||||
|
|
||||||
|
#if defined(HAVE_UTIMENSAT) & defined(FUSE_SET_ATTR_ATIME_NOW)
|
||||||
|
|
||||||
|
/*
|
||||||
|
* utimens_x (MacOsX)
|
||||||
|
*
|
||||||
|
* This is much similar to ntfs_fuse_utimens()
|
||||||
|
*/
|
||||||
|
|
||||||
|
static int ntfs_fuse_utimens_x(struct SECURITY_CONTEXT *scx, fuse_ino_t ino,
|
||||||
|
struct setattr_x *stin, struct stat *stbuf, int to_set)
|
||||||
|
{
|
||||||
|
ntfs_inode *ni;
|
||||||
|
int res = 0;
|
||||||
|
|
||||||
|
ni = ntfs_inode_open(ctx->vol, INODE(ino));
|
||||||
|
if (!ni)
|
||||||
|
return -errno;
|
||||||
|
|
||||||
|
/* no check or update if both UTIME_OMIT */
|
||||||
|
if (to_set & (FUSE_SET_ATTR_ATIME
|
||||||
|
+ FUSE_SET_ATTR_MTIME
|
||||||
|
+ FUSE_SET_ATTR_BKUPTIME
|
||||||
|
+ FUSE_SET_ATTR_CHGTIME
|
||||||
|
+ FUSE_SET_ATTR_CRTIME)) {
|
||||||
|
#if !KERNELPERMS | (POSIXACLS & !KERNELACLS)
|
||||||
|
if (ntfs_allowed_as_owner(scx, ni)
|
||||||
|
|| ((to_set & FUSE_SET_ATTR_ATIME_NOW)
|
||||||
|
&& (to_set & FUSE_SET_ATTR_MTIME_NOW)
|
||||||
|
&& ntfs_allowed_access(scx, ni, S_IWRITE))) {
|
||||||
|
#endif
|
||||||
|
ntfs_time_update_flags mask = 0;
|
||||||
|
|
||||||
|
if (to_set & FUSE_SET_ATTR_ATIME_NOW)
|
||||||
|
mask |= NTFS_UPDATE_ATIME;
|
||||||
|
else
|
||||||
|
if (to_set & FUSE_SET_ATTR_ATIME)
|
||||||
|
ni->last_access_time
|
||||||
|
= timespec2ntfs(stin->acctime);
|
||||||
|
if (to_set & FUSE_SET_ATTR_MTIME_NOW)
|
||||||
|
mask |= NTFS_UPDATE_MTIME;
|
||||||
|
else
|
||||||
|
if (to_set & FUSE_SET_ATTR_MTIME)
|
||||||
|
ni->last_data_change_time
|
||||||
|
= timespec2ntfs(stin->modtime);
|
||||||
|
if (to_set & FUSE_SET_ATTR_CRTIME)
|
||||||
|
ni->creation_time
|
||||||
|
= timespec2ntfs(stin->crtime);
|
||||||
|
if (to_set & FUSE_SET_ATTR_BKUPTIME) {
|
||||||
|
/* does not exist */
|
||||||
|
}
|
||||||
|
if (to_set & FUSE_SET_ATTR_CHGTIME) {
|
||||||
|
ni->last_mft_change_time
|
||||||
|
= timespec2ntfs(stin->chgtime);
|
||||||
|
} else
|
||||||
|
mask |= FUSE_SET_ATTR_CTIME;
|
||||||
|
ntfs_inode_update_times(ni, mask);
|
||||||
|
#if !KERNELPERMS | (POSIXACLS & !KERNELACLS)
|
||||||
|
} else
|
||||||
|
res = -errno;
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
if (!res)
|
||||||
|
res = ntfs_fuse_getstat(scx, ni, stbuf);
|
||||||
|
if (ntfs_inode_close(ni))
|
||||||
|
set_fuse_error(&res);
|
||||||
|
return res;
|
||||||
|
}
|
||||||
|
|
||||||
|
#else /* defined(HAVE_UTIMENSAT) & defined(FUSE_SET_ATTR_ATIME_NOW) */
|
||||||
|
|
||||||
|
/*
|
||||||
|
* utime_x (MacOsX)
|
||||||
|
*
|
||||||
|
* This is somewhat similar to ntfs_fuse_utime()
|
||||||
|
*
|
||||||
|
* TODO : check whether there is any need for this function
|
||||||
|
* HAVE_UTIMENSAT may be always defined on MacOsX
|
||||||
|
*/
|
||||||
|
|
||||||
|
static int ntfs_fuse_utime_x(struct SECURITY_CONTEXT *scx, fuse_ino_t ino,
|
||||||
|
struct setattr_x *stin, struct stat *stbuf)
|
||||||
|
{
|
||||||
|
ntfs_inode *ni;
|
||||||
|
int res = 0;
|
||||||
|
ntfs_time_update_flags mask = 0;
|
||||||
|
#if !KERNELPERMS | (POSIXACLS & !KERNELACLS)
|
||||||
|
BOOL ownerok;
|
||||||
|
BOOL writeok;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
ni = ntfs_inode_open(ctx->vol, INODE(ino));
|
||||||
|
if (!ni)
|
||||||
|
return -errno;
|
||||||
|
|
||||||
|
#if !KERNELPERMS | (POSIXACLS & !KERNELACLS)
|
||||||
|
ownerok = ntfs_allowed_as_owner(scx, ni);
|
||||||
|
if (stin) {
|
||||||
|
/*
|
||||||
|
* fuse never calls with a NULL buf and we do not
|
||||||
|
* know whether the specific condition can be applied
|
||||||
|
* So we have to accept updating by a non-owner having
|
||||||
|
* write access.
|
||||||
|
*/
|
||||||
|
writeok = !ownerok
|
||||||
|
&& (stin->st_atime == stin->st_mtime)
|
||||||
|
&& ntfs_allowed_access(scx, ni, S_IWRITE);
|
||||||
|
/* Must be owner */
|
||||||
|
if (!ownerok && !writeok)
|
||||||
|
res = (stin->acctime.tv_sec == stin->modtime.tv_sec
|
||||||
|
? -EACCES : -EPERM);
|
||||||
|
else {
|
||||||
|
if (to_set & FUSE_SET_ATTR_ATIME)
|
||||||
|
ni->last_access_time
|
||||||
|
= timespec2ntfs(stin->acctime);
|
||||||
|
if (to_set & FUSE_SET_ATTR_CTIME)
|
||||||
|
ni->last_data_change_time
|
||||||
|
= timespec2ntfs(stin->modtime);
|
||||||
|
if (to_set & FUSE_SET_ATTR_CHGTIME)
|
||||||
|
ni->last_mft_change_time
|
||||||
|
= timespec2ntfs(stin->chgtime);
|
||||||
|
else
|
||||||
|
flags |= NTFS_UPDATE_CTIME;
|
||||||
|
if (to_set & FUSE_SET_ATTR_CRTIME)
|
||||||
|
ni->creation_time
|
||||||
|
= timespec2ntfs(stin->crtime);
|
||||||
|
ntfs_fuse_update_times(ni, mask);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
/* Must be owner or have write access */
|
||||||
|
writeok = !ownerok
|
||||||
|
&& ntfs_allowed_access(scx, ni, S_IWRITE);
|
||||||
|
if (!ownerok && !writeok)
|
||||||
|
res = -EACCES;
|
||||||
|
else
|
||||||
|
ntfs_inode_update_times(ni, NTFS_UPDATE_AMCTIME);
|
||||||
|
}
|
||||||
|
#else
|
||||||
|
if (stin) {
|
||||||
|
if (to_set & FUSE_SET_ATTR_ATIME)
|
||||||
|
ni->last_access_time
|
||||||
|
= timespec2ntfs(stin->acctime);
|
||||||
|
if (to_set & FUSE_SET_ATTR_CTIME)
|
||||||
|
ni->last_data_change_time
|
||||||
|
= timespec2ntfs(stin->modtime);
|
||||||
|
if (to_set & FUSE_SET_ATTR_CHGTIME)
|
||||||
|
ni->last_mft_change_time
|
||||||
|
= timespec2ntfs(stin->chgtime);
|
||||||
|
else
|
||||||
|
flags |= NTFS_UPDATE_CTIME;
|
||||||
|
if (to_set & FUSE_SET_ATTR_CRTIME)
|
||||||
|
ni->creation_time
|
||||||
|
= timespec2ntfs(stin->crtime);
|
||||||
|
ntfs_fuse_update_times(ni, mask);
|
||||||
|
} else
|
||||||
|
ntfs_inode_update_times(ni, NTFS_UPDATE_AMCTIME);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
res = ntfs_fuse_getstat(scx, ni, stbuf);
|
||||||
|
if (ntfs_inode_close(ni))
|
||||||
|
set_fuse_error(&res);
|
||||||
|
return res;
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif /* defined(HAVE_UTIMENSAT) & defined(FUSE_SET_ATTR_ATIME_NOW) */
|
||||||
|
|
||||||
|
/*
|
||||||
|
* setattr_x (MacOsX)
|
||||||
|
*
|
||||||
|
* This is much similar to ntfs_fuse_setattr()
|
||||||
|
*
|
||||||
|
* TODO : check whether ntfs_fuse_setattr() is needed when
|
||||||
|
* ntfs_fuse_setattr_x() is defined
|
||||||
|
*/
|
||||||
|
|
||||||
|
static void ntfs_macfuse_setattr_x(fuse_req_t req, fuse_ino_t ino,
|
||||||
|
struct setattr_x *attr, int to_set,
|
||||||
|
struct fuse_file_info *fi __attribute__((unused)))
|
||||||
|
{
|
||||||
|
struct stat stbuf;
|
||||||
|
ntfs_inode *ni;
|
||||||
|
int res;
|
||||||
|
struct SECURITY_CONTEXT security;
|
||||||
|
|
||||||
|
res = 0;
|
||||||
|
ntfs_fuse_fill_security_context(req, &security);
|
||||||
|
/* no flags */
|
||||||
|
if (!(to_set
|
||||||
|
& (FUSE_SET_ATTR_MODE
|
||||||
|
| FUSE_SET_ATTR_UID | FUSE_SET_ATTR_GID
|
||||||
|
| FUSE_SET_ATTR_SIZE
|
||||||
|
| FUSE_SET_ATTR_ATIME | FUSE_SET_ATTR_MTIME
|
||||||
|
| FUSE_SET_ATTR_BKUPTIME
|
||||||
|
| FUSE_SET_ATTR_CHGTIME
|
||||||
|
| FUSE_SET_ATTR_CRTIME))) {
|
||||||
|
ni = ntfs_inode_open(ctx->vol, INODE(ino));
|
||||||
|
if (!ni)
|
||||||
|
res = -errno;
|
||||||
|
else {
|
||||||
|
res = ntfs_fuse_getstat(&security, ni, &stbuf);
|
||||||
|
if (ntfs_inode_close(ni))
|
||||||
|
set_fuse_error(&res);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
/* some set of uid/gid/mode */
|
||||||
|
if (to_set
|
||||||
|
& (FUSE_SET_ATTR_MODE
|
||||||
|
| FUSE_SET_ATTR_UID | FUSE_SET_ATTR_GID)) {
|
||||||
|
switch (to_set
|
||||||
|
& (FUSE_SET_ATTR_MODE
|
||||||
|
| FUSE_SET_ATTR_UID | FUSE_SET_ATTR_GID)) {
|
||||||
|
case FUSE_SET_ATTR_MODE :
|
||||||
|
res = ntfs_fuse_chmod(&security, ino,
|
||||||
|
attr->st_mode & 07777, &stbuf);
|
||||||
|
break;
|
||||||
|
case FUSE_SET_ATTR_UID :
|
||||||
|
res = ntfs_fuse_chown(&security, ino, attr->st_uid,
|
||||||
|
(gid_t)-1, &stbuf);
|
||||||
|
break;
|
||||||
|
case FUSE_SET_ATTR_GID :
|
||||||
|
res = ntfs_fuse_chown(&security, ino, (uid_t)-1,
|
||||||
|
attr->st_gid, &stbuf);
|
||||||
|
break;
|
||||||
|
case FUSE_SET_ATTR_UID + FUSE_SET_ATTR_GID :
|
||||||
|
res = ntfs_fuse_chown(&security, ino, attr->st_uid,
|
||||||
|
attr->st_gid, &stbuf);
|
||||||
|
break;
|
||||||
|
case FUSE_SET_ATTR_UID + FUSE_SET_ATTR_MODE:
|
||||||
|
res = ntfs_fuse_chownmod(&security, ino, attr->st_uid,
|
||||||
|
(gid_t)-1,attr->st_mode,
|
||||||
|
&stbuf);
|
||||||
|
break;
|
||||||
|
case FUSE_SET_ATTR_GID + FUSE_SET_ATTR_MODE:
|
||||||
|
res = ntfs_fuse_chownmod(&security, ino, (uid_t)-1,
|
||||||
|
attr->st_gid,attr->st_mode,
|
||||||
|
&stbuf);
|
||||||
|
break;
|
||||||
|
case FUSE_SET_ATTR_UID + FUSE_SET_ATTR_GID + FUSE_SET_ATTR_MODE:
|
||||||
|
res = ntfs_fuse_chownmod(&security, ino, attr->st_uid,
|
||||||
|
attr->st_gid,attr->st_mode, &stbuf);
|
||||||
|
break;
|
||||||
|
default :
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
/* size */
|
||||||
|
if (!res && (to_set & FUSE_SET_ATTR_SIZE)) {
|
||||||
|
res = ntfs_fuse_trunc(&security, ino, attr->st_size,
|
||||||
|
!fi, &stbuf);
|
||||||
|
}
|
||||||
|
/* some set of times */
|
||||||
|
if (!res && (to_set & (FUSE_SET_ATTR_ATIME
|
||||||
|
+ FUSE_SET_ATTR_MTIME
|
||||||
|
+ FUSE_SET_ATTR_BKUPTIME
|
||||||
|
+ FUSE_SET_ATTR_CHGTIME
|
||||||
|
+ FUSE_SET_ATTR_CRTIME))) {
|
||||||
|
#if defined(HAVE_UTIMENSAT) & defined(FUSE_SET_ATTR_ATIME_NOW)
|
||||||
|
res = ntfs_fuse_utimens_x(&security, ino, attr, &stbuf, to_set);
|
||||||
|
#else /* defined(HAVE_UTIMENSAT) & defined(FUSE_SET_ATTR_ATIME_NOW) */
|
||||||
|
res = ntfs_fuse_utime_x(&security, ino, attr, &stbuf);
|
||||||
|
#endif /* defined(HAVE_UTIMENSAT) & defined(FUSE_SET_ATTR_ATIME_NOW) */
|
||||||
|
}
|
||||||
|
if (res)
|
||||||
|
fuse_reply_err(req, -res);
|
||||||
|
else
|
||||||
|
fuse_reply_attr(req, &stbuf, ATTR_TIMEOUT);
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif /* defined(__APPLE__) || defined(__DARWIN__) */
|
||||||
|
|
||||||
#if !KERNELPERMS | (POSIXACLS & !KERNELACLS)
|
#if !KERNELPERMS | (POSIXACLS & !KERNELACLS)
|
||||||
|
|
||||||
static void ntfs_fuse_access(fuse_req_t req, fuse_ino_t ino, int mask)
|
static void ntfs_fuse_access(fuse_req_t req, fuse_ino_t ino, int mask)
|
||||||
|
|
@ -4029,9 +4237,7 @@ static struct fuse_lowlevel_ops ntfs_3g_ops = {
|
||||||
#if 0 && (defined(__APPLE__) || defined(__DARWIN__)) /* Unfinished. */
|
#if 0 && (defined(__APPLE__) || defined(__DARWIN__)) /* Unfinished. */
|
||||||
/* MacFUSE extensions. */
|
/* MacFUSE extensions. */
|
||||||
.getxtimes = ntfs_macfuse_getxtimes,
|
.getxtimes = ntfs_macfuse_getxtimes,
|
||||||
.setcrtime = ntfs_macfuse_setcrtime,
|
.setattr_x = ntfs_macfuse_setattr_x,
|
||||||
.setbkuptime = ntfs_macfuse_setbkuptime,
|
|
||||||
.setchgtime = ntfs_macfuse_setchgtime,
|
|
||||||
#endif /* defined(__APPLE__) || defined(__DARWIN__) */
|
#endif /* defined(__APPLE__) || defined(__DARWIN__) */
|
||||||
.init = ntfs_init
|
.init = ntfs_init
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -4,7 +4,7 @@
|
||||||
* Copyright (c) 2005-2007 Yura Pakhuchiy
|
* Copyright (c) 2005-2007 Yura Pakhuchiy
|
||||||
* Copyright (c) 2005 Yuval Fledel
|
* Copyright (c) 2005 Yuval Fledel
|
||||||
* Copyright (c) 2006-2009 Szabolcs Szakacsits
|
* Copyright (c) 2006-2009 Szabolcs Szakacsits
|
||||||
* Copyright (c) 2007-2017 Jean-Pierre Andre
|
* Copyright (c) 2007-2019 Jean-Pierre Andre
|
||||||
* Copyright (c) 2009 Erik Larsson
|
* Copyright (c) 2009 Erik Larsson
|
||||||
*
|
*
|
||||||
* This file is originated from the Linux-NTFS project.
|
* This file is originated from the Linux-NTFS project.
|
||||||
|
|
@ -196,7 +196,7 @@ static const char *usage_msg =
|
||||||
"\n"
|
"\n"
|
||||||
"Copyright (C) 2005-2007 Yura Pakhuchiy\n"
|
"Copyright (C) 2005-2007 Yura Pakhuchiy\n"
|
||||||
"Copyright (C) 2006-2009 Szabolcs Szakacsits\n"
|
"Copyright (C) 2006-2009 Szabolcs Szakacsits\n"
|
||||||
"Copyright (C) 2007-2017 Jean-Pierre Andre\n"
|
"Copyright (C) 2007-2019 Jean-Pierre Andre\n"
|
||||||
"Copyright (C) 2009 Erik Larsson\n"
|
"Copyright (C) 2009 Erik Larsson\n"
|
||||||
"\n"
|
"\n"
|
||||||
"Usage: %s [-o option[,...]] <device|image_file> <mount_point>\n"
|
"Usage: %s [-o option[,...]] <device|image_file> <mount_point>\n"
|
||||||
|
|
@ -595,7 +595,7 @@ static int ntfs_macfuse_getxtimes(const char *org_path,
|
||||||
}
|
}
|
||||||
|
|
||||||
/* We have no backup timestamp in NTFS. */
|
/* We have no backup timestamp in NTFS. */
|
||||||
crtime->tv_sec = sle64_to_cpu(ni->creation_time);
|
*crtime = ntfs2timespec(ni->creation_time);
|
||||||
exit:
|
exit:
|
||||||
if (ntfs_inode_close(ni))
|
if (ntfs_inode_close(ni))
|
||||||
set_fuse_error(&res);
|
set_fuse_error(&res);
|
||||||
|
|
@ -605,7 +605,7 @@ exit:
|
||||||
return res;
|
return res;
|
||||||
}
|
}
|
||||||
|
|
||||||
int ntfs_macfuse_setcrtime(const char *path, const struct timespec *tv)
|
static int ntfs_macfuse_setcrtime(const char *path, const struct timespec *tv)
|
||||||
{
|
{
|
||||||
ntfs_inode *ni;
|
ntfs_inode *ni;
|
||||||
int res = 0;
|
int res = 0;
|
||||||
|
|
@ -617,7 +617,7 @@ int ntfs_macfuse_setcrtime(const char *path, const struct timespec *tv)
|
||||||
return -errno;
|
return -errno;
|
||||||
|
|
||||||
if (tv) {
|
if (tv) {
|
||||||
ni->creation_time = cpu_to_sle64(tv->tv_sec);
|
ni->creation_time = timespec2ntfs(*tv);
|
||||||
ntfs_fuse_update_times(ni, NTFS_UPDATE_CTIME);
|
ntfs_fuse_update_times(ni, NTFS_UPDATE_CTIME);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -626,7 +626,7 @@ int ntfs_macfuse_setcrtime(const char *path, const struct timespec *tv)
|
||||||
return res;
|
return res;
|
||||||
}
|
}
|
||||||
|
|
||||||
int ntfs_macfuse_setbkuptime(const char *path, const struct timespec *tv)
|
static int ntfs_macfuse_setbkuptime(const char *path, const struct timespec *tv)
|
||||||
{
|
{
|
||||||
ntfs_inode *ni;
|
ntfs_inode *ni;
|
||||||
int res = 0;
|
int res = 0;
|
||||||
|
|
@ -647,7 +647,7 @@ int ntfs_macfuse_setbkuptime(const char *path, const struct timespec *tv)
|
||||||
return res;
|
return res;
|
||||||
}
|
}
|
||||||
|
|
||||||
int ntfs_macfuse_setchgtime(const char *path, const struct timespec *tv)
|
static int ntfs_macfuse_setchgtime(const char *path, const struct timespec *tv)
|
||||||
{
|
{
|
||||||
ntfs_inode *ni;
|
ntfs_inode *ni;
|
||||||
int res = 0;
|
int res = 0;
|
||||||
|
|
@ -659,7 +659,7 @@ int ntfs_macfuse_setchgtime(const char *path, const struct timespec *tv)
|
||||||
return -errno;
|
return -errno;
|
||||||
|
|
||||||
if (tv) {
|
if (tv) {
|
||||||
ni->last_mft_change_time = cpu_to_sle64(tv->tv_sec);
|
ni->last_mft_change_time = timespec2ntfs(*tv);
|
||||||
ntfs_fuse_update_times(ni, 0);
|
ntfs_fuse_update_times(ni, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue