File ntfs-3g.spec of Package ntfs-3g
#
# spec file for package ntfs-3g (Version 1.5012)
#
# Copyright (c) 2008 SUSE LINUX Products GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
# Please submit bugfixes or comments via http://bugs.opensuse.org/
#
Name: ntfs-3g
Summary: Linux NTFS-3G userspace filesystem with full write support
Version: 1.5012
Release: 2
Provides: ntfsprogs-fuse = 1.13.1
Obsoletes: ntfsprogs-fuse <= 1.13.1
License: GPL v2 or later
Group: System/Filesystems
Source: %{name}-%{version}.tar.bz2
Source1: buildall.sh
Source2: 21-storage-ntfs-3g.fdi
# PATCH-FIX-UPSTREAM ntfs-3g-warnings.patch -- Has been sent upstream and most/all is applied upstream
Patch0: ntfs-3g-warnings.patch
# PATCH-FIX-UPSTREAM ntfs-3g-utf8-fallback.patch -- Integrated in the advanced ntfs-3g branch (with permissions stuff)
Patch2: ntfs-3g-utf8-fallback.patch
Url: http://www.ntfs-3g.org
BuildRequires: ntfsprogs
PreReq: update-alternatives
BuildRoot: %{_tmppath}/%{name}-%{version}-build
%if 0%{?suse_version} > 1010
Supplements: filesystem(ntfs-3g)
%endif
%define _exec_prefix /
%define _libdir /%_lib
%description
NTFS-3G allows for read/write access to NTFS partitions which can be
shared with Windows XP, Windows Server 2003, Windows 2000 and Windows
Vista.
Limitations:
* No support for journaling. As a result, if the journal is dirty,
NTFS-3g has to refuse read-write mounts.
* No support for reading/writing compressed and encrypted files
* Only static permissions, set at mount time
Notes:
* Implemented in user space though fuse. It is possible to balance
performance using normal processor and I/O priorities of the
ntfs-3g processes.
* NTFS-3g can detect if the filesystem to be mounted has been in use
by Windows when it hibernated and refuses read-write mount to
prevent data corruption as a result of Windows resuming with a
changed filesystem underneath.
Evaluating access permissions and file ownership is handled like in the
Linux FAT and other free Linux NTFS drivers: The access rights for all
files on the mounted partition can be set when mounting the filesystem
and are the same for all files. Requests to change access rights are
silently ignored.
Through the ntfs-3g web site, a version of ntfs-3g with permission
handling (which should be usable but is not released officially) can be
found.
Compared to vanilla ntfs-3g, this version changes the default locale
fallback (when no working locale is defined) from hiding and rejecting
all non-ASCII path names to displaying and expecting UTF-8 encoding in
path names.
Authors:
--------
Szabolcs Szakacsits
%package devel
License: GPL v2 or later
Summary: Development files and libraries for ntfs-3g
Group: System/Filesystems
Requires: %{name} = %{version}-%{release}
%description devel
Headers and libraries for developing applications that use ntfs-3g
functionality.
Authors:
--------
Szabolcs Szakacsits
%prep
%setup -q
%patch
%patch2
%build
#
# regarding -Wno-sign-compare - checked with the Szaka: There is one variable
# which is signed and would possibly ok to be unsigned. Any solution to this
# needs to be carefully reviewed and tested, so we do not change the code now:
#
CFLAGS="$RPM_OPT_FLAGS -Wformat -Wformat-security -W -Wno-sign-compare -Werror" \
%configure --disable-static --disable-ldconfig
make %{?jobs:-j%jobs}
%install
make DESTDIR=$RPM_BUILD_ROOT install
# Move pkg-config to the real libdir
mkdir -p $RPM_BUILD_ROOT/%{_prefix}/%{_libdir}/pkgconfig
mv $RPM_BUILD_ROOT/%{_libdir}/pkgconfig/*.pc $RPM_BUILD_ROOT/%{_prefix}/%{_libdir}/pkgconfig/
rm -rf $RPM_BUILD_ROOT/%{_libdir}/*.la
# Hal stuff for mounting on hotplug.
mkdir -p $RPM_BUILD_ROOT/%{_datadir}/hal/fdi/policy/10osvendor/
install -m 644 %{SOURCE2} $RPM_BUILD_ROOT/%{_datadir}/hal/fdi/policy/10osvendor/21-storage-ntfs-3g.fdi
%clean
rm -rf $RPM_BUILD_ROOT
%check
echo >test.fs
/usr/sbin/mkntfs -q -F test.fs 3000
src/ntfs-3g.probe --readonly test.fs
src/ntfs-3g.probe --readwrite test.fs
rm test.fs
%files
%defattr(-,root,root,-)
%doc AUTHORS ChangeLog CREDITS NEWS README
%dir %{_datadir}/hal
%dir %{_datadir}/hal/fdi
%dir %{_datadir}/hal/fdi/policy
%dir %{_datadir}/hal/fdi/policy/10osvendor
%{_bindir}/ntfs-3g
%{_bindir}/ntfs-3g.probe
%{_sbindir}/mount.ntfs-3g
%{_libdir}/libntfs-3g.so.*
%{_datadir}/hal/fdi/*
%{_mandir}/man8/*
# We already have this, so no need to package it again.
%exclude /usr/share/doc/ntfs-3g/README
%files devel
%defattr(-,root,root,-)
%{_includedir}/ntfs-3g/
%{_libdir}/libntfs-3g.so
%{_prefix}/%{_libdir}/pkgconfig/libntfs-3g.pc
%post
update-alternatives --install /sbin/mount.ntfs mount.ntfs /sbin/mount.ntfs-3g 10 --slave /usr/share/man/man8/mount.ntfs.8.gz mount.ntfs.8.gz /usr/share/man/man8/mount.ntfs-3g.8.gz
/sbin/ldconfig
%postun
update-alternatives --remove mount.ntfs /sbin/mount.ntfs-3g
/sbin/ldconfig
%changelog
* Mon Oct 27 2008 ro@suse.de
- changed flavored requires to a simple PreReq
(the former are not really supported by all tools)
* Mon Oct 27 2008 vuntz@novell.com
- Use Requires(post) and Requires(postun) for update-alternatives,
to fix potential issues when installing.
* Wed Oct 22 2008 vuntz@novell.com
- Update to version 1.5012:
+ New: Support unlimited file and directory creation.
- Changes from version 1.2812:
+ Fix: A corrupted directory index entry could hang the driver
instead of returning "I/O error"
- Changes from version 1.2918:
+ Fix: The allocation size of an attribute may got corrupted if
the attribute size change failed.
+ Fix: An MFT record could leak on big-endian CPUs if adding a
new attribute failed.
+ Fix: The system log was flooded if a transparently compressed
or encrypted file was tried to be updated repeatedly.
+ New: Solaris support.
+ New: Libtool-2 support.
+ Change: No external dependency on librt anymore when internal
FUSE is used (default on Linux).
+ Change: The default compiler is gcc.
+ Change: Internal FUSE further shrank by 10%%.
- Use update-alternatives to provide /sbin/mount.ntfs and the
relevant man page, /usr/share/man/man8/mount.ntfs.8.gz.
- Add volume.policy.mount_filesystem to the fdi file, since it's
recommended by upstream and used by other distributions.
- Update ntfs-3g-warnings.patch with a few more warning fixes.
- Add a devel package.
- Tag patches.
- Remove old stuff for non-existing ntfs-3g-permssions.patch.
- Remove lzma BuildRequires.
- Minor cleanup.
* Wed Oct 15 2008 dkukawka@suse.de
- Added fdi file for ntfs-3g. For more info, read comments in the
new file.
* Mon Jul 14 2008 bk@suse.de
- Update to 1.2712 (maintenance release) to fix a number of issues:
- A corrupted size directory or a directory over tens of million
files could have hung the driver
- Removing alternate data streams and extended attrs leaked memory
- mount could fail with some mount(8) utilities (e.g. busybox one)
if the /etc/mtab file didn't exist or was on a read-only fs
- "I/O error" if the standard file descriptors were closed during
mount, e.g. via some usage of udev or hotplug
* Thu Jun 05 2008 bk@suse.de
- Update to 1.2531 to fix fs crashes and fs hangs with corrupt NTFS:
- A corrupted directory could hang the filesystem driver itself.
- The driver could hang or misbehave when compressed, sparse or
encrypted file attribute flags were corrupted.
- The driver could crash when both an MFT attribute offset and
the allocated bytes were corrupted.
- Mount could hang if the block allocation map was corrupted.
* Tue May 06 2008 bk@suse.de
- Update to STABLE Version 1.2506 (May 6, 2008):
- Fix NTFS volume corruption in extremely specific circumstances
- Fix symlink(2) for size 256 if the old path was over 255 bytes
- Unprivileged mount fixes: supplementary groups dropped too early
and make unprivileged mount if /etc/fuse.conf wasn't in shape.
- No longer pass 'noatime' additionally and unconditionally to mount
- Obsolete ntfsprogs-fuse (to be dropped from ntfsprogs package)
- With ntfsprogs and lzma, this builds in all non-debian repros
* Wed Mar 19 2008 bk@suse.de
- Update to 1.2310:
- Fix: CHKDSK reported inconsistencies as data and allocation size
of some special purpose resident unnamed $DATA attribute in the
index and inode FILE_NAME attributes could be incorrect.
- Fix: unprivileged mount failed if user had rights for everything
except the FUSE device file.
- Fix: the 'dev' and 'suid' mount options weren't useable before
- Change from ENOTEMPTY to EEXIST on rmdir of non-empty directories
* Mon Mar 03 2008 bk@suse.de
- Add a fix for a crash of the driver with a specific long filename
- Fix support for -odev and -osuid when mounting using /bin/ntfs-3g
* Thu Feb 28 2008 bk@suse.de
- Workaround for build issue with gcc-4.3 (bnc#354113) is obsolete
- Improve treatment of warnings and integrate -Wformat-security
* Mon Feb 18 2008 bk@suse.de
- Update to 1.2216:
- adds ntfs3-g.probe to check if filesystem is in mountable state
- fixes "Operation not supported" when deleting huge directories
- uses specialized integrated libfuse with fixes for suid usage
- Add a temporary workaround to prevent miscompilation with gcc-4.3
- Add a simple functionality check using ntfs-3g.probe to %%check
- Added -Wextra -Werror and fixed the resulting compiler errors
* Wed Sep 26 2007 bk@suse.de
- When called as mount.ntfs-3g and rw mount is not possible because
the volume is dirty or hibernated, fall back to read-only mounnt
to allow installation and system boot to succeed (fixes #309074)
* Thu Sep 13 2007 bk@suse.de
- Update to version 1.913
- Fix too rigid hibernation check which unneccesarily refused mount
- Free disk space calculation was highly CPU intensive during writes.
This could reduce write performance severely, especially for huge
volumes if a file manager or desktop applet regularly polled for
disk space usage. Change code to O(1), takes ~10ms on a typical
desktop, and it's now completely independent of the volume size.
The changes noted below were tested in public release candidate:
- Significant performance improvement for writing many files,
typically by 50-1000%% (cp, tar, compile, directory syncronisation)
- improved the performance of writing multi-GB size files, particulary
after the creation of many thousands of other files. Previous disk
space defragmentation is highly adviced for the best possible speed.
File level defragmentation is not enough.
- improved concurrent write performance.
* Mon Aug 27 2007 bk@suse.de
- Update to version 1.826:
* fix: utime() also updated the timestamp of the parent directory
* fix: ignore the "volume dirty" bit because its real meaning is
"check the volume". The fact of the real dirtiness is stored in
the NTFS logfile which is already checked for.
* new: --disable-library option links libntfs-3g into ntfs-3g
* Fri Aug 10 2007 bk@suse.de
- Update to version 1.810:
fix: file rename changed the modification time of some files which
prevented tools like rsync from preserving the timestamp
fix: unmount (fusermount -u) was denied for an unprivileged user
who was allowed to mount a block device.
fix: the driver could hang if there wasn't enough memory during
reading a large directory
fix: reading a directory may reporte success when there was an error
fix: metadata update error was ignored in some very rare cases during
writing a file
fix: permissions checking was turned on if umask, fmask and dmask
was set to the default 000 value.
change: manual update, added Windows filename compatibility section
change: lots of logging improvements
* Thu Jul 26 2007 coolo@suse.de
- let yast install the package for ntfs-3g filesystems
* Fri Jul 13 2007 bk@suse.de
- Update to version 1.710:
change: more troubleshooting hints if a volume can't be mounted
change: logging improvements
fix: move, rename and hard link could return "input/output error"
fix: very rare, recoverable directory corruption
- Do not obsolete ntfsprogs-fuse and do not provide mount.ntfs
Can coexist with ntfsmount and kernel ntfs module now, but you
have to use "ntfs-3g" as filesystem type in fstab and mount -t,
as done in the examples on http://www.ntfs-3g.org/index.html#usage
* Tue Jul 03 2007 bk@suse.de
- Update to version 1.616:
new: ensure mount works during boot: move binaries to the rootfs
fix: any kind of file size change failure returned "Operation not permitted"
fix: a file close failure was not always reported
fix: an unmount failure was not always reported
fix: if the $MFT Bitmap wasn't up-to-date file creation always gave "Input/output error"
fix: converting very long file names to Unicode may have failed
fix: syslog messages didn't show the low level error detail
* Wed Jun 06 2007 bk@suse.de
- Initial version 1.516, has Obsoletes: ntfsmount-fuse