Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package java-21-openjdk for openSUSE:Factory
checked in at 2026-06-01 17:59:04
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/java-21-openjdk (Old)
and /work/SRC/openSUSE:Factory/.java-21-openjdk.new.1937 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "java-21-openjdk"
Mon Jun 1 17:59:04 2026 rev:25 rq:1355813 version:21.0.11.0
Changes:
--------
--- /work/SRC/openSUSE:Factory/java-21-openjdk/java-21-openjdk.changes
2026-04-28 11:54:52.333758697 +0200
+++
/work/SRC/openSUSE:Factory/.java-21-openjdk.new.1937/java-21-openjdk.changes
2026-06-01 17:59:11.598347451 +0200
@@ -1,0 +2,6 @@
+Fri May 29 07:10:10 UTC 2026 - Fridrich Strba <[email protected]>
+
+- Use libalternatives instead of update-alternatives for
+ distributions where libalternatives is available (bsc#1264397)
+
+-------------------------------------------------------------------
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ java-21-openjdk.spec ++++++
--- /var/tmp/diff_new_pack.YC6Xv9/_old 2026-06-01 17:59:13.238415469 +0200
+++ /var/tmp/diff_new_pack.YC6Xv9/_new 2026-06-01 17:59:13.238415469 +0200
@@ -23,6 +23,10 @@
%global make make
%global is_release 1
%global buildoutputdir build
+%global headless_binaries java keytool rmiregistry
+%global headless_binaries_comma %(echo %{headless_binaries} | sed 's#\ #,#g')
+%global devel_binaries javac jar jarsigner javadoc javap jcmd jconsole jdb
jdeprscan jdeps jimage jinfo jlink jmap jmod jps jpackage jrunscript jshell
jstack jstat jstatd serialver
+%global devel_binaries_comma %(echo %{devel_binaries} | sed 's#\ #,#g')
# Convert an absolute path to a relative path. Each symbolic link is
# specified relative to the directory in which it is installed so that
# it will resolve properly within chrooted installations.
@@ -38,6 +42,11 @@
%global openjdk_repo jdk21u
%global openjdk_tag
jdk-%{featurever}%{?updatever:.%{interimver}.%{updatever}}%{?patchver:.%{patchver}}+%{buildver}
%global openjdk_dir
%{openjdk_repo}-jdk-%{featurever}%{?updatever:.%{interimver}.%{updatever}}%{?patchver:.%{patchver}}-%{buildver}
+%if 0%{?suse_version} > 1500
+%bcond_without libalternatives
+%else
+%bcond_with libalternatives
+%endif
# priority must be 6 digits in total
%global priority 3105
%global javaver %{featurever}
@@ -272,12 +281,8 @@
Group: Development/Languages/Java
Requires: jpackage-utils
Requires: mozilla-nss
-# Post requires update-alternatives to install tool update-alternatives.
-Requires(post): update-alternatives
Requires(posttrans): file
Requires(posttrans): java-ca-certificates
-# Postun requires update-alternatives to uninstall tool update-alternatives.
-Requires(postun): update-alternatives
Recommends: mozilla-nss-sysinit
Obsoletes: %{name}-accessibility
Provides: timezone-java
@@ -303,6 +308,12 @@
Provides: jndi-rmi = %{version}
Provides: jsse = %{version}
%endif
+%if %{without libalternatives}
+Requires(post): update-alternatives
+Requires(postun): update-alternatives
+%else
+Requires: alts
+%endif
%description headless
The OpenJDK %{featurever} runtime environment without audio and video support.
@@ -312,10 +323,6 @@
# Require base package.
Group: Development/Languages/Java
Requires: %{name} = %{version}-%{release}
-# Post requires update-alternatives to install tool update-alternatives.
-Requires(post): update-alternatives
-# Postun requires update-alternatives to uninstall tool update-alternatives.
-Requires(postun): update-alternatives
%if 0%{?suse_version} > 1315 || 0%{?java_bootstrap}
# Standard JPackage devel provides.
Provides: java-%{javaver}-devel = %{version}
@@ -326,6 +333,12 @@
Provides: java-sdk-%{javaver}-openjdk = %{version}
Provides: java-sdk-openjdk = %{version}
%endif
+%if %{without libalternatives}
+Requires(post): update-alternatives
+Requires(postun): update-alternatives
+%else
+Requires: alts
+%endif
%description devel
The OpenJDK %{featurever} development tools.
@@ -358,16 +371,16 @@
Summary: OpenJDK %{featurever} API Documentation
Group: Development/Languages/Java
Requires: jpackage-utils
-# Post requires update-alternatives to install javadoc alternative.
-Requires(post): update-alternatives
-# Postun requires update-alternatives to uninstall javadoc alternative.
-Requires(postun): update-alternatives
BuildArch: noarch
%if 0%{?suse_version} > 1315 || 0%{?java_bootstrap}
# Standard JPackage javadoc provides.
Provides: java-%{javaver}-javadoc = %{version}-%{release}
Provides: java-javadoc = %{version}-%{release}
%endif
+%if %{without libalternatives}
+Requires(post): update-alternatives
+Requires(postun): update-alternatives
+%endif
%description javadoc
The OpenJDK %{featurever} API documentation.
@@ -651,8 +664,42 @@
%fdupes -s %{buildroot}/%{_jvmdir}/%{sdkdir}/demo
%fdupes -s %{buildroot}%{_javadocdir}/%{sdklnk}
+touch .mfiles-headless
+touch .mfiles-devel
+
+%if %{with libalternatives}
+
+%if 0%{?priority} == 0
+%define priority %{featurever}
+%endif
+
+for i in %{headless_binaries}; do
+ install -dm 0755 %{buildroot}%{_datadir}/libalternatives/${i}
+ echo "%%dir %{_datadir}/libalternatives/${i}" >> .mfiles-headless
+ echo "binary=%{jrebindir}/${i}" >>
%{buildroot}%{_datadir}/libalternatives/${i}/%{priority}.conf
+ echo "man=${i}-%{sdklnk}.1$ext" >>
%{buildroot}%{_datadir}/libalternatives/${i}/%{priority}.conf
+ echo "group=%{headless_binaries_comma}" >>
%{buildroot}%{_datadir}/libalternatives/${i}/%{priority}.conf
+ echo "%{_datadir}/libalternatives/${i}/%{priority}.conf" >> .mfiles-headless
+ echo "%%ghost %{_bindir}/${i}" >> .mfiles-headless
+done
+
+for i in %{devel_binaries}; do
+ install -dm 0755 %{buildroot}%{_datadir}/libalternatives/${i}
+ echo "%%dir %{_datadir}/libalternatives/${i}" >> .mfiles-devel
+ echo "binary=%{sdkbindir}/${i}" >>
%{buildroot}%{_datadir}/libalternatives/${i}/%{priority}.conf
+ echo "man=${i}-%{sdklnk}.1$ext" >>
%{buildroot}%{_datadir}/libalternatives/${i}/%{priority}.conf
+ echo "group=%{devel_binaries_comma}" >>
%{buildroot}%{_datadir}/libalternatives/${i}/%{priority}.conf
+ echo "%{_datadir}/libalternatives/${i}/%{priority}.conf" >> .mfiles-devel
+ echo "%%ghost %{_bindir}/${i}" >> .mfiles-devel
+done
+
+%endif
+
%post headless
ext=.gz
+
+%if %{without libalternatives}
+
update-alternatives \
--install %{_bindir}/java java %{jrebindir}/java %{priority} \
--slave %{_jvmdir}/jre jre %{_jvmdir}/%{jrelnk} \
@@ -672,7 +719,25 @@
--install %{_jvmdir}/jre-%{javaver} \
jre_%{javaver} %{_jvmdir}/%{jrelnk} %{priority}
+%else
+
+if [ -x %{_sbindir}/update-alternatives ]; then
+ update-alternatives --remove-all java
+ update-alternatives --remove-all jre_openjdk
+ update-alternatives --remove-all jre_%{javaver}
+fi || true
+
+for i in %{headless_binaries}; do
+ if ! [ -e %{_bindir}/${i} ]; then
+ ln -sf %{_bindir}/alts %{_bindir}/${i}
+ fi
+done
+
+%endif
+
+%if %{without libalternatives}
%postun headless
+
if [ $1 -eq 0 ]
then
if test -f /proc/sys/fs/binfmt_misc/jarexec
@@ -683,6 +748,7 @@
update-alternatives --remove jre_openjdk %{_jvmdir}/%{jrelnk}
update-alternatives --remove jre_%{javaver} %{_jvmdir}/%{jrelnk}
fi
+%endif
%posttrans headless
# bnc#781690#c11: don't trust user defined JAVA_HOME and use the current VM
@@ -715,6 +781,9 @@
%post devel
ext=.gz
+
+%if %{without libalternatives}
+
update-alternatives \
--install %{_bindir}/javac javac %{sdkbindir}/javac %{priority} \
--slave %{_jvmdir}/java java_sdk %{_jvmdir}/%{sdklnk} \
@@ -807,15 +876,37 @@
--install %{_jvmdir}/java-%{javaver} \
java_sdk_%{javaver} %{_jvmdir}/%{sdklnk} %{priority}
+%else
+
+if [ -x %{_sbindir}/update-alternatives ]; then
+ update-alternatives --remove-all javac
+ update-alternatives --remove-all java_sdk_openjdk
+ update-alternatives --remove-all java_sdk_%{javaver}
+fi || true
+
+for i in %{devel_binaries}; do
+ if ! [ -e %{_bindir}/${i} ]; then
+ ln -sf %{_bindir}/alts %{_bindir}/${i}
+ fi
+done
+
+%endif
+
+%if %{without libalternatives}
%postun devel
+
if [ $1 -eq 0 ]
then
update-alternatives --remove javac %{sdkbindir}/javac
update-alternatives --remove java_sdk_openjdk %{_jvmdir}/%{sdklnk}
update-alternatives --remove java_sdk_%{javaver} %{_jvmdir}/%{sdklnk}
fi
+%endif
%post javadoc
+
+%if %{without libalternatives}
+
# in some settings, the %{_javadocdir}/%{sdklnk}/api does not exist
# and the update-alternatives call ends up in error. So, filter this
# cases out.
@@ -826,7 +917,17 @@
%{priority}
fi
+%else
+
+if [ -x %{_sbindir}/update-alternatives ]; then
+ update-alternatives --remove-all javadocdir
+fi || true
+
+%endif
+
+%if %{without libalternatives}
%postun javadoc
+
if [ $1 -eq 0 ]
then
# in some settings, the %{_javadocdir}/%{sdklnk}/api does not exist
@@ -837,6 +938,7 @@
update-alternatives --remove javadocdir %{_javadocdir}/%{sdklnk}/api
fi
fi
+%endif
%files
%dir %{_jvmdir}/%{sdkdir}/lib
@@ -846,7 +948,7 @@
%dir %{_datadir}/icons/hicolor
%{_datadir}/icons/hicolor/*x*/apps/java-%{javaver}.png
-%files headless
+%files headless -f .mfiles-headless
%dir %{_jvmdir}
%dir %{_jvmdir}/%{sdkdir}/
%dir %{_jvmdir}/%{sdkdir}/bin
@@ -957,7 +1059,7 @@
%{_mandir}/man1/keytool-%{sdklnk}.1%{?ext_man}
%{_mandir}/man1/rmiregistry-%{sdklnk}.1%{?ext_man}
-%files devel
+%files devel -f .mfiles-devel
%dir %{_jvmdir}/%{sdkdir}/bin
%dir %{_jvmdir}/%{sdkdir}/include
%dir %{_jvmdir}/%{sdkdir}/include/linux