1 |
For adding Main-class and/or Automatic-module-name to MANIFEST.MF it |
2 |
seems better to use "jar" functionality at the end of compilation. |
3 |
This does the necessary checks and issues warnings in case of duplicate |
4 |
entries. |
5 |
Erroneously used existence checks ( -v ) were causing wrong entries in |
6 |
MANIFEST.MF files in case of JAVA_MAIN_CLASS="" which is often used in |
7 |
multi-jar ebuilds. |
8 |
|
9 |
Closes: https://bugs.gentoo.org/874924 |
10 |
Signed-off-by: Volkmar W. Pogatzki <gentoo@××××××××.net> |
11 |
--- |
12 |
eclass/java-pkg-simple.eclass | 22 +++++++++++++--------- |
13 |
1 file changed, 13 insertions(+), 9 deletions(-) |
14 |
|
15 |
diff --git a/eclass/java-pkg-simple.eclass b/eclass/java-pkg-simple.eclass |
16 |
index 7a9582393dd..abac18ca03f 100644 |
17 |
--- a/eclass/java-pkg-simple.eclass |
18 |
+++ b/eclass/java-pkg-simple.eclass |
19 |
@@ -415,15 +415,6 @@ java-pkg-simple_src_compile() { |
20 |
fi |
21 |
|
22 |
# package |
23 |
- [[ ! -d ${classes}/META-INF ]] && mkdir ${classes}/META-INF |
24 |
- if [[ -v JAVA_AUTOMATIC_MODULE_NAME ]]; then |
25 |
- echo "Automatic-Module-Name: ${JAVA_AUTOMATIC_MODULE_NAME}" \ |
26 |
- >> ${classes}/META-INF/MANIFEST.MF || die "adding module name failed" |
27 |
- fi |
28 |
- if [[ -v JAVA_MAIN_CLASS ]]; then |
29 |
- echo "Main-Class: ${JAVA_MAIN_CLASS}" \ |
30 |
- >> ${classes}/META-INF/MANIFEST.MF || die "adding main class failed" |
31 |
- fi |
32 |
local jar_args |
33 |
if [[ -e ${classes}/META-INF/MANIFEST.MF ]]; then |
34 |
jar_args="cfm ${JAVA_JAR_FILENAME} ${classes}/META-INF/MANIFEST.MF" |
35 |
@@ -431,6 +422,19 @@ java-pkg-simple_src_compile() { |
36 |
jar_args="cf ${JAVA_JAR_FILENAME}" |
37 |
fi |
38 |
jar ${jar_args} -C ${classes} . || die "jar failed" |
39 |
+ if [[ -n "${JAVA_AUTOMATIC_MODULE_NAME}" ]]; then |
40 |
+ echo "Automatic-Module-Name: ${JAVA_AUTOMATIC_MODULE_NAME}" \ |
41 |
+ >> "${T}/add-to-MANIFEST.MF" || die "adding module name failed" |
42 |
+ fi |
43 |
+ if [[ -n "${JAVA_MAIN_CLASS}" ]]; then |
44 |
+ echo "Main-Class: ${JAVA_MAIN_CLASS}" \ |
45 |
+ >> "${T}/add-to-MANIFEST.MF" || die "adding main class failed" |
46 |
+ fi |
47 |
+ if [[ -f "${T}/add-to-MANIFEST.MF" ]]; then |
48 |
+ jar ufmv ${JAVA_JAR_FILENAME} "${T}/add-to-MANIFEST.MF" \ |
49 |
+ || die "updating MANIFEST.MF failed" |
50 |
+ rm -f "${T}/add-to-MANIFEST.MF" || die "cannot remove" |
51 |
+ fi |
52 |
} |
53 |
|
54 |
# @FUNCTION: java-pkg-simple_src_install |
55 |
-- |
56 |
2.35.1 |