From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.1 (2015-04-28) on sa.local.altlinux.org X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham autolearn_force=no version=3.4.1 Message-ID: Date: Sun, 30 Nov 2025 00:09:52 +0300 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Content-Language: en-US To: devel@lists.altlinux.org From: Ivan Khanas Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit Subject: [devel] =?utf-8?b?0J/QsNC60LXRgtGLINGBIGphdmEtMjEg0LggaTU4Ng==?= X-BeenThere: devel@lists.altlinux.org X-Mailman-Version: 2.1.12 Precedence: list Reply-To: ALT Linux Team development discussions List-Id: ALT Linux Team development discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 29 Nov 2025 21:10:02 -0000 Archived-At: List-Archive: List-Post: Всем привет! Возникла проблема с пакетами требующими 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 следующую конфигурацию:                     --enable-preview --add-exports=jdk.compiler/com.sun.tools.javac.api=ALL-UNNAMED --add-exports=jdk.compiler/com.sun.tools.javac.code=ALL-UNNAMED --add-exports=jdk.compiler/com.sun.tools.javac.comp=ALL-UNNAMED --add-exports=jdk.compiler/com.sun.tools.javac.util=ALL-UNNAMED --add-exports=jdk.compiler/com.sun.tools.javac.tree=ALL-UNNAMED --add-exports=jdk.compiler/com.sun.tools.javac.parser=ALL-UNNAMED --add-exports=jdk.compiler/com.sun.tools.javac.processing=ALL-UNNAMED --add-exports=jdk.compiler/com.sun.tools.javac.model=ALL-UNNAMED --add-exports=jdk.compiler/com.sun.tools.javac.main=ALL-UNNAMED --add-exports=jdk.compiler/com.sun.tools.javac.file=ALL-UNNAMED         Но в таком случае, все зависящие пакеты придется патчить добавляя  --enable-preview  и пытаясь их откомпилировать под java 17. Причем порой это не помогает, примером может послужить проект google-java-format в котором в pom.xml  используется:                       -Xplugin:ErrorProne           и                                     com.google.errorprone error_prone_core               ${errorprone.version}                       В таком случае, даже если добавить --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' несмотря на:           17           17 Исходя из этого, предлагаю пакеты, требующие java 21, собирать с java 21, а i586 исключать, создав макрос %java_arches, и в пакетах, в которых по той или иной причине потребуется исключить i586, прописывать: ExclusiveArch: %java_arches BuildArch: noarch В таком случае i586 исключается, а бинарные пакеты остаются noarch. Если кто-нибудь знает другое решение, то прошу озвучить его в этом чате. Буду очень благодарен. Всем спасибо за внимание!