X-Git-Url: http://git.jankratochvil.net/?a=blobdiff_plain;f=captive.spec.in;h=0fa48003f0dcca082cfb84ff91df64c986801cf5;hb=c15e543df80323dceb1786fa8c62123f8a50dfef;hp=c8e2adca2eb396417dff73c6723a4445f6e95f8a;hpb=2abdd1d7d723cd2a874b658cfe7f2d68461dd572;p=captive.git diff --git a/captive.spec.in b/captive.spec.in index c8e2adc..0fa4800 100644 --- a/captive.spec.in +++ b/captive.spec.in @@ -1,6 +1,6 @@ # $Id$ # rpm package description file for building -# Copyright (C) 2002 Jan Kratochvil +# Copyright (C) 2002-2005 Jan Kratochvil # # 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 @@ -16,41 +16,189 @@ # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# Build fully statically. +# /usr/local/staticbuild is required to contain static libraries. +%define static 1 + + +# Temporary cludge before full 'devel' package gets deployed +%define _unpackaged_files_terminate_build 0 + Summary: Microsoft Windows platform filesystem access. +%if %{static} +Name: @PACKAGE@-static +%else Name: @PACKAGE@ +%endif %define release 0 Version: @VERSION@ Release: %{release} -Group: Applications/System -Source: http://short.vellum.cz/sw/@PACKAGE@-@VERSION@.tar.gz -Copyright: GPL +Group: System Environment/Base +Packager: Jan Kratochvil +Source: http://www.jankratochvil.net/project/captive/dist/@PACKAGE@-@VERSION@.tar.gz +License: GPL BuildRoot: /var/tmp/@PACKAGE@-@VERSION@-%{release}-root +BuildRequires: ORBit2-devel +# >= 2.7.0 due to --with-orbit-line=link +# >= 2.8.3 due to Mandrake-9.2 bugreport. +%if ! %{static} +Requires: ORBit2 >= 2.8.3 +%endif +BuildRequires: openssl-devel +%if ! %{static} +Requires: openssl +%endif +BuildRequires: gnome-vfs2-devel +%if ! %{static} +Requires: gnome-vfs2 +%endif +BuildRequires: libxml2-devel +%if ! %{static} +Requires: libxml2 +%endif +BuildRequires: popt +%if ! %{static} +Requires: popt +%endif +BuildRequires: glib2-devel +%if ! %{static} +Requires: glib2 +%endif +BuildRequires: readline-devel +%if ! %{static} +Requires: readline +%endif +BuildRequires: gcc >= 3.0 +%if %{static} +BuildRequires: fuse-devel +BuildRequires: ntfsprogs-devel >= 1.8.0 +BuildRequires: libgnomeui-devel +Obsoletes: @PACKAGE@ +Obsoletes: @PACKAGE@-lufs +Obsoletes: @PACKAGE@-install +# FIXME: ?: ntfsprogs-gnomevfs < 1.1 +%else +Conflicts: @PACKAGE@-static +%endif %description -Microsoft Windows platform filesystem access. -TODO +Existing binary Microsoft Windows file system drivers were exploited +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. + +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. + +http://www.jankratochvil.net/project/captive/ +%if %{static} +This packaging is a standalone static version, no other packages are needed. + +%else + +%package fuse +Summary: FUSE module for Microsoft Windows platform filesystem access. +Group: System Environment/Base +Requires: captive = %{PACKAGE_VERSION} +BuildRequires: fuse-devel +Requires: fuse fuse-libs -%package devel -Summary: Microsoft Windows platform filesystem access development support. -Group: Development/System -Requires: surprise = %{PACKAGE_VERSION} +%description fuse +FUSE is a userspace filesystem framework. -%description devel -Development package containing libraries for static linking together with -header files needed for any linking. +Package provides FUSE filesystem module to access Microsoft Windows platform +filesystems such as NTFS. Use filesystem type 'captive-ntfs' for NTFS disks. -Microsoft Windows platform filesystem access. -TODO +%package install +Summary: Instant installer for Microsoft Windows platform filesystem access. +Group: System Environment/Base +Requires: captive-fuse = %{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 +Obsoletes: 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 + +%endif + +#% %package devel +#% Summary: Microsoft Windows platform filesystem access development support. +#% Group: Development/System +#% Requires: surprise = %{PACKAGE_VERSION} +#% +#% %description devel +#% Development package containing libraries for static linking together with +#% header files needed for any linking. +#% +#% Microsoft Windows platform filesystem access. +#% TODO %prep -%setup +%setup -n @PACKAGE@-%{version} %build # Never disable debug for captive, see FAQ # "How to check valid input arguments? Invalid processing state assumptions?" +%if 0 +# For AutoGen: +%configure +%endif +# 'define' of rpm(1) does not accept line-continuation backslashes ('\'). +%if %{static} +export CPPFLAGS="-I/usr/local/staticbuild/include/gnome-vfs-module-2.0" +%configure \ + --disable-shared --enable-static \ + --enable-standalone \ + --enable-standalone-fonts=%{_datadir}/@PACKAGE@/fonts \ +%else %configure \ - --enable-shared --enable-static + --enable-shared --disable-static \ + --disable-standalone \ + --disable-standalone-fonts \ +%endif + --disable-standalone-yum \ + --with-readline \ + --disable-bug-replay \ + --disable-lufs \ + --enable-fuse \ + --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 \ + --with-initddir=%{_initrddir} \ + --disable-gtk-doc \ + --with-orbit-line=link + +# --enable-standalone-yum=%{_sysconfdir}/yum.repos.d + make +%if %{static} +./build-static link +%endif %install make DESTDIR=$RPM_BUILD_ROOT install-strip @@ -58,29 +206,121 @@ make DESTDIR=$RPM_BUILD_ROOT install-strip %clean rm -rf $RPM_BUILD_ROOT +%pre + +%if ! %{static} +%pre fuse +%endif +%if %{static} +/usr/sbin/groupadd -r fuse 2>/dev/null || \ + /usr/sbin/groupadd fuse 2>/dev/null || \ + true +%endif + %post /sbin/ldconfig +/usr/sbin/groupadd -r captive 2>/dev/null || \ + /usr/sbin/groupadd captive 2>/dev/null || \ + true +/usr/sbin/useradd -r -c "Captive Sandbox" -s /sbin/nologin -g captive -d %{_var}/lib/@PACKAGE@ captive 2>/dev/null || \ + /usr/sbin/useradd -c "Captive Sandbox" -s /sbin/nologin -g captive -d %{_var}/lib/@PACKAGE@ captive 2>/dev/null || \ + true + +%if ! %{static} +%post fuse +%endif +/usr/lib/lsb/install_initd @PACKAGE@ 2>/dev/null || \ + /sbin/chkconfig --add @PACKAGE@ +touch %{_var}/lock/subsys/@PACKAGE@ + +%if ! %{static} +%post install +%endif +%{_sbindir}/captive-install-fstab --add +%{_sbindir}/captive-install-acquire --text --scan-disks-quick + +%preun + +%if ! %{static} +%preun fuse +%endif +# Only on real erase, not on upgrade: +if [ $1 = 0 ];then + /usr/lib/lsb/remove_initd @PACKAGE@ 2>/dev/null || \ + /sbin/chkconfig --del @PACKAGE@ + %{_initrddir}/@PACKAGE@ stop + rm -f %{_var}/lock/subsys/@PACKAGE@ +fi + +%if ! %{static} +%preun install +%endif +# Only on real erase, not on upgrade: +if [ $1 = 0 ];then + %{_sbindir}/captive-install-fstab --remove +fi %postun /sbin/ldconfig +# Only on real erase, not on upgrade: +if [ $1 = 0 ];then + # Remove stale sandbox chroot directories owned by 'captive.captive': + rm -rf %{_var}/lib/@PACKAGE@/s-* + rm -rf %{_var}/lib/@PACKAGE@/tmp/* +fi %files %defattr(-,root,root) -%doc INSTALL -/sbin/@PACKAGE@cmdline -/usr/bin/@PACKAGE@server -/usr/share/@PACKAGE@ -/usr/share/locale/*/LC_MESSAGES/@PACKAGE@.mo -#for version-info use: /lib/*.so.* -###for --disable-shared/(--enable-static-link disable): -/usr/lib/*-*.so - -%files devel +%doc README NEWS AUTHORS THANKS TODO +%if ! %{static} +%{_libdir}/lib@PACKAGE@-@VERSION@.so +%{_libdir}/gnome-vfs-2.0/modules/lib@PACKAGE@-gnomevfs-@VERSION@.so +%{_libdir}/gnome-vfs-2.0/modules/lib@PACKAGE@-gnomevfs.so +%endif +%attr(644,root,root) %{_mandir}/man?/@PACKAGE@.* +%{_bindir}/@PACKAGE@-cmdline +%attr(644,root,root) %{_mandir}/man?/@PACKAGE@-cmdline.* +%attr(4755,root,root) %{_libexecdir}/@PACKAGE@-sandbox-server +%attr(644,root,root) %{_mandir}/man?/@PACKAGE@-sandbox-server.* +%config %{_sysconfdir}/w32-mod-id.captivemodid.xml +%if ! %{static} +%config %{_sysconfdir}/gnome-vfs-2.0/modules/@PACKAGE@.conf +%endif +# %config %{_sysconfdir}/yum.repos.d/* +%{_datadir}/locale/*/LC_MESSAGES/@PACKAGE@.mo +%{_var}/lib/@PACKAGE@ + +%if ! %{static} +%files fuse +%endif +%defattr(-,root,root) +%{_initrddir}/@PACKAGE@ +/sbin/mount.@PACKAGE@ +/sbin/mount.@PACKAGE@-* +%attr(644,root,root) %{_mandir}/man?/mount.@PACKAGE@.* +%if %{static} +%attr(4754,root,fuse) %{_libexecdir}/@PACKAGE@-fusermount +%endif + +%if ! %{static} +%files install +%endif %defattr(-,root,root) -%doc ChangeLog -/usr/include/@PACKAGE@ -/usr/share/aclocal/* -/usr/lib/*.a -/usr/lib/*.la -###for --disable-shared/(--enable-static-link disable): -/usr/lib/*[a-z].so +%{_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.* +%if %{static} +%{_datadir}/@PACKAGE@ +%endif + +# %files devel +# %defattr(-,root,root) +# %doc ChangeLog +# /usr/include/@PACKAGE@ +# /usr/share/aclocal/* +# %{_libdir}/gnome-vfs-2.0/modules/libcaptive-gnomevfs.la +# /usr/lib/*.a +# /usr/lib/*.la +# ###for --disable-shared/(--enable-static-link disable): +# /usr/lib/*[a-z].so