[CentOS-devel] fuse.spec

Fri Apr 28 21:02:17 UTC 2006
Lists <lists at littlebald.com>

This spec is for fuse (filesystem in userspace).  It builds the kernel
module and puts it into a separate package called fuse-kernel.

David Johnston
-------------- next part --------------
Name:           fuse
Version:        2.5.3
Release:        2%{?dist}
Summary:        File System in Userspace (FUSE) utilities

Group:          System Environment/Base
License:        GPL
URL:            http://fuse.sf.net
Source0:        http://dl.sourceforge.net/sourceforge/fuse/%{name}-%{version}.tar.gz
Source1:	fuse-udev.nodes
Source2:	fuse-makedev.d-fuse
Source3:	fuse-README.fedora

Patch0:		fuse-udev_rules.patch
BuildRoot:      %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
Requires:	kernel >= 2.6.9-34
Requires(pre):	  %{_sbindir}/groupadd
Requires(post):   /sbin/MAKEDEV
Requires(postun): %{_sbindir}/groupdel
BuildRequires:	kernel-devel, coreutils, gawk, gcc = 3.4.5-2, binutils, sed

%description
With FUSE it is possible to implement a fully functional filesystem in a 
userspace program. This package contains the FUSE userspace tools to 
mount a FUSE filesystem.

Note: For security reasons only members of the group "fuse" are allowed to
(u)mount fuse filesystems. You can find more details on this issue in
%{_docdir}/%{name}-%{version}/README.fedora


%package libs
Summary:        File System in Userspace (FUSE) libraries
Group:          System Environment/Libraries
License:        LGPL

%description libs
Devel With FUSE it is possible to implement a fully functional filesystem in a 
userspace program. This package contains the FUSE libraries. 


%package devel
Summary:        File System in Userspace (FUSE) devel files
Group:          Development/Libraries
Requires:	%{name}-libs = %{version}-%{release}
Requires: 	pkgconfig
License:        LGPL

%description devel
With FUSE it is possible to implement a fully functional filesystem in a 
userspace program. This package contains development files (headers, 
pgk-config) to develop FUSE based applications/filesystems.

%package kernel
Summary:        File System in Userspace (FUSE) kernel module
Group:          System Environment/Base
Requires:	%{name}-libs = %{version}-%{release}
License:        LGPL

%description kernel
With FUSE it is possible to implement a fully functional filesystem in a 
userspace program.  This package contains the kernel module for FUSE.

%prep
%setup -q
#disable device creation during build/install
sed -i 's|mknod|echo Disabled: mknod |g' util/Makefile.in
%patch0 -b .patch0
cp %{SOURCE3} README.fedora

%build
%configure \
 --prefix=/usr \
 --disable-static \
 --enable-kernel-module \
 --enable-lib \
 --enable-util \
 --enable-example
# --disable-kernel-module 

make %{?_smp_mflags}


%install
rm -rf $RPM_BUILD_ROOT
make install DESTDIR=$RPM_BUILD_ROOT
find $RPM_BUILD_ROOT -type f -name "*.la" -exec rm -f {} ';'
install -D -p -m 644 %{SOURCE1} $RPM_BUILD_ROOT/%{_sysconfdir}/udev/makedev.d/60-fuse.nodes
install -D -p -m 644 %{SOURCE2} $RPM_BUILD_ROOT/%{_sysconfdir}/makedev.d/z-fuse
# change from 4755 to 0755 to allow stripping -- fixed later in files
chmod 0755 $RPM_BUILD_ROOT/%{_bindir}/fusermount


%clean
rm -rf $RPM_BUILD_ROOT

%pre 
if [ $1 -eq 1 ]; then
     %{_sbindir}/groupadd -r fuse &>/dev/null || :
fi

%post
/sbin/MAKEDEV fuse

%post kernel -p /sbin/depmod

%postun 
if [ $1 = 0 ]; then
 %{_sbindir}/groupdel fuse || :
fi

%post libs -p /sbin/ldconfig

%postun libs -p /sbin/ldconfig

%postun kernel -p /sbin/depmod


%files
%defattr(-,root,root,-)
%doc AUTHORS ChangeLog COPYING FAQ Filesystems NEWS README README.NFS README.fedora
/sbin/mount.fuse
%attr(4754,root,fuse) %{_bindir}/fusermount
%{_sysconfdir}/makedev.d/z-fuse
%{_sysconfdir}/udev/rules.d/60-fuse.rules
%{_sysconfdir}/udev/makedev.d/60-fuse.nodes

%files libs
%doc COPYING.LIB
%{_libdir}/libfuse.so.*

%files devel
%defattr(-,root,root,-)
%{_libdir}/libfuse.so
%{_libdir}/pkgconfig/*.pc
%{_includedir}/fuse.h
%{_includedir}/fuse

%files kernel
%defattr(0744,root,root,-)
/lib/modules/2.6.9-34.EL/kernel/fs/fuse/fuse.ko

%changelog

* Wed Apr 26 2006 David Johnston <david at littlebald.com> 2.5.3-2%{?dist}
- Pass several parameters to configure

- Added -kernel subpackage since the Centos kernel doesn't support FUSE.
* Wed Apr 26 2006 David Johnston <david at littlebald.com> 2.5.3-1%{?dist}
- Added -kernel subpackage since the Centos kernel doesn't support FUSE.
- Added defattr to %files to control ownership

* Wed Apr 26 2006 David Johnston <david at littlebald.com> 2.5.3-0%{?dist}
- Used Peter Lemenkov's spec to package 2.5.3 for Centos

* Thu Mar 30 2006 Peter Lemenkov <lemenkov at newmail.ru> 2.5.2-4%{?dist}
- rebuild

* Mon Feb 13 2006 Peter Lemenkov <lemenkov at newmail.ru> - 2.5.2-3
- Proper udev rule

* Mon Feb 13 2006 Peter Lemenkov <lemenkov at newmail.ru> - 2.5.2-2
- Added missing requires

* Tue Feb 07 2006 Peter Lemenkov <lemenkov at newmail.ru> - 2.5.2-1
- Update to 2.5.2
- Dropped fuse-mount.fuse.patch

* Wed Nov 23 2005 Thorsten Leemhuis <fedora[AT]leemhuis[DOT]info> - 2.4.2-1
- Use dist

* Wed Nov 23 2005 Thorsten Leemhuis <fedora[AT]leemhuis[DOT]info> - 2.4.2-1
- Update to 2.4.2 (solves CVE-2005-3531)
- Update README.fedora

* Sat Nov 12 2005 Thorsten Leemhuis <fedora[AT]leemhuis[DOT]info> - 2.4.1-3
- Add README.fedora
- Add hint to README.fedora and that you have to be member of the group "fuse"
  in the description
- Use groupadd instead of fedora-groupadd

* Fri Nov 04 2005 Thorsten Leemhuis <fedora[AT]leemhuis[DOT]info> - 2.4.1-2
- Rename packages a bit
- use makedev.d/40-fuse.nodes
- fix /sbin/mount.fuse
- Use a fuse group to restict access to fuse-filesystems

* Fri Oct 28 2005 Thorsten Leemhuis <fedora[AT]leemhuis[DOT]info> - 2.4.1-1
- Initial RPM release.