Version 2017.3.23AR.1

2017.3.23AR.1
Jean-Pierre André 2017-10-01 08:42:43 +02:00
parent a0bc659c7f
commit cea98f8575
6 changed files with 911 additions and 94 deletions

View File

@ -4,3 +4,6 @@ Detailed ChangeLog can be found at
The changes and history may also be found on the source repository :
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
View File

@ -23,6 +23,10 @@ advanced features, please get the instructions from
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
forums, performance numbers and other information are available on the project
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 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/
@ -118,6 +126,25 @@ And, to end the test, unmount the usual way :
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
==============

View File

@ -24,8 +24,8 @@
# Autoconf
AC_PREREQ(2.59)
AC_INIT([ntfs-3g],[2017.3.23],[ntfs-3g-devel@lists.sf.net])
LIBNTFS_3G_VERSION="88"
AC_INIT([ntfs-3g],[2017.3.23AR.1],[ntfs-3g-devel@lists.sf.net])
LIBNTFS_3G_VERSION="881"
AC_CONFIG_SRCDIR([src/ntfs-3g.c])
# Environment
@ -33,7 +33,7 @@ AC_CANONICAL_HOST
AC_CANONICAL_TARGET
# Automake
AM_INIT_AUTOMAKE([${PACKAGE_NAME}], [${PACKAGE_VERSION}])
AM_INIT_AUTOMAKE()
AC_CONFIG_HEADERS([config.h])
AC_CONFIG_MACRO_DIR([m4])
AM_MAINTAINER_MODE
@ -497,7 +497,7 @@ AC_C_BIGENDIAN(
]
,
)
AC_C_CONST
# AC_C_CONST
AC_C_INLINE
AC_TYPE_OFF_T
AC_TYPE_SIZE_T

581
fedora/ntfs-3g.spec Normal file
View File

@ -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.1
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
* Sun Oct 1 2017 Jean-Pierre Andre 2017.3.23AR.1
- 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

View File

@ -518,99 +518,36 @@ static void set_fuse_error(int *err)
}
#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;
ntfs_inode *ni;
char *path = NULL;
ntfschar *stream_name;
int stream_name_len;
struct timespec bkuptime;
struct timespec crtime;
stream_name_len = ntfs_fuse_parse_path(org_path, &path, &stream_name);
if (stream_name_len < 0)
return stream_name_len;
memset(bkuptime, 0, sizeof(struct timespec));
memset(crtime, 0, sizeof(struct timespec));
ni = ntfs_pathname_to_inode(ctx->vol, NULL, path);
memset(&bkuptime, 0, sizeof(struct timespec));
memset(&crtime, 0, sizeof(struct timespec));
ni = ntfs_inode_open(ctx->vol, INODE(ino));
if (!ni) {
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)
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-&gt;vol, NULL, path);
if (!ni)
return -errno;
if (tv) {
ni-&gt;last_mft_change_time = tv-&gt;tv_sec;
ntfs_fuse_update_times(ni, 0);
}
if (ntfs_inode_close(ni))
set_fuse_error(&amp;res);
return res;
}
#endif /* defined(__APPLE__) || defined(__DARWIN__) */
static void ntfs_init(void *userdata __attribute__((unused)),
@ -2195,6 +2132,277 @@ static void ntfs_fuse_setattr(fuse_req_t req, fuse_ino_t ino, struct stat *attr,
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)
static void ntfs_fuse_access(fuse_req_t req, fuse_ino_t ino, int mask)
@ -4030,9 +4238,7 @@ static struct fuse_lowlevel_ops ntfs_3g_ops = {
#if 0 && (defined(__APPLE__) || defined(__DARWIN__)) /* Unfinished. */
/* MacFUSE extensions. */
.getxtimes = ntfs_macfuse_getxtimes,
.setcrtime = ntfs_macfuse_setcrtime,
.setbkuptime = ntfs_macfuse_setbkuptime,
.setchgtime = ntfs_macfuse_setchgtime,
.setattr_x = ntfs_macfuse_setattr_x,
#endif /* defined(__APPLE__) || defined(__DARWIN__) */
.init = ntfs_init
};

View File

@ -595,7 +595,7 @@ static int ntfs_macfuse_getxtimes(const char *org_path,
}
/* We have no backup timestamp in NTFS. */
crtime->tv_sec = sle64_to_cpu(ni->creation_time);
*crtime = ntfs2timespec(ni->creation_time);
exit:
if (ntfs_inode_close(ni))
set_fuse_error(&res);
@ -605,7 +605,7 @@ exit:
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;
int res = 0;
@ -617,7 +617,7 @@ int ntfs_macfuse_setcrtime(const char *path, const struct timespec *tv)
return -errno;
if (tv) {
ni->creation_time = cpu_to_sle64(tv->tv_sec);
ni->creation_time = timespec2ntfs(*tv);
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;
}
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;
int res = 0;
@ -647,7 +647,7 @@ int ntfs_macfuse_setbkuptime(const char *path, const struct timespec *tv)
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;
int res = 0;
@ -659,7 +659,7 @@ int ntfs_macfuse_setchgtime(const char *path, const struct timespec *tv)
return -errno;
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);
}