Prevent aclocal(1) crash on 'AM_PATH_LINC' for recent systems missing 'linc'.
[captive.git] / captive.spec.in
index 95e0e52..e226be6 100644 (file)
@@ -24,12 +24,15 @@ Name: @PACKAGE@
 %define release 0
 Version: @VERSION@
 Release: %{release}
 %define release 0
 Version: @VERSION@
 Release: %{release}
-Group: Applications/System
-Source: http://www.jankratochvil.net/project/captive/@PACKAGE@-@VERSION@.tar.gz
+Group: System Environment/Base
+Packager: Jan Kratochvil <project-captive@jankratochvil.net>
+Source: http://www.jankratochvil.net/project/captive/dist/@PACKAGE@-@VERSION@.tar.gz
 Copyright: GPL
 BuildRoot: /var/tmp/@PACKAGE@-@VERSION@-%{release}-root
 BuildRequires: ORBit2-devel
 Requires: ORBit2
 Copyright: GPL
 BuildRoot: /var/tmp/@PACKAGE@-@VERSION@-%{release}-root
 BuildRequires: ORBit2-devel
 Requires: ORBit2
+# Due to --with-orbit-line=linc
+Conflicts: ORBit2 >= 2.7.0
 BuildRequires: openssl-devel
 Requires: openssl
 BuildRequires: gnome-vfs2-devel
 BuildRequires: openssl-devel
 Requires: openssl
 BuildRequires: gnome-vfs2-devel
@@ -55,6 +58,48 @@ The implementation allows applications running under the GNU/Linux operating
 system to access NTFS drives. File system driver compatibility with VFAT,
 ISO9660 and EXT2 is also provided.
 
 system to access NTFS drives. File system driver compatibility with VFAT,
 ISO9660 and EXT2 is also provided.
 
+%package lufs
+Summary: LUFS module for Microsoft Windows platform filesystem access.
+Group: System Environment/Base
+Requires: captive = %{PACKAGE_VERSION}
+BuildRequires: lufs >= 0.9.6-1captive
+Requires: lufs >= 0.9.6-1captive
+
+%description lufs
+LUFS is a hybrid userspace filesystem framework.
+
+Package provides LUFS filesystem module to access Microsoft Windows platform
+filesystems such as NTFS. Use filesystem type 'captive-ntfs' for NTFS disks.
+
+%package install
+Summary: Instant installer for Microsoft Windows platform filesystem access.
+Group: System Environment/Base
+Requires: captive-lufs = %{PACKAGE_VERSION}
+# Versions before 1.8.0 were too buggy
+BuildRequires: ntfsprogs-devel >= 1.8.0
+# 'PreReq' needed for Mandrake-9.1 otherwise '%preun install' fails
+# during 'rpm -e ntfsprogs captive-install':
+PreReq: ntfsprogs >= 1.8.0
+Requires: ntfsprogs >= 1.8.0
+Requires: ntfsprogs-gnomevfs
+Requires: gnome-vfs-httpcaptive
+BuildRequires: gnome-vfs2-devel
+Requires: gnome-vfs2
+BuildRequires: libgnomeui-devel
+Requires: libgnomeui
+BuildRequires: readline-devel
+Requires: readline
+BuildRequires: libxml2-devel >= 2.4.29
+Requires: libxml2 >= 2.4.29
+
+%description install
+Package provides easy enough unattended installation of Microsoft Windows
+platform filesystem access. Installer finds available NTFS partitions and
+tries to acquire needed Microsoft Windows filesystem driver files.
+
+You may need to run 'captive-install-acquire' to answer several questions.
+NTFS disks will become mount(8)able at directories: /mnt/captive-VOLUME_NAME
+
 #% %package devel
 #% Summary: Microsoft Windows platform filesystem access development support.
 #% Group: Development/System
 #% %package devel
 #% Summary: Microsoft Windows platform filesystem access development support.
 #% Group: Development/System
@@ -73,17 +118,20 @@ ISO9660 and EXT2 is also provided.
 %build
 # Never disable debug for captive, see FAQ
 #      "How to check valid input arguments? Invalid processing state assumptions?"
 %build
 # Never disable debug for captive, see FAQ
 #      "How to check valid input arguments? Invalid processing state assumptions?"
-# FIXME: Use our own CFLAGS to prevent '-mcpu=i686' which up to gcc-20030214 gcc
-# will ignore stack freeing of attribute((stdcall)) callees in caller functions code.
-# Check at the final call of src/libcaptive/reactos/ntoskrnl/io/irp.c/IofCallDriver().
-CFLAGS="-O2"
 %configure \
                --enable-shared --disable-static \
                --with-readline \
 %configure \
                --enable-shared --disable-static \
                --with-readline \
