Gentoo Archives: gentoo-dev

From: "Volkmar W. Pogatzki" <gentoo@××××××××.net>
To: gentoo-dev@l.g.o
Subject: [gentoo-dev] [PATCH v2] java-pkg-simple.eclass: improve MANIFEST.MF manipulation
Date: Thu, 06 Oct 2022 07:59:43
Message-Id: 20221006075929.16304-1-gentoo@pogatzki.net
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