From 38591f57fce9cfbd2c7bfe2c8405738e4e5aaab5 Mon Sep 17 00:00:00 2001 From: Mikolaj Izdebski Date: Wed, 28 Oct 2015 18:42:16 +0100 Subject: [PATCH] Backport %gradle_build macro from 4.7.0-SNAPSHOT --- ...-Initial-gradle_build-implementation.patch | 152 ++++++++++++++++++ javapackages-tools.spec | 7 +- 2 files changed, 158 insertions(+), 1 deletion(-) create mode 100644 0001-Initial-gradle_build-implementation.patch diff --git a/0001-Initial-gradle_build-implementation.patch b/0001-Initial-gradle_build-implementation.patch new file mode 100644 index 0000000..b1cb6f2 --- /dev/null +++ b/0001-Initial-gradle_build-implementation.patch @@ -0,0 +1,152 @@ +From 2e56f8b1adb6b53e9541658c24fa1dbf46c91482 Mon Sep 17 00:00:00 2001 +From: Mikolaj Izdebski +Date: Tue, 27 Oct 2015 16:20:35 +0100 +Subject: [PATCH] Initial %gradle_build implementation + +--- + gradle/init.gradle | 16 +++++++--------- + java-utils/mvn_build.py | 35 +++++++++++++++++++++++++++-------- + macros.d/macros.fjava | 12 ++++++++++++ + test/data/mvn_build/all_out | 2 +- + test/data/mvn_build/debug_out | 2 +- + 5 files changed, 48 insertions(+), 19 deletions(-) + +diff --git a/gradle/init.gradle b/gradle/init.gradle +index 17c9afe..c523717 100644 +--- a/gradle/init.gradle ++++ b/gradle/init.gradle +@@ -1,11 +1,9 @@ +-allprojects { +- buildscript { +- repositories { +- xmvn() +- } +- } +- +- repositories { +- xmvn() ++initscript { ++ dependencies { ++ classpath files('/usr/share/java/xmvn/xmvn-connector-gradle.jar') ++ classpath files('/usr/share/java/xmvn/xmvn-api.jar') ++ classpath files('/usr/share/java/xmvn/xmvn-launcher.jar') + } + } ++ ++apply plugin: org.fedoraproject.xmvn.connector.gradle.XMvnGradlePlugin +diff --git a/java-utils/mvn_build.py b/java-utils/mvn_build.py +index eb40aa0..2ad9ae4 100644 +--- a/java-utils/mvn_build.py ++++ b/java-utils/mvn_build.py +@@ -81,6 +81,9 @@ if __name__ == "__main__": + action="callback", + callback=goal_callback, + help="Run Maven goals after default XMvn goals.") ++ parser.add_option("--gradle", ++ action="store_true", ++ help="Invoke Gradle instead of Maven.") + parser.add_option("-i", "--skip-install", + action="store_true", + help="Skip artifact installation.") +@@ -99,8 +102,12 @@ if __name__ == "__main__": + (options, args) = parser.parse_args() + xc = XMvnConfig() + +- base_goal = "verify" +- mvn_args = ["xmvn", "--batch-mode"] ++ if options.gradle: ++ base_goal = "build" ++ mvn_args = ["gradle-local", "--no-daemon"] ++ else: ++ base_goal = "verify" ++ mvn_args = ["xmvn", "--batch-mode"] + + if not options.bootstrap: + mvn_args.append("--offline") +@@ -109,7 +116,7 @@ if __name__ == "__main__": + mvn_args.append("-Dxmvn.compat=20-rpmbuild-raw") + + if options.debug: +- mvn_args.append("-X") ++ mvn_args.append("--debug") + + if options.xmvn_debug or options.debug: + mvn_args.append("-Dorg.slf4j.simpleLogger.log.org.fedoraproject.xmvn=debug") +@@ -117,7 +124,10 @@ if __name__ == "__main__": + if options.force: + mvn_args.append("-Dmaven.test.skip=true") + xc.add_custom_option("buildSettings/skipTests", "true") +- base_goal = "package" ++ if options.gradle: ++ base_goal = "assemble" ++ else: ++ base_goal = "package" + + if mock_socket and os.path.exists(mock_socket): + interpreter = sys.executable +@@ -133,12 +143,21 @@ if __name__ == "__main__": + mvn_args.append(base_goal) + + if not options.skip_install: +- mvn_args.append("org.fedoraproject.xmvn:xmvn-mojo:install") ++ if options.gradle: ++ mvn_args.append("xmvnInstall") ++ else: ++ mvn_args.append("org.fedoraproject.xmvn:xmvn-mojo:install") + + if not options.skip_javadoc: +- mvn_args.append("org.apache.maven.plugins:maven-javadoc-plugin:aggregate") +- +- mvn_args.append("org.fedoraproject.xmvn:xmvn-mojo:builddep") ++ if options.gradle: ++ # Automatic javadoc generation for Gradle is not yet implemented in XMvn ++ pass ++ else: ++ mvn_args.append("org.apache.maven.plugins:maven-javadoc-plugin:aggregate") ++ ++ if not options.gradle: ++ # Build dependency generation for Gradle is not yet implemented in XMvn ++ mvn_args.append("org.fedoraproject.xmvn:xmvn-mojo:builddep") + + if options.goal_after: + mvn_args.extend(options.goal_after) +diff --git a/macros.d/macros.fjava b/macros.d/macros.fjava +index bb419ae..75969b1 100644 +--- a/macros.d/macros.fjava ++++ b/macros.d/macros.fjava +@@ -134,6 +134,18 @@ + %mvn_build %{pyinterpreter} %{javadir}-utils/mvn_build.py %{?xmvn_bootstrap: -b} %{?_without_javadoc: -j $(> .mfiles-javadoc)}%{?_without_tests: -f} + + ++# %gradle_build - build Gradle project ++# ++# Usage: %mvn_build [options] ++# ++# This macro causes Gradle project to be built (usually compiled and ++# packaged). It is intended to be placed in %build section of spec file. ++# ++# For summary of accepted options execute `mvn-build --help` command. ++# ++%gradle_build %{pyinterpreter} %{javadir}-utils/mvn_build.py --gradle %{?xmvn_bootstrap: -b} %{?_without_javadoc: -j $(> .mfiles-javadoc)}%{?_without_tests: -f} ++ ++ + # %mvn_install - install Maven project + # + # Usage: %mvn_install +diff --git a/test/data/mvn_build/all_out b/test/data/mvn_build/all_out +index 9c34337..a4f4177 100644 +--- a/test/data/mvn_build/all_out ++++ b/test/data/mvn_build/all_out +@@ -1 +1 @@ +---batch-mode --offline -X -Dorg.slf4j.simpleLogger.log.org.fedoraproject.xmvn=debug -Dmaven.test.skip=true package org.fedoraproject.xmvn:xmvn-mojo:builddep ++--batch-mode --offline --debug -Dorg.slf4j.simpleLogger.log.org.fedoraproject.xmvn=debug -Dmaven.test.skip=true package org.fedoraproject.xmvn:xmvn-mojo:builddep +diff --git a/test/data/mvn_build/debug_out b/test/data/mvn_build/debug_out +index 170e108..3b0f6d4 100644 +--- a/test/data/mvn_build/debug_out ++++ b/test/data/mvn_build/debug_out +@@ -1 +1 @@ +---batch-mode --offline -X -Dorg.slf4j.simpleLogger.log.org.fedoraproject.xmvn=debug verify org.fedoraproject.xmvn:xmvn-mojo:install org.apache.maven.plugins:maven-javadoc-plugin:aggregate org.fedoraproject.xmvn:xmvn-mojo:builddep ++--batch-mode --offline --debug -Dorg.slf4j.simpleLogger.log.org.fedoraproject.xmvn=debug verify org.fedoraproject.xmvn:xmvn-mojo:install org.apache.maven.plugins:maven-javadoc-plugin:aggregate org.fedoraproject.xmvn:xmvn-mojo:builddep +-- +2.4.3 + diff --git a/javapackages-tools.spec b/javapackages-tools.spec index 5972ae7..e0816c8 100644 --- a/javapackages-tools.spec +++ b/javapackages-tools.spec @@ -6,13 +6,14 @@ Name: javapackages-tools Version: 4.6.0 -Release: 7%{?dist} +Release: 8%{?dist} Summary: Macros and scripts for Java packaging support License: BSD URL: https://git.fedorahosted.org/git/javapackages.git Source0: https://fedorahosted.org/released/javapackages/javapackages-%{version}.tar.xz +Patch0: 0001-Initial-gradle_build-implementation.patch BuildArch: noarch @@ -132,6 +133,7 @@ This package provides non-essential macros and scripts to support Java packaging %prep %setup -q -n javapackages-%{version} +%patch0 -p1 sed -i '/fedora-review/d' install @@ -170,6 +172,9 @@ popd %license LICENSE %changelog +* Wed Oct 28 2015 Mikolaj Izdebski - 4.6.0-8 +- Backport %%gradle_build macro from 4.7.0-SNAPSHOT + * Mon Oct 19 2015 Mikolaj Izdebski - 4.6.0-7 - Don't generate requires on java-headless - Resolves: rhbz#1272145