X-Git-Url: https://git.whamcloud.com/?a=blobdiff_plain;f=lustre.spec.in;h=cbf123e877954b4204221c4353f83ff89803a51c;hb=75f07b2fa054b69d1c20eef8dddb831af41fd7a5;hp=f58d3f98a85c9f9d100484084fb8e3becce8bdd7;hpb=a6aa05240b686d3c5ee2ccf3c282511e93cb62d1;p=fs%2Flustre-release.git diff --git a/lustre.spec.in b/lustre.spec.in index f58d3f9..cbf123e 100644 --- a/lustre.spec.in +++ b/lustre.spec.in @@ -9,6 +9,9 @@ %bcond_without lustre_iokit %bcond_without lustre_modules %bcond_with lnet_dlc +%bcond_without manpages +%bcond_without shared +%bcond_without static %if %{without servers} # --without servers overrides --with {ldiskfs|zfs} @@ -18,19 +21,24 @@ %endif %{!?version: %global version @VERSION@} -%{!?kver: %global kver ""} -%{!?kdir: %global kdir %(dir=$(echo "%configure_args" | sed -ne 's/.*--with-linux=\\([^ ][^ ]*\\).*$/\\1/p'); if [ -n "$dir" ]; then echo "$dir"; else if [ -n "%kver" ]; then kversion="%kver"; else kversion="$(uname -r)"; fi; echo "/lib/modules/$kversion/source"; fi)} - -%{!?kobjdir: %global kobjdir %(dir=$(echo "%configure_args" | sed -ne 's/.*--with-linux-obj=\\([^ ][^ ]*\\).*$/\\1/p'); if [ -n "$dir" ]; then echo "$dir"; else if [ -n "%kver" ]; then kversion="%kver"; else kversion="$(uname -r)"; fi; if [ "%kdir" = "/lib/modules/$kversion/source" ]; then echo "/lib/modules/$kversion/build"; else echo "%kdir"; fi; fi)} +%{!?kver: %global kver %(uname -r)} +%{!?kdir: %global kdir /lib/modules/%{kver}/source} +%{!?kobjdir: %global kobjdir %(if [ "%{kdir}" = "/lib/modules/%{kver}/source" ]; then echo "/lib/modules/%{kver}/build"; else echo "%{kdir}"; fi)} # as an alternative to this implementation we could simply "make -C $kdir kernelversion" -%{!?kversion: %global kversion %(if test -s %kobjdir/include/generated/utsrelease.h ; then LINUXRELEASEHEADER=%kobjdir/include/generated/utsrelease.h ; elif test -s %kobjdir/include/linux/utsrelease.h ; then LINUXRELEASEHEADER=%kobjdir/include/linux/utsrelease.h ; else LINUXRELEASEHEADER=%kobjdir/include/linux/version.h; fi; sed -ne '/^#define UTS_RELEASE/s/.*"\\(.*\\)"$/\\1/p' $LINUXRELEASEHEADER)} - -%{!?downstream_release: %global downstream_release "@DOWNSTREAM_RELEASE@"} +%{!?kversion: %global kversion %(files="include/generated/utsrelease.h include/linux/utsrelease.h include/linux/version.h"; for f in $files; do if test -r %{kobjdir}/$f && grep UTS_RELEASE %{kobjdir}/$f >/dev/null; then sed -ne '/^#define UTS_RELEASE/s/.*"\\(.*\\)"$/\\1/p' %{kobjdir}/$f; break; fi; done)} %define buildid %(if [ -n "@BUILDID@" ]; then echo "_@BUILDID@"; fi) -%{!?myrelease: %global myrelease %(if [ -n "%downstream_release" ]; then echo -n "%{downstream_release}_"; fi; echo %kversion | tr '-' '_')} +%if 0%{?build_src_rpm} + %{!?myrelease: %global myrelease 1} +%else + %{!?downstream_release: %global downstream_release "@DOWNSTREAM_RELEASE@"} + %{!?myrelease: %global myrelease %(if [ -n "%downstream_release" ]; then echo -n "%{downstream_release}_"; fi; echo %kversion | tr '-' '_')} + # for those uses that don't want the -smp/-bigsmp (or the .arch) on the end + # of %kversion + %define krequires %(echo %{kversion} | sed -e 's/\.x86_64$//' -e 's/\.i[3456]86$//' -e 's/-smp$//' -e 's/-bigsmp$//' -e 's/[-.]ppc64$//' -e 's/\.aarch64$//' -e 's/-default$//') +%endif # always append the buildid, even when the caller defines %release %define fullrelease %{myrelease}%{buildid} @@ -55,10 +63,6 @@ # response from them #%%global _use_internal_dependency_generator 0 -# for those uses that don't want the -smp/-bigsmp (or the .arch) on the end -# of %kversion -%define krequires %(bash -c "echo %{kversion} | sed -e 's/\.x86_64$//' -e 's/\.i[3456]86$//' -e 's/-smp$//' -e 's/-bigsmp$//' -e 's/-ppc64$//' -e 's/-default$//'") - # Set the package name prefix %if %{undefined lustre_name} %if %{with servers} @@ -81,7 +85,7 @@ %endif %if %{defined cross_path} && %{defined post_script} -%define rpm_post_base %(echo $(dirname %{cross_path})/%{lustre_name}) +%define rpm_post_base %(dirname %{cross_path})/%{lustre_name} %endif # SUSE don't support .debug_info section from cross compiler: @@ -105,9 +109,13 @@ Obsoletes: lustre-lite, lustre-lite-utils, lustre-ldap nfs-utils-lustre Provides: lustre-lite = %{version}, lustre-lite-utils = %{version} Requires: %{name}-modules = %{version} BuildRequires: libtool +%if %{with manpages} +BuildRequires: python-docutils +%endif %if %{with servers} Requires: lustre-osd Requires: lustre-osd-mount +Provides: lustre-client = %{version}-%{fullrelease} %endif %if %{defined cross_requires} Requires: %{cross_requires} @@ -133,9 +141,11 @@ AutoReqProv: no %else # for SLES11, we need nothing here %if %{_vendor}=="redhat" || %{_vendor}=="fedora" +%if %{defined krequires} # for RHEL we need to require the specific kernel still since weak-modules # support on RH is, well, weak, to be punny about it Requires: kernel = %{krequires} +%endif %if %{with lnet_dlc} Requires: libyaml BuildRequires: libyaml-devel @@ -153,7 +163,7 @@ Summary: osd-ldiskfs contains both ldiskfs and its osd interface in Lustre. Requires: lustre-modules = %{version} Requires: module-init-tools >= 3.9 Requires: ldiskfsprogs >= 1.42.7.wc1 -Requires: lustre-osd-ldiskfs-mount +Requires: lustre-osd-ldiskfs-mount = %{version} Provides: lustre-osd Obsoletes: lustre-ldiskfs Group: Development/Kernel @@ -181,7 +191,7 @@ LDISKFS hooks for mount/mkfs into a dynamic library. %package osd-zfs Summary: osd-zfs is the mandatory glue for ZFS support in Lustre. Requires: lustre-modules = %{version}, zfs-kmod -Requires: lustre-osd-zfs-mount +Requires: lustre-osd-zfs-mount = %{version} Provides: lustre-osd Group: Development/Kernel @@ -194,7 +204,7 @@ backing store of a Lustre server. %if %{with lustre_utils} %package osd-zfs-mount -Summary: osd-zfs-mount contains mount's ldiskfs specific dso. +Summary: osd-zfs-mount contains mount's zfs specific dso. Provides: lustre-osd-mount Group: Development/Kernel @@ -309,53 +319,16 @@ cd $RPM_BUILD_DIR/lustre-%{version} # override %optflags so that the vendor's overzealous flags don't create # build failures %define optflags -g -O2 -Werror -CONFIGURE_ARGS="%{?configure_args} --with-release=%release" - -%if %{with lustre_tests} -CONFIGURE_ARGS="$CONFIGURE_ARGS --enable-tests" -%else -CONFIGURE_ARGS="$CONFIGURE_ARGS --disable-tests" -%endif -%if %{with lustre_utils} -CONFIGURE_ARGS="$CONFIGURE_ARGS --enable-utils" -%else -CONFIGURE_ARGS="$CONFIGURE_ARGS --disable-utils" -%endif - -%if %{without lustre_iokit} -CONFIGURE_ARGS="$CONFIGURE_ARGS --disable-iokit" -%endif - -%if %{with lustre_modules} -CONFIGURE_ARGS="$CONFIGURE_ARGS --enable-modules" -%else -CONFIGURE_ARGS="$CONFIGURE_ARGS --disable-modules" -%endif - -%if %{without servers} -CONFIGURE_ARGS="$CONFIGURE_ARGS --disable-server" -%endif - -%if %{without ldiskfs} -CONFIGURE_ARGS="$CONFIGURE_ARGS --disable-ldiskfs" -%endif - -%if %{without zfs} -CONFIGURE_ARGS="$CONFIGURE_ARGS --without-zfs" -%endif - -# if %%kdir was given, make sure it's not in the configure arguments -if [ -n "%kdir" ]; then +CONFIGURE_ARGS="%{?configure_args}" +if [ -n "$CONFIGURE_ARGS" ]; then + # make sure %%kdir and %%kobjdir are not in the configure arguments CONFIGURE_ARGS=$(echo $CONFIGURE_ARGS | sed -e 's/"\?--with-linux=[^ ][^ ]* \?//') -fi -# ditto for %%kobjdir -if [ -n "%kobjdir" ]; then CONFIGURE_ARGS=$(echo $CONFIGURE_ARGS | sed -e 's/"\?--with-linux-obj=[^ ][^ ]* \?//') + # remove --with-kmp-moddir from configure arguments, + # it will be set --with-kmp-moddir=%%kmoddir + CONFIGURE_ARGS=$(echo $CONFIGURE_ARGS | sed -e 's/"\?--with-kmp-moddir=[^ ][^ ]* \?//') fi -# remove --with-kmp-moddir from configure arguments, -# it will be set --with-kmp-moddir=%%kmoddir -CONFIGURE_ARGS=$(echo $CONFIGURE_ARGS | sed -e 's/"\?--with-kmp-moddir=[^ ][^ ]* \?//') # we need to eval "configure" because $CONFIGURE_ARGS could have a quoted # string in it which we don't want word splitted by the shell @@ -363,9 +336,23 @@ CONFIGURE_ARGS=$(echo $CONFIGURE_ARGS | sed -e 's/"\?--with-kmp-moddir=[^ ][^ ]* # inside $CONFIGURE_ARGS %define eval_configure %(echo '%configure' | sed -e 's#\./configure#eval ./configure#' -e 's/--\\(build\\|host\\|target\\)=[^ ][^ ]* //g') -%eval_configure \ - %{?kdir: --with-linux=%kdir} %{?kobjdir: --with-linux-obj=%kobjdir} \ - $CONFIGURE_ARGS --with-kmp-moddir=%{kmoddir} +%eval_configure $CONFIGURE_ARGS \ + %{?with_lustre_tests:--enable-tests}%{!?with_lustre_tests:--disable-tests} \ + %{?with_lustre_utils:--enable-utils}%{!?with_lustre_utils:--disable-utils} \ + %{?with_lustre_modules:--enable-modules}%{!?with_lustre_modules:--disable-modules} \ + %{!?with_shared:--disable-shared} \ + %{!?with_static:--disable-static} \ + %{!?with_lustre_iokit:--disable-iokit} \ + %{!?with_ldiskfs:--disable-ldiskfs} \ + %{!?with_servers:--disable-server} \ + %{!?with_zfs:--without-zfs} \ + %{!?with_lnet_dlc:--disable-dlc} \ + %{!?with_manpages:--disable-manpages} \ + --with-release=%{release} \ + --with-linux=%{kdir} \ + --with-linux-obj=%{kobjdir} \ + --with-kmp-moddir=%{kmoddir} + make %{?_smp_mflags} -s %{?make_args} %install @@ -401,26 +388,28 @@ chmod -R go-w lustre-source/lustre-%{version} # fc18 needs 'x' permission for library files find $RPM_BUILD_ROOT -name \*.so -type f -exec chmod +x {} \; -if [ -f $RPM_BUILD_ROOT%{_libdir}/liblnetconfig.a ] ; then - echo '%attr(-, root, root) %{_libdir}/liblnetconfig.a' >>lustre.files - echo '%attr(-, root, root) %{_libdir}/liblnetconfig.so' >>lustre.files -fi - -if [ -f $RPM_BUILD_ROOT%{_libdir}/liblustre.so ] ; then - echo '%{_libdir}/liblustre.a' >>lustre.files - echo '%{_libdir}/liblustre.so' >>lustre.files -fi +%if %{with lnet_dlc} +rm -f $RPM_BUILD_ROOT%{_libdir}/liblnetconfig.la +%if %{with static} +echo '%attr(-, root, root) %{_libdir}/liblnetconfig.a' >>lustre.files +%endif +%if %{with shared} +echo '%attr(-, root, root) %{_libdir}/liblnetconfig.so' >>lustre.files +echo '%attr(-, root, root) %{_libdir}/liblnetconfig.so.*' >>lustre.files +%endif +%endif -if [ -f $RPM_BUILD_ROOT%{_libdir}/libiam.a ] ; then - echo '%{_libdir}/libiam.a' >>lustre.files -fi +%if %{with ldiskfs} +echo '%{_libdir}/libiam.a' >>lustre.files +%endif if [ -d $RPM_BUILD_ROOT%{_libdir}/lustre/snmp ] ; then - echo '%{_libdir}/lustre/snmp' >>lustre.files - echo '%{_datadir}/lustre/snmp/mibs' >>lustre.files + echo '%{_libdir}/lustre/snmp' >>lustre.files + echo '%{_datadir}/lustre/snmp/mibs' >>lustre.files fi -find $RPM_BUILD_ROOT%{_libdir}/@PACKAGE@/ -name \*.la -type f -delete +find $RPM_BUILD_ROOT%{_libdir}/@PACKAGE@ \ + -name \*.la -type f -exec rm -f {} \; %if %{with lustre_tests} echo '%{_libdir}/lustre/tests/*' >>lustre-tests.files @@ -470,6 +459,11 @@ find $RPM_BUILD_ROOT%{?rootdir}/lib/modules/%{kversion}/%{kmoddir} \ %files -f lustre.files %defattr(-,root,root) %{_sbindir}/* +%exclude %{_sbindir}/wirecheck +%exclude %{_sbindir}/wiretest +%if %{with zfs} +%exclude %{_sbindir}/zfsobj2fid +%endif %if %{with lustre_utils} %if %{with servers} %{_libexecdir}/lustre/lc_common @@ -488,13 +482,16 @@ find $RPM_BUILD_ROOT%{?rootdir}/lib/modules/%{kversion}/%{kmoddir} \ %{_libdir}/libcfsutil.a %{_libdir}/liblustreapi.a %{_libdir}/liblustreapi.so +%if %{with manpages} %{_mandir}/man?/* +%endif %{_includedir}/lustre %{_includedir}/libcfs %endif %{_datadir}/lustre %{_sysconfdir}/udev/rules.d/99-lustre.rules %config(noreplace) %{_sysconfdir}/ldev.conf +%config(noreplace) %{_sysconfdir}/modprobe.d/ko2iblnd.conf %if %{with lustre_modules} %files modules @@ -539,6 +536,7 @@ find $RPM_BUILD_ROOT%{?rootdir}/lib/modules/%{kversion}/%{kmoddir} \ %files osd-zfs %defattr(-,root,root) %{?rootdir}/lib/modules/%{kversion}/%{kmoddir}/kernel/fs/@PACKAGE@/osd_zfs.ko +%{_sbindir}/zfsobj2fid %if %{defined rpm_post_base} %attr(0555, root, root) %{rpm_post_base}-osd-zfs.sh %endif