X-Git-Url: https://git.whamcloud.com/?p=fs%2Flustre-release.git;a=blobdiff_plain;f=build%2Flustre.spec.in;h=78b770c6692d0fe88fd0e1332579a016738f1be5;hp=e0707f4698a1fff83c1013b71ee10dc115e4925f;hb=7f7ba284785c28a4b0aefc4ca10e92d552c5f5db;hpb=4bed0a39e0528261b6b7f1546256e592a09fc0bc diff --git a/build/lustre.spec.in b/build/lustre.spec.in index e0707f4..78b770c 100644 --- a/build/lustre.spec.in +++ b/build/lustre.spec.in @@ -1,78 +1,79 @@ # lustre.spec %define version @VERSION@ %define kversion @LINUXRELEASE@ -%define linuxdir @LINUX@ -%define enable_doc @ENABLE_DOC@ -%define enable_init_scripts @ENABLE_INIT_SCRIPTS@ -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 @@ -85,34 +86,17 @@ 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@' \ - --with-linux-config=@LINUX_CONFIG@ \ - %{disable_doc} --disable-liblustre \ +./configure @ac_configure_args@ %{?configure_flags:configure_flags} \ --sysconfdir=%{_sysconfdir} \ --mandir=%{_mandir} \ --libdir=%{_libdir} make -j $RPM_BUILD_NCPUS -s %install -cd $RPM_BUILD_DIR/lustre-%{version} make install DESTDIR=$RPM_BUILD_ROOT # hack to avoid changing the libsysio code for "make install" rm -f $RPM_BUILD_ROOT%{_libdir}/libsysio.a -%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 - # Create the pristine source directory. cd $RPM_BUILD_DIR/lustre-%{version} mkdir -p $RPM_BUILD_ROOT/usr/src @@ -120,102 +104,57 @@ 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 <>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 + +# Have universal lustre headers +if [ -f $RPM_BUILD_DIR/lustre-%{version}/lustre/include/lustre/lustre_idl.h ] ; then + echo '%attr(-, root, root) /usr/include/lustre/lustre_idl.h' >>lustre.files + echo '%attr(-, root, root) /usr/include/linux/lustre_types.h' >>lustre.files + echo '%attr(-, root, root) /usr/include/linux/lustre_user.h' >>lustre.files +else + echo '%attr(-, root, root) /usr/include/linux/lustre_idl.h' >>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 if [ -f /etc/init.d/lustre ] ; then @@ -228,20 +167,41 @@ 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 -if [ ! -e /dev/obd ]; then - mknod /dev/obd c 10 241 -fi -if [ ! -e /dev/portals ]; then - mknod /dev/portals c 10 240 +%post 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 -depmod -ae || exit 0 -%postun -n lustre-modules -depmod -ae || exit 0 +# for update from < v1.4.6 + +for f in /etc/modules.conf /etc/modprobe.conf /etc/modprobe.conf.local ; +do + if [ -f $f ]; then + if ! grep 'lustre llite' $f >/dev/null 2>/dev/null ; then + cat >> $f <<-EOF +alias lustre llite +EOF + fi + if egrep "^[^#]*(add below|install) ptlrpc" $f ; then + [ ! -f $f.rpmsave ] && cp $f $f.rpmsave + TMPFILE=`mktemp $f.XXXXXX` && \ + sed -e "s/^[^#]*\(add below\|install\) ptlrpc.*/#&/" $f > $TMPFILE && \ + mv $TMPFILE $f + fi + fi +done + + +%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