Hello community, here is the log from the commit of package mvapich2 for openSUSE:Factory checked in at 2017-10-07 17:51:51 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/mvapich2 (Old) and /work/SRC/openSUSE:Factory/.mvapich2.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "mvapich2" Sat Oct 7 17:51:51 2017 rev:4 rq:532252 version:2.2 Changes: -------- --- /work/SRC/openSUSE:Factory/mvapich2/mvapich2.changes 2017-09-12 19:57:59.389185180 +0200 +++ /work/SRC/openSUSE:Factory/.mvapich2.new/mvapich2.changes 2017-10-07 17:52:04.959566126 +0200 @@ -1,0 +2,16 @@ +Fri Oct 6 14:06:37 UTC 2017 - nmoreychaisemar...@suse.com + +- Add conflicts between the macros-devel packages + +------------------------------------------------------------------- +Thu Oct 5 13:30:48 UTC 2017 - nmoreychaisemar...@suse.com + +- Add BuildRequires to libibmad-devel for older release (SLE <= 12.2, Leap <= 42.2) + +------------------------------------------------------------------- +Fri Sep 12 15:38:14 UTC 2017 - e...@suse.com + +- Add HPC specific build targets using environment modules + (FATE#321712). + +------------------------------------------------------------------- New: ---- macros.hpc-mvapich2 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ mvapich2.spec ++++++ --- /var/tmp/diff_new_pack.ugHl6d/_old 2017-10-07 17:52:08.315418597 +0200 +++ /var/tmp/diff_new_pack.ugHl6d/_new 2017-10-07 17:52:08.347417190 +0200 @@ -16,54 +16,145 @@ # -%global flavor @BUILD_FLAVOR@%nil +%global flavor @BUILD_FLAVOR@%{nil} + +%define pname mvapich2 +%define vers 2.2 +%define _vers 2_2 %if "%{flavor}" == "" +ExclusiveArch: do_not_build +%{bcond_with hpc} +%endif + +%if "%{flavor}" == "standard" %define build_flavor verbs +%{bcond_with hpc} %endif %if "%{flavor}" == "testsuite" %define build_flavor verbs %define testsuite 1 +%{bcond_with hpc} %endif %if "%{flavor}" == "psm" %define build_flavor psm +%{bcond_with hpc} %endif %if "%{flavor}" == "psm-testsuite" %define build_flavor psm %define testsuite 1 +%{bcond_with hpc} %endif %if "%{flavor}" == "psm2" %define build_flavor psm2 +%{bcond_with hpc} %endif %if "%{flavor}" == "psm2-testsuite" %define build_flavor psm2 %define testsuite 1 +%{bcond_with hpc} %endif -%if "%{flavor}" != "" -%define pack_suff -%{flavor} -%else -%define pack_suff %{nil} +%if "%flavor" == "gnu-hpc" +%define compiler_family gnu +%undefine c_f_ver +%define build_flavor verbs +%{bcond_without hpc} +%endif +%if "%flavor" == "gnu-hpc-testsuite" +%define compiler_family gnu +%undefine c_f_ver +%define testsuite 1 +%define build_flavor verbs +%{bcond_without hpc} +%endif + +%if "%flavor" == "gnu-hpc-psm" +%define compiler_family gnu +%undefine c_f_ver +%define build_flavor psm +%{bcond_without hpc} +%endif + +%if "%flavor" == "gnu-hpc-psm2" +%define compiler_family gnu +%undefine c_f_ver +%define build_flavor psm2 +%{bcond_without hpc} +%endif + +%if "%flavor" == "gnu6-hpc" +%define compiler_family gnu +%define c_f_ver 6 +%define build_flavor verbs +%{bcond_without hpc} +%endif +%if "%flavor" == "gnu6-hpc-testsuite" +%define compiler_family gnu +%define c_f_ver 6 +%define testsuite 1 +%define build_flavor verbs +%{bcond_without hpc} +%endif + +%if "%flavor" == "gnu6-hpc-psm" +%define compiler_family gnu +%define c_f_ver 6 +%define build_flavor psm +%{bcond_without hpc} %endif -%define module_name mvapich2%{pack_suff} -%define _prefix /usr/%_lib/mpi/gcc/%{module_name} -%define _libexecdir %{_prefix}/%{_lib} -%define _benchmarkdir %{_libexecdir}/osu-micro-benchmarks +%if "%flavor" == "gnu6-hpc-psm2" +%define compiler_family gnu +%define c_f_ver 6 +%define build_flavor psm2 +%{bcond_without hpc} +%endif + +%if "%{build_flavor}" != "verbs" +%define pack_suff %{?build_flavor:-%{build_flavor}} +%endif + +%if %{without hpc} +%define module_name mvapich2%{?pack_suff} +%define p_prefix /usr/%_lib/mpi/gcc/%{module_name} +%define p_bindir %{p_prefix}/bin +%define p_datadir %{p_prefix}/share +%define p_includedir %{p_prefix}/include +%define p_mandir %{p_datadir}/man +%define p_libdir %{p_prefix}/%{_lib} +%define p_libexecdir %{p_prefix}/%{_lib} %define _moduledir /usr/share/modules/gnu-%{module_name} +%define package_name mvapich2%{?pack_suff} +%else +%{hpc_init -M -c %compiler_family %{?c_f_ver:-v %{c_f_ver}} -m mvapich2 %{?pack_suff:-e %{build_flavor}}} +%define p_prefix %{hpc_prefix} +%define p_bindir %{hpc_bindir} +%define p_datadir %{hpc_datadir} +%define p_includedir %{hpc_includedir} +%define p_mandir %{hpc_mandir} +%define p_libdir %{hpc_libdir} +%define p_libexecdir %{hpc_libexecdir} +%define package_name %{hpc_package_name %{_vers}} + +%global hpc_mvapich2_dep_version %(VER=%{?m_f_ver}; echo -n ${VER}) +%global hpc_mvapich2_dir mvapich2 +%global hpc_mvapich2_pack_version %{hpc_mvapich2_dep_version} +%endif -Name: mvapich2%{pack_suff} +Name: %{package_name} Summary: OSU MVAPICH2 MPI package License: BSD-3-Clause Group: Development/Libraries/Parallel -Version: 2.2 +Version: %{vers} Release: 0 -Source0: http://mvapich.cse.ohio-state.edu/download/mvapich/mv2/mvapich2-%{version}.tar.gz +Source0: mvapich2-%{version}.tar.gz Source1: mpivars.sh Source2: mpivars.csh -Source3: _multibuild +Source3: macros.hpc-mvapich2 +Source100: _multibuild Patch0: mvapich2-s390_get_cycles.patch Patch1: mvapich2-pthread_yield.patch Patch2: mvapich2-arm-support.patch @@ -74,16 +165,22 @@ BuildRequires: automake BuildRequires: automake BuildRequires: bison -BuildRequires: gcc-c++ -BuildRequires: gcc-fortran %ifnarch s390 s390x armv7hl BuildRequires: libnuma-devel %endif BuildRequires: libtool BuildRequires: libtool -BuildRequires: mpi-selector BuildRequires: python-devel BuildRequires: sysfsutils +%if %{without hpc} +BuildRequires: gcc-c++ +BuildRequires: gcc-fortran +BuildRequires: mpi-selector +%else +BuildRequires: %{compiler_family}%{?c_f_ver}-compilers-hpc-macros-devel +BuildRequires: lua-lmod +BuildRequires: suse-hpc +%endif %if "%{build_flavor}" == "psm" ExclusiveArch: %ix86 x86_64 BuildRequires: infinipath-psm-devel @@ -97,14 +194,23 @@ BuildRequires: libibumad-devel BuildRequires: libibverbs-devel BuildRequires: librdmacm-devel +%if 0%{?sle_version} <= 120200 +BuildRequires: libibmad-devel +%endif %endif +%if %{without hpc} Requires: mpi-selector +%else +Requires: lua-lmod +%endif %description This is an MPI-3 implementation which includes all MPI-1 features. It is based on MPICH2 and MVICH. +%{!?testsuite:%{?with_hpc:%{hpc_master_package -a -L}}} + %if 0%{!?testsuite:1} %package devel @@ -122,12 +228,18 @@ Requires: libibverbs-devel Requires: librdmacm-devel %endif +%if %{without hpc} +Requires: gcc-c++ +Requires: gcc-fortran +%else +%hpc_requires_devel +%endif %description devel This is an MPI-2 implementation which includes all MPI-1 features. It is based on MPICH2 and MVICH. - +%{?with_hpc:%{hpc_master_package -a devel}} %package devel-static Summary: OSU MVAPICH2 MPI package - static libraries @@ -138,9 +250,35 @@ This is an MPI-3 implementation which includes all MPI-1 and MPI-2 features. It is based on MPICH2 and MVICH. This package contains the static libraries +%package doc +Summary: OSU MVAPICH2 MPI package - Documentation +Group: Development/Libraries/Parallel +Requires: %{name} = %{version} + +%description doc +This is an MPI-3 implementation which includes all MPI-1 and MPI-2 features. It +is based on MPICH2 and MVICH. This package contains the static libraries + +%{?with_hpc:%{hpc_master_package doc}} + +%package macros-devel +Summary: OSU MVAPICH2 MPI package - HPC build macros +Group: Development/Libraries/Parallel +Requires: %{name}-devel = %{version} +Provides: %{pname}-hpc-macros-devel = %{version} +Conflicts: otherproviders(%{pname}-hpc-macros-devel) + +%description macros-devel +This is an MPI-3 implementation which includes all MPI-1 and MPI-2 features. It +is based on MPICH2 and MVICH. This package contains the static libraries + +%{?with_hpc:%{hpc_master_package macros-devel}} + %endif # ! testsuite %prep + +%{?with_hpc:%hpc_debug} %setup -q -n mvapich2-%{version}%{?rc_ver} %patch0 %patch1 @@ -149,7 +287,22 @@ %build #./autogen.sh +%if %{with hpc} +%{hpc_setup} +%{hpc_configure} \ +%else %configure \ + --prefix=%{p_prefix} \ + --exec-prefix=%{p_prefix} \ + --datadir=%{p_datadir} \ + --bindir=%{p_bindir} \ + --includedir=%{p_includedir} \ + --libdir=%{p_libdir} \ + --libexecdir=%{p_libexecdir} \ + --mandir=%{p_mandir} \ +%endif + --docdir=%{_datadir}/doc/%{name} \ + --disable-wrapper-rpath \ --disable-wrapper-rpath \ %if "%{build_flavor}" == "psm" --with-device=ch3:psm \ @@ -168,21 +321,6 @@ %endif %install -make DESTDIR=%{buildroot} V=1 install -# make and install mpivars files -sed -e 's,prefix,%_prefix,g' -e 's,libdir,%{_libdir},g' %{S:1} > %{buildroot}%{_bindir}/mpivars.sh -sed -e 's,prefix,%_prefix,g' -e 's,libdir,%{_libdir},g' %{S:2} > %{buildroot}%{_bindir}/mpivars.csh -rm -f %{buildroot}%{_libdir}/libfmpich.la \ - %{buildroot}%{_libdir}/libmpich.la \ - %{buildroot}%{_libdir}/libmpichcxx.la \ - %{buildroot}%{_libdir}/libmpichf90.la \ - %{buildroot}%{_libdir}/libmpl.la \ - %{buildroot}%{_libdir}/libopa.la \ - %{buildroot}%{_libdir}/libmpi.la \ - %{buildroot}%{_libdir}/libmpicxx.la \ - %{buildroot}%{_libdir}/libmpifort.la -install -m 0644 COPYRIGHT* %{buildroot}%{_datadir}/doc/mvapich2 -install -m 0644 CHANGE* %{buildroot}%{_datadir}/doc/mvapich2 %if 0%{?testsuite} # Remove everything from testsuite package @@ -190,6 +328,27 @@ rm -rf %{buildroot}/* %else +make DESTDIR=%{buildroot} V=1 install + +rm -f %{buildroot}%{p_libdir}/libfmpich.la \ + %{buildroot}%{p_libdir}/libmpich.la \ + %{buildroot}%{p_libdir}/libmpichcxx.la \ + %{buildroot}%{p_libdir}/libmpichf90.la \ + %{buildroot}%{p_libdir}/libmpl.la \ + %{buildroot}%{p_libdir}/libopa.la \ + %{buildroot}%{p_libdir}/libmpi.la \ + %{buildroot}%{p_libdir}/libmpicxx.la \ + %{buildroot}%{p_libdir}/libmpifort.la +install -m 0755 -d %{buildroot}%{_datadir}/doc/%{name} +install -m 0644 COPYRIGHT* %{buildroot}%{_datadir}/doc/%{name} +install -m 0644 CHANGE* %{buildroot}%{_datadir}/doc/%{name} + +%if %{without hpc} +# make and install mpivars files +install -m 0755 -d %{buildroot}%{_bindir} +sed -e 's,prefix,%p_prefix,g' -e 's,libdir,%{p_libdir},g' %{S:1} > %{buildroot}%{p_bindir}/mpivars.sh +sed -e 's,prefix,%p_prefix,g' -e 's,libdir,%{p_libdir},g' %{S:2} > %{buildroot}%{p_bindir}/mpivars.csh + mkdir -p %{buildroot}%{_moduledir} cat << EOF > %{buildroot}%{_moduledir}/%{version} @@ -201,11 +360,11 @@ module-whatis "Loads the gnu mvapich2 %{version} Environment." conflict gnu-mvapich2 -prepend-path PATH %{_bindir} -prepend-path INCLUDE %{_includedir} -prepend-path INCLUDE %{_libdir} -prepend-path MANPATH %{_mandir} -prepend-path LD_LIBRARY_PATH %{_libdir} +prepend-path PATH %{%p_bindir} +prepend-path INCLUDE %{p_includedir} +prepend-path INCLUDE %{p_libdir} +prepend-path MANPATH %{p_mandir} +prepend-path LD_LIBRARY_PATH %{p_libdir} EOF @@ -214,52 +373,114 @@ set ModulesVersion "%{version}" EOF +%else # with hpc + +install -d -m 755 %{buildroot}%{_sysconfdir}/rpm +cp %{S:3} %{buildroot}%{_sysconfdir}/rpm + +%hpc_write_modules_files +#%%Module1.0##################################################################### + +proc ModulesHelp { } { + +puts stderr " " +puts stderr "This module loads the %{pname} library built with the %{compiler_family} toolchain." +puts stderr "\nVersion %{version}\n" + +} +module-whatis "Name: %{pname} built with %{compiler_family} toolchain" +module-whatis "Version: %{version}" +module-whatis "Category: runtime library" +module-whatis "Description: %{summary}" +module-whatis "URL: %{url}" + +set version %{version} + +prepend-path PATH %{hpc_prefix}/bin +prepend-path MANPATH %{hpc_prefix}/man +prepend-path LD_LIBRARY_PATH %{hpc_prefix}/%_lib +prepend-path MODULEPATH %{hpc_modulepath} +prepend-path MPI_DIR %{hpc_prefix} +%{hpc_modulefile_add_pkgconfig_path} + +family "MPI" +EOF +cat <<EOF > %{buildroot}/%{p_bindir}/mpivars.sh +module load %{hpc_compiler_family}/%{hpc_cf_full_version} %{hpc_mpi_family}%{?pack_suff}/%{version} +EOF +ln -s mpivars.sh %{buildroot}/%{p_bindir}/mpivars.csh + +%endif # with hpc %post /sbin/ldconfig +%if %{without hpc} /usr/bin/mpi-selector \ - --register %{name}%{pack_suff}-%{version} \ - --source-dir %{_bindir} \ + --register %{name}%{?pack_suff}-%{version} \ + --source-dir %{p_bindir} \ --yes +%endif %postun /sbin/ldconfig -/usr/bin/mpi-selector --unregister %{name}%{pack_suff}-%{version} --yes --silent +%if %{without hpc} +/usr/bin/mpi-selector --unregister %{name}%{?pack_suff}-%{version} --yes --silent +%else +%hpc_module_delete_if_default +%endif %files %defattr(-, root, root) -%doc %{_datadir}/doc +%if %{without hpc} %dir /usr/%_lib/mpi %dir /usr/%_lib/mpi/gcc -%dir %{_prefix} -%dir %{_bindir} -%dir %{_datadir} -%dir %{_includedir} %dir /usr/share/modules %dir %{_moduledir} -%dir %{_mandir} -%dir %{_mandir}/man1 -%dir %{_mandir}/man3 -%dir %{_libdir} -%dir %{_libexecdir} -%{_bindir}/* -%{_libexecdir}/osu-micro-benchmarks %{_moduledir} -%{_mandir}/man1/* -%{_libdir}/*.so.* +%else +%hpc_mpi_dirs +%hpc_modules_files +%endif +%doc %{_datadir}/doc/%{name}/COPYRIGHT* +%doc %{_datadir}/doc/%{name}/CHANGE* +%dir %{p_prefix} +%dir %{p_bindir} +%dir %{p_datadir} +%dir %{p_includedir} +%dir %{p_mandir} +%dir %{p_mandir}/man1 +%dir %{p_mandir}/man3 +%dir %{p_libdir} +%dir %{p_libexecdir} +%{p_bindir}/* +%{p_libexecdir}/osu-micro-benchmarks +%{p_mandir}/man1/* +%{p_libdir}/*.so.* + +%files doc +%defattr(-, root, root) +%doc %{_datadir}/doc/%{name} +%exclude /%{_datadir}/doc/%{name}/COPYRIGHT* +%exclude /%{_datadir}/doc/%{name}/CHANGE* %files devel %defattr(-,root,root) -%dir %{_libdir}/pkgconfig -%{_mandir}/man3/* -%{_includedir} -%{_libdir}/*.so -%{_libdir}/pkgconfig/mvapich2.pc -%{_libdir}/pkgconfig/openpa.pc +%dir %{p_libdir}/pkgconfig +%{p_mandir}/man3/* +%{p_includedir} +%{p_libdir}/*.so +%{p_libdir}/pkgconfig/mvapich2.pc +%{p_libdir}/pkgconfig/openpa.pc %files devel-static %defattr(-,root,root) -%{_libdir}/*.a +%{p_libdir}/*.a + +%if %{with hpc} +%files macros-devel +%defattr(-,root,root) +%config %{_sysconfdir}/rpm/macros.hpc-mvapich2 +%endif # with hpc %endif # !testsuite ++++++ _multibuild ++++++ --- /var/tmp/diff_new_pack.ugHl6d/_old 2017-10-07 17:52:08.603405937 +0200 +++ /var/tmp/diff_new_pack.ugHl6d/_new 2017-10-07 17:52:08.607405761 +0200 @@ -1,7 +1,12 @@ <multibuild> + <package>standard</package> <package>testsuite</package> <package>psm</package> <package>psm-testsuite</package> <package>psm2</package> <package>psm2-testsuite</package> + <package>gnu-hpc</package> + <package>gnu-hpc-psm</package> + <package>gnu-hpc-psm2</package> + <package>gnu-hpc-testsuite</package> </multibuild> ++++++ macros.hpc-mvapich2 ++++++ # # mvapich2 # %hpc_mvapich2_init(V:) \ %{-V: %define _mf_ver %{-V*}} \ %{expand: %%global hpc_mvapich2_dep_version %%{?_mf_ver}} \ %{expand: %%global hpc_mvapich2_dir mvapich2} \ %global hpc_mvapich2_pack_version %{hpc_mvapich2_dep_version} # We may have to add a version here. %hpc_setup_mvapich2 \ module load mvapich2 %hpc_mvapich2_requires \ Requires: mvapich2%{hpc_mvapich2_dep_version}-%{compiler_family}%{hpc_cf_pack_version}-hpc %hpc_mvapich2_requires_devel \ Requires: mvapich2%{hpc_mvapich2_dep_version}-%{compiler_family}%{hpc_cf_pack_version}-hpc-devel