For adding Main-class and/or Automatic-module-name to MANIFEST.MF it
seems better to use "jar" functionality at the end of compilation.
This does the necessary checks and issues warnings in case of duplicate
entries.

Closes: https://bugs.gentoo.org/874924
Signed-off-by: Volkmar W. Pogatzki <gen...@pogatzki.net>
---
 eclass/java-pkg-simple.eclass | 22 +++++++++++++---------
 1 file changed, 13 insertions(+), 9 deletions(-)

diff --git a/eclass/java-pkg-simple.eclass b/eclass/java-pkg-simple.eclass
index 7a9582393dd..9b50b5dc075 100644
--- a/eclass/java-pkg-simple.eclass
+++ b/eclass/java-pkg-simple.eclass
@@ -415,15 +415,6 @@ java-pkg-simple_src_compile() {
        fi
 
        # package
-       [[ ! -d ${classes}/META-INF ]] && mkdir ${classes}/META-INF
-       if  [[ -v JAVA_AUTOMATIC_MODULE_NAME ]]; then
-               echo "Automatic-Module-Name: ${JAVA_AUTOMATIC_MODULE_NAME}" \
-                       >> ${classes}/META-INF/MANIFEST.MF || die "adding 
module name failed"
-       fi
-       if  [[ -v JAVA_MAIN_CLASS ]]; then
-               echo "Main-Class: ${JAVA_MAIN_CLASS}" \
-                       >> ${classes}/META-INF/MANIFEST.MF || die "adding main 
class failed"
-       fi
        local jar_args
        if [[ -e ${classes}/META-INF/MANIFEST.MF ]]; then
                jar_args="cfm ${JAVA_JAR_FILENAME} 
${classes}/META-INF/MANIFEST.MF"
@@ -431,6 +422,19 @@ java-pkg-simple_src_compile() {
                jar_args="cf ${JAVA_JAR_FILENAME}"
        fi
        jar ${jar_args} -C ${classes} . || die "jar failed"
+       if  [[ -n "${JAVA_AUTOMATIC_MODULE_NAME}" ]]; then
+               echo "Automatic-Module-Name: ${JAVA_AUTOMATIC_MODULE_NAME}" \
+                       >> "${T}/add-to-MANIFEST.MF" || die "adding module name 
failed"
+       fi
+       if  [[ -n "${JAVA_MAIN_CLASS}" ]]; then
+               echo "Main-Class: ${JAVA_MAIN_CLASS}" \
+                       >> "${T}/add-to-MANIFEST.MF" || die "adding main class 
failed"
+       fi
+       if [[ -e ${T}/add-to-MANIFEST.MF ]]; then
+               jar ufmv ${JAVA_JAR_FILENAME} "${T}/add-to-MANIFEST.MF" \
+                       || die "updating MANIFEST.MF failed"
+               rm -f "${T}/add-to-MANIFEST.MF" || die "cannot remove"
+       fi
 }
 
 # @FUNCTION: java-pkg-simple_src_install
-- 
2.35.1


Reply via email to