install everything in /usr

This patch is needed for the /usr-move feature
https://fedoraproject.org/wiki/Features/UsrMove

This package requires now 'filesystem' >= 3, which is only installable
on a system which has /bin, /sbin, /lib, /lib64 as symlinks to /usr and
not regular directories. The 'filesystem' package acts as a guard, to
prevent *this* package to be installed on old unconverted systems.

New installations will have the 'filesystem' >=3 layout right away, old
installations need to be converted with anaconda or dracut first; only
after that, the 'filesystem' package, and also *this* package can be
installed.

Packages *should* not install files in /bin, /sbin, /lib, /lib64, but
only in the corresponding directories in /usr. Packages *must* not
install conflicting files with the same names in the corresponding
directories in / and /usr. Especially compatibilty symlinks must not be
installed.

Feel free to modify any of the changes to the spec file, but keep the
above in mind.
This commit is contained in:
Harald Hoyer 2012-01-25 18:37:03 +01:00
parent e3a88c5202
commit f52f1ca079

View File

@ -1,6 +1,6 @@
Name: fuse
Version: 2.8.6
Release: 2%{?dist}
Release: 3%{?dist}
Summary: File System in Userspace (FUSE) utilities
Group: System Environment/Base
@ -14,6 +14,7 @@ Patch2: fuse-0002-More-parentheses.patch
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
Requires: kernel >= 2.6.14
Requires: which
Conflicts: filesystem < 3
BuildRequires: libselinux-devel
Requires(preun): chkconfig
@ -28,6 +29,7 @@ mount a FUSE filesystem.
Summary: File System in Userspace (FUSE) libraries
Group: System Environment/Libraries
License: LGPLv2+
Conflicts: filesystem < 3
%description libs
Devel With FUSE it is possible to implement a fully functional filesystem in a
@ -40,6 +42,7 @@ Group: Development/Libraries
Requires: %{name}-libs = %{version}-%{release}
Requires: pkgconfig
License: LGPLv2+
Conflicts: filesystem < 3
%description devel
With FUSE it is possible to implement a fully functional filesystem in a
@ -56,34 +59,22 @@ sed -i 's|mknod|echo Disabled: mknod |g' util/Makefile.in
%build
# Can't pass --disable-static here, or else the utils don't build
CFLAGS="%{optflags} -D_GNU_SOURCE" %configure \
--libdir=/%{_lib} \
--bindir=/bin \
--exec-prefix=/
export MOUNT_FUSE_PATH="%{_sbindir}"
CFLAGS="%{optflags} -D_GNU_SOURCE" %configure
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 {} ';'
# change from 4755 to 0755 to allow stripping -- fixed later in files
chmod 0755 $RPM_BUILD_ROOT/bin/fusermount
# Put pc file in correct place
mkdir -p $RPM_BUILD_ROOT%{_libdir}
mv $RPM_BUILD_ROOT/%{_lib}/pkgconfig $RPM_BUILD_ROOT%{_libdir}
chmod 0755 $RPM_BUILD_ROOT/%{_bindir}/fusermount
# Get rid of static libs
rm -f $RPM_BUILD_ROOT/%{_lib}/*.a
rm -f $RPM_BUILD_ROOT/%{_libdir}/*.a
# No need to create init-script
rm -f $RPM_BUILD_ROOT%{_sysconfdir}/init.d/fuse
# Compatibility symlinks
mkdir -p $RPM_BUILD_ROOT%{_bindir}
cd $RPM_BUILD_ROOT%{_bindir}
ln -s /bin/fusermount fusermount
ln -s /bin/ulockmgr_server ulockmgr_server
# Install config-file
install -p -m 0644 %{SOURCE1} $RPM_BUILD_ROOT%{_sysconfdir}
@ -105,11 +96,8 @@ fi
%files
%defattr(-,root,root,-)
%doc AUTHORS ChangeLog COPYING FAQ Filesystems NEWS README README.NFS
/sbin/mount.fuse
%attr(4755,root,root) /bin/fusermount
/bin/ulockmgr_server
# Compat symlinks
%{_bindir}/fusermount
%{_sbindir}/mount.fuse
%attr(4755,root,root) %{_bindir}/fusermount
%{_bindir}/ulockmgr_server
%config %{_sysconfdir}/udev/rules.d/99-fuse.rules
%config(noreplace) %{_sysconfdir}/%{name}.conf
@ -117,19 +105,23 @@ fi
%files libs
%defattr(-,root,root,-)
%doc COPYING.LIB
/%{_lib}/libfuse.so.*
/%{_lib}/libulockmgr.so.*
%{_libdir}/libfuse.so.*
%{_libdir}/libulockmgr.so.*
%files devel
%defattr(-,root,root,-)
/%{_lib}/libfuse.so
/%{_lib}/libulockmgr.so
%{_libdir}/libfuse.so
%{_libdir}/libulockmgr.so
%{_libdir}/pkgconfig/*.pc
%{_includedir}/fuse.h
%{_includedir}/ulockmgr.h
%{_includedir}/fuse
%changelog
* Wed Jan 25 2012 Harald Hoyer <harald@redhat.com> 2.8.6-3
- install everything in /usr
https://fedoraproject.org/wiki/Features/UsrMove
* Fri Jan 13 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 2.8.6-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild