Whamcloud - gitweb
b=8080
[fs/lustre-release.git] / build / lustre.spec.in
index c10e8e9..73b31a6 100644 (file)
@@ -1,76 +1,79 @@
 # lustre.spec
 %define version @VERSION@
 %define kversion @LINUXRELEASE@
-%define linuxdir @LINUX@
-%define enable_doc @ENABLE_DOC@
 
-Summary: Lustre Lite File System
-Name: lustre-lite
+Summary: Lustre File System
+Name: lustre
 Version: %{version}
 Release: @RELEASE@
-Copyright: GPL
+License: GPL
 Group: Utilities/System
-Requires: lustre-modules, PyXML
-Source: ftp://ftp.lustre.com/pub/lustre/lustre-%{version}.tar.gz
+Source: lustre-%{version}.tar.gz
+URL: http://clusterfs.com/
 BuildRoot: /var/tmp/lustre-%{version}-root
+Obsoletes: lustre-lite, lustre-lite-utils, lustre-ldap
+Provides: lustre-lite = %{version}, lustre-lite-utils = %{version}, lustre-ldap = %{version}
 
 %description
-The Lustre Lite Cluster File System: kernel drivers for file system,
-servers and utilities.
+Userspace tools and files for the Lustre file system.
 
-%package -n lustre-modules
-Summary: Kernel Lustre drivers for Linux %{kversion}
+%package modules
+Summary: Kernel Lustre modules for Linux %{kversion}
 Requires: modutils >= 2.4.10
 Group: Development/Kernel
 
-%description -n lustre-modules
-Lustre file System, server and network drivers for Linux %{kversion}.
+%description modules
+Lustre file system, server and network drivers for Linux %{kversion}.
 
-%package -n lustre-source
+%package source
 Summary: Object-Based Disk storage driver source
 Group: Development/Kernel
 
-%description -n lustre-source
-Lustre Lite Source for further development
-
-%package -n lustre-doc
-Summary: Documentation and sample configuration files
-Group: Documentation
-# FIXME: BuildArch overrides all the packages in rpm 4.0.4-7x
-#BuildArch: noarch
-
-%description -n lustre-doc
-Documentation and sample configuration files for Lustre
-
-%package -n lustre-ldap
-Summary: Configures openldap server for LDAP Lustre config database
-Group: Configuration
-Requires: openldap-servers, openldap-clients, python-ldap, 4Suite
-
-%description -n lustre-ldap
-Configures openldap server for LDAP Lustre config database
+%description source
+Lustre sources for further development
+
+# Since the RPMs we ship are to be used on both SLES and RHEL, we
+# can't include any dependency information (since the package names
+# are different on the two platforms).
+#
+# Instead, we can build these empty meta-packages that only include
+# dependency information.  These let people get the correct
+# dependencies for their platform and lets them use tools like yum and
+# red carpet to install the correct files.
+#
+# Unfortunately I have not seen this come up on the lists much, so I
+# have disabled them (by commenting out their empty files section
+# below) until it's clear that they resolve more confusion than they
+# add.
+
+%package deps-sles
+Summary: Lustre dependencies meta-package for SLES
+Group: Utilities/System
+Provides: lustre-deps = %{version}
+Requires: lustre = %{version}, sles-release, python-xml
+Conflicts: lustre-deps-rhel
 
+%description deps-sles
+This package has RPM dependencies appropriate for SLES systems.
 
-#%package -n liblustre
-#Summary: Lustre Lib
-#Group: Development/Kernel
+%package deps-rhel
+Summary: Lustre dependencies meta-package for RHEL
+Group: Utilities/System
+Provides: lustre-deps = %{version}
+Requires: lustre = %{version}, redhat-release, PyXML
+Conflicts: lustre-deps-sles
 
-#%description -n liblustre
-#Lustre lib binary package.
+%description deps-rhel
+This package has RPM dependencies appropriate for RHEL, RHL, and FC
+systems.
 
 %prep
 %setup -qn lustre-%{version}
-#%setup -c -n lustre-%{version}-lib
-%if %{enable_doc}
-  %define disable_doc ''
-%else
-  %define disable_doc --disable-doc
-%endif
 
 %build
 # if RPM_BUILD_NCPUS unset, set it
 if [ -z "$RPM_BUILD_NCPUS" ] ; then
-    RPM_BUILD_NCPUS=$(egrep -c "^cpu[0-9]+" /proc/stat || :)
+    RPM_BUILD_NCPUS=$(egrep -c "^cpu[0-9]+" /proc/stat 2>/dev/null || echo 0 :)
     if [ $RPM_BUILD_NCPUS -eq 0 ] ; then
         RPM_BUILD_NCPUS=1
     fi
@@ -83,29 +86,16 @@ rm -rf $RPM_BUILD_ROOT
 
 # Set an explicit path to our Linux tree, if we can.
 cd $RPM_BUILD_DIR/lustre-%{version}
