[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