commit:     c70f09ff2482b0914c55241eb553d750c8e910ea
Author:     Volkmar W. Pogatzki <gentoo <AT> pogatzki <DOT> net>
AuthorDate: Sun May 21 08:06:54 2023 +0000
Commit:     Miroslav Šulc <fordfrog <AT> gentoo <DOT> org>
CommitDate: Sun Mar 17 08:46:16 2024 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=c70f09ff

dev-java/bnd: new package, add 7.0.0

Unlike upstream this package does not bundle bndlib

Closes: https://bugs.gentoo.org/203080
Signed-off-by: Volkmar W. Pogatzki <gentoo <AT> pogatzki.net>
Closes: 
https://github.com/gentoo/gentoo/pull/35320/commits/51c6da26e1a72c39443c3d4c4994b9fb96cf8b91
Signed-off-by: Miroslav Šulc <fordfrog <AT> gentoo.org>

 dev-java/bnd/Manifest                              |   1 +
 dev-java/bnd/bnd-7.0.0.ebuild                      | 100 +++++++++++++++++++++
 .../bnd/files/bnd-7.0.0-aQute.bnd.main.bnd.patch   |  21 +++++
 dev-java/bnd/metadata.xml                          |  10 +++
 4 files changed, 132 insertions(+)

diff --git a/dev-java/bnd/Manifest b/dev-java/bnd/Manifest
new file mode 100644
index 000000000000..a890570b45c8
--- /dev/null
+++ b/dev-java/bnd/Manifest
@@ -0,0 +1 @@
+DIST aQute.bnd-7.0.0.tar.gz 172496438 BLAKE2B 
a2e443b0e4a2eb278a8e1df86456fea22ffb8147adc00c9f300cbd32b226218bb64ccca3da3bcd0d79b07567a7b4cf4456b96224d6abf59486fa08ca6170d0ba
 SHA512 
11d34a7d1a9b2fb2e8c112d414a06c281ccde9a7b06c62043e19d83e85ea64fdf022dd4493a14dd2dcf6adee392a1e9bf1ab05a6d690a328f29d7019045bca8c

diff --git a/dev-java/bnd/bnd-7.0.0.ebuild b/dev-java/bnd/bnd-7.0.0.ebuild
new file mode 100644
index 000000000000..b847142719c7
--- /dev/null
+++ b/dev-java/bnd/bnd-7.0.0.ebuild
@@ -0,0 +1,100 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+JAVA_PKG_IUSE="doc source"
+MAVEN_ID="biz.aQute.bnd:biz.aQute.bnd:${PV}"
+
+inherit java-pkg-2 java-pkg-simple
+
+DESCRIPTION="bndlib: A Swiss Army Knife for OSGi"
+HOMEPAGE="https://bnd.bndtools.org/";
+SRC_URI="https://github.com/bndtools/bnd/archive/${PV}.tar.gz -> 
aQute.bnd-${PV}.tar.gz"
+S="${WORKDIR}/${P}"
+
+LICENSE="Apache-2.0 EPL-2.0"
+SLOT="0"
+KEYWORDS="~amd64"
+
+BDEPEND="app-arch/zip"
+
+CP_DEPEND="
+       ~dev-java/bndlib-${PV}:0
+       dev-java/felix-resolver:0
+       dev-java/guava:0
+       dev-java/javaparser-core:0
+       dev-java/jline:2
+       dev-java/jtwig-core:0
+       dev-java/osgi-annotation:0
+       dev-java/osgi-cmpn:8
+       dev-java/osgi-core:0
+       dev-java/slf4j-simple:0
+       dev-java/snakeyaml:0
+       dev-java/xz-java:0
+"
+
+DEPEND="${CP_DEPEND}
+       dev-java/commons-lang:3.6
+       dev-java/eclipse-jdt-annotation:0
+       dev-java/felix-gogo-runtime:0
+       dev-java/slf4j-api:0
+       dev-java/jtwig-reflection:0
+       dev-java/osgi-service-log:0
+       dev-java/osgi-service-subsystem:0
+       >=virtual/jdk-17:*"
+
+RDEPEND="${CP_DEPEND}
+       >=virtual/jre-17:*"
+
+PATCHES=(
+       "${FILESDIR}/bnd-7.0.0-aQute.bnd.main.bnd.patch"
+)
+
+JAVA_AUTOMATIC_MODULE_NAME="biz.aQute.bnd"
+JAVA_CLASSPATH_EXTRA="
+       commons-lang-3.6
+       eclipse-jdt-annotation
+       jtwig-reflection
+       felix-gogo-runtime
+       osgi-service-subsystem
+       slf4j-api
+"
+JAVA_MAIN_CLASS="aQute.bnd.main.bnd"
+JAVA_RESOURCE_DIRS="res"
+JAVA_SRC_DIR=(
+       "biz.aQute.bnd.exporters/src"
+       "biz.aQute.bnd.reporter/src"
+       "biz.aQute.bnd/src"
+       "biz.aQute.remote/src"
+       "biz.aQute.repository/src"
+       "biz.aQute.resolve/src"
+)
+
+src_prepare() {
+       default #780585
+       java-pkg-2_src_prepare
+       mkdir res || die
+
+       # java-pkg-simple wants resources in JAVA_RESOURCE_DIRS
+       pushd biz.aQute.bnd/src > /dev/null || die
+               find -type f \
+                       ! -name '*.java' \
+                       | xargs cp --parent -t ../../res || die
+       popd > /dev/null || die
+}
+
+src_compile() {
+       # There is another version of osgi-service-log in osgi-core-0
+       JAVA_GENTOO_CLASSPATH_EXTRA=":$(java-pkg_getjars --build-only 
osgi-service-log)"
+       java-pkg-simple_src_compile
+
+       # remove classes which are not in upstream's jar file
+       zip -d ${PN}.jar \
+               "*/remote/agent/*" \
+               "*/remote/embedded/*" \
+               "*/remote/main/*" \
+               "*/remote/plugin/*" \
+               "*/remote/test/*" \
+               || die
+}

