File ntfs-3g.spec of Package ntfs-3g

#
# spec file for package ntfs-3g (Version 2009.4.4)
#
# Copyright (c) 2009 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:        2009.4.4
Release:        3.<RELEASE2>
Provides:       ntfsprogs-fuse  = 1.13.1
Obsoletes:      ntfsprogs-fuse <= 1.13.1
License:        GPLv2+
Group:          System/Filesystems
Source:         %{name}-%{version}.tar.bz2
Source1:        buildall.sh
Source2:        21-storage-ntfs-3g.fdi
# PATCH-FIX-OPENSUSE ntfs-3g-warnings.patch -- Fix a bunch of warnings that appears because of -Werror. They weren't committed upstream when I sent a patch that contained all our warning fixes (vuntz)
Patch0:         ntfs-3g-warnings.patch
Url:            http://www.ntfs-3g.org
BuildRequires:  ntfsprogs
Requires(post): update-alternatives
Requires(postun): update-alternatives
# The build service fails to build the package because it doesn't really
# understand Requires(post), so use PreReq too (see bnc#439232).
%if %defined suse_version
PreReq:         update-alternatives
%endif
BuildRoot:      %{_tmppath}/%{name}-%{version}-build
%if 0%{?suse_version} > 1010
Supplements:    filesystem(ntfs-3g)
%endif

%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:        GPLv2+
Summary:        Development files and libraries for ntfs-3g
Group:          System/Filesystems
Requires:       %{name} = %{version} glibc-devel

%description devel
Headers and libraries for developing applications that use ntfs-3g
functionality.



Authors:
--------
    Szabolcs Szakacsits

%prep
%setup -q
%patch0 -p1

%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 --exec-prefix=/ --disable-static --with-pic --libdir=/%{_lib} --disable-ldconfig
make %{?jobs:-j%jobs}

%install
%makeinstall
# Move pkg-config to the real libdir
%{__mkdir_p} %{buildroot}%{_libdir}/pkgconfig
%{__mv} -v %{buildroot}/%{_lib}/pkgconfig/*.pc %{buildroot}%{_libdir}/pkgconfig/
%{__ln_s} -v /%{_lib}/$(readlink %{buildroot}/%{_lib}/lib%{name}.so) %{buildroot}%{_libdir}/lib%{name}.so
%{__rm} -v %{buildroot}/%{_lib}/lib%{name}.{so,la}
# Hal stuff for mounting on hotplug.
%{__mkdir_p} %{buildroot}%{_datadir}/hal/fdi/policy/10osvendor/
%{__install} -m 644 %{SOURCE2} %{buildroot}%{_datadir}/hal/fdi/policy/10osvendor/21-storage-ntfs-3g.fdi

%clean
rm -rf $RPM_BUILD_ROOT

%check
TESTFS=$(mktemp) || exit 1
/usr/sbin/mkntfs -q -F $TESTFS 3000
src/ntfs-3g.probe --readonly  $TESTFS
src/ntfs-3g.probe --readwrite $TESTFS
rm -v $TESTFS

%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
/sbin/mount.ntfs-3g
/%{_lib}/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
%{_libdir}/pkgconfig/libntfs-3g.pc

%post
# If the mount.ntfs group is in automatic mode, then this will also switch all
# symlinks automatically
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
# Note: we don't use "$1 -eq 0", to avoid issues if the package gets renamed
if [ ! -f /sbin/mount.ntfs-3g ]; then
  update-alternatives --remove mount.ntfs /sbin/mount.ntfs-3g
fi
/sbin/ldconfig

%posttrans
# Workaround old bug in 11.1/11.2 packages that always removed the symlinks in
# %postun. Can be removed during 12.2 development.
if [ ! -f /sbin/mount.ntfs -a -f /sbin/mount.ntfs-3g ]; then
  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
fi

%changelog
openSUSE Build Service is sponsored by