From: Nadav Har'El <[email protected]>
Committer: Nadav Har'El <[email protected]>
Branch: master

openjdk8-fedora: Add missing libraries to the image

Some of the shared libraries included with Java, such as libsunsec.so
(for security) or libjavalcms.so (for color manipulation) have their
own dependencies, additional libraries we need to download from the Fedora
distribution and include in the image.

Before this patch,

    scripts/build image=openjdk8-fedora,tomcat
    scripts/run -V

would fail because of missing libraries. Now it still fails, but because of
a different bug.

Refs #601.

Signed-off-by: Nadav Har'El <[email protected]>

---
diff --git a/openjdk8-fedora/Makefile b/openjdk8-fedora/Makefile
--- a/openjdk8-fedora/Makefile
+++ b/openjdk8-fedora/Makefile
@@ -9,6 +9,9 @@

 jvm_dir=install/usr/lib/jvm

+# FIXME: The following ugly RPM fetching code should be moved out of this
+# Makefile and into a shell script, and duplication removed.
+
 java_version=$(shell ./latest.sh java-1.8.0-openjdk-headless x86_64)
java_dir=http://mirrors.kernel.org/fedora/development/rawhide/Everything/x86_64/os/Packages/j/
 java_fullname=java-1.8.0-openjdk-headless-$(java_version).x86_64.rpm
@@ -17,19 +20,50 @@ tzdata_version=$(shell ./latest.sh tzdata-java noarch)
tzdata_dir=http://mirrors.kernel.org/fedora/development/rawhide/Everything/x86_64/os/Packages/t/
 tzdata_fullname=tzdata-java-$(tzdata_version).noarch.rpm

+# More needed libraries by the JRE's libsunec.so - see issue #601
+# "nspr" package provides libnspr4.so, libplds4.so and libplc4.so
+nspr_version=$(shell ./latest.sh nspr x86_64)
+nspr_dir=http://mirrors.kernel.org/fedora/development/rawhide/Everything/x86_64/os/Packages/n/
+nspr_fullname=nspr-$(nspr_version).x86_64.rpm
+# "nss" package providesa libnss3.so, libsmime3.so, libssl3.so
+nss_version=$(shell ./latest.sh nss x86_64)
+nss_dir=http://mirrors.kernel.org/fedora/development/rawhide/Everything/x86_64/os/Packages/n/
+nss_fullname=nss-$(nss_version).x86_64.rpm
+# "nss-util" package provides libnssutil3.so
+nss-util_version=$(shell ./latest.sh nss-util x86_64)
+nss-util_dir=http://mirrors.kernel.org/fedora/development/rawhide/Everything/x86_64/os/Packages/n/
+nss-util_fullname=nss-util-$(nss-util_version).x86_64.rpm
+
+# More needed libraries by the JRE's libjavalcms.so - see issue #601
+# "lcms2" package provides liblcms2.so
+lcms2_version=$(shell ./latest.sh lcms2 x86_64)
+lcms2_dir=http://mirrors.kernel.org/fedora/development/rawhide/Everything/x86_64/os/Packages/l/
+lcms2_fullname=lcms2-$(lcms2_version).x86_64.rpm
+
+
 SRC = $(shell readlink -f ../..)

 module:
        mkdir -p upstream
        wget -c -O upstream/$(java_fullname) $(java_dir)$(java_fullname)
        wget -c -O upstream/$(tzdata_fullname) $(tzdata_dir)$(tzdata_fullname)
+       wget -c -O upstream/$(nspr_fullname) $(nspr_dir)$(nspr_fullname)
+       wget -c -O upstream/$(nss_fullname) $(nss_dir)$(nss_fullname)
+ wget -c -O upstream/$(nss-util_fullname) $(nss-util_dir)$(nss-util_fullname)
+       wget -c -O upstream/$(lcms2_fullname) $(lcms2_dir)$(lcms2_fullname)
        rm -rf install
-       mkdir -p install
+       mkdir -p install/usr
+       ln -s lib install/usr/lib64
        rpm2cpio upstream/$(java_fullname) | (cd install && cpio -id)
        ln -sf java-1.8.0-openjdk-$(java_version).x86_64 $(jvm_dir)/java
        rm -rf $(jvm_dir)/java/jre/lib/security/cacerts
        rm -rf $(jvm_dir)/java/jre/lib/audio/*
        rpm2cpio upstream/$(tzdata_fullname) | (cd install && cpio -id)
+       rpm2cpio upstream/$(nspr_fullname) | (cd install && cpio -id)
+       rpm2cpio upstream/$(nss_fullname) | (cd install && cpio -id)
+       rpm2cpio upstream/$(nss-util_fullname) | (cd install && cpio -id)
+       rpm2cpio upstream/$(lcms2_fullname) | (cd install && cpio -id)
+       rm -rf install/usr/share/man
        ln -s /etc/pki/java/cacerts install/usr/lib/jvm/java/jre/lib/security/

 clean:

--
You received this message because you are subscribed to the Google Groups "OSv 
Development" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to