X-Git-Url: https://git.whamcloud.com/?a=blobdiff_plain;f=lustre.spec.in;h=d896fbf048a04558a0b4f3477e133af63f811efe;hb=dc9f28a541aec49b1787a25169f56a78a4924ee4;hp=8ab88ce7fb5dd2fcc71700e73cd4a3a921dd20ea;hpb=3c280a95736a884bc2f36dad674505f1d5b00982;p=fs%2Flustre-release.git diff --git a/lustre.spec.in b/lustre.spec.in index 8ab88ce..d896fbf 100644 --- a/lustre.spec.in +++ b/lustre.spec.in @@ -15,13 +15,15 @@ %bcond_without shared %bcond_without static %bcond_with systemd +%bcond_with mofed +%bcond_without mpi # By default both gss and gss keyring are disabled. # gss keyring requires the gss core. If the builder # request gss_keyring we must enable gss core even if # the builder attempts to disable gss. %if %{with gss_keyring} - %define with_gss + %define with_gss 1 %endif %if %{without servers} @@ -127,6 +129,8 @@ %define with_systemd 1 %endif +%{!?mpi_name: %global mpi_name openmpi} + Summary: Lustre File System Name: %{lustre_name} Version: %{version} @@ -146,20 +150,40 @@ BuildRoot: %{_tmppath}/lustre-%{version}-root Requires: %{requires_kmod_name} = %{requires_kmod_version} zlib Requires: %{requires_yaml_name} BuildRequires: libtool libyaml-devel zlib-devel +%if %{_vendor}=="redhat" +BuildRequires: pkgconfig +%else +BuildRequires: pkg-config +%endif %if %{with servers} Requires: lustre-osd Requires: lustre-osd-mount +Obsoletes: lustre-server < %{version} +Provides: lustre-server = %{version}-%{release} +%endif Obsoletes: lustre-client < %{version} Provides: lustre-client = %{version}-%{release} -%endif -# GSS requires this: BuildRequires: pkgconfig, libgssapi-devel >= 0.10 + +# GSS requires this: BuildRequires: libgssapi-devel >= 0.10 %if %{_vendor}=="redhat" || %{_vendor}=="fedora" #suse don't support selinux BuildRequires: libselinux-devel Requires: libselinux %endif %if %{with lustre_modules} +%if %{with mofed} +BuildRequires: mlnx-ofa_kernel-devel +%if %{_vendor} == "redhat" +Requires: kmod-mlnx-ofa_kernel +%else +Requires: mlnx-ofa_kernel-kmp +%endif +%endif +%if 0%{?rhel} >= 8 && %{undefined kernel_module_package_buildreqs} +BuildRequires: redhat-rpm-config kernel-rpm-macros elfutils-libelf-devel kmod +%else BuildRequires: %kernel_module_package_buildreqs +%endif %if %{_vendor}=="redhat" BuildRequires: redhat-rpm-config %endif @@ -186,7 +210,7 @@ Userspace tools and files for the Lustre file system. %define preamble %{expand:%( TMPFILE=`mktemp` cat %{SOURCE1} > $TMPFILE -kver=%{kver} +kver=%{kversion} linuxversion=${kver%%%%-*} linuxrelease=${kver##*-} kabiminor=${linuxrelease%%%%.*} @@ -203,7 +227,10 @@ echo $TMPFILE %if %{with lustre_utils} %package osd-ldiskfs-mount Summary: osd-ldiskfs-mount contains mount's ldiskfs specific dso. -Provides: lustre-osd-mount = %{version}-%{fullrelease} +BuildRequires: e2fsprogs-devel +Requires: ldiskfsprogs +Provides: lustre-osd-mount = %{version} +Obsoletes: lustre-osd-mount < %{version} Group: System Environment/Kernel %description osd-ldiskfs-mount @@ -217,7 +244,8 @@ LDISKFS hooks for mount/mkfs into a dynamic library. %if %{with lustre_utils} %package osd-zfs-mount Summary: osd-zfs-mount contains mount's zfs specific dso. -Provides: lustre-osd-mount = %{version}-%{fullrelease} +Provides: lustre-osd-mount = %{version} +Obsoletes: lustre-osd-mount < %{version} Group: System Environment/Kernel %description osd-zfs-mount @@ -232,7 +260,7 @@ ZFS hooks for mount/mkfs into a dynamic library. %package resource-agents Summary: HA Resuable Cluster Resource Scripts for Lustre Group: System Environment/Base -Requires: lustre +Requires: %{name} Requires: resource-agents %description resource-agents @@ -244,15 +272,26 @@ environment for both Pacemaker and rgmanager. %package tests Summary: Lustre testing framework Group: System Environment/Kernel -Provides: %{name}-tests = %{version} +Provides: lustre-tests = %{version} %if %{with lustre_iokit} -Requires: %{name} = %{version}, lustre-iokit -%else -Requires: %{name} = %{version} +Requires: lustre-iokit %endif +Requires: lustre-client = %{version} Requires: %{requires_kmod_name} = %{requires_kmod_version} Requires: %{requires_kmod_tests_name} = %{requires_kmod_version} -Requires: attr, rsync, perl, lsof, /usr/bin/getconf +Requires: attr, rsync, perl, lsof, libtool, /usr/bin/getconf +%if %{with mpi} +%if %{mpi_name} == "mpich" +BuildRequires: mpich-devel +%endif +%if %{mpi_name} == "openmpi" +%if %{_vendor} == "redhat" || 0%{?suse_version} < 1500 +BuildRequires: openmpi-devel +%else +BuildRequires: openmpi2-devel +%endif +%endif +%endif %description tests This package contains a set of test binaries and scripts that are intended @@ -267,7 +306,7 @@ to be used by the Lustre testing framework. %package -n lustre-iokit Summary: The Lustre IO-Kit is a collection of benchmark tools for a cluster with the Lustre file system. Group: Applications/System -Requires: python > 2.2, sg3_utils +Requires: python2 > 2.2, sg3_utils %description -n lustre-iokit This package includes five tools: @@ -310,9 +349,30 @@ ln lnet/ChangeLog ChangeLog-lnet %build # Set an explicit path to our Linux tree, if we can. cd $RPM_BUILD_DIR/lustre-%{version} -# override %optflags so that the vendor's overzealous flags don't create -# build failures + +# Store the CFLAGS and LDFLAGS that would normally be used in the UTILS_CFLAGS +# and UTILS_LDFLAGS environment variables so that we use can them when compiling +# the user-space code in lustre/utils and lnet/utils. As of RHEL 8.0, the +# __global_* variants are deprecated in favour of build_cflags, etc. If neither +# style is available (e.g. on SLES), then these just end up as empty strings. +export UTILS_CFLAGS="%{?build_cflags:%{build_cflags}}%{!?build_cflags:%{?__global_cflags:%{__global_cflags}}}" +export UTILS_LDFLAGS="%{?build_ldflags:%{build_ldflags}}%{!?build_ldflags:%{?__global_ldflags:%{__global_ldflags}}}" + +# RHEL7 on PPC64 needs __SANE_USERSPACE_TYPES__ defined so that __s64 and __u64 +# are presented to user-land as long long instead of long long. Without this it +# will fail the format check whenever such a variable is printed. +%if 0%{?rhel} +%ifarch ppc64 +export UTILS_CFLAGS="${UTILS_CFLAGS} -D__SANE_USERSPACE_TYPES__=1" +%endif +%endif + +# Disable any hardening or annotation since this doesn't make sense for +# kernel code, and reset %optflags so that the vendor's overzealous flags don't +# create build failures. %define optflags -g -O2 -Werror +%undefine _annotated_build +%undefine _hardened_build CONFIGURE_ARGS="%{?configure_args}" if [ -n "$CONFIGURE_ARGS" ]; then @@ -331,6 +391,9 @@ fi # kmod tools/scripts require %{name} directory with kernel modules %define eval_configure %(echo '%configure' | sed -e 's#\./configure#eval ./configure#' -e 's/--\\(build\\|host\\|target\\)=[^ ][^ ]* //g') +%{?_openmpi_load} +%{?_mpich_load} + %eval_configure $CONFIGURE_ARGS \ %{?with_lustre_tests:--enable-tests}%{!?with_lustre_tests:--disable-tests} \ %{?with_lustre_utils:--enable-utils}%{!?with_lustre_utils:--disable-utils} \ @@ -347,6 +410,7 @@ fi %{!?with_manpages:--disable-manpages} \ %{!?with_systemd:--with-systemdsystemunitdir=no} \ %{?with_systemd:--with-systemdsystemunitdir=%{_unitdir}} \ + %{?with_mofed:--with-o2ib=/usr/src/ofa_kernel/default} \ --with-linux=%{kdir} \ --with-linux-obj=%{kobjdir} \ --with-kmp-moddir=%{kmoddir}/%{name} @@ -354,6 +418,9 @@ fi make %{?_smp_mflags} -s %{?make_args} %install +%{?_openmpi_load} +%{?_mpich_load} + make install DESTDIR=$RPM_BUILD_ROOT # RHEL's kernel_module_path macro expects that all the modules @@ -363,7 +430,7 @@ make install DESTDIR=$RPM_BUILD_ROOT # RHEL, we handle this here in the spec file rather than in # Lustre's build system. This is not expected to bother SLES's # kernel_module_path macro. -basemodpath=$RPM_BUILD_ROOT%{modules_fs_path}/%{lustre_name} +basemodpath=$RPM_BUILD_ROOT%{modules_fs_path}/%{name} %if %{with ldiskfs} mkdir -p $basemodpath-osd-ldiskfs/fs mv $basemodpath/fs/osd_ldiskfs.ko $basemodpath-osd-ldiskfs/fs/osd_ldiskfs.ko @@ -403,7 +470,7 @@ echo '%{_sysconfdir}/init.d/lustre' >>lustre.files echo '%{_sysconfdir}/sysconfig/lustre' >>lustre.files %if %{with gss_keyring} echo '%{_sysconfdir}/init.d/lsvcgss' >>lustre.files -echo '%{_sysconfdir}/sysconfig/lsvcgss' >>lustre.files +echo '%config(noreplace) %{_sysconfdir}/sysconfig/lsvcgss' >>lustre.files %endif %endif @@ -457,6 +524,9 @@ echo '%{_bindir}/mcreate' >>lustre-tests.files echo '%{_bindir}/munlink' >>lustre-tests.files echo '%{_sbindir}/wirecheck' >>lustre-tests.files echo '%{_sbindir}/wiretest' >>lustre-tests.files +if [ -n "$MPI_BIN" ]; then + echo "$MPI_BIN/*" >>lustre-tests.files +fi %endif %files -f lustre.files @@ -483,6 +553,7 @@ echo '%{_sbindir}/wiretest' >>lustre-tests.files %{_bindir}/lfs %{_bindir}/lfs_migrate /sbin/mount.lustre +/sbin/mount.lustre_tgt %if %{with static} %{_libdir}/liblustreapi.a %endif @@ -493,6 +564,7 @@ echo '%{_sbindir}/wiretest' >>lustre-tests.files %{_mandir}/man?/* %endif %{_datadir}/lustre +%{_datadir}/bash-completion/completions/* %{_includedir}/lustre %{_includedir}/linux/lnet %{_includedir}/linux/lustre