diff --git a/slurm-rpmlintrc b/slurm-rpmlintrc index 67a37bf..b48d030 100644 --- a/slurm-rpmlintrc +++ b/slurm-rpmlintrc @@ -1,2 +1,13 @@ addFilter(".*obsolete-not-provided slurm-sched-wiki.*") addFilter(".*obsolete-not-provided slurmdb-direct.*") + +# libslurm provides an ABI and a wire protocol. The wire protocol may change +# with any SLURM version in an incompatible way. Therefore, multiple versions +# of libslurm should not be installed on the same system. +# Thus, libraries depending on libslurm need to match the installed SLURM +# version - independent of their major versions. +# To host multiple SLURM versions in the same repository we add the version +# string to package names for none-base versions - even to library packages. +# This mainly applies to upgrade packages for Leap and SLE in the maintenance +# channel. +addFilter("libnss_slurm\d_\d{2}_\d{2}.*: .* shlib-policy-name-error.*") diff --git a/slurm.changes b/slurm.changes index ad0a1da..1f5c813 100644 --- a/slurm.changes +++ b/slurm.changes @@ -1,3 +1,12 @@ +------------------------------------------------------------------- +Wed Jun 3 11:11:11 UTC 2020 - Egbert Eich + +- Bring QA to the package build: add %%check stage. +- Remove cruft that isn't needed any longer. +- Add 'ghosted' run-file. +- Add rpmlint filter to handle issues with library packages + for Leap and enterprise upgrade versions. + ------------------------------------------------------------------- Fri May 22 08:45:46 UTC 2020 - Christian Goll @@ -26,6 +35,12 @@ Fri May 22 08:45:46 UTC 2020 - Christian Goll * Fix step allocations when tasks_per_core > 1. * Fix allocating more GRES than requested when asking for multiple GRES types. +------------------------------------------------------------------- +Wed May 6 10:54:43 UTC 2020 - Egbert Eich + +- Treat libnss_slurm like any other package: add version string to + upgrade package. + ------------------------------------------------------------------- Fri Mar 27 08:26:34 UTC 2020 - Christian Goll diff --git a/slurm.spec b/slurm.spec index 5997295..44b3b9f 100644 --- a/slurm.spec +++ b/slurm.spec @@ -180,6 +180,7 @@ BuildRequires: libssh2-devel BuildRequires: rrdtool-devel %if 0%{?with_systemd} %{?systemd_ordering} +BuildRequires: dejagnu BuildRequires: pkgconfig(systemd) %else Requires(post): %insserv_prereq %fillup_prereq @@ -235,6 +236,8 @@ This package includes the Perl API to provide an interface to SLURM through Perl. %package -n %{libslurm} +# the .so number of libslurm is bumped with each major release +# therefore no need for a version string for Leap/SLE upgrade packages Summary: Libraries for SLURM Group: System/Libraries Requires: %{name}-config = %{version} @@ -256,12 +259,14 @@ Group: System/Libraries This package contains the library needed to run programs dynamically linked with SLURM. -%package -n libnss_%{pname}%{nss_so} +%package -n libnss_%{pname}%{nss_so}%{?upgrade:%{_ver}} Summary: NSS Plugin for SLURM Group: System/Libraries +%{?upgrade:Provides: libnss%{nss_so} = %{version}} +%{?upgrade:Conflicts: libnss%{nss_so}} -%description -n libnss_%{pname}%{nss_so} -ibnss_slurm is an optional NSS plugin that permits password and group +%description -n libnss_%{pname}%{nss_so}%{?upgrade:%{_ver}} +libnss_slurm is an optional NSS plugin that permits password and group resolution for a job on a compute node to be serviced through the local slurmstepd process. @@ -581,13 +586,6 @@ ln -sf %{_initrddir}/slurmdbd %{buildroot}%{_sbindir}/rcslurmdbd %endif mkdir -p %{buildroot}%{_localstatedir}/spool/slurm -rm -f contribs/cray/opt_modulefiles_slurm -rm -f %{buildroot}%{_sysconfdir}/plugstack.conf.template -rm -f %{buildroot}%{_sysconfdir}/slurm.conf.template -rm -f %{buildroot}%{_sbindir}/capmc_suspend -rm -f %{buildroot}%{_sbindir}/capmc_resume -rm -f %{buildroot}%{_sbindir}/slurmconfgen.py - install -D -m644 etc/cgroup.conf.example %{buildroot}/%{_sysconfdir}/%{pname}/cgroup.conf install -D -m644 etc/layouts.d.power.conf.example %{buildroot}/%{_sysconfdir}/%{pname}/layouts.d/power.conf.example install -D -m644 etc/layouts.d.power_cpufreq.conf.example %{buildroot}/%{_sysconfdir}/%{pname}/layouts.d/power_cpufreq.conf.example @@ -635,47 +633,35 @@ sed -i -e "s@PIDFile=.*@PIDFile=%{_localstatedir}/run/slurm/slurmdbd.pid@" \ %{buildroot}/%{_unitdir}/slurmdbd.service %endif -# Delete unpackaged files: -test -s %{buildroot}/%{_perldir}/auto/Slurm/Slurm.bs || -rm -f %{buildroot}/%{_perldir}/auto/Slurm/Slurm.bs - -test -s %{buildroot}/%{_perldir}/auto/Slurmdb/Slurmdb.bs || -rm -f %{buildroot}/%{_perldir}/auto/Slurmdb/Slurmdb.bs - +# Delete static files: rm -rf %{buildroot}/%{_libdir}/slurm/*.{a,la} \ %{buildroot}/%{_libdir}/*.la \ - %{buildroot}/%_lib/security/*.la \ - %{buildroot}/%{_mandir}/man5/bluegene* + %{buildroot}/%_lib/security/*.la -rm -f %{buildroot}/%{_mandir}/man1/srun_cr* \ - %{buildroot}/%{_bindir}/srun_cr \ - %{buildroot}/%{_libexecdir}/slurm/cr_* +rm %{buildroot}/%{perl_archlib}/perllocal.pod \ + %{buildroot}/%{perl_vendorarch}/auto/Slurm/.packlist \ + %{buildroot}/%{perl_vendorarch}/auto/Slurmdb/.packlist -rm doc/html/shtml2html.py doc/html/Makefile* - -rm -f %{buildroot}/%{perl_archlib}/perllocal.pod -rm -f %{buildroot}/%{perl_vendorarch}/auto/Slurm/.packlist -rm -f %{buildroot}/%{perl_vendorarch}/auto/Slurmdb/.packlist +# Remove Cray specific binaries +rm -f %{buildroot}/%{_sbindir}/capmc_suspend \ + %{buildroot}/%{_sbindir}/capmc_resume # Build man pages that are generated directly by the tools -rm -f %{buildroot}/%{_mandir}/man1/sjobexitmod.1 %{buildroot}%{_bindir}/sjobexitmod --roff > %{buildroot}/%{_mandir}/man1/sjobexitmod.1 -rm -f %{buildroot}/%{_mandir}/man1/sjstat.1 %{buildroot}%{_bindir}/sjstat --roff > %{buildroot}/%{_mandir}/man1/sjstat.1 # rpmlint reports wrong end of line for those files -sed -i 's/\r$//' %{buildroot}/%{_bindir}/qrerun -sed -i 's/\r$//' %{buildroot}/%{_bindir}/qalter +#sed -i 's/\r$//' %{buildroot}/%{_bindir}/qrerun +#sed -i 's/\r$//' %{buildroot}/%{_bindir}/qalter # avoid conflicts with other packages, make wrapper unique mv %{buildroot}/%{_bindir}/mpiexec %{buildroot}/%{_bindir}/mpiexec.slurm mkdir -p %{buildroot}/etc/ld.so.conf.d -echo '%{_libdir} -%{_libdir}/slurm' > %{buildroot}/etc/ld.so.conf.d/slurm.conf +echo '%{_libdir}/slurm' > %{buildroot}/etc/ld.so.conf.d/slurm.conf chmod 644 %{buildroot}/etc/ld.so.conf.d/slurm.conf -# Make pkg-config file +# Make pkg-config file mkdir -p %{buildroot}/%{_libdir}/pkgconfig cat > %{buildroot}/%{_libdir}/pkgconfig/slurm.pc <