Accepting request 650134 from science:HPC
* Do not remove executable flag on .so files (forwarded request 650133 from eeich) OBS-URL: https://build.opensuse.org/request/show/650134 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/suse-hpc?expand=0&rev=14
This commit is contained in:
commit
c77b973aa1
4
_service
4
_service
@ -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>
|
||||
|
@ -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
|
||||
|
14
hpc_elf.pl
14
hpc_elf.pl
@ -49,6 +49,8 @@ while ( $a = shift @ARGV ) {
|
||||
$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 @@ while ( $a = shift @ARGV ) {
|
||||
|
||||
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 @@ while ((chop($line = <HANDLE>))) {
|
||||
|
||||
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 ) {
|
||||
|
@ -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
|
||||
|
28
macros.hpc
28
macros.hpc
@ -168,7 +168,7 @@ EOF\
|
||||
%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 @@ EOF\
|
||||
# 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 @@ EOF\
|
||||
|
||||
%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 @@ When this package gets updated it installs the latest version of %name. \
|
||||
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>
|
||||
|
@ -1,3 +1,21 @@
|
||||
-------------------------------------------------------------------
|
||||
Mon Nov 19 01:19:05 UTC 2018 - eich@suse.com
|
||||
|
||||
- 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 - eich@suse.com
|
||||
|
||||
- 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.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Fri Oct 26 10:49:00 UTC 2018 - eich@suse.com
|
||||
|
||||
|
@ -20,7 +20,7 @@ Summary: SUSE HPC Environment
|
||||
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
|
||||
|
Loading…
Reference in New Issue
Block a user