-./configure \
-       --with-linux='%{linuxdir}' \
-       --with-linux-obj='@LINUX_OBJ@' \
-       %{disable_doc} --disable-liblustre \
+./configure @ac_configure_args@ \
        --sysconfdir=%{_sysconfdir} \
-       --mandir=%{_mandir}
+       --mandir=%{_mandir} \
+       --libdir=%{_libdir}
 make -j $RPM_BUILD_NCPUS -s
 
 %install
-cd $RPM_BUILD_DIR/lustre-%{version}
 make install DESTDIR=$RPM_BUILD_ROOT
-
-%ifarch alpha
-# this hurts me
-  conf_flag=
-  linuxdir=%{linuxdir}
-  test -d $linuxdir && conf_flag=--with-linux=$linuxdir
-  make clean
-  ./configure --enable-rtscts-myrinet $conf_flag %{disable_doc}
-  make
-  cp linux/rtscts/rtscts.o $RPM_BUILD_ROOT/lib/modules/%{kversion}/kernel/net/lustre/rtscts_myrinet.o
-  cp user/myrinet_utils/mcpload $RPM_BUILD_ROOT/usr/sbin/mcpload
-%endif
+# hack to avoid changing the libsysio code for "make install"
+rm -f $RPM_BUILD_ROOT%{_libdir}/libsysio.a
 
 # Create the pristine source directory.
 cd $RPM_BUILD_DIR/lustre-%{version}
@@ -114,123 +104,97 @@ rm -f lustre-source
 ln -s $RPM_BUILD_ROOT/usr/src lustre-source
 make distdir distdir=lustre-source/lustre-%{version}
 
-# ldap database directory
-mkdir -p $RPM_BUILD_ROOT/var/lib/ldap/lustre
-
-%files
+cat >lustre.files <<EOF
 %attr(-, root, root) /sbin/mount.lustre
