diff --git a/README.md b/README.md index b39a010..e23ca31 100644 --- a/README.md +++ b/README.md @@ -2,6 +2,240 @@ The adoptium-temurin-java-repository package +https://fedoraproject.org/wiki/Changes/ThirdPartyLegacyJdks + This package adds Eclipse Adoptium JDKs as a replacement for JDKs which are no longer included in Fedora https://adoptium.net/installation/linux/ + +This package adds configuration to add a remote repository +of https://adoptium.net/installation/linux/#_centosrhelfedora_instructions , +if third-party repositories are enabled on a Fedora Linux system. +This repository contains all JDKS which are live and not available in fedora +as per https://fedoraproject.org/wiki/Changes/ThirdPartyLegacyJdks . +It (4.11.2024) installs: temurin-11-jdk temurin-11-jre temurin-17-jdk temurin-17-jre temurin-21-jdk + temurin-21-jre temurin-22-jdk temurin-22-jre temurin-23-jdk temurin-23-jre temurin-8-jdk + temurin-8-jre +Warning, jdk contains both jre and jdk, so if you install jdk and jre (of same version) +you will have two java alternatives masters, and one javac master. +Since f42 it will be obsoleting retired java-(1.8.0,11,17)-openjdk-* + + +Obsoletes: + * java-1.8.0-openjdk + * java-1.8.0-openjdk-demo + * java-1.8.0-openjdk-demo-fastdebug + * java-1.8.0-openjdk-demo-slowdebug + * java-1.8.0-openjdk-demo-unstripped + * java-1.8.0-openjdk-devel + * java-1.8.0-openjdk-devel-fastdebug + * java-1.8.0-openjdk-devel-slowdebug + * java-1.8.0-openjdk-devel-unstripped + * java-1.8.0-openjdk-docs + * java-1.8.0-openjdk-docs-fastdebug + * java-1.8.0-openjdk-docs-slowdebug + * java-1.8.0-openjdk-docs-unstripped + * java-1.8.0-openjdk-fastdebug + * java-1.8.0-openjdk-headless + * java-1.8.0-openjdk-headless-fastdebug + * java-1.8.0-openjdk-headless-slowdebug + * java-1.8.0-openjdk-headless-unstripped + * java-1.8.0-openjdk-javadoc + * java-1.8.0-openjdk-javadoc-fastdebug + * java-1.8.0-openjdk-javadoc-slowdebug + * java-1.8.0-openjdk-javadoc-unstripped + * java-1.8.0-openjdk-javadoc-zip + * java-1.8.0-openjdk-javadoc-zip-fastdebug + * java-1.8.0-openjdk-javadoc-zip-slowdebug + * java-1.8.0-openjdk-javadoc-zip-unstripped + * java-1.8.0-openjdk-portable + * java-1.8.0-openjdk-portable-demo + * java-1.8.0-openjdk-portable-demo-fastdebug + * java-1.8.0-openjdk-portable-demo-slowdebug + * java-1.8.0-openjdk-portable-demo-unstripped + * java-1.8.0-openjdk-portable-devel + * java-1.8.0-openjdk-portable-devel-fastdebug + * java-1.8.0-openjdk-portable-devel-slowdebug + * java-1.8.0-openjdk-portable-devel-unstripped + * java-1.8.0-openjdk-portable-docs + * java-1.8.0-openjdk-portable-docs-fastdebug + * java-1.8.0-openjdk-portable-docs-slowdebug + * java-1.8.0-openjdk-portable-docs-unstripped + * java-1.8.0-openjdk-portable-fastdebug + * java-1.8.0-openjdk-portable-headless + * java-1.8.0-openjdk-portable-headless-fastdebug + * java-1.8.0-openjdk-portable-headless-slowdebug + * java-1.8.0-openjdk-portable-headless-unstripped + * java-1.8.0-openjdk-portable-javadoc + * java-1.8.0-openjdk-portable-javadoc-fastdebug + * java-1.8.0-openjdk-portable-javadoc-slowdebug + * java-1.8.0-openjdk-portable-javadoc-unstripped + * java-1.8.0-openjdk-portable-javadoc-zip + * java-1.8.0-openjdk-portable-javadoc-zip-fastdebug + * java-1.8.0-openjdk-portable-javadoc-zip-slowdebug + * java-1.8.0-openjdk-portable-javadoc-zip-unstripped + * java-1.8.0-openjdk-portable-slowdebug + * java-1.8.0-openjdk-portable-sources + * java-1.8.0-openjdk-portable-sources-fastdebug + * java-1.8.0-openjdk-portable-sources-slowdebug + * java-1.8.0-openjdk-portable-sources-unstripped + * java-1.8.0-openjdk-portable-src + * java-1.8.0-openjdk-portable-src-fastdebug + * java-1.8.0-openjdk-portable-src-slowdebug + * java-1.8.0-openjdk-portable-src-unstripped + * java-1.8.0-openjdk-portable-unstripped + * java-1.8.0-openjdk-slowdebug + * java-1.8.0-openjdk-sources + * java-1.8.0-openjdk-sources-fastdebug + * java-1.8.0-openjdk-sources-slowdebug + * java-1.8.0-openjdk-sources-unstripped + * java-1.8.0-openjdk-src + * java-1.8.0-openjdk-src-fastdebug + * java-1.8.0-openjdk-src-slowdebug + * java-1.8.0-openjdk-src-unstripped + * java-1.8.0-openjdk-unstripped + * java-11-openjdk + * java-11-openjdk-demo + * java-11-openjdk-demo-fastdebug + * java-11-openjdk-demo-slowdebug + * java-11-openjdk-demo-unstripped + * java-11-openjdk-devel + * java-11-openjdk-devel-fastdebug + * java-11-openjdk-devel-slowdebug + * java-11-openjdk-devel-unstripped + * java-11-openjdk-docs + * java-11-openjdk-docs-fastdebug + * java-11-openjdk-docs-slowdebug + * java-11-openjdk-docs-unstripped + * java-11-openjdk-fastdebug + * java-11-openjdk-headless + * java-11-openjdk-headless-fastdebug + * java-11-openjdk-headless-slowdebug + * java-11-openjdk-headless-unstripped + * java-11-openjdk-javadoc + * java-11-openjdk-javadoc-fastdebug + * java-11-openjdk-javadoc-slowdebug + * java-11-openjdk-javadoc-unstripped + * java-11-openjdk-javadoc-zip + * java-11-openjdk-javadoc-zip-fastdebug + * java-11-openjdk-javadoc-zip-slowdebug + * java-11-openjdk-javadoc-zip-unstripped + * java-11-openjdk-portable + * java-11-openjdk-portable-demo + * java-11-openjdk-portable-demo-fastdebug + * java-11-openjdk-portable-demo-slowdebug + * java-11-openjdk-portable-demo-unstripped + * java-11-openjdk-portable-devel + * java-11-openjdk-portable-devel-fastdebug + * java-11-openjdk-portable-devel-slowdebug + * java-11-openjdk-portable-devel-unstripped + * java-11-openjdk-portable-docs + * java-11-openjdk-portable-docs-fastdebug + * java-11-openjdk-portable-docs-slowdebug + * java-11-openjdk-portable-docs-unstripped + * java-11-openjdk-portable-fastdebug + * java-11-openjdk-portable-headless + * java-11-openjdk-portable-headless-fastdebug + * java-11-openjdk-portable-headless-slowdebug + * java-11-openjdk-portable-headless-unstripped + * java-11-openjdk-portable-javadoc + * java-11-openjdk-portable-javadoc-fastdebug + * java-11-openjdk-portable-javadoc-slowdebug + * java-11-openjdk-portable-javadoc-unstripped + * java-11-openjdk-portable-javadoc-zip + * java-11-openjdk-portable-javadoc-zip-fastdebug + * java-11-openjdk-portable-javadoc-zip-slowdebug + * java-11-openjdk-portable-javadoc-zip-unstripped + * java-11-openjdk-portable-slowdebug + * java-11-openjdk-portable-sources + * java-11-openjdk-portable-sources-fastdebug + * java-11-openjdk-portable-sources-slowdebug + * java-11-openjdk-portable-sources-unstripped + * java-11-openjdk-portable-src + * java-11-openjdk-portable-src-fastdebug + * java-11-openjdk-portable-src-slowdebug + * java-11-openjdk-portable-src-unstripped + * java-11-openjdk-portable-unstripped + * java-11-openjdk-slowdebug + * java-11-openjdk-sources + * java-11-openjdk-sources-fastdebug + * java-11-openjdk-sources-slowdebug + * java-11-openjdk-sources-unstripped + * java-11-openjdk-src + * java-11-openjdk-src-fastdebug + * java-11-openjdk-src-slowdebug + * java-11-openjdk-src-unstripped + * java-11-openjdk-unstripped + * java-17-openjdk + * java-17-openjdk-demo + * java-17-openjdk-demo-fastdebug + * java-17-openjdk-demo-slowdebug + * java-17-openjdk-demo-unstripped + * java-17-openjdk-devel + * java-17-openjdk-devel-fastdebug + * java-17-openjdk-devel-slowdebug + * java-17-openjdk-devel-unstripped + * java-17-openjdk-docs + * java-17-openjdk-docs-fastdebug + * java-17-openjdk-docs-slowdebug + * java-17-openjdk-docs-unstripped + * java-17-openjdk-fastdebug + * java-17-openjdk-headless + * java-17-openjdk-headless-fastdebug + * java-17-openjdk-headless-slowdebug + * java-17-openjdk-headless-unstripped + * java-17-openjdk-javadoc + * java-17-openjdk-javadoc-fastdebug + * java-17-openjdk-javadoc-slowdebug + * java-17-openjdk-javadoc-unstripped + * java-17-openjdk-javadoc-zip + * java-17-openjdk-javadoc-zip-fastdebug + * java-17-openjdk-javadoc-zip-slowdebug + * java-17-openjdk-javadoc-zip-unstripped + * java-17-openjdk-portable + * java-17-openjdk-portable-demo + * java-17-openjdk-portable-demo-fastdebug + * java-17-openjdk-portable-demo-slowdebug + * java-17-openjdk-portable-demo-unstripped + * java-17-openjdk-portable-devel + * java-17-openjdk-portable-devel-fastdebug + * java-17-openjdk-portable-devel-slowdebug + * java-17-openjdk-portable-devel-unstripped + * java-17-openjdk-portable-docs + * java-17-openjdk-portable-docs-fastdebug + * java-17-openjdk-portable-docs-slowdebug + * java-17-openjdk-portable-docs-unstripped + * java-17-openjdk-portable-fastdebug + * java-17-openjdk-portable-headless + * java-17-openjdk-portable-headless-fastdebug + * java-17-openjdk-portable-headless-slowdebug + * java-17-openjdk-portable-headless-unstripped + * java-17-openjdk-portable-javadoc + * java-17-openjdk-portable-javadoc-fastdebug + * java-17-openjdk-portable-javadoc-slowdebug + * java-17-openjdk-portable-javadoc-unstripped + * java-17-openjdk-portable-javadoc-zip + * java-17-openjdk-portable-javadoc-zip-fastdebug + * java-17-openjdk-portable-javadoc-zip-slowdebug + * java-17-openjdk-portable-javadoc-zip-unstripped + * java-17-openjdk-portable-slowdebug + * java-17-openjdk-portable-sources + * java-17-openjdk-portable-sources-fastdebug + * java-17-openjdk-portable-sources-slowdebug + * java-17-openjdk-portable-sources-unstripped + * java-17-openjdk-portable-src + * java-17-openjdk-portable-src-fastdebug + * java-17-openjdk-portable-src-slowdebug + * java-17-openjdk-portable-src-unstripped + * java-17-openjdk-portable-unstripped + * java-17-openjdk-slowdebug + * java-17-openjdk-sources + * java-17-openjdk-sources-fastdebug + * java-17-openjdk-sources-slowdebug + * java-17-openjdk-sources-unstripped + * java-17-openjdk-src + * java-17-openjdk-src-fastdebug + * java-17-openjdk-src-slowdebug + * java-17-openjdk-src-unstripped + * java-17-openjdk-unstripped < 10000 + diff --git a/adoptium-temurin-java-repository.spec b/adoptium-temurin-java-repository.spec index 7e33cde..dceb629 100644 --- a/adoptium-temurin-java-repository.spec +++ b/adoptium-temurin-java-repository.spec @@ -1,6 +1,36 @@ %global reponame %{name}.repo %global repodir %{_sysconfdir}/yum.repos.d %global thirdparty %{_prefix}/lib/fedora-third-party/conf.d + +%define obsoleteLine() %{expand: +Obsoletes: java-%{?1}-openjdk%{?2}%{?3} < 1:100000 +Obsoletes: java-%{?1}-openjdk-portable%{?2}%{?3} < 1:1000 +} + +%define obsoleteLines() %{expand: +%{obsoleteLine -- %{?1} %{?2} %{nil}} +%{obsoleteLine -- %{?1} %{?2} -fastdebug} +%{obsoleteLine -- %{?1} %{?2} -slowdebug} +%{obsoleteLine -- %{?1} %{?2} -unstripped} +} + +%define obsoleteJdk() %{expand: +%{obsoleteLines -- %{?1} %{nil}} +%{obsoleteLines -- %{?1} -headless} +%{obsoleteLines -- %{?1} -devel} +%{obsoleteLines -- %{?1} -demo} +%{obsoleteLines -- %{?1} -src} +%{obsoleteLines -- %{?1} -javadoc} +%{obsoleteLines -- %{?1} -javadoc-zip} +%{obsoleteLines -- %{?1} -jmods} +%{obsoleteLines -- %{?1} -static-libs} +%{obsoleteLines -- %{?1} -openjfx} +%{obsoleteLines -- %{?1} -openjfx-devel} +%{obsoleteLines -- %{?1} -docs} +%{obsoleteLines -- %{?1} -sources} +%{obsoleteLines -- %{?1} -misc} +} + # 0/1 may vary in time, and is always enabled to 1 per FESCO exception %global enabled_by_default 0 @@ -20,6 +50,12 @@ BuildArch: noarch # fedora-third-party contains tools to work with 3rd party repos and owns fedora-third-party/conf.d/ directory Requires: fedora-third-party +#dont forget to update the lua list in pre and bash list in post +%{obsoleteJdk -- 1.8.0} +%{obsoleteJdk -- 11} +%{obsoleteJdk -- 17} +Obsoletes: openjfx8 < 1000 +Obsoletes: openjfx8-devel < 1000 %description This package adds configuration to add a remote repository @@ -45,6 +81,93 @@ install -D -m0644 %{SOURCE1} -t %{buildroot}%{thirdparty}/ install -D -m0644 %{reponame} -t %{buildroot}%{repodir}/ install -D -m0644 %{SOURCE3} -t %{buildroot}%{_docdir}/%{name}/ + +%pre -p +-- in dnf5 lua goes to stdout, but not to logs +local posix = require ("posix") + +local jdksKnown={"1.8.0", "11", "17"} +local jdksFound={} + +local javadir="/usr/lib/jvm" +local binJava="bin/java" +local binJavac="bin/javac" +local jreBinJava="jre/bin/java" + +for key, value in pairs(jdksKnown) do + jdksFound[value]=0; + local java="java-"..value.."-openjdk" + local jre="jre-"..value.."-openjdk" + local statJavaJre1 = posix.stat(javadir.."/"..java.."/"..binJava, "type"); + local statJavaJre2 = posix.stat(javadir.."/"..java.."/"..jreBinJava, "type"); + local statJavaSdk = posix.stat(javadir.."/"..java.."/"..binJavac, "type"); + local statJreJre1 = posix.stat(javadir.."/"..jre.."/"..binJava, "type"); + local statJreJre2 = posix.stat(javadir.."/"..jre.."/"..jreBinJava, "type"); + local statJreSdk = posix.stat(javadir.."/"..jre.."/"..binJavac, "type"); + if ((statJavaJre1 ~= nil)) then + jdksFound[value]=jdksFound[value]+1; + end + if ((statJavaJre2 ~= nil)) then + jdksFound[value]=jdksFound[value]+1; + end + if ((statJreJre1 ~= nil)) then + jdksFound[value]=jdksFound[value]+1; + end + if ((statJreJre2 ~= nil)) then + jdksFound[value]=jdksFound[value]+1; + end + if ((statJavaSdk ~= nil)) then + jdksFound[value]=jdksFound[value]+1000; + end + if ((statJavaSdk ~= nil)) then + jdksFound[value]=jdksFound[value]+1000; + end +end +local counter=0 +for key, value in pairs(jdksFound) do + temurinKey=key + if key == "1.8.0" then + temurinKey=8 + end + if value > 0 then + if (counter==0) then + print("") --dnf5 is consuming first and alst line of output. this is it + end + print("You have java-"..key.."-openjdk installed. That is deprecated, and is replaced by temurin-"..temurinKey.."-jre") + end + if value > 999 then + print("You have java-"..key.."-openjdk-devel installed. That is deprecated, and is replaced by temurin-"..temurinKey.."-jdk") + end + counter=counter+value +end +if counter>0 then + print("https://fedoraproject.org/wiki/Changes/ThirdPartyLegacyJdks") + print("") --dnf5 is consuming first and alst line of output. this is it +end + +%post +# in dnf5 bash goes to logs, but not to stdout +hits=0 +for x in 1.8.0 11 17 ; do + key="$x" + if [ "$key" == "1.8.0" ] ; then + key=8 + fi + if [ -e /usr/lib/jvm/java-$x-openjdk/bin/java ] || [ -e /usr/lib/jvm/java-$x-openjdk/bin/jre/java ] || [ -e /usr/lib/jvm/jre-$x-openjdk/bin/java ] || [ -e /usr/lib/jvm/jre-$x-openjdk/jre/bin/java ] ; then + echo "java-$x-openjdk installed. That is deprecated, and is replaced by temurin-$key-jdk" + let hits=$hits+1 + fi + if [ -e /usr/lib/jvm/java-$x-openjdk/bin/javac ] ; then + echo "java-$x-openjdk-devel installed. That is deprecated, and is replaced by temurin-$key-jdk" + let hits=$hits+1 + fi +done +if [ $hits -gt 0 ] ; then + echo "https://fedoraproject.org/wiki/Changes/ThirdPartyLegacyJdks" +fi + + + %files %license LICENSE %{thirdparty}/*