* [devel] Пакеты с java-21 и i586
@ 2025-11-29 21:09 Ivan Khanas
0 siblings, 0 replies; only message 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] only message in thread
only message in thread, other threads:[~2025-11-29 21:09 UTC | newest]
Thread overview: (only message) (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
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