-%attr(-, root, root) /usr/sbin/lmc
-%attr(-, root, root) /usr/sbin/lctl
-%attr(-, root, root) /usr/sbin/lconf
-%attr(-, root, root) /usr/sbin/lrun
-%attr(-, root, root) /usr/sbin/llmount
-%attr(-, root, root) /usr/sbin/lwizard
-%attr(-, root, root) /usr/sbin/wiretest
-%attr(-, root, root) /usr/sbin/lactive
-%attr(-, root, root) /usr/sbin/llanalyze
-%attr(-, root, root) /usr/sbin/gmnalnid
-%attr(-, root, root) /usr/sbin/llstat.pl
-%attr(-, root, root) /usr/sbin/llobdstat.pl
-%attr(-, root, root) /usr/sbin/load_ldap.sh
-%attr(-, root, root) /usr/sbin/acceptor
-%attr(-, root, root) /usr/sbin/ptlctl
-%attr(-, root, root) /usr/sbin/debugctl
-%attr(-, root, root) /usr/sbin/lload
-%attr(-, root, root) /usr/sbin/obdbarrier
-%attr(-, root, root) /usr/sbin/obdio
-%attr(-, root, root) /usr/sbin/routerstat
-%attr(-, root, root) /usr/sbin/wirecheck
-%attr(-, root, root) /usr/bin/lfs
-%attr(-, root, root) /usr/bin/lfind
-%attr(-, root, root) /usr/bin/lstripe
-%attr(-, root, root) /usr/bin/mcreate
-%attr(-, root, root) /usr/bin/munlink
-%attr(-, root, root) /usr/lib/lustre/python
-%attr(-, root, root) /usr/share/lustre/examples
+%attr(-, root, root) /usr/sbin/*
+%attr(-, root, root) /usr/bin/*
+%attr(-, root, root) %{_libdir}/lustre/python
+%attr(-, root, root) /usr/share/lustre/*
 
 %attr(-, root, root) /etc/init.d/lustre
 %attr(-, root, root) /etc/init.d/lustrefs
-%attr(-, root, root) /usr/lib/libptlctl.a
-%attr(-, root, root) /usr/lib/liblustreapi.a
+
+%attr(-, root, root) %{_libdir}/libptlctl.a
+%attr(-, root, root) %{_libdir}/liblustreapi.a
 %attr(-, root, root) /usr/include/lustre
-%attr(-, root, root) /usr/include/portals
 %attr(-, root, root) /usr/include/linux/lustre_idl.h
 
-%attr(-, root, root) /usr/share/man/man?/*
-
-%ifarch alpha
-%attr(-, root, root) /usr/sbin/mcpload
-%endif
-
-%files -n lustre-doc
-%attr(-, root, root) %doc COPYING FDL
-%if %{enable_doc}
-%attr(-, root, root) %doc doc/lustre.pdf doc/lustre-HOWTO.txt
-%endif
-#%attr(-, root, root) %doc tests/client-echo.cfg tests/client-mount.cfg
-#%attr(-, root, root) %doc tests/client-mount2.cfg
-#%attr(-, root, root) %doc tests/elan-client.cfg tests/elan-server.cfg
-#%attr(-, root, root) %doc tests/ldlm.cfg tests/lustre.cfg
-#%attr(-, root, root) %doc tests/mds.cfg tests/net-client.cfg
-#%attr(-, root, root) %doc tests/net-local.cfg tests/net-server.cfg
-#%attr(-, root, root) %doc tests/obdecho.cfg tests/obdfilter.cfg
-
-%files -n lustre-modules
+%attr(-, root, root) %{_mandir}/man?/*
+
+%attr(-, root, root) /etc/openldap/slapd-lustre.conf
+%attr(-, root, root) /etc/openldap/schema/lustre.schema
+EOF
+if [ -f $RPM_BUILD_ROOT%{_libdir}/liblustre.so ] ; then
+  echo '%attr(-, root, root) %{_libdir}/liblustre.a' >>lustre.files
+  echo '%attr(-, root, root) %{_libdir}/liblustre.so' >>lustre.files
+fi
+
+if [ -d $RPM_BUILD_ROOT%{_libdir}/lustre/snmp ] ; then
+  echo '%attr(-, root, root) %{_libdir}/lustre/snmp' >>lustre.files
+  echo '%attr(-, root, root) %{_datadir}/lustre/snmp/mibs' >>lustre.files
+fi
+
+%files -f lustre.files
+
+%files modules
 %attr(-, root, root) %doc COPYING
 %attr(-, root, root) /lib/modules/%{kversion}/kernel/fs/lustre
-#portals modules
 %attr(-, root, root) /lib/modules/%{kversion}/kernel/net/lustre
 
-%files -n lustre-source
+%files source
 %attr(-, root, root) /usr/src/lustre-%{version}
 
-#%ifarch i386
-#%files -n liblustre
-#%attr(-, root, root) /lib/lustre
-#%attr(-, root, root) /usr/sbin/lctl
-#%attr(-, root, root) /usr/sbin/lfind
-#%attr(-, root, root) /usr/sbin/lstripe
-#%attr(-, root, root) /usr/sbin/obdio
-#%attr(-, root, root) /usr/sbin/obdbarrier
-#%attr(-, root, root) /usr/sbin/obdstat
-#%attr(-, root, root) /usr/sbin/lload
-#%attr(-, root, root) /usr/sbin/lconf
-#%attr(-, root, root) /usr/sbin/lmc
-#%attr(-, root, root) /usr/sbin/llanalyze
-#%endif
-
-
-%files -n lustre-ldap
-%attr(-, root, root) /etc/openldap/slapd-lustre.conf
-%attr(-, root, root) /etc/openldap/schema/lustre.schema
-%attr(-, root, root) /usr/share/lustre/lustre2ldif.xsl
-%attr(-, root, root) /usr/share/lustre/top.ldif
-#%dir /var/lib/ldap/lustre
-%attr(700, ldap, ldap) /var/lib/ldap/lustre
+# uncomment these lines to enable deps packages
+# %files deps-sles
+# %files deps-rhel
 
 %post
-/sbin/chkconfig --add lustre
-/sbin/chkconfig --add lustrefs
+if [ -f /etc/init.d/lustre ] ; then
+       /sbin/chkconfig --add lustre
+       /sbin/chkconfig --add lustrefs
+fi
 
 %preun
-if [ $1 = 0 ]; then
-  /sbin/chkconfig --del lustre
-  /sbin/chkconfig --del lustrefs
+if [ $1 = 0 -a -f /etc/init.d/lustre ] ; then
+       /sbin/chkconfig --del lustre
+       /sbin/chkconfig --del lustrefs
 fi
+rm -f %{_libdir}/lustre/python/Lustre/*.pyc
 
-%post -n lustre-modules
+%post modules
 if [ ! -e /dev/obd ]; then
    mknod /dev/obd c 10 241
 fi
 if [ ! -e /dev/portals ]; then
    mknod /dev/portals c 10 240
 fi
-depmod -ae || exit 0
+if [ -f /boot/System.map-%{kversion} ]; then
+       depmod -ae -F /boot/System.map-%{kversion} %{kversion} || exit 0
+else
+       depmod -ae %{kversion} || exit 0
+fi
+for ext in .local "" ; do
+       f=/etc/modprobe.conf$ext
+       if [ -f $f ] && ! grep llite $f >/dev/null 2>/dev/null ; then
+               cat >> $f <<EOF
+alias lustre llite
+EOF
+               break
+       fi
+done
+f=/etc/modules.conf
+if [ -f $f ] && ! grep llite $f >/dev/null 2>/dev/null ; then
+       cat >> $f <<EOF
+alias lustre llite
+EOF
+fi
 
-%postun -n lustre-modules
-depmod -ae || exit 0
+%postun modules
+if [ -f /boot/System.map-%{kversion} ]; then
+       depmod -ae -F /boot/System.map-%{kversion} %{kversion} || exit 0
+else
+       depmod -ae %{kversion} || exit 0
+fi
 
 %clean
-#rm -rf $RPM_BUILD_ROOT
-
-# end of file
+rm -rf $RPM_BUILD_ROOT