Hello community, here is the log from the commit of package suse-hpc for openSUSE:Factory checked in at 2018-11-19 23:33:17 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/suse-hpc (Old) and /work/SRC/openSUSE:Factory/.suse-hpc.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "suse-hpc" Mon Nov 19 23:33:17 2018 rev:14 rq:650134 version:0.4 Changes: -------- --- /work/SRC/openSUSE:Factory/suse-hpc/suse-hpc.changes 2018-11-13 17:50:06.295581831 +0100 +++ /work/SRC/openSUSE:Factory/.suse-hpc.new/suse-hpc.changes 2018-11-19 23:33:28.307088207 +0100 @@ -1,0 +2,18 @@ +Mon Nov 19 01:19:05 UTC 2018 - [email protected] + +- Improve python handling: + * set python3 as default for Factory + * allow to specify subdir to HPC pyton path + * Do not remove executable flag on .so files + +------------------------------------------------------------------- +Sun Nov 18 10:19:22 UTC 2018 - [email protected] + +- Expand modules handling (bsc#1116458): + * add %%hpc_modules_init to store the list of modules + * if a modules list is available, use environment during + dependency generation to exclude objects which will be + found thru environment modules. + * bump package version. + +------------------------------------------------------------------- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ suse-hpc.spec ++++++ --- /var/tmp/diff_new_pack.HOrcJk/_old 2018-11-19 23:33:30.251085961 +0100 +++ /var/tmp/diff_new_pack.HOrcJk/_new 2018-11-19 23:33:30.255085956 +0100 @@ -20,7 +20,7 @@ License: BSD-3-Clause Group: Productivity/Clustering/Computing Name: suse-hpc -Version: 0.3 +Version: 0.4 Release: 0 Source0: macros.hpc Source1: dlinfo.c ++++++ _service ++++++ --- /var/tmp/diff_new_pack.HOrcJk/_old 2018-11-19 23:33:30.291085915 +0100 +++ /var/tmp/diff_new_pack.HOrcJk/_new 2018-11-19 23:33:30.291085915 +0100 @@ -5,8 +5,8 @@ <param name="package-meta">no</param> <param name="exclude">.git</param> <param name="filename">suse-hpc</param> - <param name="versionformat">0.1.%h</param> - <param name="revision">d6d9c0fddeefd4f22d4aa44d6a9f7bc7f625bcba</param> + <param name="versionformat">0.4.%h</param> + <param name="revision">87f3f2c336d9dc5f9e8874e7639459371cfae3b0</param> <param name="extract">general/dlinfo.c</param> <param name="extract">general/macros.hpc</param> <param name="extract">general/hpc_elf.pl</param> ++++++ hpc_elf.attr ++++++ --- /var/tmp/diff_new_pack.HOrcJk/_old 2018-11-19 23:33:30.311085892 +0100 +++ /var/tmp/diff_new_pack.HOrcJk/_new 2018-11-19 23:33:30.315085886 +0100 @@ -1,5 +1,5 @@ %__hpc_elf_provides %{_rpmconfigdir}/hpc_elf.pl --provides %{?__filter_GLIBC_PRIVATE:--filter-private} %{?hpc_dep_gen_attr} -%__hpc_elf_requires %{_rpmconfigdir}/hpc_elf.pl --requires %{?__filter_GLIBC_PRIVATE:--filter-private} %{?hpc_dep_gen_attr} +%__hpc_elf_requires %{_rpmconfigdir}/hpc_elf.pl %{?_hpc_modules:--modules "%_hpc_modules"} --requires %{?__filter_GLIBC_PRIVATE:--filter-private} %{?hpc_dep_gen_attr} %__hpc_elf_magic ^(setuid )?(setgid )?(sticky )?ELF (32|64)-bit.*executable %__hpc_elf_path %hpc_prefix %__hpc_elf_flags exeonly ++++++ hpc_elf.pl ++++++ --- /var/tmp/diff_new_pack.HOrcJk/_old 2018-11-19 23:33:30.323085878 +0100 +++ /var/tmp/diff_new_pack.HOrcJk/_new 2018-11-19 23:33:30.323085878 +0100 @@ -49,6 +49,8 @@ $a =~ /--no-fake-soname/ || $a =~ /--filter-private/ ) { $arglist .= " " . $a; + } elsif ( $a =~ /--modules/ ) { + $modules = shift @ARGV; } elsif ( $a =~ /--help/ || $a =~ /-?/ ) { help; } elsif ( $a =~ /--usage/ ) { @@ -60,6 +62,11 @@ open HANDLE, "$command $arglist |"; +if ( $modules ) { + $ldlibrarypath = `module load $modules; echo \$LD_LIBRARY_PATH`; + chop $ldlibrarypath; +} + while ((chop($line = <HANDLE>))) { $line =~ /([^\(]+)(.*)/; $libs{$1}{$2} = 1; @@ -67,8 +74,15 @@ foreach $lib ( keys %libs ) { $full=`$dlinfo $lib`; + chop $full; if (!$full) { delete $libs{$lib}; + } elsif ( $ldlibrarypath ) { + $hpc = `LD_LIBRARY_PATH=$ldlibrarypath $dlinfo $lib`; + chop $hpc; + if ( $full ne $hpc) { + delete $libs{$lib}; + } } } foreach $lib ( keys %libs ) { ++++++ hpc_elflib.attr ++++++ --- /var/tmp/diff_new_pack.HOrcJk/_old 2018-11-19 23:33:30.339085859 +0100 +++ /var/tmp/diff_new_pack.HOrcJk/_new 2018-11-19 23:33:30.339085859 +0100 @@ -1,5 +1,5 @@ %__hpc_elflib_provides %{_rpmconfigdir}/hpc_elf.pl --provides --assume-exec %{?__filter_GLIBC_PRIVATE:--filter-private} %{?hpc_dep_gen_attr} -%__hpc_elflib_requires %{_rpmconfigdir}/hpc_elf.pl --requires --assume-exec %{?__filter_GLIBC_PRIVATE:--filter-private} %{?hpc_dep_gen_attr} +%__hpc_elflib_requires %{_rpmconfigdir}/hpc_elf.pl %{?_hpc_modules:--modules "%_hpc_modules"} --requires --assume-exec %{?__filter_GLIBC_PRIVATE:--filter-private} %{?hpc_dep_gen_attr} %__hpc_elflib_magic ^(setuid )?(setgid )?(sticky )?ELF (32|64)-bit.*executable %__hpc_elflib_path ^%hpc_prefix %__hpc_elflib_flags exeonly ++++++ macros.hpc ++++++ --- /var/tmp/diff_new_pack.HOrcJk/_old 2018-11-19 23:33:30.363085832 +0100 +++ /var/tmp/diff_new_pack.HOrcJk/_new 2018-11-19 23:33:30.363085832 +0100 @@ -168,7 +168,7 @@ %global tmp %__elflib_exclude_path \ %global __elflib_exclude_path (%tmp)|(^%hpc_base) \ %undefine tmp \ - %{expand:%([ 0%{?sle_version} -ge 150000 ] && echo %%global _hpc_python3 1)} \ + %{expand:%([ 0%{?sle_version} -ge 150000 -o 0%{?suse_version} -gt 1500 ] && echo %%global _hpc_python3 1)} \ %global _hpc_init_done 1 %hpc_init(Cc:Mm:v:V:e:) %{expand:%%_hpc_init %{**}} @@ -196,6 +196,15 @@ # This can be overridden in the spec file. %hpc_module_pname %pname +# Modules init: Set up modules required for building +# %hpc_modules_init <module_list> +# <module_list>: list of modules (exclude compiler and MPI library). +# May be empty if only compiler and MPI library are needed. +%hpc_modules_init() \ + %{!?_hpc_init_done: %{error: "%%hpc_setup_compiler: Call %%hpc_init first!"}} \ + %{?*:%global _hpc_modules_other %{**}} \ + %global _hpc_modules %{?hpc_compiler_family:%{expand:%%{?%{expand:_hpc_%{hpc_compiler_family}_module}}}} %{?hpc_mpi_family:%{expand:%%{?%{expand:_hpc_%{hpc_mpi_family}_module}}}} %{?_hpc_modules_other} + %hpc_setup_compiler \ %{!?_hpc_init_done: %{error: "%%hpc_setup_compiler: Call %%hpc_init first!"}} \ module purge \ @@ -206,7 +215,8 @@ %hpc_setup \ %hpc_setup_compiler \ - %{!?_hpc_build_mpi:%hpc_setup_mpi} + %{!?_hpc_build_mpi:%hpc_setup_mpi} \ + %{?_hpc_modules_other:[ -n "%{?_hpc_modules_other}" ] && module load %_hpc_modules_other} # delete default in %postun %hpc_module_delete_if_default \ @@ -594,18 +604,18 @@ fi \ done -# %hpc_python_mv_to_sitearch <file> +# %hpc_python_mv_to_sitearch <file> [<subdir>] # -# move <file> to python sitearch, remove shebang lines and -# remove any excecute permissions. +# move <file> to python sitearch subdir <subdir> if set, remove shebang +# lines and remove any excecute permissions. # This should be done on any python files that do not contain # any executable code. %hpc_python_mv_to_sitearch() \ - _hpc_pydir=%hpc_python_sitearch_no_singlespec \ + _hpc_pydir=%{hpc_python_sitearch_no_singlespec}%{?2:/%{2}} \ _hpc_base=$(basename %{1}) \ - [ -d %{buildroot}/$_hpc_pydir ] || mkdir -p %{buildroot}/$_hpc_pydir \ - mv %{buildroot}%{1} %{buildroot}/$_hpc_pydir \ - chmod a-x %{buildroot}/$_hpc_pydir/$_hpc_base \ + [ -d %{buildroot}/$_hpc_pydir ] || mkdir -p %{buildroot}/${_hpc_pydir} \ + mv %{buildroot}%{1} %{buildroot}/${_hpc_pydir} \ + [[ "$_hpc_base" =~ .*\.so ]] || chmod a-x %{buildroot}/$_hpc_pydir/$_hpc_base \ %{hpc_shebang_remove %{buildroot}/$_hpc_pydir/$_hpc_base} # %hpc_verify_python3 <file>