-               --with-sandbox-setuid=@PACKAGE@ \
-               --with-sandbox-setgid=@PACKAGE@ \
-               --with-sandbox-chroot=%{_var}/lib/@PACKAGE@ \
-               --disable-gtk-doc
+               --disable-bug-replay \
+               --enable-lufs \
+               --enable-install-pkg \
+               --enable-sandbox-setuid=@PACKAGE@ \
+               --enable-sandbox-setgid=@PACKAGE@ \
+               --enable-sandbox-chroot=%{_var}/lib/@PACKAGE@ \
+               --enable-man-pages \
+               --enable-sbin-mountdir=/sbin \
+               --enable-sbin-mount-fs=ntfs:fastfat:cdfs:ext2fsd \
+               --disable-gtk-doc \
+               --with-orbit-line=linc
 make
 
 %install
 make
 
 %install
@@ -94,23 +142,53 @@ rm -rf $RPM_BUILD_ROOT
 
 %post
 /sbin/ldconfig
 
 %post
 /sbin/ldconfig
+/usr/sbin/useradd -c "Captive Sandbox" -s /sbin/nologin -r -d %{_var}/lib/@PACKAGE@ captive 2>/dev/null || true
 
 %postun
 /sbin/ldconfig
 
 %postun
 /sbin/ldconfig
+# Remove stale sandbox chroot directories owned by 'captive.captive':
+rm -rf %{_var}/lib/@PACKAGE@/sandbox-server-*
 
 %files
 %defattr(-,root,root)
 %doc README NEWS AUTHORS TODO
 %{_libdir}/lib@PACKAGE@-@VERSION@.so
 
 %files
 %defattr(-,root,root)
 %doc README NEWS AUTHORS TODO
 %{_libdir}/lib@PACKAGE@-@VERSION@.so
-%{_libdir}/liblufs-@PACKAGE@fs-@VERSION@.so
-%{_libdir}/liblufs-@PACKAGE@fs.so
+%attr(644,root,root) %{_mandir}/man?/@PACKAGE@.*
 %{_libdir}/gnome-vfs-2.0/modules/lib@PACKAGE@-gnomevfs-@VERSION@.so
 %{_libdir}/gnome-vfs-2.0/modules/lib@PACKAGE@-gnomevfs.so
 %{_bindir}/@PACKAGE@-cmdline
 %{_libdir}/gnome-vfs-2.0/modules/lib@PACKAGE@-gnomevfs-@VERSION@.so
 %{_libdir}/gnome-vfs-2.0/modules/lib@PACKAGE@-gnomevfs.so
 %{_bindir}/@PACKAGE@-cmdline
+%attr(644,root,root) %{_mandir}/man?/@PACKAGE@-cmdline.*
 %attr(4755,root,root) %{_sbindir}/@PACKAGE@-sandbox-server
 %attr(4755,root,root) %{_sbindir}/@PACKAGE@-sandbox-server
-%{_sysconfdir}/gnome-vfs-2.0/modules/@PACKAGE@.conf
+%attr(644,root,root) %{_mandir}/man?/@PACKAGE@-sandbox-server.*
+%config %{_sysconfdir}/gnome-vfs-2.0/modules/@PACKAGE@.conf
 %{_datadir}/locale/*/LC_MESSAGES/@PACKAGE@.mo
 %attr(755,root,root) %{_var}/lib/@PACKAGE@
 %{_datadir}/locale/*/LC_MESSAGES/@PACKAGE@.mo
 %attr(755,root,root) %{_var}/lib/@PACKAGE@
+%attr(1777,root,root) %{_var}/lib/@PACKAGE@/tmp
+%attr(644,root,root) %{_var}/lib/@PACKAGE@/*.sys
+
+%files lufs
+%defattr(-,root,root)
+%{_libdir}/liblufs-@PACKAGE@fs-@VERSION@.so
+%{_libdir}/liblufs-@PACKAGE@fs.so
+%attr(644,root,root) %{_mandir}/man?/lufs-@PACKAGE@fs.*
+/sbin/mount.@PACKAGE@
+/sbin/mount.@PACKAGE@-*
+%attr(644,root,root) %{_mandir}/man?/mount.@PACKAGE@.*
+
+%post install
+%{_sbindir}/captive-install-fstab --add
+%{_sbindir}/captive-install-acquire --text --scan-disks-quick
+
+%preun install
+%{_sbindir}/captive-install-fstab --remove
+
+%files install
+%defattr(-,root,root)
+%config %{_sysconfdir}/w32-mod-id.captivemodid.xml
+%{_sbindir}/captive-install-fstab
+%attr(644,root,root) %{_mandir}/man?/captive-install-fstab.*
+%{_sbindir}/captive-install-acquire
+%attr(644,root,root) %{_mandir}/man?/captive-install-acquire.*
 
 # %files devel
 # %defattr(-,root,root)
 
 # %files devel
 # %defattr(-,root,root)