[packages/rpm-pld-macros] add macros for default jdk provider/version; 2.021
atler
atler at pld-linux.org
Tue Feb 7 23:28:44 CET 2023
commit 67d881233be4ac8b45554b7bff8d4cc824f26762
Author: Jan Palus <atler at pld-linux.org>
Date: Tue Feb 7 23:17:33 2023 +0100
add macros for default jdk provider/version; 2.021
benefits:
- utilizes %use_jdk hence requires only *-base-* subpackages avoiding
conflicts in %{_bindir}
- ensures packages are built with minimal ClassDataVersion so they can
be run on broader set of JVMs
- easy to modify without modifying spec files
usage:
%use_default_jdk
Summary: ...
...
%buildrequires_jdk
...
%build
export JAVA_HOME="%{java_home}"
defaults to openjdk8. if package requires specific minimal version of
java pass version as argument ie %{use_default_jdk 11}
macros.java | 22 ++++++++++++++++++++++
rpm-pld-macros.spec | 4 ++--
2 files changed, 24 insertions(+), 2 deletions(-)
---
diff --git a/rpm-pld-macros.spec b/rpm-pld-macros.spec
index 7023b22..640aafb 100644
--- a/rpm-pld-macros.spec
+++ b/rpm-pld-macros.spec
@@ -1,4 +1,4 @@
-%define rpm_macros_rev 2.020
+%define rpm_macros_rev 2.021
%define find_lang_rev 1.41
# split into individual X_prov_ver if there is a reason to desync
%define prov_ver 4.15
@@ -6,7 +6,7 @@ Summary: PLD Linux RPM macros
Summary(pl.UTF-8): Makra RPM dla Linuksa PLD
Name: rpm-pld-macros
Version: %{rpm_macros_rev}
-Release: 2
+Release: 1
License: GPL v2+
Group: Development/Building
Source0: macros.pld
diff --git a/macros.java b/macros.java
index 746e426..28e48ba 100644
--- a/macros.java
+++ b/macros.java
@@ -43,6 +43,28 @@
# insead of the system default
#%use_jdk icedtea6
+# Lower bound for JDK version.
+# In case of `%use_default_jdk %{expr:%min_jdk_version-1}` use %min_jdk_version
+%min_jdk_version 8
+
+# Default JDK provider and version
+%default_jdk_provider openjdk
+%default_jdk_version %min_jdk_version
+
+# Name of default JDK, takes requested minimum version as argument or if not
+# given defaults to %default_jdk_version. Result is is either:
+# - %{expand:%%default_jdk<requested version>}
+# - %{expand:%%default_jdk_provider}<requested version>
+#
+# Examples for overriding:
+# - specific JDK: --define 'default_jdk8 oracle8'
+# - JDK provider: --define 'default_jdk_provider oracle'
+# - JDK version: --define 'default_jdk_version 11'
+%default_jdk() %{expand:%%define __jdk_v %{?1}%{!?1:%default_jdk_version}}%{expand:%%define __jdk_vf %{expr:%__jdk_v < %min_jdk_version ? %min_jdk_version : %__jdk_v}}%{expand:%%{?default_jdk%{__jdk_vf}}}%{expand:%%{!?default_jdk%{__jdk_vf}:%default_jdk_provider%{__jdk_vf}}}%{expand:%%undefine __jdk_vf}%{expand:%%undefine __jdk_v}
+
+# Use default JDK in spec, optionally takes requested minimum version as argument
+%use_default_jdk() %{expand:%%global use_jdk %{default_jdk %*}}
+
# expands to the value with right jdk for BuildRequires header
# 'jdk' if %%use_jdk is not defined, jdk(%%use_jdk) otherwise
# The requirement will not replace current 'default' JDK
================================================================
---- gitweb:
http://git.pld-linux.org/gitweb.cgi/packages/rpm-pld-macros.git/commitdiff/67d881233be4ac8b45554b7bff8d4cc824f26762
More information about the pld-cvs-commit
mailing list