Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package ooRexx for openSUSE:Factory checked 
in at 2026-08-19 17:58:36
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/ooRexx (Old)
 and      /work/SRC/openSUSE:Factory/.ooRexx.new.1258 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "ooRexx"

Wed Aug 19 17:58:36 2026 rev:29 rq:1371842 version:5.2.0

Changes:
--------
--- /work/SRC/openSUSE:Factory/ooRexx/ooRexx.changes    2026-06-04 
18:57:07.319826838 +0200
+++ /work/SRC/openSUSE:Factory/.ooRexx.new.1258/ooRexx.changes  2026-08-19 
18:00:43.514170897 +0200
@@ -1,0 +2,26 @@
+Fri Aug 14 08:16:16 UTC 2026 - Martin Pluskal <[email protected]>
+
+- Switch the rexx, rexxc, rxqueue and rxsubcom alternatives from
+  update-alternatives to libalternatives (boo#1083875):
+  * update-alternatives is deprecated and should not be used any
+    more; on top of that its ghost entries under /usr/bin were
+    never created on disk when the package was unpacked, so the
+    /usr/bin/rexx the installed .rex scripts point at only came
+    into existence once the install scriptlets had run
+  * ship /usr/share/libalternatives/<binary>/20.conf for each of
+    the four commands, keeping the previous priority of 20
+  * package /usr/bin/rexx, rexxc, rxqueue and rxsubcom as ordinary
+    symlinks to /usr/bin/alts, owned by the package like any other
+    file, and point each config at the -oorexx suffixed binary
+  * drop the install and remove scriptlets, the /etc/alternatives
+    directory and every ghost file entry - libalternatives keeps
+    no install-time state at all
+  * rexx and rxqueue declare group=rexx,rxqueue so that rxqueue
+    follows the selected interpreter as soon as the other provider
+    of the pair declares the same group; rexxc and rxsubcom have no
+    competing provider and stay ungrouped
+  * require alts, which ships /usr/bin/alts
+- Drop the obsolete Group tags and use pkgconfig(ncurses) instead
+  of ncurses-devel, as spec-cleaner asks for
+
+-------------------------------------------------------------------

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

Other differences:
------------------
++++++ ooRexx.spec ++++++
--- /var/tmp/diff_new_pack.9PjZBh/_old  2026-08-19 18:00:44.129192791 +0200
+++ /var/tmp/diff_new_pack.9PjZBh/_new  2026-08-19 18:00:44.130192827 +0200
@@ -1,7 +1,7 @@
 #
 # spec file for package ooRexx
 #
-# Copyright (c) 2026 SUSE LLC
+# Copyright (c) 2026 SUSE LLC and contributors
 #
 # All modifications and additions to the file contributed by third parties
 # remain the property of their copyright owners, unless otherwise agreed
@@ -22,19 +22,17 @@
 Release:        0
 Summary:        Open Object REXX
 License:        CPL-1.0
-Group:          Development/Languages/Other
 URL:            https://www.rexxla.org
 Source0:        
https://master.dl.sourceforge.net/project/oorexx/oorexx/5.2.0/oorexx-5.2.0-13156.tar.gz
 Source1:        ooRexx-rpmlintrc
 BuildRequires:  cmake
 BuildRequires:  gcc-c++
-BuildRequires:  ncurses-devel
-BuildRequires:  update-alternatives
-Requires(post): %{_sbindir}/update-alternatives
-Requires(postun): %{_sbindir}/update-alternatives
+BuildRequires:  pkgconfig
+BuildRequires:  pkgconfig(ncurses)
+Requires:       alts
+Requires:       liboorexx4 = %{version}
 Obsoletes:      ooRexx <= 4.2.0
 Provides:       ooRexx = %{version}
-Requires:       liboorexx4 = %{version}
 
 %description
 Open Object Rexx is an object-oriented scripting language. The language is 
designed for both beginners and experienced Rexx programmers. It is easy to 
learn and use, and provides an excellent vehicle to enter the
@@ -47,12 +45,10 @@
 
 %package devel
 Summary:        Open Object REXX development files
-Group:          Development/Languages/Other
 BuildArch:      noarch
 
 %package -n liboorexx4
 Summary:        Open Object REXX libraries
-Group:          Development/Languages/Other
 
 %description devel
 Development files for Open Object Rexx. These are intended for developing REXX 
extensions only.
@@ -106,19 +102,40 @@
 %{_rexxlibdir}    %{_libdir}
 EOF
 
-# adding update-alternatives support (boo#1083875)
-mkdir -p %{buildroot}%{_sysconfdir}/alternatives
-
+# adding libalternatives support (boo#1083875)
 # rexxc and rxsubcom need to be renamed upstream! rexx and rxqueue are okay 
already.
 mv %{buildroot}/%{_bindir}/rexx %{buildroot}/%{_bindir}/rexx-oorexx
 mv %{buildroot}/%{_bindir}/rexxc %{buildroot}/%{_bindir}/rexxc-oorexx
 mv %{buildroot}/%{_bindir}/rxsubcom %{buildroot}/%{_bindir}/rxsubcom-oorexx
 mv %{buildroot}/%{_bindir}/rxqueue %{buildroot}/%{_bindir}/rxqueue-oorexx
 
-ln -s  %{_sysconfdir}/alternatives/rexx %{buildroot}%{_bindir}/rexx
-ln -s  %{_sysconfdir}/alternatives/rexxc %{buildroot}%{_bindir}/rexxc
-ln -s  %{_sysconfdir}/alternatives/rxqueue %{buildroot}%{_bindir}/rxqueue
-ln -s  %{_sysconfdir}/alternatives/rxsubcom %{buildroot}%{_bindir}/rxsubcom
+# rexx and rxqueue form a group: rxqueue is the queue client of the very
+# interpreter that serves the queue, so it should follow the selected rexx.
+# libalternatives switches a group according to the group declared by the
+# *selected* alternative, so this becomes effective for a switch away from
+# ooRexx once Regina-REXX -- the other provider of these two commands --
+# declares group=rexx,rxqueue as well. Until then it is simply inert.
+for b in rexx rxqueue; do
+    ln -s %{_bindir}/alts %{buildroot}%{_bindir}/$b
+    install -d %{buildroot}%{_datadir}/libalternatives/$b
+    cat > %{buildroot}%{_datadir}/libalternatives/$b/20.conf <<EOF
+binary=%{_bindir}/$b-oorexx
+man=$b.1
+group=rexx,rxqueue
+EOF
+done
+
+# rexxc and rxsubcom have no competing provider, so they stay ungrouped:
+# a group bigger than any other provider can offer would only advertise
+# members that can never be switched along.
+for b in rexxc rxsubcom; do
+    ln -s %{_bindir}/alts %{buildroot}%{_bindir}/$b
+    install -d %{buildroot}%{_datadir}/libalternatives/$b
+    cat > %{buildroot}%{_datadir}/libalternatives/$b/20.conf <<EOF
+binary=%{_bindir}/$b-oorexx
+man=$b.1
+EOF
+done
 
 # removing binary samples to avoid OBS warnings
 rm 
%{buildroot}%{_datadir}/ooRexx/samples/api/c++/callsample/{runRexxProgram,stackOverflow}
@@ -128,29 +145,6 @@
 
 %check
 
-%post
-update-alternatives --install %{_bindir}/rexx rexx %{_bindir}/rexx-oorexx 20
-update-alternatives --install %{_bindir}/rexxc rexxc %{_bindir}/rexxc-oorexx 20
-update-alternatives --install %{_bindir}/rxqueue rxqueue 
%{_bindir}/rxqueue-oorexx 20
-update-alternatives --install %{_bindir}/rxsubcom rxsubcom 
%{_bindir}/rxsubcom-oorexx 20
-
-%postun
-if [ ! -f %{_bindir}/rexx-oorexx ] ; then
-  update-alternatives --remove rexx %{_bindir}/rexx-oorexx
-fi
-
-if [ ! -f %{_bindir}/rexxc-oorexx ] ; then
-  update-alternatives --remove rexxc %{_bindir}/rexxc-oorexx
-fi
-
-if [ ! -f %{_bindir}/rxqueue-oorexx ] ; then
-  update-alternatives --remove rxqueue %{_bindir}/rxqueue-oorexx
-fi
-
-if [ ! -f %{_bindir}/rxsubcom-oorexx ] ; then
-  update-alternatives --remove rxsubcom %{_bindir}/rxsubcom-oorexx
-fi
-
 %post -n liboorexx4 -p /sbin/ldconfig
 %postun -n liboorexx4 -p /sbin/ldconfig
 
@@ -176,19 +170,22 @@
 %{_bindir}/*xsd
 %{_bindir}/*xsl
 
-%ghost %{_bindir}/rexx
-%ghost %{_bindir}/rexxc
-%ghost %{_bindir}/rxqueue
-%ghost %{_bindir}/rxsubcom
-
-%ghost %attr(0755,root,root) %{_sysconfdir}/alternatives/rexx
-%ghost %attr(0755,root,root) %{_sysconfdir}/alternatives/rexxc
-%ghost %attr(0755,root,root) %{_sysconfdir}/alternatives/rxqueue
-%ghost %attr(0755,root,root) %{_sysconfdir}/alternatives/rxsubcom
-%ghost %attr(0644,root,root) %{_sysconfdir}/alternatives/rexx.1
-%ghost %attr(0644,root,root) %{_sysconfdir}/alternatives/rexxc.1
-%ghost %attr(0644,root,root) %{_sysconfdir}/alternatives/rxqueue.1
-%ghost %attr(0644,root,root) %{_sysconfdir}/alternatives/rxsubcom.1
+# libalternatives: plain symlinks to alts. Regina-REXX ships byte-identical
+# rexx and rxqueue links, which rpm allows both packages to own.
+%{_bindir}/rexx
+%{_bindir}/rexxc
+%{_bindir}/rxqueue
+%{_bindir}/rxsubcom
+
+%dir %{_datadir}/libalternatives
+%dir %{_datadir}/libalternatives/rexx
+%{_datadir}/libalternatives/rexx/20.conf
+%dir %{_datadir}/libalternatives/rexxc
+%{_datadir}/libalternatives/rexxc/20.conf
+%dir %{_datadir}/libalternatives/rxqueue
+%{_datadir}/libalternatives/rxqueue/20.conf
+%dir %{_datadir}/libalternatives/rxsubcom
+%{_datadir}/libalternatives/rxsubcom/20.conf
 
 %files -n liboorexx4
 %{_libdir}/lib*

Reply via email to