ALT Linux Team development discussions
 help / color / mirror / Atom feed
* [devel] Пакеты с java-21 и i586
@ 2025-11-29 21:09 Ivan Khanas
  2025-11-30 11:36 ` Anton Farygin
                   ` (2 more replies)
  0 siblings, 3 replies; 5+ messages in thread
From: Ivan Khanas @ 2025-11-29 21:09 UTC (permalink / raw)
  To: devel

Всем привет! Возникла проблема с пакетами требующими java 21.

Примером такого пакета является google-error-prone:

https://packages.altlinux.org/en/sisyphus/srpms/google-error-prone

Дело в том, что модули core и check_api требуют java 21 для компиляции, 
но в таком случае для них придется исключить i586.
Если поступить таким образом, то, в таком случае во всех зависящих от 
них пакетов придется делать то же самое, и эта цепочка может быть в 
конечном итоге очень и очень длинной.

Если пропатчив, понизить версию до java 17, то приходится использовать 
аргумент компилятора --enable-preview, тоесть добавлять в pom.xml для
maven-compiler-plugin следующую конфигурацию:

         <compilerArgs>
             <arg>--enable-preview</arg>
<arg>--add-exports=jdk.compiler/com.sun.tools.javac.api=ALL-UNNAMED</arg>
<arg>--add-exports=jdk.compiler/com.sun.tools.javac.code=ALL-UNNAMED</arg>
<arg>--add-exports=jdk.compiler/com.sun.tools.javac.comp=ALL-UNNAMED</arg>
<arg>--add-exports=jdk.compiler/com.sun.tools.javac.util=ALL-UNNAMED</arg>
<arg>--add-exports=jdk.compiler/com.sun.tools.javac.tree=ALL-UNNAMED</arg>
<arg>--add-exports=jdk.compiler/com.sun.tools.javac.parser=ALL-UNNAMED</arg>
<arg>--add-exports=jdk.compiler/com.sun.tools.javac.processing=ALL-UNNAMED</arg>
<arg>--add-exports=jdk.compiler/com.sun.tools.javac.model=ALL-UNNAMED</arg>
<arg>--add-exports=jdk.compiler/com.sun.tools.javac.main=ALL-UNNAMED</arg>
<arg>--add-exports=jdk.compiler/com.sun.tools.javac.file=ALL-UNNAMED</arg>
         </compilerArgs>

Но в таком случае, все зависящие пакеты придется патчить добавляя 
  <arg>--enable-preview</arg>  и пытаясь их откомпилировать под java 17.

Причем порой это не помогает, примером может послужить проект 
google-java-format в котором в pom.xml  используется:

           <compilerArgs>
             <arg>-Xplugin:ErrorProne</arg>
           <compilerArgs>

и

           <annotationProcessorPaths>
             <path>
               <groupId>com.google.errorprone</groupId>
<artifactId>error_prone_core</artifactId>
               <version>${errorprone.version}</version>
             </path>
           </annotationProcessorPaths>

В таком случае, даже если добавить --enable-preview, и поставить 
jpackage-17-compat, то получим ошибку:

