[devel] Пакеты с java-21 и i586

Andrey Cherepanov cas на altlinux.org
Пн Дек 1 10:40:04 MSK 2025


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



Подробная информация о списке рассылки Devel