Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package openblas for openSUSE:Factory 
checked in at 2026-07-06 12:27:05
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/openblas (Old)
 and      /work/SRC/openSUSE:Factory/.openblas.new.1982 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "openblas"

Mon Jul  6 12:27:05 2026 rev:77 rq:1363694 version:0.3.33

Changes:
--------
--- /work/SRC/openSUSE:Factory/openblas/openblas.changes        2026-05-16 
19:24:27.609877631 +0200
+++ /work/SRC/openSUSE:Factory/.openblas.new.1982/openblas.changes      
2026-07-06 12:27:08.388580500 +0200
@@ -1,0 +2,142 @@
+Tue Jun 30 06:48:59 UTC 2026 - Christian Goll <[email protected]>
+
+- disable tests for i586 as sblat tests fail
+
+-------------------------------------------------------------------
+Fri Jun 12 14:55:50 UTC 2026 - Christian Goll <[email protected]>
+
+- Added compatlib packages (compatlibopenblas_serial0, 
compatlibopenblas_openmp0,
+  compatlibopenblas_pthreads0) that provide update-alternatives support for
+  backward compatibility (bsc#1268086) (bsc#1268086)
+- Compatlib packages are automatically installed via Supplements when upgrading
+  from OpenBLAS >= 0.3.30 to maintain existing update-alternatives 
configurations
+- The main library packages no longer require update-alternatives, making them
+  suitable for transactional systems. Users who need update-alternatives 
support
+  can explicitly install the compatlib packages
+- Fixed pkgconfig and cmake symlinks to point directly to flavor-specific
+  directories (e.g., /usr/lib64/openblas-openmp/) instead of through
+  update-alternatives, ensuring consistent library resolution
+- Updated README.SUSE to document the new packaging structure and compatlib 
usage
+
+- Update to version 0.3.33
+  general:
+  * fixed incorrect cast in SBGEMM test case causing spurious failures
+  * fixed invalid memory access in converted C CBLAS tests
+  * made BIGNUMA setting automatic when cores exceed 256
+  * imported recent Reference-LAPACK 3.13.0 updates including:
+    - implemented LARF1F and ORM2R functions
+    - changed loop order in GETC2 for better performance
+    - added NaN checks for input matrix A in GEEV
+    - fixed support for jobu/v in LAPACKE_GESVDQ_WORK
+    - fixed workspace size calculation in TGSEN
+    - optimized looping in LACPY/LASCL/LANTR with fat matrix and UPLO=L
+  arm64:
+  * worked around serious GCC15 miscompilation of DDOT kernel affecting most 
non-SVE targets
+  * fixed accuracy issue in GEMV kernel for Neoverse V1 and SVE targets
+  * fixed broken STRMM and SSYMM in DYNAMIC_ARCH builds on non-SME hardware
+  * added optimized SHGEMM kernel for Neoverse N2
+  * added autodetection of Cortex A75/A76 and Neoverse V3
+  loongarch64:
+  * fixed build failure from missing half-precision float type support
+  * fixed long-standing bug in asserting 64bit capability in c_check helper
+  x86_64:
+  * added workaround for LLVM miscompilation of AVX512 GEMM kernels
+  * fixed CMake compilation with NVIDIA HPC compiler
+
+- Update to version 0.3.32
+  general:
+  * fixed LAPACK GESV reimplementation to compute LU factorization even when 
NRHS is zero
+  * improved error message when compile-time buffer allocation exceeded
+  * fixed non-serialized access problem in parallelized SYRK by concurrent 
callers
+  * fixed ABI mismatch in internal CDOT/ZDOT version used by C fallback LAPACK
+  * improved f_check script for detecting Fortran compiler with embedded 
dashes in paths
+  * fixed memory access issues in utests detected by Address Sanitizer
+  * fixed Makefile errors when only subset of precision types selected
+  * fixed OpenMP compiler option for Intel Ifx compiler
+  arm64:
+  * fixed potential miscompilation of SDOT/DDOT/DSDOT kernels
+  * improved BGEMM and SBGEMM kernel performance for Neoverse V2
+  * added optimized SSUM and DSUM kernels for Neoverse N1
+  * added preliminary Neoverse V3 support as NEOVERSEV2
+  * added cpu autodetection for Cortex A725 and X925
+  * fixed compilation of GEMM kernels for VORTEXM4/ARMV9SME without 
multithreading
+  loongarch64:
+  * fixed POTRF returning wrong results on LA464 from incorrect parameter 
setting
+  power:
+  * fixed compilation problems from missing half-precision float support
+  * fixed potential POWER10 DGEMV kernel miscompilation by limiting 
optimization level
+  * fixed SCAL issue on PPCG4/PPC970 running Linux
+  riscv64:
+  * optimized CROT/ZROT kernel for vector length 128 in non-unit stride path
+  * improved SBGEMM/SHGEMM and related type conversion helper functions
+  * fixed probing for BFLOAT16 support in DYNAMIC_ARCH cpu detection
+  x86_64:
+  * fixed potential gcc 15.x miscompilation of AVX512 SGEMM kernel for small 
sizes
+  * fixed SROT and DROT kernels for Haswell to have consistent FMA rounding
+  * added automatic detection of Intel Arrow Lake H/U, Panther Lake, and 
Jasper Lake
+  * added detection of Intel Emerald Rapids and upcoming models
+  * updated cache size translation table in cpu model autodetection
+  * improved cpu detection fallback to include Nehalem as non-AVX option
+  * fixed Makefile build issue with clang and SkylakeX SGEMM kernel
+
+- Update to version 0.3.31
+  general:
+  * reverted matrix partitioning optimization from 0.3.30 that could cause 
race conditions in GEMM
+  * added bfloat16 extensions BGEMM and BGEMV
+  * added BLAS interface for GEMM_BATCH extensions
+  * added GEMM_BATCH_STRIDED extensions and CBLAS interface
+  * added basic infrastructure for half-precision float (FP16) format using SH 
prefix
+  * reimplemented LAPACK SLAED3/DLAED3 using multithreading, improving 
SSYEVD/DSYEVD performance
+  * limited memory allocation retries to avoid infinite hanging on low-memory 
systems
+  * fixed thread lockup with python 3.9 or older and numpy
+  * introduced problem size thresholds for multithreading in STRMV/DTRMV, 
CHER/ZHER functions, and SGER/DGER
+  * improved autodetection of Fortran compiler
+  * fixed INTERFACE64=1 option passing to flang-new compiler
+  * fixed potential deadlock after fork() in multithreaded code
+  * fixed CMake builds on FreeBSD and from Cygwin
+  * fixed cross-compilation to RISCV targets via CMake
+  * fixed installation of cblas.h when NO_CBLAS=0
+  * fixed missing user-defined pre/postfixes on functions in lapack.h and 
lapacke.h
+  arm64:
+  * building BFLOAT16 kernels now enabled by default
+  * improved overall GEMM, SYMM and HEMM performance on A64FX
+  * improved SDOT/DDOT performance on A64FX
+  * improved multithreading performance of SDOT/DDOT on A64FX via throttling 
table
+  * improved SGER/DGER performance on A64FX and NEOVERSEV1
+  * improved multithreading GEMM performance on A64FX and NEOVERSEV1
+  * improved GEMV kernel for SVE-capable targets
+  * improved multithreading SGEMM on NEOVERSEV1 and V2
+  * added optimized SAXPY/DAXPY SVE kernels for A64FX and NEOVERSEV1
+  * added optimized BGEMM and BGEMV kernels for NEOVERSEV1
+  * added optimized BGEMM kernel for NEOVERSEN2
+  * added support for NEOVERSEV2 cpu
+  * added dedicated Apple M4 support as VORTEXM4
+  * added optimized SGEMM/SSYMM/STRMM/SSYRK/SSYR2K for SME-capable targets
+  * improved SNRM2 kernel precision
+  * added cpu autodetection and compiler settings for Ampere One processors
+  loongarch64:
+  * fixed warnings and inaccuracies from incorrect register saving
+  * fixed logical core enumeration on big NUMA servers
+  * fixed building with LLVM and INTERFACE64=1 option
+  power:
+  * added initial POWER11 architecture support
+  * improved DGEMM and DGEMV performance on POWER10
+  * fixed default compiler flags to use "-O3" instead of unsafe "-Ofast"
+  * fixed potential gcc15.1 miscompilation of DGEMV and assembly kernels
+  * fixed compilation with recent flang versions
+  riscv64:
+  * added optimized SBGEMM kernels for ZVL128B and ZVL256B targets
+  * added optimized SHGEMM kernels for ZVL128B and ZVL256B
+  * added optimized SBGEMV and SHGEMV kernels
+  * improved GEMV kernel performance for ZVL256B
+  * improved CROT and ZROT kernel performance for ZVL128B and x280
+  * improved RVV1.0 capability detection
+  * improved matrix packing helper functions for ZVL128B and ZVL256B
+  * improved OMATCOPY performance
+  x86_64:
+  * added cpu autodetection for Intel Lunar Lake (Core Ultra 200V)
+  * changed all MIN and MAX assembly kernels to use unaligned operations
+  zarch:
+  * added support for building with CMake
+
+-------------------------------------------------------------------

Old:
----
  OpenBLAS-0.3.30.tar.gz

New:
----
  OpenBLAS-0.3.33.tar.gz
  _scmsync.obsinfo
  build.specials.obscpio

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ openblas.spec ++++++
--- /var/tmp/diff_new_pack.GSXz7n/_old  2026-07-06 12:27:09.616623112 +0200
+++ /var/tmp/diff_new_pack.GSXz7n/_new  2026-07-06 12:27:09.616623112 +0200
@@ -24,15 +24,12 @@
 
 %bcond_with ringdisabled
 
-%if 0%{?suse_version} > 1500
-%define a_x _%{_arch}
-%endif
-
 %if "%flavor" == ""
 %define package_name %{pname}
 ExclusiveArch:  do_not_build
 %endif
 
+
 %global build_flags USE_THREAD=1 USE_OPENMP=1
 
 %if "%flavor" == "serial"
@@ -40,6 +37,8 @@
 %define openblas_so_prio 20
 # we build devel packages only from one flavor
 %define build_devel 1
+ %define flexiname libopenblas.so.%{so_v}
+ %define flexidevelname libopenblas.so
 %endif
 
 %if "%flavor" == "pthreads"
@@ -50,6 +49,8 @@
  %else
  %define openblas_so_prio 20
  %endif
+ %define flexiname libopenblasp.so.%{so_v}
+ %define flexidevelname libopenblasp.so
 %endif
 
 %if "%flavor" == "openmp"
@@ -59,6 +60,35 @@
  %define arch_flavor 1
  %define openblas_so_prio 50
  %endif
+ %define flexiname libopenblaso.so.%{so_v}
+ %define flexidevelname libopenblaso.so
+%endif
+# Distribution detection and update-alternatives strategy distroname is for 
debugging purpose
+%if 0%{?suse_version} <= 1500
+%bcond_without alternatives
+%define distroname LEAP15-SLE15
+# Do not use LIBNAMESUFFIX for new builds as it will not allow
+# the different flavors to be plugin replacements of each other
+%define libnamesuffix LIBNAMESUFFIX=_%{flavor}
+%else
+%define a_x _%{_arch}
+%if 0%{?suse_version} >= 1600 && 0%{?suse_version}  < 1610
+%define distroname LEAP16-SLE16
+%bcond_without alternatives
+%else
+%if 0%{?is_opensuse}
+%if 0%{?suse_version} >= 1699
+%define distroname TW
+%bcond_without alternatives
+%else
+%define distroname LEAP16.1
+%bcond_without alternatives
+%endif
+%else
+%define distroname SLE16.1
+%bcond_with alternatives
+%endif
+%endif
 %endif
 
 %ifarch ppc64le
@@ -92,9 +122,15 @@
 %define package_name  %{pname}_%{flavor}
 %endif
 %define p_prefix %_prefix
+%if %{with alternatives}
 %define p_includedir %_includedir/%pname
 %define p_libdir %_libdir/openblas%{?flavor:-%{flavor}}
 %define p_testdir %_libexecdir/openblas%{?flavor:-%{flavor}}/tests
+%else
+%define p_includedir %_includedir
+%define p_libdir %_libdir
+%define p_testdir %_libexecdir/openblas/tests
+%endif
 %define p_cmakedir %{p_libdir}/cmake/%{pname}
 %define num_threads 64
 
@@ -105,7 +141,7 @@
 %endif
 
 Name:           %{package_name}
-Version:        0.3.30
+Version:        0.3.33
 Release:        0
 Summary:        An optimized BLAS library based on GotoBLAS2
 License:        BSD-3-Clause
@@ -125,35 +161,70 @@
 BuildRequires:  gcc%{?cc_v}-fortran
 %endif
 BuildRequires:  gcc-fortran
+%if %{with alternatives}
 BuildRequires:  update-alternatives
 Requires(post): update-alternatives
+Requires(postun): update-alternatives
 Requires(preun): update-alternatives
+%endif
 
 %description
 OpenBLAS is an optimized BLAS library based on GotoBLAS2 1.13 BSD version.
 
-%package     -n lib%{name}%{so_a}
+%package     -n lib%{name}%{so_v}
 Summary:        An optimized BLAS library based on GotoBLAS2, %{flavor} version
 Group:          System/Libraries
-Requires(post): update-alternatives
 Requires(post): coreutils
-Requires(preun): update-alternatives
+%if %{with alternatives}
+Recommends:     compatlib%{name}%{so_v} = %{version}
+%endif
  %if "%flavor" == "serial"
 Obsoletes:      lib%{pname}%{so_v} < %{version}
 Provides:       lib%{pname}%{so_v} = %{version}
  %else
-Obsoletes:      lib%{pname}0
+Obsoletes:      lib%{pname}0 < %{version}
  %endif
  %if "%flavor" == "pthreads"
-Obsoletes:      lib%{pname}p0
+Obsoletes:      lib%{pname}p0 < %{version}
  %endif
  %if "%flavor" == "openmp"
-Obsoletes:      lib%{pname}o0
+Obsoletes:      lib%{pname}o0 < %{version}
  %endif
 
-%description -n lib%{name}%{so_a}
+%description -n lib%{name}%{so_v}
 OpenBLAS is an optimized BLAS library based on GotoBLAS2 1.13 BSD version.
 
+%if %{with alternatives}
+%package     -n compatlib%{name}%{so_a}
+Summary:        Compatiblity library containing OpenBLAS %{flavor} via 
update-alternatives
+Group:          System/Libraries
+Requires(post): coreutils
+Requires(post): update-alternatives
+Requires(preun): update-alternatives
+Requires:       lib%{name}%{so_a} = %{version}
+Enhances:       update-alternatives
+Obsoletes:      lib%{name}%{so_a} <= 0.3.30
+# Automatically install compatlib when upgrading from >= 0.3.30
+Supplements:    (lib%{name}%{so_a} and update-alternatives)
+
+ %if "%flavor" == "serial"
+Obsoletes:      lib%{pname}%{so_v} < %{version}
+ %else
+Obsoletes:      lib%{pname}0 < %{version}
+ %endif
+ %if "%flavor" == "pthreads"
+Obsoletes:      lib%{pname}p0 < %{version}
+ %endif
+ %if "%flavor" == "openmp"
+Obsoletes:      lib%{pname}o0 < %{version}
+ %endif
+
+%description -n compatlib%{name}%{so_a}
+OpenBLAS for %{flavor} which can replace other BLAS versions with the help of
+update-alternatives.
+Incompatible with transactional enabled OS installations.
+%endif
+
 %package     -n lib%{name}-devel
 Summary:        Development libraries for OpenBLAS, %{flavor} version
 Group:          Development/Libraries/C and C++
@@ -171,6 +242,21 @@
 
 This package contains the development libraries for serial OpenBLAS version.
 
+%package     -n compatlib%{name}-devel
+Summary:        Development libraries for OpenBLAS for explicit link to 
OpenBLAS %{flavor}
+Group:          Development/Libraries/C and C++
+Requires:       %{pname}-common-devel = %{version}
+Requires:       compatlib%{name}%{so_a} = %{version}
+%if 0%{?arch_flavor}
+Provides:       %{pname}-devel = %version
+Provides:       %{pname}-devel(default) = %version
+%else
+Provides:       %{pname}-devel(other) = %version
+%endif
+
+%description -n compatlib%{name}-devel
+Provides the link from lib%{pname}.so to libopenblas.o managed by 
update-alternatives
+
 %package        devel-static
 Summary:        Static version of OpenBLAS
 Group:          Development/Libraries/C and C++
@@ -184,7 +270,7 @@
 %package      -n %{pname}-common-devel
 Summary:        Development headers and libraries for OpenBLAS
 Group:          Development/Libraries/C and C++
-Requires:       (%{pname}-devel(default) or %{pname}-devel(other))
+Requires:       lib%{pname}_serial-devel = %{version}
 Requires(pre):  coreutils
 Requires(post): coreutils
 Obsoletes:      %{pname}-devel < %version
@@ -207,8 +293,7 @@
 This package contains test binaries.
 
 %prep
-%setup -q -n OpenBLAS-%{?sha1:%{sha1}}%{!?sha1:%{version}}
-%autopatch -p1
+%autosetup -p1 -n OpenBLAS-%{?sha1:%{sha1}}%{!?sha1:%{version}}
 %ifarch s390
 sed -i -e "s@m32@m31@" Makefile.system
 %endif
@@ -228,6 +313,7 @@
 cp %{SOURCE1} .
 
 # create baselibs.conf based on flavor
+%if %{with alternatives}
 cat >  %{_sourcedir}/baselibs.conf <<EOF
 lib%{name}%{so_a}
     +%{p_libdir}/libopenblas.*\.so\.*
@@ -236,8 +322,14 @@
     requires -%{name}-<targettype>
     requires "lib%{name}%{?so_a}-<targettype> = <version>"
 EOF
+%endif
 
 %build
+# disable lto for i586 and ppc64le, as it causes compilation/linking issues 
and segfaults
+%ifarch i586 ppc64le
+%global _lto_cflags %{nil}
+%endif
+
 # For static libraries use -ffat-lto-objects to make sure the 'regular'
 # assembler code is generated as well as the intermediate code will be
 # stripped during pre-packaging post-processing. Also, set ldflags_tests
@@ -247,10 +339,6 @@
 %global ldflags_tests -fno-lto
 %endif
 
-# disable lto for ppc64le, boo#1181733
-%ifarch ppc64le
-%define  _lto_cflags %{nil}
-%endif
 
 # Use DYNAMIC_ARCH everywhere - not sure about PPC?
 # Use DYNAMIC_ARCH to build for multiple targets, use TARGET to specify
@@ -262,6 +350,9 @@
 %global openblas_target %openblas_target TARGET=CORE2
 %define openblas_opt BUILD_BFLOAT16=1
 %endif
+%ifarch i586
+%define openblas_opt BINARY=32
+%endif
 %ifarch aarch64
 %global openblas_target %openblas_target TARGET=ARMV8
 %define openblas_opt BUILD_BFLOAT16=1
@@ -299,12 +390,12 @@
 [[ -z $jobs ]] && jobs=1
 # NEVER use %%_smp_mflags with top level make:
 # set MAKE_NB_JOBS instead and let the build do the work!
-# Do not use LIBNAMESUFFIX for new builds as it will not allow
-# the different flavors to be plugin replacements of each other
-%if 0%{?suse_version} <= 1500
-%define libnamesuffix LIBNAMESUFFIX=_%{flavor}
-%endif
+# On i586, build only 'shared' target to skip tests that segfault
+%ifarch i586
+make shared MAKE_NB_JOBS=$jobs %{?openblas_target} %{?build_flags} \
+%else
 make MAKE_NB_JOBS=$jobs %{?openblas_target} %{?build_flags} \
+%endif
      %{?openblas_opt} \
      COMMON_OPT="%{optflags} %{?addopt}" \
      NUM_THREADS=%{num_threads} V=1 \
@@ -323,7 +414,12 @@
 # Pass NUM_THREADS again, as it is not propagated from the build step
 # https://github.com/OpenMathLib/OpenBLAS/issues/4275
 mkdir -p %{buildroot}/%{p_testdir}
+# On i586, skip install_tests since tests were not built
+%ifarch i586
+%make_install %{?openblas_target} %{?build_flags} \
+%else
 %make_install install_tests %{?openblas_target} %{?build_flags} \
+%endif
     %{?openblas_opt} \
     NUM_THREADS=%{num_threads} \
     OPENBLAS_LIBRARY_DIR=%{p_libdir} \
@@ -354,11 +450,18 @@
 %if 0%{!?build_devel:1}
 # We need the includes only once
 rm -rf %{buildroot}%{p_includedir}/
+# Also remove cmake and pkgconfig files for non-devel flavors when 
alternatives is OFF
+%if %{without alternatives}
+rm -rf %{buildroot}%{p_cmakedir}/
+rm -rf %{buildroot}%{p_libdir}/pkgconfig/
+%endif
 %endif
 
 # Fix cmake config file
+%if 0%{?build_devel:1}
 sed -i 's|%{buildroot}||g' %{buildroot}%{p_cmakedir}/*.cmake
 sed -i 's|_%{flavor}||g' %{buildroot}%{p_cmakedir}/*.cmake
+%endif
 
 # Remove library type specific so. This is solved differently.
 # Needed when not using LIBNAMESUFFIX.
@@ -389,22 +492,52 @@
 #  /usr/lib64/libopenblas.so.<so_v> -> 
/usr/lib64/openblas_default/libopenblas.so.<so_v>
 #  /usr/lib64/libopenblas.so -> libopenblas.so.<so_v>
 
+%if %{with alternatives}
+# Only create flexiname symlink if it differs from the common library name
+%if "%{?flexiname}" != "" && "%{flexiname}" != "lib%{pname}.so.%{so_v}"
+ln -s %{p_libdir}/lib%{pname}.so.%{so_v} %{buildroot}%{_libdir}/%{flexiname}
+%endif
 install -d %{buildroot}/%{_sysconfdir}/alternatives
 for link in openblas-default libblas.so.3 liblapack.so.3 libcblas.so.3 
liblapacke.so.3; do
     ln -s %{_sysconfdir}/alternatives/${link}%{?a_x} 
%{buildroot}/%{_libdir}/${link}
 done
+%else
+# For older releases without alternatives, create flexiname symlinks only if 
they differ from the actual filename
+%if "%{?flexiname}" != "" && "%{flexiname}" != "lib%{pname}.so.%{so_v}"
+ln -s lib%{pname}.so.%{so_v} %{buildroot}%{_libdir}/%{flexiname}
+%endif
+%endif
+# compatiblity libraries which are use by flexiblas
 
 %if 0%{?build_devel}
+%if %{with alternatives}
 install -d %{buildroot}%{_libdir}/pkgconfig/
-ln -s 
%{_sysconfdir}/alternatives/openblas-default%{?a_x}/pkgconfig/openblas.pc 
%{buildroot}%{_libdir}/pkgconfig/
+ln -s %{p_libdir}/pkgconfig/openblas.pc 
%{buildroot}%{_libdir}/pkgconfig/openblas.pc
 install -d %{buildroot}/%{_libdir}/cmake
-ln -s %{_sysconfdir}/alternatives/openblas-default%{?a_x}/cmake/openblas 
%{buildroot}/%{_libdir}/cmake/
+ln -s %{p_libdir}/cmake/openblas %{buildroot}/%{_libdir}/cmake/openblas
+%endif
+%endif
+%if %{with alternatives}
+%{?flexidevelname:ln -s %{p_libdir}/lib%{pname}.so.%{so_v} 
%{buildroot}%{_libdir}/%{flexidevelname}}
+%else
+# For older releases without alternatives, create flexidevelname symlinks only 
if they differ
+%if "%{?flexidevelname}" != "" && "%{flexidevelname}" != "lib%{pname}.so"
+ln -s lib%{pname}.so %{buildroot}%{_libdir}/%{flexidevelname}
+%endif
 %endif
 
 # Compatibility Links
 %if 0%{?libnamesuffix:1}
+ %if %{with alternatives}
+# remove installed lib to avoid conflicts even if wit update-alternatives 
these are ghosted
+rm -f %{buildroot}%{_libdir}/lib%{name}.so.%{so_v}
 ln -s openblas-%{flavor}/lib%{pname}.so.%{so_v} 
%{buildroot}%{_libdir}/lib%{name}.so.%{so_v}
-ln -s openblas-%{flavor}/lib%{pname}.so %{buildroot}%{_libdir}/lib%{name}.so
+test -e %{buildroot}%{_libdir}/lib%{name}.so || ln -s 
openblas-%{flavor}/lib%{pname}.so %{buildroot}%{_libdir}/lib%{name}.so
+ %else
+# For older releases without alternatives, symlink directly in same directory
+test -e %{buildroot}%{_libdir}/lib%{name}.so.%{so_v} || ln -s 
lib%{pname}.so.%{so_v} %{buildroot}%{_libdir}/lib%{name}.so.%{so_v}
+test -e %{buildroot}%{_libdir}/lib%{name}.so || ln -s lib%{pname}.so 
%{buildroot}%{_libdir}/lib%{name}.so
+ %endif
 %endif
 
 # Ensure directory used in older versions are replaced by symlink properly
@@ -413,7 +546,8 @@
 [ -d $d -a ! -L $d -a "$(rpm -q --qf '%%{NAME}' -f $d 2>/dev/null)" = 
"openblas-devel" ] \
     && { n=$(mktemp -d $(dirname $d)/tmpd-XXXXX); mv $d $n; rm -rf $n; } || 
true
 
-%post -n lib%{name}%{so_v}
+%if %{with alternatives}
+%post -n compatlib%{name}%{so_v}
 # There's no way to determine if a setting exists, so just remove it and 
ignore errors
 %{?a_x:%{_sbindir}/update-alternatives --remove-all openblas-default 
2>/dev/null || true}
 %{_sbindir}/update-alternatives --install \
@@ -426,34 +560,66 @@
      %{_libdir}/${lib} ${lib}%{?a_x} %{p_libdir}/lib%{pname}.so.%{so_v}  20
 done
 /sbin/ldconfig
+%endif
 
-%post -n %{pname}-common-devel
-ln -sf lib%{pname}.so.%{so_v} %{_libdir}/lib%{pname}.so
+
+%post -n lib%{name}%{so_v}
+/sbin/ldconfig
 
 %postun -n lib%{name}%{so_v}
+/sbin/ldconfig
+
+%post -n %{pname}-common-devel
+# Always point to serial library by default - this is managed in %%files now, 
not created in %%post
+
+%if %{with alternatives}
+%postun -n compatlib%{name}%{so_v}
 if [ ! -f %{p_libdir}/lib%{pname}.so.%{so_v} ]; then
+    if [ -e %{_sbindir}/update-alternatives ] ; then
     for lib in libblas.so.3 libcblas.so.3 liblapack.so.3 liblapacke.so.3; do
-       %{_sbindir}/update-alternatives --remove ${lib}%{?a_x} 
%{_libdir}/lib%{pname}.so.%{so_v}
+           %{_sbindir}/update-alternatives --remove ${lib}%{?a_x} 
%{p_libdir}/lib%{pname}.so.%{so_v}
     done
+    fi
 fi
 if [ ! -d %{p_libdir} ]; then
     %{_sbindir}/update-alternatives --remove openblas-default%{?a_x} 
%{p_libdir}
 fi
+# Remove libopenblas.so.%{so_v} symlink if it's broken
+if [ -h "%_libdir/lib%{pname}.so.%{so_v}" ] && [ ! -e 
"%_libdir/lib%{pname}.so.%{so_v}" ] ; then
+  rm %_libdir/lib%{pname}.so.%{so_v}
+fi
+# Remove libopenblas.so if it's broken
+if [ -h "%_libdir/libopenblas.so" ] && [ ! -e "%_libdir/libopenblas.so" ] ; 
then
+  rm %_libdir/libopenblas.so
+fi
 /sbin/ldconfig
+%endif
 
 %check
+%ifnarch i586
 sed -e 's#@FLAVOR@#%{flavor}#' \
     -e 's#@COMPILER@#%{?compiler_family:%compiler_family}}#' \
     -e 's#@DIR@#%{buildroot}/%{p_testdir}#' \
     < %{S:3} > ./openblas_tests_check.sh
 bash ./openblas_tests_check.sh
+%endif
 
 %files -n lib%{name}%{so_a}
 %defattr(-,root,root,-)
-%{p_libdir}/lib%{pname}.so.%{so_v}
+# can be %%{_libdir} so be carefull
+%if %{with alternatives}
 %dir %{p_libdir}
+%endif
+%{p_libdir}/lib%{pname}.so.%{so_v}
 %{?libnamesuffix:%{_libdir}/lib%{name}.so.%{so_v}}
-# Created by %%post
+%if "%{?flexiname}" != "" && "%{flexiname}" != "lib%{pname}.so.%{so_v}"
+%{_libdir}/%{flexiname}
+%endif
+
+%if %{with alternatives}
+%files -n compatlib%{name}%{so_a}
+%defattr(-,root,root,-)
+# Created by %%post with update-alternatives
 %ghost %{_libdir}/lib%{pname}.so.%{so_v}
 %ghost %{_libdir}/openblas-default
 %ghost %{_libdir}/libblas.so.3
@@ -465,14 +631,24 @@
 %ghost %{_sysconfdir}/alternatives/libcblas.so.3%{?a_x}
 %ghost %{_sysconfdir}/alternatives/liblapack.so.3%{?a_x}
 %ghost %{_sysconfdir}/alternatives/liblapacke.so.3%{?a_x}
+%endif
 
 %files -n lib%{name}-devel
 %{p_libdir}/lib%{pname}.so
 %{?libnamesuffix:%{_libdir}/lib%{name}.so}
-%{p_cmakedir}/
+%if %{with alternatives}
 %dir %{p_libdir}/cmake
+%{p_cmakedir}/
 %dir %{p_libdir}/pkgconfig
-%{p_libdir}/pkgconfig
+%{p_libdir}/pkgconfig/openblas.pc
+# For serial flavor, package the main libopenblas.so symlink
+%if "%{flavor}" == "serial"
+%{_libdir}/lib%{pname}.so
+%endif
+%endif
+%if "%{?flexidevelname}" != "" && "%{flexidevelname}" != "lib%{pname}.so"
+%{_libdir}/%{flexidevelname}
+%endif
 
 %files tests
 %dir %{p_testdir}
@@ -486,8 +662,6 @@
 %files -n %{pname}-common-devel
 %license LICENSE
 %doc Changelog.txt GotoBLAS* README.md README.SUSE
-# created by %%post
-%ghost %{_libdir}/lib%{pname}.so
 %{p_includedir}/
 %{_libdir}/pkgconfig/openblas.pc
 %dir %{_libdir}/cmake

++++++ OpenBLAS-0.3.30.tar.gz -> OpenBLAS-0.3.33.tar.gz ++++++
/work/SRC/openSUSE:Factory/openblas/OpenBLAS-0.3.30.tar.gz 
/work/SRC/openSUSE:Factory/.openblas.new.1982/OpenBLAS-0.3.33.tar.gz differ: 
char 13, line 1

++++++ README.SUSE ++++++
--- /var/tmp/diff_new_pack.GSXz7n/_old  2026-07-06 12:27:09.708626304 +0200
+++ /var/tmp/diff_new_pack.GSXz7n/_new  2026-07-06 12:27:09.712626443 +0200
@@ -7,19 +7,61 @@
  * With OpenMP support (libopenblas_openmp0)
  * With threading support (libopenblas_pthreads0)
 
-By defult openSUSE uses pthreads version on x86 systems and OpenMP
+By default openSUSE uses pthreads version on x86 systems and OpenMP
 for other architectures. On x86 systems OpenBLAS uses dynamic
 architectures support, so it contains all CPU-related optimizations.
 
+Library Installation Locations
+===============================
+
+Starting with version 0.3.31, OpenBLAS libraries are installed in
+flavor-specific directories to allow parallel installation:
+
+ * /usr/lib64/openblas-serial/    (serial flavor)
+ * /usr/lib64/openblas-openmp/    (OpenMP flavor)
+ * /usr/lib64/openblas-pthreads/  (pthreads flavor)
+
+Each directory contains:
+ * libopenblas.so.0 - The actual library
+ * pkgconfig/openblas.pc - pkg-config file pointing to this flavor
+ * cmake/openblas/ - CMake configuration files for this flavor
+
+The system-wide /usr/lib64/pkgconfig/openblas.pc and
+/usr/lib64/cmake/openblas links point directly to the flavor-specific
+files, ensuring consistent library usage.
+
+Update-Alternatives Support (Compatibility)
+============================================
+
+For backward compatibility, compatlib packages are available:
+ * compatlibopenblas_serial0
+ * compatlibopenblas_openmp0
+ * compatlibopenblas_pthreads0
+
+These packages use update-alternatives to provide the traditional
+/usr/lib64/libblas.so.3 and /usr/lib64/liblapack.so.3 symlinks.
+
+When upgrading from OpenBLAS 0.3.30 or newer, the compatlib packages
+are automatically installed to maintain compatibility with existing
+setups. For new installations, they are optional.
+
 How to switch between the various BLAS/LAPACK implementations
 =============================================================
 
+If you have a compatlib package installed, you can switch implementations:
+
 BLAS:
  sudo /usr/sbin/update-alternatives --config libblas.so.3
 
 LAPACK:
  sudo /usr/sbin/update-alternatives --config liblapack.so.3
 
+OpenBLAS default flavor:
+ sudo /usr/sbin/update-alternatives --config openblas-default
+
+Note: The compatlib packages are incompatible with transactional
+enabled OS installations.
+
 More information is available at:
 
  https://en.opensuse.org/openSUSE:Science_Linear_algebra_libraries

++++++ _scmsync.obsinfo ++++++
mtime: 1783085878
commit: 70d5d9e18514d6d7ca284a1827fa783e30f11d65ea9b379da9168cc687daa158
url: https://src.opensuse.org/science/openblas.git

++++++ build.specials.obscpio ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/.gitignore new/.gitignore
--- old/.gitignore      1970-01-01 01:00:00.000000000 +0100
+++ new/.gitignore      2026-07-03 15:37:58.000000000 +0200
@@ -0,0 +1,4 @@
+*.obscpio
+*.osc
+_build.*
+.pbuild

Reply via email to