From e125a026209b905bda94a889162fecafe7ab3d68 Mon Sep 17 00:00:00 2001 From: Andrew Lukoshko Date: Sat, 21 Feb 2026 13:53:16 +0000 Subject: [PATCH] Fix portable archive macros: use %{?1} instead of %%{1} The %%{1} in intermediate macros (jreportablearchive, etc.) delays parameter substitution to the %{expand:...} pass, where it becomes a simple text replacement without further macro expansion. This causes %%{nil} passed from %files to appear literally in filenames. Using %{?1} instead resolves the parameter during the first-pass expansion where RPM properly expands %{nil} to empty. This also handles .slowdebug/.fastdebug suffixes correctly since they are plain strings that don't need further expansion. --- java-21-openjdk-portable.specfile | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/java-21-openjdk-portable.specfile b/java-21-openjdk-portable.specfile index 3a28b5c..7c4169b 100644 --- a/java-21-openjdk-portable.specfile +++ b/java-21-openjdk-portable.specfile @@ -448,14 +448,14 @@ %define jreportablenameimpl() %(echo %{uniquesuffix ""} | sed "s;el%{rhel}\\(_[0-9]\\)*;portable%{1}.jre;g") %define jdkportablenameimpl() %(echo %{uniquesuffix ""} | sed "s;el%{rhel}\\(_[0-9]\\)*;portable%{1}.jdk;g") %define staticlibsportablenameimpl() %(echo %{uniquesuffix ""} | sed "s;el%{rhel}\\(_[0-9]\\)*;portable%{1}.static-libs;g") -%define jreportablearchive() %{expand:%{jreportablenameimpl -- %%{1}}.tar.xz} -%define jdkportablearchive() %{expand:%{jdkportablenameimpl -- %%{1}}.tar.xz} -%define staticlibsportablearchive() %{expand:%{staticlibsportablenameimpl -- %%{1}}.tar.xz} -%define jreportablename() %{expand:%{jreportablenameimpl -- %%{1}}} -%define jdkportablename() %{expand:%{jdkportablenameimpl -- %%{1}}} +%define jreportablearchive() %{expand:%{jreportablenameimpl -- %{?1}}.tar.xz} +%define jdkportablearchive() %{expand:%{jdkportablenameimpl -- %{?1}}.tar.xz} +%define staticlibsportablearchive() %{expand:%{staticlibsportablenameimpl -- %{?1}}.tar.xz} +%define jreportablename() %{expand:%{jreportablenameimpl -- %{?1}}} +%define jdkportablename() %{expand:%{jdkportablenameimpl -- %{?1}}} # Intentionally use jdkportablenameimpl here since we want to have static-libs files overlayed on # top of the JDK archive -%define staticlibsportablename() %{expand:%{jdkportablenameimpl -- %%{1}}} +%define staticlibsportablename() %{expand:%{jdkportablenameimpl -- %{?1}}} %define docportablename() %(echo %{uniquesuffix ""} | sed "s;el%{rhel}\\(_[0-9]\\)*;portable.docs;g") %define docportablearchive() %{docportablename}.tar.xz %define miscportablename() %(echo %{uniquesuffix ""} | sed "s;el%{rhel}\\(_[0-9]\\)*;portable.misc;g") @@ -1872,8 +1872,8 @@ done %files # main package builds always -%{_jvmdir}/%{jreportablearchive -- %{nil}} -%{_jvmdir}/%{jreportablearchive -- %{nil}}.sha256sum +%{_jvmdir}/%{jreportablearchive -- %%{nil}} +%{_jvmdir}/%{jreportablearchive -- %%{nil}}.sha256sum %else %files # placeholder @@ -1882,15 +1882,15 @@ done %if %{include_normal_build} %files devel -%{_jvmdir}/%{jdkportablearchive -- %{nil}} +%{_jvmdir}/%{jdkportablearchive -- %%{nil}} %{_jvmdir}/%{jdkportablearchive -- .debuginfo} -%{_jvmdir}/%{jdkportablearchive -- %{nil}}.sha256sum +%{_jvmdir}/%{jdkportablearchive -- %%{nil}}.sha256sum %{_jvmdir}/%{jdkportablearchive -- .debuginfo}.sha256sum %if %{include_staticlibs} %files static-libs -%{_jvmdir}/%{staticlibsportablearchive -- %{nil}} -%{_jvmdir}/%{staticlibsportablearchive -- %{nil}}.sha256sum +%{_jvmdir}/%{staticlibsportablearchive -- %%{nil}} +%{_jvmdir}/%{staticlibsportablearchive -- %%{nil}}.sha256sum %endif %files unstripped