diff --git a/dev-java/bnd/files/bnd-7.0.0-aQute.bnd.main.bnd.patch 
b/dev-java/bnd/files/bnd-7.0.0-aQute.bnd.main.bnd.patch
new file mode 100644
index 000000000000..6d37cbc9f7d6
--- /dev/null
+++ b/dev-java/bnd/files/bnd-7.0.0-aQute.bnd.main.bnd.patch
@@ -0,0 +1,21 @@
+Upstream uses an older version of slf4j-simple
+--- a/biz.aQute.bnd/src/aQute/bnd/main/bnd.java
++++ b/biz.aQute.bnd/src/aQute/bnd/main/bnd.java
+@@ -486,14 +486,14 @@ public class bnd extends Processor {
+                               System.setProperty(DEFAULT_LOG_LEVEL_KEY, 
"warn");
+                               level = 
org.slf4j.spi.LocationAwareLogger.WARN_INT;
+                       }
+-                      Field field = 
org.slf4j.impl.SimpleLogger.class.getDeclaredField("CONFIG_PARAMS");
++                      Field field = 
org.slf4j.simple.SimpleLogger.class.getDeclaredField("CONFIG_PARAMS");
+                       field.setAccessible(true);
+                       Object CONFIG_PARAMS = field.get(null);
+-                      field = 
org.slf4j.impl.SimpleLoggerConfiguration.class.getDeclaredField("defaultLogLevel");
++                      field = 
org.slf4j.simple.SimpleLoggerConfiguration.class.getDeclaredField("defaultLogLevel");
+                       field.setAccessible(true);
+                       field.set(CONFIG_PARAMS, level);
+ 
+-                      field = 
org.slf4j.impl.SimpleLogger.class.getDeclaredField("currentLogLevel");
++                      field = 
org.slf4j.simple.SimpleLogger.class.getDeclaredField("currentLogLevel");
+                       field.setAccessible(true);
+                       field.set(logger, level);
+               } catch (Exception e) {

diff --git a/dev-java/bnd/metadata.xml b/dev-java/bnd/metadata.xml
new file mode 100644
index 000000000000..cb6317e530db
--- /dev/null
+++ b/dev-java/bnd/metadata.xml
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd";>
+<pkgmetadata>
+       <maintainer type="project">
+               <email>[email protected]</email>
+       </maintainer>
+       <upstream>
+               <remote-id type="github">bndtools/bnd</remote-id>
+       </upstream>
+</pkgmetadata>

Reply via email to