From 6bd5f49c412be8edaadc5bc707dcd2a521207da5 Mon Sep 17 00:00:00 2001 From: Michael Peter Christen Date: Thu, 31 Aug 2023 17:52:30 +0200 Subject: [PATCH] Migrated from java 8 to java 11. This step is required to upgrade certain packages, most important solr which will be migrated from 8.9 to 9.x --- README.md | 4 ++-- build.nsi | 2 +- build.properties | 6 +++--- docker/Dockerfile | 4 ++-- docker/Dockerfile.ArchLinux | 14 ++++++++++++++ docker/Dockerfile.aarch64 | 2 +- docker/Dockerfile.alpine | 4 ++-- docker/Dockerfile.armv7 | 4 ++-- docker/Readme.md | 2 +- 9 files changed, 28 insertions(+), 14 deletions(-) diff --git a/README.md b/README.md index a2e9921b1..cd7effafa 100644 --- a/README.md +++ b/README.md @@ -61,7 +61,7 @@ All these have (YaCy) search functionality combining all these locations into on ## Dependencies? What other software do I need? -You need Java 1.8 or later to run YaCy. (No Apache, Tomcat or MySQL or anything else) +You need Java 11 or later to run YaCy. (No Apache, Tomcat or MySQL or anything else) YaCy also runs on IcedTea 3. See https://icedtea.classpath.org @@ -178,7 +178,7 @@ git clone https://github.com/yacy/yacy_search_server ``` Compiling YaCy: -- You need Java 1.8 and ant +- You need Java 11 and ant - See `ant -p` for the available ant targets ``` ant clean dist diff --git a/build.nsi b/build.nsi index cf21487be..b4badbb0e 100644 --- a/build.nsi +++ b/build.nsi @@ -159,7 +159,7 @@ Section "check Java 8 installed" Sec_Java_id Retry: ReadRegStr $InstalledJREVersion HKLM "SOFTWARE\JavaSoft\Java Runtime Environment" "CurrentVersion" - ${If} $InstalledJREVersion != "1.8" + ${If} $InstalledJREVersion != "11" MessageBox MB_ICONEXCLAMATION|MB_YESNO "$(yacyNoJavaFoundOpenBrowser)" IDNO ContinueWithoutJava ExecShell open "https://adoptium.net/de/temurin/releases/?version=8" diff --git a/build.properties b/build.properties index 28acc2ffb..940075c51 100644 --- a/build.properties +++ b/build.properties @@ -1,9 +1,9 @@ # defining some compiler arguments -javacSource=1.8 -javacTarget=1.8 +javacSource=11 +javacTarget=11 # Release Configuration -releaseVersion=1.926 +releaseVersion=1.930 releaseFileParentDir=yacy privateKeyFile=private.key diff --git a/docker/Dockerfile b/docker/Dockerfile index b138ca764..28444c932 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -9,7 +9,7 @@ ## build app -FROM eclipse-temurin:8-jdk-focal AS appbuilder +FROM eclipse-temurin:11-jdk-jammy AS appbuilder RUN apt-get update && apt-get install -yq ant git curl wkhtmltopdf imagemagick xvfb ghostscript && rm -rf /var/lib/apt/lists/* RUN java -version @@ -31,7 +31,7 @@ RUN sed -i "/adminAccountBase64MD5=/c\adminAccountBase64MD5=MD5:8cffbc0d66567a09 ## build dist -FROM eclipse-temurin:8-jre-focal +FROM eclipse-temurin:11-jre-jammy LABEL maintainer="Michael Peter Christen " RUN apt-get update && apt-get install -yq wkhtmltopdf imagemagick xvfb ghostscript && rm -rf /var/lib/apt/lists/* diff --git a/docker/Dockerfile.ArchLinux b/docker/Dockerfile.ArchLinux index e1b637587..ea7d655d6 100644 --- a/docker/Dockerfile.ArchLinux +++ b/docker/Dockerfile.ArchLinux @@ -1,14 +1,18 @@ FROM archlinux:latest + # update the system and clean up RUN pacman -Syu --noconfirm && pacman -Scc --noconfirm RUN pacman -Sy java-runtime-common wget --noconfirm && pacman -Scc --noconfirm + # download latest version of graalvm and move it to /lib/jvm/java-{javaversion}-graalvm RUN bash <(curl -sL https://get.graalvm.org/jdk) --no-progress && \ JAVAVERSION=$(ls ./ | grep graalvm | cut -d'-' -f3 | sed 's/java//g') && \ mv ./graalvm-ce-java$JAVAVERSION-$(ls ./ | grep graalvm | cut -d'-' -f4) /lib/jvm/java-$JAVAVERSION-graalvm && \ archlinux-java set java-$JAVAVERSION-graalvm + # update the path variable ENV PATH="/usr/lib/jvm/default/bin:${PATH}" + # set the JAVA_HOME variable ENV JAVA_HOME="/usr/lib/jvm/default" WORKDIR /opt @@ -24,11 +28,14 @@ sh build.sh -f fetch.xml -Ddest=optional && \ sh build.sh -Ddist.dir=/opt/ant dist && \ cd .. && \ rm -rf ant-src + # set the ANT_HOME variable ENV ANT_HOME="/opt/ant" + # set the PATH variable ENV PATH="/opt/ant/bin:${PATH}" RUN ant -f /opt/ant/fetch.xml -Ddest=system + # install the latest version dependencies of Yacy (copied from the official Dockerfile) RUN pacman -Sy imagemagick ruby qt5-tools qt5-doc gperf python xorg-server-xvfb ghostscript git qt5-svg qt5-xmlpatterns base-devel qt5-location qt5-sensors qt5-webchannel libwebp libxslt libxcomposite gst-plugins-base hyphen hyphen-en hyphen-de woff2 cmake --noconfirm && \ pacman -Scc --noconfirm @@ -36,26 +43,31 @@ RUN useradd --no-create-home --shell=/bin/false build && \ usermod -L build USER build WORKDIR /tmp + # buid package for qt5-webkit from AUR RUN git clone https://aur.archlinux.org/qt5-webkit.git && \ cd qt5-webkit && \ MAKEFLAGS="-j$(nproc)" makepkg --noconfirm && \ cd .. USER root + # install the package RUN pacman -U --noconfirm /tmp/qt5-webkit/qt5-webkit*.pkg.tar.zst && \ rm -rf /tmp/qt5-webkit USER build + # build package for wkhtmltopdf from AUR RUN git clone https://aur.archlinux.org/wkhtmltopdf.git && \ cd wkhtmltopdf && \ MAKEFLAGS="-j$(nproc)" makepkg --noconfirm --skippgpcheck && \ cd .. USER root + # install the package RUN pacman -U --noconfirm /tmp/wkhtmltopdf/wkhtmltopdf*.pkg.tar.zst && \ rm -rf /tmp/wkhtmltopdf WORKDIR /opt + # download the latest version of yacy RUN curl "https://codeload.github.com/yacy/yacy_search_server/zip/refs/heads/master" --output yacy.zip && \ pacman -S unzip --noconfirm && \ @@ -66,10 +78,12 @@ mv yacy_search_server-master yacy && \ cd yacy && \ ant compile -f build.xml && \ rm -rf /opt/yacy/.github + # Set initial admin password: "yacy" (encoded with custom yacy md5 function net.yacy.cora.order.Digest.encodeMD5Hex()) RUN sed -i "/adminAccountBase64MD5=/c\adminAccountBase64MD5=MD5:8cffbc0d66567a0987a4aba1ec46d63c" /opt/yacy/defaults/yacy.init && \ sed -i "/adminAccountForLocalhost=/c\adminAccountForLocalhost=false" /opt/yacy/defaults/yacy.init && \ sed -i "/server.https=false/c\server.https=true" /opt/yacy/defaults/yacy.init + # add the yacy user RUN useradd --no-create-home --system yacy && \ usermod -L yacy && \ diff --git a/docker/Dockerfile.aarch64 b/docker/Dockerfile.aarch64 index b6f18a5b9..0f536c9a1 100644 --- a/docker/Dockerfile.aarch64 +++ b/docker/Dockerfile.aarch64 @@ -1,6 +1,6 @@ # Build a docker image from latest YaCy sources -# Base image : latest Debian stable official jdk 8 image from Docker +# Base image : latest Debian stable official jdk 17 image from Docker FROM arm64v8/openjdk:17-buster # Install needed packages not in base image diff --git a/docker/Dockerfile.alpine b/docker/Dockerfile.alpine index e0b8d9600..627b5f0ef 100644 --- a/docker/Dockerfile.alpine +++ b/docker/Dockerfile.alpine @@ -1,7 +1,7 @@ # Build a docker image from latest YaCy sources on Alpine Linux -# Base image : latest stable official jdk 8 image from Docker based on Alpine Linux -FROM openjdk:8-alpine +# Base image : latest stable official jdk 11 image from Docker based on Alpine Linux +FROM openjdk:11-alpine # trace java version RUN java -version diff --git a/docker/Dockerfile.armv7 b/docker/Dockerfile.armv7 index 5b02eebd0..7a3134eac 100644 --- a/docker/Dockerfile.armv7 +++ b/docker/Dockerfile.armv7 @@ -1,7 +1,7 @@ # Build a docker image from latest YaCy sources -# Base image : latest Debian stable official jdk 8 image from Docker -FROM arm32v7/openjdk:8-jdk +# Base image : latest Debian stable official jdk 11 image from Docker +FROM arm32v7/openjdk:11-jdk # Install needed packages not in base image # (curl for sh scripts in /bin, and wkhtmltopdf,imagemagick,xvfb and ghostscript to enable PDF and image snapshot generation) diff --git a/docker/Readme.md b/docker/Readme.md index bdfae5b76..b40a2a73a 100644 --- a/docker/Readme.md +++ b/docker/Readme.md @@ -20,7 +20,7 @@ cd yacy_search_server/docker ``` Then according to the image type: -* `yacy/yacy_search_server:latest`: This image is based on latest stable official Debian stable [openjdk](https://hub.docker.com/_/openjdk/) 8 image provided by Docker. Embed Yacy compiled from latest git repository sources. +* `yacy/yacy_search_server:latest`: This image is based on latest stable official Debian stable [openjdk](https://hub.docker.com/_/openjdk/) 11 image provided by Docker. Embed Yacy compiled from latest git repository sources. ``` docker build -t yacy/yacy_search_server:latest -f Dockerfile ../