%bcond_with bootstrap # build a bootstrap version, using icedtea6 %bcond_without cacerts # don't include the default CA certificates %if %{with bootstrap} %define use_jdk openjdk10 %else %define use_jdk openjdk11 %endif %ifarch %{x8664} aarch64 %define with_aot 1 %endif %ifarch x32 %define with_zero 1 %endif %ifarch %{ix86} %{x8664} aarch64 %define with_shenandoahgc 1 %endif # class data version seen with file(1) that this jvm is able to load %define _classdataversion 55.0 Summary: Open-source implementation of the Java Platform, Standard Edition Summary(pl.UTF-8): Wolnoźródłowa implementacja Java 11 SE Name: openjdk11 Version: 11.0.12 Release: 3 License: GPL v2 Group: Development/Languages/Java Source0: https://hg.openjdk.java.net/jdk-updates/jdk11u/archive/jdk-%{version}-ga.tar.bz2?/%{name}-%{version}.tar.bz2 # Source0-md5: aa4b4199677892fd91de9316398dee6d Source10: make-cacerts.sh Patch0: libpath.patch Patch1: x32.patch Patch2: glibc-2.34.patch URL: http://openjdk.java.net/ BuildRequires: /usr/bin/jar BuildRequires: alsa-lib-devel BuildRequires: ant BuildRequires: autoconf BuildRequires: bash %{?with_cacerts:BuildRequires: ca-certificates-update} BuildRequires: cups-devel BuildRequires: elfutils-devel BuildRequires: freetype-devel >= 1:2.10.2 BuildRequires: gawk BuildRequires: giflib-devel >= 5.2.1 BuildRequires: glibc-misc BuildRequires: harfbuzz-devel >= 2.3.1 %{?buildrequires_jdk} BuildRequires: lcms2-devel >= 2.11 BuildRequires: libjpeg-devel BuildRequires: libpng-devel >= 2:1.6.37 BuildRequires: lsb-release BuildRequires: pcsc-lite-devel BuildRequires: pkgconfig BuildRequires: rpmbuild(macros) >= 1.752 BuildRequires: unzip BuildRequires: util-linux BuildRequires: xorg-lib-libX11-devel BuildRequires: xorg-lib-libXinerama-devel BuildRequires: xorg-lib-libXp-devel BuildRequires: xorg-lib-libXrender-devel BuildRequires: xorg-lib-libXt-devel BuildRequires: xorg-lib-libXtst-devel BuildRequires: xorg-proto-printproto-devel BuildRequires: xorg-proto-xproto-devel BuildRequires: zip BuildRequires: zlib-devel Requires: %{name}-jdk = %{version}-%{release} Suggests: icedtea-web Obsoletes: icedtea6 Obsoletes: icedtea7 Obsoletes: java-gcj-compat Obsoletes: java-gcj-compat-devel Obsoletes: java-sun Obsoletes: java-sun-demos Obsoletes: java-sun-jre Obsoletes: java-sun-jre-X11 Obsoletes: java-sun-jre-alsa Obsoletes: java-sun-jre-jdbc Obsoletes: java-sun-tools Obsoletes: java5-sun Obsoletes: java5-sun-jre Obsoletes: java5-sun-jre-X11 Obsoletes: java5-sun-jre-jdbc Obsoletes: java5-sun-tools Obsoletes: oracle-java7 Obsoletes: oracle-java7-jre Obsoletes: oracle-java7-jre-X11 Obsoletes: oracle-java7-jre-alsa Obsoletes: oracle-java7-jre-jdbc Obsoletes: oracle-java7-tools BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n) %define dstreldir %{name}-%{version} %define dstdir %{_jvmdir}/%{dstreldir} %define jvmjardir %{_jvmjardir}/%{name}-%{version} # to break artificial subpackage dependency loops %define _noautoreq 'libmawt.so' java\\\\(ClassDataVersion\\\\) # openjdk build system handles _FORTIFY_SOURCE internally %undefine _fortify_cflags %description Open-source implementation of the Java Platform, Standard Edition. This is a meta-package which provides, by its dependencies, all the OpenJDK components including the OpenJDK, Java 8 developement kit and runtime environment. %description -l pl.UTF-8 Wolnoźródłowa implementacja Java 8 SE. To jest meta-pakiet, który, za pośrednictwem zależności, dostarcza wszystkie komponenty OpenJDK, w tym środowisko programistyczne (OpenJDK) i uruchomieniowe (JRE). %package jdk Summary: OpenJDK - software development kit Summary(pl.UTF-8): OpenJDK - środowisko programistyczne Group: Development/Languages/Java Requires: %{name}-jar = %{version}-%{release} Requires: %{name}-jdk-base = %{version}-%{release} Requires: %{name}-jre = %{version}-%{release} Provides: j2sdk = %{version} Provides: jdk = %{version} Obsoletes: blackdown-java-sdk Obsoletes: ibm-java Obsoletes: icedtea6-jdk Obsoletes: icedtea7-jdk Obsoletes: java-blackdown Obsoletes: java-gcj-compat-devel Obsoletes: java-sun Obsoletes: java5-sun Obsoletes: jdk Obsoletes: kaffe Obsoletes: oracle-java7 %description jdk This package symlinks OpenJDK development tools provided by %{name}-jdk-base to system-wide directories like %{_bindir}, making OpenJDK the default JDK. %description jdk -l pl.UTF-8 Ten pakiet tworzy symboliczne dowiązania do narzędzi programistycznych OpenJDK, dostarczanych przez pakiet %{name}-jdk-base, w standardowych systemowych ścieżkach takich jak %{_bindir}, sprawiając tym samym, że OpenJDK staje się domyślnym JDK w systemie. %package jdk-base Summary: OpenJDK - software development kit Summary(pl.UTF-8): Kod OpenJDK - środowisko programistyczne Group: Development/Languages/Java Requires: %{name}-jre-base = %{version}-%{release} Requires: jpackage-utils >= 0:1.7.5-8 Requires: lcms2 >= 2.11 Provides: jdk(%{name}) %description jdk-base OpenJDK development tools built using free software only. %description jdk-base -l pl.UTF-8 OpenJDK skompilowane wyłącznie przy użyciu wolnego oprogramowania. %package jre Summary: OpenJDK - runtime environment Summary(pl.UTF-8): OpenJDK - środowisko uruchomieniowe Group: Development/Languages/Java Requires: %{name}-jre-base = %{version}-%{release} Requires: nss >= 1:3.13.4 # Require zoneinfo data provided by java-tzdata subpackage. Requires: java-tzdata Provides: java Provides: java(ClassDataVersion) = %{_classdataversion} Provides: java(jaas) = %{version} Provides: java(jaf) = 1.1.1 Provides: java(jaxp) = 1.3 Provides: java(jaxp_parser_impl) Provides: java(jce) = %{version} Provides: java(jdbc-stdext) = %{version} Provides: java(jdbc-stdext) = 3.0 Provides: java(jmx) = 1.4 Provides: java(jndi) = %{version} Provides: java(jsse) = %{version} Provides: java1.4 Provides: jre = %{version} Obsoletes: icedtea6-jre Obsoletes: icedtea7-jre Obsoletes: jaas Obsoletes: jaf Obsoletes: java-gcj-compat Obsoletes: java-jaxp Obsoletes: java-jdbc-stdext Obsoletes: java-sun-jre Obsoletes: java5-sun-jre Obsoletes: jce Obsoletes: jdbc-stdext Obsoletes: jmx Obsoletes: jndi Obsoletes: jre Obsoletes: jsse Obsoletes: oracle-java7-jre %description jre This package symlinks OpenJDK runtime environment tools provided by %{name}-jre-base to system-wide directories like %{_bindir}, making OpenJDK the default JRE. %description jre -l pl.UTF-8 Ten pakiet tworzy symboliczne dowiązania do środowiska uruchomieniowego OpenJDK, dostarczanych przez pakiet %{name}-jre-base, w standardowych systemowych ścieżkach takich jak %{_bindir}, sprawiając tym samym, że OpenJDK staje się domyślnym JRE w systemie. %package jre-base Summary: OpenJDK - runtime environment Summary(pl.UTF-8): OpenJDK - środowisko uruchomieniowe Group: Development/Languages/Java Requires: jpackage-utils >= 0:1.7.5-8 Provides: jre(%{name}) %description jre-base OpenJDK runtime environment built using free software only. %description jre-base -l pl.UTF-8 Środowisko uruchomieniowe OpenJDK zbudowany wyłącznie przy użyciu wolnego oprogramowania. %package jre-base-X11 Summary: OpenJDK - runtime environment - X11 support Summary(pl.UTF-8): OpenJDK - środowisko uruchomieniowe - obsługa X11 Group: Development/Languages/Java Requires: %{name}-jre-base = %{version}-%{release} Requires: %{name}-jre-base-freetype = %{version}-%{release} Requires: giflib >= 5.2.1 Requires: libpng >= 2:1.6.37 Provides: jre-X11 = %{version} %description jre-base-X11 X11 support for OpenJDK runtime environment built using free software only. %description jre-base-X11 -l pl.UTF-8 Biblioteki X11 dla środowiska OpenJDK zbudowany wyłocznie przy uzyciu wolnego oprogramowania. %package jre-base-freetype Summary: OpenJDK - runtime environment - font support Summary(pl.UTF-8): OpenJDK - środowisko uruchomieniowe - obsługa fontów Group: Development/Languages/Java Requires: %{name}-jre-base = %{version}-%{release} Requires: freetype >= 1:2.10.2 Requires: harfbuzz >= 2.3.1 %description jre-base-freetype Font handling library for OpenJDK runtime environment built using free software only. %description jre-base-freetype -l pl.UTF-8 Biblioteki obsługi czcionek dla OpenJDK zbudowane wyłącznie przy użyciu wolnego oprogramowania. %package jre-base-gtk Summary: OpenJDK - runtime environment - GTK support Summary(pl.UTF-8): OpenJDK - środowisko uruchomieniowe - obsługa GTK Group: Development/Languages/Java Requires: %{name}-jre-base = %{version}-%{release} %description jre-base-gtk GTK support for OpenJDK runtime environment. %description jre-base-gtk -l pl.UTF-8 Biblioteki GTK dla OpenJDK. %package jmods Summary: OpenJDK - JMods Summary(pl.UTF-8): OpenJDK - JMods Group: Development/Languages/Java Requires: %{name}-jdk-base = %{version}-%{release} %description jmods JMods for OpenJDK. %description jmods -l pl.UTF-8 JMods dla OpenJDK. %package jar Summary: OpenJDK - JAR tool Summary(pl.UTF-8): OpenJDK - narzędzie JAR Group: Development/Languages/Java Requires: %{name}-jdk-base = %{version}-%{release} Provides: jar Obsoletes: fastjar Obsoletes: icedtea6-jar Obsoletes: icedtea7-jar Obsoletes: jar %description jar JAR tool from OpenJDK built using free software only. JAR is an archiver used to merge Java classes into a single library. %description jar -l pl.UTF-8 Narzędzie jar z OpenJDK zbudowane przy uzyciu wyłącznie wolnego oprogramowania. JAR jest narzędziem pozwalającym wykonywać podstawowe operacje na archiwach javy .jar takie jak na przykład tworzenie lub rozpakowywanie archiwów. %package jdk-sources Summary: OpenJDK - sources Summary(pl.UTF-8): OpenJDK - kod źródłowy Group: Documentation BuildArch: noarch %description jdk-sources Source code for the OpenJDK development kit and Java standard library. %description jdk-sources -l pl.UTF-8 Kod źródłowy narzędzi programistycznych OpenJDK oraz standardowej biblioteki Javy. %package examples Summary: OpenJDK - examples Summary(pl.UTF-8): OpenJDK - przykłady Group: Documentation BuildArch: noarch %description examples Code examples for OpenJDK. %description examples -l pl.UTF-8 Przykłady dla OpenJDK. %prep %setup -qn jdk11u-jdk-%{version}-ga %patch0 -p1 %patch1 -p1 %patch2 -p1 %build # Make sure we have /proc mounted - otherwise idlc will fail later. if [ ! -f /proc/self/stat ]; then echo "You need to have /proc mounted in order to build this package!" exit 1 fi cd make/autoconf %{__autoconf} -o generated-configure.sh cd ../.. mkdir -p build-bin # unset CLASSPATH to be safe, gnustep puts garbage there, which openjdk hates unset CLASSPATH export SHELL=/bin/bash chmod a+x configure # disable-debug-symbols so openjdk debuginfo handling won't conflict with ours %configure \ %{?with_zero:--with-jvm-variants=zero} \ --with-boot-jdk="%{java_home}" \ --with-extra-cflags="%{rpmcppflags} %{rpmcflags} -fcommon -fno-tree-dse" \ --with-extra-cxxflags="%{rpmcppflags} %{rpmcxxflags} -fcommon -fno-tree-dse" \ --with-extra-ldflags="%{rpmldflags}" \ --with-jvm-features="%{?with_shenandoahgc:shenandoahgc}" \ --with-native-debug-symbols=none \ --disable-full-docs \ --disable-javac-server \ --disable-hotspot-gtest \ --disable-warnings-as-errors \ --with-jobs="%{__jobs}" \ --with-freetype=system \ --with-giflib=system \ --with-harfbuzz=system \ --with-libjpeg=system \ --with-libpng=system \ --with-lcms=system \ --with-zlib=system \ --with-version-pre="" \ --with-version-opt="" \ --with-version-build="%{release}" \ --with-vendor-name="PLD-Linux" \ --with-vendor-url="https://www.pld-linux.org" \ --with-vendor-bug-url="https://bugs.pld-linux.org" \ --with-vendor-vm-bug-url="https://bugs.openjdk.java.net" \ --with-vendor-version-string="%{version}" specdir="$(dirname build/*-release/spec.gmk)" cat > $specdir/custom-spec.gmk <