# # Conditional build: %bcond_with bootstrap # build a bootstrap version, using default jdk (icedtea8, ocacle-java8 or so) %bcond_without cacerts # don't include the default CA certificates %if %{without bootstrap} %define use_jdk openjdk8 %endif %ifarch %{ix86} %{x8664} sparc ppc64 ppc64le %{arm} aarch64 %define with_jfr 1 %endif # class data version seen with file(1) that this jvm is able to load %define _classdataversion 52.0 %define ver_u 402 Summary: Open-source implementation of the Java Platform, Standard Edition Summary(pl.UTF-8): Wolnoźródłowa implementacja Java 8 SE Name: openjdk8 Version: 1.8.0.%{ver_u} Release: 1 Epoch: 1 License: GPL v2 Group: Development/Languages/Java Source0: https://github.com/openjdk/jdk8u/archive/jdk8u%{ver_u}-ga/%{name}-%{version}.tar.gz # Source0-md5: 4927e0fe1e58276cf3d4a938864de5d0 Source1: https://github.com/openjdk/aarch32-port-jdk8u/archive/jdk8u%{ver_u}-ga-aarch32-20240118/%{name}-aarch32-%{version}.tar.gz # Source1-md5: d7feb1160c17cedf5616f73357a3ea94 Source2: make-cacerts.sh Patch0: adjust-mflags.patch Patch1: format_strings.patch Patch2: CompileDemos.patch Patch3: libpath.patch Patch4: system-libjpeg.patch Patch5: system-libpng.patch Patch6: system-lcms.patch Patch7: system-pcsclite.patch Patch8: x32.patch Patch9: gcc11.patch Patch10: link-with-as-needed.patch Patch12: atomic.patch Patch13: hotspot-disable-werror.patch Patch14: ignore-java-options.patch Patch15: default-assumemp.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: fontconfig-devel BuildRequires: freetype-devel >= 2.3 BuildRequires: gawk BuildRequires: giflib-devel >= 5.1 BuildRequires: glibc-misc %buildrequires_jdk BuildRequires: lcms2-devel %ifarch %{arm} BuildRequires: libatomic-devel %endif BuildRequires: libjpeg-devel BuildRequires: libpng-devel BuildRequires: lsb-release BuildRequires: pcsc-lite-devel BuildRequires: pkgconfig BuildRequires: rpm-build >= 4.6 BuildRequires: rpmbuild(macros) >= 1.557 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}-appletviewer = %{epoch}:%{version}-%{release} Requires: %{name}-jdk = %{epoch}:%{version}-%{release} Suggests: %{name}-jre-X11 = %{epoch}:%{version}-%{release} Suggests: icedtea-web Obsoletes: icedtea6 Obsoletes: icedtea7 Obsoletes: icedtea8 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 Obsoletes: oracle-java8 Obsoletes: oracle-java8-jre Obsoletes: oracle-java8-jre-X11 Obsoletes: oracle-java8-jre-alsa Obsoletes: oracle-java8-jre-jdbc Obsoletes: oracle-java8-tools BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n) %define dstreldir %{name}-%{version} %define dstdir %{_jvmdir}/%{dstreldir} %define jrereldir %{dstreldir}/jre %define jredir %{_jvmdir}/%{jrereldir} %define jvmjardir %{_jvmjardir}/%{name}-%{version} %ifarch %{x8664} %define jre_arch amd64 %endif %ifarch %{ix86} %define jre_arch i386 %endif %ifarch x32 %define jre_arch x32 %endif %ifarch aarch64 %define jre_arch aarch64 %endif %ifarch %{arm} %define jre_arch aarch32 %endif %ifarch %{arm} %define jvm_type client %else %define jvm_type server %endif # to break artificial subpackage dependency loops %define _noautoreq 'libmawt.so' java\\\\(ClassDataVersion\\\\) %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 = %{epoch}:%{version}-%{release} Requires: %{name}-jdk-base = %{epoch}:%{version}-%{release} Requires: %{name}-jre = %{epoch}:%{version}-%{release} Provides: j2sdk = %{version} Provides: jdk = %{version} Obsoletes: blackdown-java-sdk Obsoletes: ibm-java Obsoletes: icedtea6-jdk Obsoletes: icedtea7-jdk Obsoletes: icedtea8-jdk Obsoletes: java-blackdown Obsoletes: java-gcj-compat-devel Obsoletes: java-sun Obsoletes: java5-sun Obsoletes: jdk Obsoletes: kaffe Obsoletes: oracle-java7 Obsoletes: oracle-java8 %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 = %{epoch}:%{version}-%{release} Requires: jpackage-utils >= 0:1.7.5-8 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 = %{epoch}:%{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: icedtea8-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 Obsoletes: oracle-java8-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-X11 Summary: OpenJDK - runtime environment - X11 support Summary(pl.UTF-8): OpenJDK - środowisko uruchomieniowe - obsługa X11 Group: Development/Languages/Java Requires: %{name}-jre = %{epoch}:%{version}-%{release} Requires: %{name}-jre-base-X11 = %{epoch}:%{version}-%{release} Provides: jre-X11 = %{version} Obsoletes: icedtea6-jre-X11 Obsoletes: icedtea7-jre-X11 Obsoletes: icedtea8-jre-X11 Obsoletes: java-sun-jre-X11 Obsoletes: oracle-java7-jre-X11 Obsoletes: oracle-java8-jre-X11 %description jre-X11 X11 support for OpenJDK runtime environment built using free software only. %description jre-X11 -l pl.UTF-8 Biblioteki X11 dla środowiska OpenJDK zbudowany wyłocznie przy uzyciu wolnego oprogramowania. %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}) Obsoletes: openjdk8-jre-base-gtk < 1:1.8.0.392-2 %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 = %{epoch}:%{version}-%{release} Requires: %{name}-jre-base-freetype = %{epoch}:%{version}-%{release} %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-alsa Summary: OpenJDK - runtime environment - ALSA support Summary(pl.UTF-8): OpenJDK - środowisko uruchomieniowe - obsługa ALSA Group: Development/Languages/Java Requires: %{name}-jre-base = %{epoch}:%{version}-%{release} %description jre-base-alsa ALSA sound support for OpenJDK runtime environment build using free software only. %description jre-base-alsa -l pl.UTF-8 Biblioteki ALSA rozszerzające środowisko OpenJDK o obsługę dźwięku zbudowane przy uzyciu wyłącznie 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 = %{epoch}:%{version}-%{release} %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 jar Summary: OpenJDK - JAR tool Summary(pl.UTF-8): OpenJDK - narzędzie JAR Group: Development/Languages/Java Requires: %{name}-jdk-base = %{epoch}:%{version}-%{release} Provides: jar Obsoletes: fastjar Obsoletes: icedtea6-jar Obsoletes: icedtea7-jar Obsoletes: icedtea8-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 appletviewer Summary: OpenJDK - appletviewer tool Summary(pl.UTF-8): OpenJDK - narzędzie appletviewer Group: Development/Languages/Java Requires: %{name}-jdk-base = %{epoch}:%{version}-%{release} Requires: %{name}-jre-X11 = %{epoch}:%{version}-%{release} Obsoletes: icedtea6-appletviewer Obsoletes: icedtea7-appletviewer Obsoletes: icedtea8-appletviewer Obsoletes: java-sun-appletviewer Obsoletes: oracle-java7-appletviewer Obsoletes: oracle-java8-appletviewer %description appletviewer Appletviewer from OpenJDK build using free software only. %description appletviewer -l pl.UTF-8 Appletviewer pozwala uruchamiać aplety javy niezależnie od przeglądarki www. Ten appletviewer pochodzi z zestawu narzędzi OpenJDK i został zbudowany wyłącznie przy użyciu wolnego oprogramowania. %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 -q -c -T %ifarch %{arm} tar xf %{SOURCE1} --strip-components=1 %else tar xf %{SOURCE0} --strip-components=1 %endif %patch0 -p1 %patch1 -p1 %patch2 -p1 %patch3 -p1 %patch4 -p1 %patch5 -p1 %patch6 -p1 %patch7 -p1 %patch8 -p1 %patch9 -p1 %patch10 -p1 %ifarch %{arm} %patch12 -p1 %endif %patch13 -p1 %patch14 -p1 %patch15 -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 unset JAVA_HOME unset CLASSPATH # force locking irrespective of cpu count determined based on /proc and /sys contents # https://lists.pld-linux.org/mailman/pipermail/pld-devel-en/2021-November/026415.html export _JAVA_OPTIONS=-XX:+AssumeMP mkdir -p build-bin export PATH="$(pwd)/build-bin:$PATH" cd common/autoconf %{__rm} generated-configure.sh %{__autoconf} -o generated-configure.sh cd ../.. export SHELL=/bin/bash chmod a+x configure # disable-debug-symbols so openjdk debuginfo handling won't conflict with ours %configure \ %ifarch x32 --with-jvm-variants=zero \ %else --with-jvm-variants=%{jvm_type} \ %endif --with-boot-jdk="%{java_home}" \ --with-extra-cflags="%{rpmcppflags} %{rpmcflags}" \ --with-extra-cxxflags="%{rpmcppflags} %{rpmcxxflags}" \ --with-extra-ldflags="%{rpmldflags}" \ --with-native-debug-symbols=none \ --with-jobs="%{__jobs}" \ --with-giflib=system \ --with-libjpeg=system \ --with-libpng=system \ --with-lcms=system \ --with-libpcsclite=system \ --with-zlib=system \ --with-update-version="%{ver_u}" \ --with-build-number="%{release}" \ --with-milestone="ga" \ --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" specdir="$(dirname build/*-release/spec.gmk)" cat > $specdir/custom-spec.gmk <