[INFO] Compiling 47 source files with javac [debug target 17] to 
target/classes
An exception has occurred in the compiler (17.0.17). Please file a bug 
against the Java compiler via the Java bug reporting page 
(https://bugreport.java.com) after checking the Bug Database 
(https://bugs.java.com) for duplicates. Include your program, the 
following diagnostic, and the parameters passed to the Java compiler in 
your report. Thank you.
java.lang.UnsupportedClassVersionError: Preview features are not enabled 
for com/google/errorprone/bugpatterns/AbstractMustBeClosedChecker (class 
file version 61.65535). Try running with '--enable-preview'

несмотря на:

           <source>17</source>
           <target>17</target>

Исходя из этого, предлагаю пакеты, требующие java 21, собирать с java 
21, а i586 исключать, создав макрос %java_arches, и в пакетах, в которых 
по той или иной причине потребуется исключить i586, прописывать:

ExclusiveArch: %java_arches
BuildArch: noarch

В таком случае i586 исключается, а бинарные пакеты остаются noarch.

Если кто-нибудь знает другое решение, то прошу озвучить его в этом чате. 
Буду очень благодарен. Всем спасибо за внимание!



^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [devel] Пакеты с java-21 и i586
  2025-11-29 21:09 [devel] Пакеты с java-21 и i586 Ivan Khanas
@ 2025-11-30 11:36 ` Anton Farygin
  2025-12-01  6:13   ` Sergey V Turchin
  2025-11-30 11:36 ` Artem Semenov
  2025-12-01  7:40 ` Andrey Cherepanov
  2 siblings, 1 reply; 5+ messages in thread
From: Anton Farygin @ 2025-11-30 11:36 UTC (permalink / raw)
  To: devel

On 11/30/25 00:09, Ivan Khanas wrote:
> Дело в том, что модули core и check_api требуют java 21 для 
> компиляции, но в таком случае для них придется исключить i586. 

Я бы ввёл такое понятие в каком-то rpm-macros-java как java_arch и во 
всех пакетах делал ExclusiveArch на java_arch.

примерно так сделано тут 
https://git.altlinux.org/gears/r/rpm-build-ocaml.git?p=rpm-build-ocaml.git;a=blob;f=scripts/ocaml;h=faf2e735fe495cebea6c3bc8d7aa8d840a81e2ea;hb=e9666a1024bfb76b7fa121b3f9ef783db088c748 
:
%ocaml_native_arch x86_64 riscv64 aarch64




^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [devel] Пакеты с java-21 и i586
  2025-11-29 21:09 [devel] Пакеты с java-21 и i586 Ivan Khanas
  2025-11-30 11:36 ` Anton Farygin
@ 2025-11-30 11:36 ` Artem Semenov
  2025-12-01  7:40 ` Andrey Cherepanov
  2 siblings, 0 replies; 5+ messages in thread
From: Artem Semenov @ 2025-11-30 11:36 UTC (permalink / raw)
  To: devel



30.11.2025 00:09, Ivan Khanas пишет:
> Всем привет! Возникла проблема с пакетами требующими java 21.
> 
> Примером такого пакета является google-error-prone:
> 
> https://packages.altlinux.org/en/sisyphus/srpms/google-error-prone
> 
> Дело в том, что модули core и check_api требуют java 21 для компиляции, 
> но в таком случае для них придется исключить i586.
> Если поступить таким образом, то, в таком случае во всех зависящих от 
> них пакетов придется делать то же самое, и эта цепочка может быть в 
> конечном итоге очень и очень длинной.
> 

[...]

> 
> Исходя из этого, предлагаю пакеты, требующие java 21, собирать с java 
> 21, а i586 исключать, создав макрос %java_arches, и в пакетах, в которых 
> по той или иной причине потребуется исключить i586, прописывать:
> 
> ExclusiveArch: %java_arches
> BuildArch: noarch
> 
> В таком случае i586 исключается, а бинарные пакеты остаются noarch.
> 
> Если кто-нибудь знает другое решение, то прошу озвучить его в этом чате. 
> Буду очень благодарен. Всем спасибо за внимание!
> 
На сколько я понимаю из соседнего обсуждения отказ от I586 -- дело 
времени... Вроде как его тормозит только wine... так что мне этот план 
кажется разумным. Потому как раскрытие пакетов через их экспорт -- дело 
не правильное, не смотря на то, что используется повсеместно, чтобы 
открыть то, что не входит в публичное APi, это черевато выигрышем на 
короткой дистанции, но преведёт к усложнению поддержки на длинной.

Тем более если уж апстрим отказался от поддержки java 17, очень странно 
впиливать её туда насильно... При том что реализация этих же вещей в 
режиме превью и стабильность их работы может сильно отличаться от того, 
чтоб уже вышло в релиз в 21.



^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [devel] Пакеты с java-21 и i586
  2025-11-30 11:36 ` Anton Farygin
@ 2025-12-01  6:13   ` Sergey V Turchin
  0 siblings, 0 replies; 5+ messages in thread
From: Sergey V Turchin @ 2025-12-01  6:13 UTC (permalink / raw)
  To: ALT Linux Team development discussions

On Sunday, 30 November 2025 14:36:39 MSK Anton Farygin wrote:
> On 11/30/25 00:09, Ivan Khanas wrote:
> > Дело в том, что модули core и check_api требуют java 21 для
> > компиляции, но в таком случае для них придется исключить i586.
> 
> Я бы ввёл такое понятие в каком-то rpm-macros-java как java_arch и во
> всех пакетах делал ExclusiveArch на java_arch.
> > ExclusiveArch: %java_arches
В изначальном письме так и предложили.

[...]

-- 
Regards, Sergey.

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [devel] Пакеты с java-21 и i586
  2025-11-29 21:09 [devel] Пакеты с java-21 и i586 Ivan Khanas
  2025-11-30 11:36 ` Anton Farygin
  2025-11-30 11:36 ` Artem Semenov
@ 2025-12-01  7:40 ` Andrey Cherepanov
  2 siblings, 0 replies; 5+ messages in thread
From: Andrey Cherepanov @ 2025-12-01  7:40 UTC (permalink / raw)
  To: devel

30.11.2025 00:09, Ivan Khanas пишет:
> Всем привет! Возникла проблема с пакетами требующими java 21.
>
> Примером такого пакета является google-error-prone:
>
> https://packages.altlinux.org/en/sisyphus/srpms/google-error-prone
>
> Дело в том, что модули core и check_api требуют java 21 для 
> компиляции, но в таком случае для них придется исключить i586.
> Если поступить таким образом, то, в таком случае во всех зависящих от 
> них пакетов придется делать то же самое, и эта цепочка может быть в 
> конечном итоге очень и очень длинной.
>
> Если пропатчив, понизить версию до java 17, то приходится использовать 
> аргумент компилятора --enable-preview, тоесть добавлять в pom.xml для
> maven-compiler-plugin следующую конфигурацию:
>
>         <compilerArgs>
>             <arg>--enable-preview</arg>
> <arg>--add-exports=jdk.compiler/com.sun.tools.javac.api=ALL-UNNAMED</arg>
> <arg>--add-exports=jdk.compiler/com.sun.tools.javac.code=ALL-UNNAMED</arg> 
>
> <arg>--add-exports=jdk.compiler/com.sun.tools.javac.comp=ALL-UNNAMED</arg> 
>
> <arg>--add-exports=jdk.compiler/com.sun.tools.javac.util=ALL-UNNAMED</arg> 
>
> <arg>--add-exports=jdk.compiler/com.sun.tools.javac.tree=ALL-UNNAMED</arg> 
>
> <arg>--add-exports=jdk.compiler/com.sun.tools.javac.parser=ALL-UNNAMED</arg> 
>
> <arg>--add-exports=jdk.compiler/com.sun.tools.javac.processing=ALL-UNNAMED</arg> 
>
> <arg>--add-exports=jdk.compiler/com.sun.tools.javac.model=ALL-UNNAMED</arg> 
>
> <arg>--add-exports=jdk.compiler/com.sun.tools.javac.main=ALL-UNNAMED</arg> 
>
> <arg>--add-exports=jdk.compiler/com.sun.tools.javac.file=ALL-UNNAMED</arg> 
>
>         </compilerArgs>
>
> Но в таком случае, все зависящие пакеты придется патчить добавляя 
>  <arg>--enable-preview</arg>  и пытаясь их откомпилировать под java 17.
>
> Причем порой это не помогает, примером может послужить проект 
> google-java-format в котором в pom.xml  используется:
>
>           <compilerArgs>
>             <arg>-Xplugin:ErrorProne</arg>
>           <compilerArgs>
>
> и
>
>           <annotationProcessorPaths>
>             <path>
>               <groupId>com.google.errorprone</groupId>
> <artifactId>error_prone_core</artifactId>
>               <version>${errorprone.version}</version>
>             </path>
>           </annotationProcessorPaths>
>
> В таком случае, даже если добавить --enable-preview, и поставить 
> jpackage-17-compat, то получим ошибку:
>
> [INFO] Compiling 47 source files with javac [debug target 17] to 
> target/classes
> An exception has occurred in the compiler (17.0.17). Please file a bug 
> against the Java compiler via the Java bug reporting page 
> (https://bugreport.java.com) after checking the Bug Database 
> (https://bugs.java.com) for duplicates. Include your program, the 
> following diagnostic, and the parameters passed to the Java compiler 
> in your report. Thank you.
> java.lang.UnsupportedClassVersionError: Preview features are not 
> enabled for 
> com/google/errorprone/bugpatterns/AbstractMustBeClosedChecker (class 
> file version 61.65535). Try running with '--enable-preview'
>
> несмотря на:
>
>           <source>17</source>
>           <target>17</target>
>
> Исходя из этого, предлагаю пакеты, требующие java 21, собирать с java 
> 21, а i586 исключать, создав макрос %java_arches, и в пакетах, в 
> которых по той или иной причине потребуется исключить i586, прописывать:
>
> ExclusiveArch: %java_arches
> BuildArch: noarch
>
> В таком случае i586 исключается, а бинарные пакеты остаются noarch.
>
> Если кто-нибудь знает другое решение, то прошу озвучить его в этом 
> чате. Буду очень благодарен. Всем спасибо за внимание!
>
> _______________________________________________
> Devel mailing list
> Devel@lists.altlinux.org
> https://lists.altlinux.org/mailman/listinfo/devel

Подождать бутстрап java-25-openjdk

-- 
Andrey Cherepanov
cas@altlinux.org



^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2025-12-01  7:40 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2025-11-29 21:09 [devel] Пакеты с java-21 и i586 Ivan Khanas
2025-11-30 11:36 ` Anton Farygin
2025-12-01  6:13   ` Sergey V Turchin
2025-11-30 11:36 ` Artem Semenov
2025-12-01  7:40 ` Andrey Cherepanov

ALT Linux Team development discussions

This inbox may be cloned and mirrored by anyone:

	git clone --mirror http://lore.altlinux.org/devel/0 devel/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 devel devel/ http://lore.altlinux.org/devel \
		devel@altlinux.org devel@altlinux.ru devel@lists.altlinux.org devel@lists.altlinux.ru devel@linux.iplabs.ru mandrake-russian@linuxteam.iplabs.ru sisyphus@linuxteam.iplabs.ru
	public-inbox-index devel

Example config snippet for mirrors.
Newsgroup available over NNTP:
	nntp://lore.altlinux.org/org.altlinux.lists.devel


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git