X-Git-Url: https://git.whamcloud.com/?p=fs%2Flustre-release.git;a=blobdiff_plain;f=build%2Flustre.spec.in;h=3345eacf5eec9763c6775d71c29be5271953a065;hp=da2a1c5fa11e559b4da4bb239b083994999ec1c3;hb=94c07aa7fbec47d5d07bdad49c330a33af0134b4;hpb=3e37079ca90a3e926f87bfb104d51abebe8b3e4a diff --git a/build/lustre.spec.in b/build/lustre.spec.in index da2a1c5..3345eac 100644 --- a/build/lustre.spec.in +++ b/build/lustre.spec.in @@ -1,74 +1,74 @@ # lustre.spec %define version @VERSION@ %define kversion @LINUXRELEASE@ -%define linuxdir @LINUX@ -%define enable_doc @ENABLE_DOC@ -%define enable_init_scripts @ENABLE_INIT_SCRIPTS@ -%define enable_gm @ENABLE_GM@ -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} %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 +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 +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 @@ -86,35 +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 \ - --enable-smfs \ - --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 @@ -122,104 +104,86 @@ 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 -%post -n lustre-modules -if [ ! -e /dev/obd ]; then - mknod /dev/obd c 10 241 +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 -if [ ! -e /dev/portals ]; then - mknod /dev/portals c 10 240 + +# 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 +%attr(-, root, root) /lib/modules/%{kversion}/kernel/net/lustre + +%files source +%attr(-, root, root) /usr/src/lustre-%{version} + +# uncomment these lines to enable deps packages +# %files deps-sles +# %files deps-rhel + +%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 -%postun -n lustre-modules +# 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 + [ ! -f $f.rpmsave ] && cp $f $f.rpmsave + TMPFILE=`mktemp $f.XXXXXX` && \ + rm -f $TMPFILE && touch $TMPFILE && \ + grep -v 'lustre llite' $f >> $TMPFILE && \ + mv $TMPFILE $f + fi + if egrep "^[^#]*(add below|install) ptlrpc" $f ; then + [ ! -f $f.rpmsave ] && cp $f $f.rpmsave + TMPFILE=`mktemp $f.XXXXXX` && \ + rm -f $TMPFILE && touch $TMPFILE && \ + 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 @@ -227,6 +191,4 @@ else fi %clean -#rm -rf $RPM_BUILD_ROOT - -# end of file +rm -rf $RPM_BUILD_ROOT