[fuse] install everything in /usr

Harald Hoyer harald at fedoraproject.org
Wed Jan 25 19:46:31 UTC 2012


commit f52f1ca0790463b4a79cb6596b91eec9d65ff7a9
Author: Harald Hoyer <harald at redhat.com>
Date:   Wed Jan 25 18:37:03 2012 +0100

    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.

 fuse.spec |   44 ++++++++++++++++++--------------------------
 1 files changed, 18 insertions(+), 26 deletions(-)
---
diff --git a/fuse.spec b/fuse.spec
index 9b55278..f938c8b 100644
--- a/fuse.spec
+++ b/fuse.spec
@@ -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 at 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 at lists.fedoraproject.org> - 2.8.6-2
 - Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild
 


More information about the scm-commits mailing list