%global security_hardening none %define jdk_major_version 17 %define _use_internal_dependency_generator 0 %bcond_with 32bit Name: openjdk17 Version: 17.0.20 Release: 1%{?dist} Summary: OpenJDK 17 - open source implementation of Java SE 17 platform Summary(ru): Открытая реализация платформы Java SE 17 License: GPL-2.0-only WITH Classpath-exception-2.0 URL: https://github.com/openjdk/jdk17u Source0: https://github.com/openjdk/jdk17u/archive/refs/tags/jdk-%{version}+5.tar.gz Source1: https://anduin.linuxfromscratch.org/BLFS/OpenJDK/OpenJDK-17.0.2/OpenJDK-17.0.2+8-x86_64-bin.tar.xz Packager: NICE SOFT GROUP LLC (ООО "НАЙС СОФТ ГРУПП") 5024245440 Vendor: NiceSOFT Distribution: NiceOS.Core BugURL: https://bugs.niceos.ru/ VCS: https://specs.niceos.ru/rmps/%{name} AutoReqProv: no BuildRequires: alsa-lib BuildRequires: alsa-lib-devel BuildRequires: ca-certificates BuildRequires: chkconfig BuildRequires: cups BuildRequires: cups-devel BuildRequires: elfutils-libelf-devel BuildRequires: fontconfig-devel BuildRequires: freetype2 BuildRequires: freetype2-devel BuildRequires: glib-devel BuildRequires: harfbuzz-devel BuildRequires: icu BuildRequires: icu-devel BuildRequires: libX11 BuildRequires: libX11-devel BuildRequires: libXau BuildRequires: libXau-devel BuildRequires: libXdmcp BuildRequires: libXdmcp-devel BuildRequires: libXext BuildRequires: libXext-devel BuildRequires: libXi BuildRequires: libXi-devel BuildRequires: libXrandr BuildRequires: libXrandr-devel BuildRequires: libXrender BuildRequires: libXrender-devel BuildRequires: libXt BuildRequires: libXt-devel BuildRequires: libXtst BuildRequires: libXtst-devel BuildRequires: libxcb BuildRequires: libxcb-devel BuildRequires: pcre-devel BuildRequires: pcre2-devel BuildRequires: proto BuildRequires: unzip BuildRequires: util-macros BuildRequires: which BuildRequires: xcb-proto BuildRequires: xtrans BuildRequires: zip BuildRequires: zlib-devel BuildRequires: autoconf BuildRequires: libstdc++-devel BuildRequires: libstdc++ Requires: chkconfig Requires: %{name}-jre = %{version}-%{release} Requires(postun): chkconfig %description OpenJDK 17 is a free and open source implementation of the Java Platform, Standard Edition (Java SE) version 17. It includes the Java Virtual Machine, class libraries, and development tools required to build and run Java applications. %description -l ru OpenJDK 17 — бесплатная и открытая реализация платформы Java Standard Edition (Java SE) версии 17. Она включает виртуальную машину Java, библиотеки классов и инструменты разработки, необходимые для создания и запуска Java-приложений. %package jre Summary: JRE subpackage for OpenJDK 17, containing the Java Runtime Environment Summary(ru): Подпакет JRE для OpenJDK 17, содержащий среду выполнения Java Requires: alsa-lib Requires: chkconfig Requires: freetype2 Requires: libgcc Requires: libstdc++ Requires: zlib Requires(postun): chkconfig %description -n %{name}-jre The %{name}-jre package provides the Java Runtime Environment required to run applications written in Java. It includes the Java Virtual Machine and the core runtime libraries. %description -l ru -n %{name}-jre Пакет %{name}-jre предоставляет среду выполнения Java, необходимую для запуска приложений, написанных на Java. Он включает виртуальную машину Java и основные runtime-библиотеки. %package doc Summary: Documentation for OpenJDK 17 Summary(ru): Документация для OpenJDK 17 Requires: %{name} = %{version}-%{release} %description -n %{name}-doc Documentation for OpenJDK 17, including manuals, references, and technical materials for developers and users. %description -l ru -n %{name}-doc Документация для OpenJDK 17, включая руководства, справочные материалы и технические описания для разработчиков и пользователей. %package src Summary: OpenJDK 17 source code Summary(ru): Исходный код OpenJDK 17 Requires: %{name} = %{version}-%{release} %description -n %{name}-src The %{name}-src package contains the OpenJDK 17 source archive used for development and debugging. %description -l ru -n %{name}-src Пакет %{name}-src содержит архив исходных кодов OpenJDK 17, используемый для разработки и отладки. %prep %autosetup -p1 -n jdk17u-jdk-%{version}-5 # RU: Распаковка Source1 (бинарного JDK) во временный каталог. # EN: Unpack Source1 (binary JDK) into a temporary directory. mkdir -p build_boot_jdk tar -xvf %{SOURCE1} -C build_boot_jdk %build chmod a+x ./configur* unset JAVA_HOME ENABLE_HEADLESS_ONLY="true" BOOT_JDK=$(find build_boot_jdk -type d -name "OpenJDK-*" | head -n 1) export JAVA_HOME=$BOOT_JDK export PATH=$JAVA_HOME/bin:$PATH sh ./configur* \ --enable-unlimited-crypto \ --with-zlib=system \ --with-target-bits=64 \ --enable-headless-only \ --with-extra-cxxflags="-Wno-error -fno-delete-null-pointer-checks -fno-lifetime-dse" \ --with-extra-cflags="-fno-delete-null-pointer-checks -Wno-error -fno-lifetime-dse" \ --with-freetype-include=%{_includedir}/freetype2 \ --with-freetype-lib=%{_libdir} \ --with-stdc++lib=dynamic \ --disable-warnings-as-errors \ --with-cacerts-file=/etc/pki/tls/java/cacerts mkdir -p %{_datadir}/java make \ DISABLE_HOTSPOT_OS_VERSION_CHECK=ok \ SCTP_WERROR= \ BUILD_HEADLESS_ONLY=1 \ OPENJDK_TARGET_OS=linux \ STRIP_POLICY=no_strip \ POST_STRIP_CMD="" \ LOG=trace \ JOBS=$(nproc) %install unset JAVA_HOME make install JOBS=$(nproc) install -vdm755 %{buildroot}%{_libdir}/jvm/OpenJDK-%{jdk_major_version} chown -R root:root %{buildroot}%{_libdir}/jvm/OpenJDK-%{jdk_major_version} install -vdm755 %{buildroot}%{_bindir} mv %{_usr}/local/jvm/openjdk-%{version}-internal/* \ %{buildroot}%{_libdir}/jvm/OpenJDK-%{jdk_major_version}/ cp README.md LICENSE ASSEMBLY_EXCEPTION \ %{buildroot}%{_libdir}/jvm/OpenJDK-%{jdk_major_version}/ %post jre alternatives --install %{_bindir}/java java %{_libdir}/jvm/OpenJDK-%{jdk_major_version}/bin/java 30000 \ --slave %{_bindir}/keytool keytool %{_libdir}/jvm/OpenJDK-%{jdk_major_version}/bin/keytool \ --slave %{_bindir}/pack200 pack200 %{_libdir}/jvm/OpenJDK-%{jdk_major_version}/bin/pack200 \ --slave %{_bindir}/rmiregistry rmiregistry %{_libdir}/jvm/OpenJDK-%{jdk_major_version}/bin/rmiregistry # RU: Нельзя использовать %post -p /sbin/ldconfig, т.к. здесь уже есть кастомный скрипт alternatives. # EN: Cannot use %post -p /sbin/ldconfig because this subpackage already has a custom alternatives scriptlet. /sbin/ldconfig %postun jre if [ $1 -eq 0 ]; then alternatives --remove java %{_libdir}/jvm/OpenJDK-%{jdk_major_version}/bin/java fi # RU: Обновляем кэш ldconfig после удаления. # EN: Refresh ldconfig cache after removal. /sbin/ldconfig %post alternatives --install %{_bindir}/javac javac %{_libdir}/jvm/OpenJDK-%{jdk_major_version}/bin/javac 30000 \ --slave %{_bindir}/appletviewer appletviewer %{_libdir}/jvm/OpenJDK-%{jdk_major_version}/bin/appletviewer \ --slave %{_bindir}/idlj idlj %{_libdir}/jvm/OpenJDK-%{jdk_major_version}/bin/idlj \ --slave %{_bindir}/jar jar %{_libdir}/jvm/OpenJDK-%{jdk_major_version}/bin/jar \ --slave %{_bindir}/jarsigner jarsigner %{_libdir}/jvm/OpenJDK-%{jdk_major_version}/bin/jarsigner \ --slave %{_bindir}/jhsdb jhsdb %{_libdir}/jvm/OpenJDK-%{jdk_major_version}/bin/jhsdb \ --slave %{_bindir}/jimage jimage %{_libdir}/jvm/OpenJDK-%{jdk_major_version}/bin/jimage \ --slave %{_bindir}/jlink jlink %{_libdir}/jvm/OpenJDK-%{jdk_major_version}/bin/jlink \ --slave %{_bindir}/jmod jmod %{_libdir}/jvm/OpenJDK-%{jdk_major_version}/bin/jmod \ --slave %{_bindir}/javadoc javadoc %{_libdir}/jvm/OpenJDK-%{jdk_major_version}/bin/javadoc \ --slave %{_bindir}/javah javah %{_libdir}/jvm/OpenJDK-%{jdk_major_version}/bin/javah \ --slave %{_bindir}/javap javap %{_libdir}/jvm/OpenJDK-%{jdk_major_version}/bin/javap \ --slave %{_bindir}/jcmd jcmd %{_libdir}/jvm/OpenJDK-%{jdk_major_version}/bin/jcmd \ --slave %{_bindir}/jdeprscan jdeprscan %{_libdir}/jvm/OpenJDK-%{jdk_major_version}/bin/jdeprscan \ --slave %{_bindir}/jconsole jconsole %{_libdir}/jvm/OpenJDK-%{jdk_major_version}/bin/jconsole \ --slave %{_bindir}/jdb jdb %{_libdir}/jvm/OpenJDK-%{jdk_major_version}/bin/jdb \ --slave %{_bindir}/jdeps jdeps %{_libdir}/jvm/OpenJDK-%{jdk_major_version}/bin/jdeps \ --slave %{_bindir}/jinfo jinfo %{_libdir}/jvm/OpenJDK-%{jdk_major_version}/bin/jinfo \ --slave %{_bindir}/jmap jmap %{_libdir}/jvm/OpenJDK-%{jdk_major_version}/bin/jmap \ --slave %{_bindir}/jps jps %{_libdir}/jvm/OpenJDK-%{jdk_major_version}/bin/jps \ --slave %{_bindir}/jrunscript jrunscript %{_libdir}/jvm/OpenJDK-%{jdk_major_version}/bin/jrunscript \ --slave %{_bindir}/jstack jstack %{_libdir}/jvm/OpenJDK-%{jdk_major_version}/bin/jstack \ --slave %{_bindir}/jstat jstat %{_libdir}/jvm/OpenJDK-%{jdk_major_version}/bin/jstat \ --slave %{_bindir}/jstatd jstatd %{_libdir}/jvm/OpenJDK-%{jdk_major_version}/bin/jstatd \ --slave %{_bindir}/schemagen schemagen %{_libdir}/jvm/OpenJDK-%{jdk_major_version}/bin/schemagen \ --slave %{_bindir}/serialver serialver %{_libdir}/jvm/OpenJDK-%{jdk_major_version}/bin/serialver \ --slave %{_bindir}/wsgen wsgen %{_libdir}/jvm/OpenJDK-%{jdk_major_version}/bin/wsgen \ --slave %{_bindir}/wsimport wsimport %{_libdir}/jvm/OpenJDK-%{jdk_major_version}/bin/wsimport \ --slave %{_bindir}/xjc xjc %{_libdir}/jvm/OpenJDK-%{jdk_major_version}/bin/xjc \ --slave %{_bindir}/jpackage jpackage %{_libdir}/jvm/OpenJDK-%{jdk_major_version}/bin/jpackage # RU: Нельзя использовать %post -p /sbin/ldconfig, т.к. здесь уже есть кастомный скрипт alternatives. # EN: Cannot use %post -p /sbin/ldconfig because this package already has a custom alternatives scriptlet. /sbin/ldconfig %postun # Do alternative remove only in case of uninstall if [ $1 -eq 0 ]; then alternatives --remove javac %{_libdir}/jvm/OpenJDK-%{jdk_major_version}/bin/javac fi # RU: Обновляем кэш ldconfig после удаления. # EN: Refresh ldconfig cache after removal. /sbin/ldconfig %clean # RU: В исходнике был небезопасный шаблон удаления вне buildroot; ограничиваем очистку buildroot. # EN: The original had an unsafe cleanup glob outside buildroot; restrict cleanup to buildroot. rm -rf %{buildroot}/* %{buildroot}%{_libdir}/jvm/OpenJDK-* %files %defattr(-,root,root) %{_libdir}/jvm/OpenJDK-%{jdk_major_version}/LICENSE %{_libdir}/jvm/OpenJDK-%{jdk_major_version}/README.md %{_libdir}/jvm/OpenJDK-%{jdk_major_version}/bin/jar %{_libdir}/jvm/OpenJDK-%{jdk_major_version}/bin/jarsigner %{_libdir}/jvm/OpenJDK-%{jdk_major_version}/bin/javac %{_libdir}/jvm/OpenJDK-%{jdk_major_version}/bin/javadoc %{_libdir}/jvm/OpenJDK-%{jdk_major_version}/bin/javap %{_libdir}/jvm/OpenJDK-%{jdk_major_version}/bin/jcmd %{_libdir}/jvm/OpenJDK-%{jdk_major_version}/bin/jconsole %{_libdir}/jvm/OpenJDK-%{jdk_major_version}/bin/jdb %{_libdir}/jvm/OpenJDK-%{jdk_major_version}/bin/jdeps %{_libdir}/jvm/OpenJDK-%{jdk_major_version}/bin/jinfo %{_libdir}/jvm/OpenJDK-%{jdk_major_version}/bin/jlink %{_libdir}/jvm/OpenJDK-%{jdk_major_version}/bin/jmod %{_libdir}/jvm/OpenJDK-%{jdk_major_version}/bin/jmap %{_libdir}/jvm/OpenJDK-%{jdk_major_version}/bin/jps %{_libdir}/jvm/OpenJDK-%{jdk_major_version}/bin/jshell %{_libdir}/jvm/OpenJDK-%{jdk_major_version}/bin/jrunscript %{_libdir}/jvm/OpenJDK-%{jdk_major_version}/bin/jstack %{_libdir}/jvm/OpenJDK-%{jdk_major_version}/bin/jstat %{_libdir}/jvm/OpenJDK-%{jdk_major_version}/bin/jstatd %{_libdir}/jvm/OpenJDK-%{jdk_major_version}/bin/serialver %{_libdir}/jvm/OpenJDK-%{jdk_major_version}/bin/jhsdb %{_libdir}/jvm/OpenJDK-%{jdk_major_version}/bin/jimage %{_libdir}/jvm/OpenJDK-%{jdk_major_version}/bin/jdeprscan %{_libdir}/jvm/OpenJDK-%{jdk_major_version}/bin/jfr %{_libdir}/jvm/OpenJDK-%{jdk_major_version}/bin/jpackage %{_libdir}/jvm/OpenJDK-%{jdk_major_version}/include/ %{_libdir}/jvm/OpenJDK-%{jdk_major_version}/lib/ct.sym %files jre %defattr(-,root,root) %{_libdir}/jvm/OpenJDK-%{jdk_major_version}/ASSEMBLY_EXCEPTION %{_libdir}/jvm/OpenJDK-%{jdk_major_version}/release %{_libdir}/jvm/OpenJDK-%{jdk_major_version}/lib %exclude %{_libdir}/jvm/OpenJDK-%{jdk_major_version}/lib/ct.sym %{_libdir}/jvm/OpenJDK-%{jdk_major_version}/conf %{_libdir}/jvm/OpenJDK-%{jdk_major_version}/jmods %{_libdir}/jvm/OpenJDK-%{jdk_major_version}/bin/java %{_libdir}/jvm/OpenJDK-%{jdk_major_version}/bin/keytool %{_libdir}/jvm/OpenJDK-%{jdk_major_version}/bin/rmiregistry %exclude %{_libdir}/jvm/OpenJDK-%{jdk_major_version}/bin/*.debuginfo %files doc %defattr(-,root,root) %{_libdir}/jvm/OpenJDK-%{jdk_major_version}/man/ %{_libdir}/jvm/OpenJDK-%{jdk_major_version}/legal/ %{_libdir}/jvm/OpenJDK-%{jdk_major_version}/demo %files src %defattr(-,root,root) %{_libdir}/jvm/OpenJDK-%{jdk_major_version}/lib/src.zip %changelog * Wed Jul 22 2026 NiceOS Team - 17.0.20-1 - EN: Update to upstream version 17.0.20. - RU: Обновление до upstream-версии 17.0.20. * Sat May 02 2026 NiceOS Team - 17.0.19-1 - EN: - Update OpenJDK 17 to upstream 17.0.19. - Refresh source and packaging metadata for the new 17u tag. - RU: - Обновить OpenJDK 17 до upstream 17.0.19. - Обновить источник и метаданные упаковки под новый тег 17u. * Sun Jan 11 2026 NiceOS Team - 17.0.17-1 - Initial build for NiceOS (Первая сборка для НАЙС.ОС)