Compatibility with ORBit2>=2.7.x; new configure option '--with-orbit-line'.
[captive.git] / captive.spec.in
index 7ad0a92..e226be6 100644 (file)
@@ -1,6 +1,6 @@
 # $Id$
 # rpm package description file for building
-# Copyright (C) 2002 Jan Kratochvil <project-captive@jankratochvil.net>
+# Copyright (C) 2002-2003 Jan Kratochvil <project-captive@jankratochvil.net>
 # 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
@@ -24,10 +24,28 @@ Name: @PACKAGE@
 %define release 0
 Version: @VERSION@
 Release: %{release}
-Group: Applications/System
-Source: http://www.jankratochvil.net/sw/@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
+# Due to --with-orbit-line=linc
+Conflicts: ORBit2 >= 2.7.0
+BuildRequires: openssl-devel
+Requires: openssl
+BuildRequires: gnome-vfs2-devel
+Requires: gnome-vfs2
+BuildRequires: libxml2-devel
+Requires: libxml2
+BuildRequires: popt
+Requires: popt
+BuildRequires: glib2-devel
+Requires: glib2
+BuildRequires: readline-devel
+Requires: readline
+BuildRequires: gcc >= 3.0
 
 %description
 Existing binary Microsoft Windows file system drivers were exploited
@@ -35,10 +53,52 @@ for accessing drives with possibly proprietary file system data structures.
 Open file system API is provided to access these file system drivers.
 Microsoft Windows system components required by these drivers
 were analyzed and successfuly emulated in the GNU/Linux operating system.
-Currently the implementation allows applications running under the GNU/Linux
-operating system to access VFAT, ISO9660 and EXT2 drives. NTFS file system
-capability target is the final goal being currently developed on the base
-of this project assets.
+
+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.
+
+%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.
@@ -58,13 +118,20 @@ of this project assets.
 %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
+               --with-readline \
+               --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
@@ -75,19 +142,53 @@ rm -rf $RPM_BUILD_ROOT
 
 %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
+# Remove stale sandbox chroot directories owned by 'captive.captive':
+rm -rf %{_var}/lib/@PACKAGE@/sandbox-server-*
 
 %files
 %defattr(-,root,root)
-%doc README NEWS AUTHORS
-%{_libdir}/gnome-vfs-2.0/modules/libcaptive-gnomevfs-@VERSION@.so
-%{_libdir}/gnome-vfs-2.0/modules/libcaptive-gnomevfs.so
-%{_libdir}/libcaptive-@VERSION@.so
-%{_bindir}/captive-cmdline
-%{_sysconfdir}/gnome-vfs-2.0/modules/captive.conf
+%doc README NEWS AUTHORS TODO
+%{_libdir}/lib@PACKAGE@-@VERSION@.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
+%attr(644,root,root) %{_mandir}/man?/@PACKAGE@-cmdline.*
+%attr(4755,root,root) %{_sbindir}/@PACKAGE@-sandbox-server
+%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@
+%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)