## START: Set by rpmautospec ## (rpmautospec version 0.8.5) ## RPMAUTOSPEC: autorelease, autochangelog %define autorelease(e:s:pb:n) %{?-p:0.}%{lua: release_number = 1; base_release_number = tonumber(rpm.expand("%{?-b*}%{!?-b:1}")); print(release_number + base_release_number - 1); }%{?-e:.%{-e*}}%{?-s:.%{-s*}}%{!?-n:%{?dist}} ## END: Set by rpmautospec %global src_name bazel %global debug_package %{nil} %global __strip /bin/true %global java_version 25 Name: bazel-bootstrap Version: 9.2.0 Release: %autorelease Summary: A fast, scalable and extensible build system License: Apache-2.0 AND RSA-MD AND BSD-2-Clause AND BSD-3-Clause AND MIT AND MIT-0 AND Zlib AND (BSD-3-Clause OR GPL-2.0-only) AND (CC0-1.0 OR Apache-2.0 OR Apache-2.0 WITH LLVM-exception) AND LicenseRef-Fedora-Public-Domain URL: https://bazel.build Source0: https://github.com/bazelbuild/bazel/releases/download/%{version}/%{src_name}-%{version}-dist.zip Source1: https://github.com/bazelbuild/bazel/releases/download/%{version}/%{src_name}-%{version}-dist.zip.sig Source2: https://releases.bazel.build/bazel-release.pub.gpg Source3: bazel.bazelrc Source4: build-derived-jars.sh Source5: rehash-module-archives.sh # drop async-profiler + netty-tcnative (bundled BoringSSL) prebuild libs Patch0: drop-async-profiler-netty-tcnative.patch # drop velocity, snakeyaml, commonmark, chicory (wasm) and java-allocation-instrumenter Patch1: drop-optional-java-deps.patch # keep the bootstrap from compiling a test-only module (truth/junit/mockito) Patch2: bootstrap-skip-testonly-sources.patch # stop passing the deprecated -Xverify:none to the server JVM Patch3: no-xverify-none.patch ExclusiveArch: %{x86_64} %{arm64} BuildRequires: gcc BuildRequires: gcc-c++ BuildRequires: java-%{java_version}-openjdk-devel BuildRequires: openssl BuildRequires: python3-devel # Fedora packages used instead of the bundled ones BuildRequires: jcip-annotations BuildRequires: mvn(com.beust:jcommander) BuildRequires: mvn(com.google.code.findbugs:jsr305) BuildRequires: mvn(com.google.code.gson:gson) BuildRequires: mvn(com.google.guava:failureaccess) BuildRequires: mvn(com.google.guava:guava) BuildRequires: mvn(com.google.protobuf:protobuf-java) BuildRequires: mvn(com.google.protobuf:protobuf-java-util) BuildRequires: mvn(com.google.protobuf:protobuf-javalite) BuildRequires: mvn(commons-codec:commons-codec) BuildRequires: mvn(commons-collections:commons-collections) BuildRequires: mvn(commons-io:commons-io) BuildRequires: mvn(io.github.java-diff-utils:java-diff-utils) BuildRequires: mvn(javax.annotation:javax.annotation-api) BuildRequires: mvn(org.apache.commons:commons-compress) BuildRequires: mvn(org.apache.commons:commons-lang3) BuildRequires: mvn(org.apache.logging.log4j:log4j-api) BuildRequires: mvn(org.apache.logging.log4j:log4j-core) BuildRequires: mvn(org.jacoco:org.jacoco.core) BuildRequires: mvn(org.jetbrains:annotations) BuildRequires: mvn(org.ow2.asm:asm) BuildRequires: mvn(org.ow2.asm:asm-analysis) BuildRequires: mvn(org.ow2.asm:asm-commons) BuildRequires: mvn(org.ow2.asm:asm-tree) BuildRequires: mvn(org.ow2.asm:asm-util) BuildRequires: mvn(org.tukaani:xz) Requires: java-%{java_version}-openjdk-headless # bundled upstream sources/jars Provides: bundled(abseil-cpp) = 20250814.1 Provides: bundled(blake3) = 1.8.2 Provides: bundled(googleapis-java) = 0.0.0.20250604.de157ca3 Provides: bundled(mvn(com.github.ben-manes.caffeine:caffeine)) = 3.1.8 Provides: bundled(mvn(com.github.luben:zstd-jni)) = 1.5.6.9 Provides: bundled(mvn(com.google.android:annotations)) = 4.1.1.4 Provides: bundled(mvn(com.google.api-client:google-api-client)) = 1.35.2 Provides: bundled(mvn(com.google.api-client:google-api-client-gson)) = 1.35.2 Provides: bundled(mvn(com.google.api.grpc:proto-google-common-protos)) = 2.51.0 Provides: bundled(mvn(com.google.auth:google-auth-library-credentials)) = 1.24.1 Provides: bundled(mvn(com.google.auth:google-auth-library-oauth2-http)) = 1.24.1 Provides: bundled(mvn(com.google.auto.service:auto-service-annotations)) = 1.0.1 Provides: bundled(mvn(com.google.auto.value:auto-value-annotations)) = 1.11.0 Provides: bundled(mvn(com.google.errorprone:error_prone_annotations)) = 2.41.0 Provides: bundled(mvn(com.google.flogger:flogger)) = 0.5.1 Provides: bundled(mvn(com.google.flogger:flogger-system-backend)) = 0.5.1 Provides: bundled(mvn(com.google.flogger:google-extensions)) = 0.5.1 Provides: bundled(mvn(com.google.http-client:google-http-client)) = 1.44.2 Provides: bundled(mvn(com.google.http-client:google-http-client-apache-v2)) = 1.42.0 Provides: bundled(mvn(com.google.http-client:google-http-client-gson)) = 1.44.2 Provides: bundled(mvn(com.google.j2objc:j2objc-annotations)) = 3.1 Provides: bundled(mvn(com.google.oauth-client:google-oauth-client)) = 1.34.1 Provides: bundled(mvn(com.google.protobuf:protobuf-java)) = 33.4 Provides: bundled(mvn(com.ryanharter.auto.value:auto-value-gson-runtime)) = 1.3.1 Provides: bundled(mvn(io.grpc:grpc-java)) = 1.71.0 Provides: bundled(mvn(io.netty:netty-buffer)) = 4.1.119.Final Provides: bundled(mvn(io.netty:netty-codec)) = 4.1.119.Final Provides: bundled(mvn(io.netty:netty-codec-http)) = 4.1.119.Final Provides: bundled(mvn(io.netty:netty-codec-http2)) = 4.1.119.Final Provides: bundled(mvn(io.netty:netty-codec-socks)) = 4.1.119.Final Provides: bundled(mvn(io.netty:netty-common)) = 4.1.119.Final Provides: bundled(mvn(io.netty:netty-handler)) = 4.1.119.Final Provides: bundled(mvn(io.netty:netty-handler-proxy)) = 4.1.119.Final Provides: bundled(mvn(io.netty:netty-resolver)) = 4.1.119.Final Provides: bundled(mvn(io.netty:netty-resolver-dns)) = 4.1.119.Final Provides: bundled(mvn(io.netty:netty-transport)) = 4.1.119.Final Provides: bundled(mvn(io.netty:netty-transport-classes-epoll)) = 4.1.119.Final Provides: bundled(mvn(io.netty:netty-transport-classes-kqueue)) = 4.1.119.Final Provides: bundled(mvn(io.netty:netty-transport-native-unix-common)) = 4.1.119.Final Provides: bundled(mvn(io.opencensus:opencensus-api)) = 0.31.1 Provides: bundled(mvn(io.opencensus:opencensus-contrib-http-util)) = 0.31.1 Provides: bundled(mvn(io.perfmark:perfmark-api)) = 0.27.0 Provides: bundled(mvn(io.reactivex.rxjava3:rxjava)) = 3.1.2 Provides: bundled(mvn(io.sweers.autotransient:autotransient)) = 1.0.0 Provides: bundled(mvn(javax.annotation:javax.annotation-api)) = 1.3.2 Provides: bundled(mvn(org.apache.tomcat:annotations-api)) = 6.0.53 Provides: bundled(mvn(org.apache.tomcat:tomcat-annotations-api)) = 8.0.5 Provides: bundled(mvn(org.checkerframework:checker-compat-qual)) = 2.5.3 Provides: bundled(mvn(org.checkerframework:checker-qual)) = 3.42.0 Provides: bundled(mvn(org.codehaus.mojo:animal-sniffer-annotations)) = 1.24 Provides: bundled(mvn(org.jspecify:jspecify)) = 1.0.0 Provides: bundled(mvn(org.reactivestreams:reactive-streams)) = 1.0.3 Provides: bundled(zlib) = 1.3.1 Provides: bundled(zstd) = 1.5.6 # bundled Fedora packages Provides: bundled(mvn(com.github.stephenc.jcip:jcip-annotations)) = 1.0.1 Provides: bundled(mvn(com.google.code.findbugs:jsr305)) = 3.0.2 Provides: bundled(mvn(com.google.code.gson:gson)) = 2.12.1 Provides: bundled(mvn(com.google.guava:failureaccess)) = 1.0.3 Provides: bundled(mvn(com.google.guava:guava)) = 33.5.0.jre Provides: bundled(mvn(commons-codec:commons-codec)) = 1.19.0 Provides: bundled(mvn(commons-io:commons-io)) = 2.20.0 Provides: bundled(mvn(io.github.java-diff-utils:java-diff-utils)) = 4.17 Provides: bundled(mvn(org.apache.commons:commons-compress)) = 1.28.0 Provides: bundled(mvn(org.apache.commons:commons-lang3)) = 3.19.0 Provides: bundled(mvn(org.tukaani:xz)) = 1.12 Provides: bundled(mvn(javax.annotation:javax.annotation-api)) = 1.3.5 %description Bazel is an open-source build and test tool similar to Make, Maven and Gradle. It uses a human-readable, high-level build language. Bazel supports projects in multiple languages and builds outputs for multiple platforms. %prep %{gpgverify} --keyring='%{SOURCE2}' --signature='%{SOURCE1}' --data='%{SOURCE0}' %autosetup -c -p1 -n %{src_name} # lets remove prebuilt files # async-profiler + netty-tcnative (BoringSSL) for sha in 3b13a38a0063f6970d985a379ddaed91bcf37e239a1ea461d09eacf629f3dde1 \ 776548dceee32696b5f7b02bc63cc08b19dbfe74dc891e97fe3e29e07faa78cc \ c5fb058e212282e9384a26031a05119f5f3750c755b2b5fb6d08a6b67803ead0 \ d0cb9c97c380672b625c06e5a3ed578e990f4674c6aae8b5249f584c4c9ac50e; do rm -rf derived/repository_cache/content_addressable/sha256/$sha done rm -rf derived/jars/+async_profiler_repos+async_profiler rm -rf derived/maven/io/netty/netty-tcnative-boringssl-static rm -rf derived/maven/io/netty/netty-tcnative-classes # velocity, snakeyaml, commonmark, java-allocation-instrumenter and chicory rm -rf derived/maven/org/apache/velocity rm -rf derived/maven/org/yaml/snakeyaml rm -rf derived/maven/org/commonmark rm -rf derived/maven/com/google/code/java-allocation-instrumenter rm -rf derived/maven/com/dylibso rm -rf derived/jars/rules_jvm_external++maven+maven # prebuilt jars and test data the build never uses rm -f third_party/asm/*.jar rm -f third_party/java/jacoco/*-sources.jar \ third_party/java/jacoco/jacocoagent-*.jar \ third_party/java/jacoco/org.jacoco.{agent,ant,report}-*.jar rm -rf third_party/java/proguard/proguard6.2.2/{lib,bin,src,examples,buildscripts} rm -f third_party/ijar/test/*.jar third_party/ijar/test/*/*.jar rm -f src/tools/singlejar/data/*.{jar,zip} rm -f src/java_tools/import_deps_checker/javatests/com/google/devtools/build/importdeps/testdata/*.jar rm -f tools/build_defs/pkg/testdata/*.tar # test-only libraries (bazel's own tests) rm -rf derived/maven/junit rm -rf derived/maven/org/hamcrest rm -rf derived/maven/org/mockito rm -rf derived/maven/net/bytebuddy rm -rf derived/maven/org/objenesis rm -rf derived/maven/com/google/truth rm -rf derived/maven/com/google/jimfs rm -rf derived/maven/com/google/testing/compile rm -rf derived/maven/com/google/testparameterinjector rm -rf derived/maven/com/google/guava/guava-testlib rm -rf derived/maven/org/openjdk/jmh rm -rf derived/maven/org/openjdk/jol rm -rf derived/maven/net/sf/jopt-simple rm -rf derived/maven/org/apache/commons/commons-math3 # args4j rm -rf derived/maven/args4j # liblite_runtime_only rm -f derived/jars/protobuf+/java/core/liblite_runtime_only.jar # use fedora jars instead of bundled sysjar() { local tmp tmp=$(mktemp -d) unzip -q "$1" -d "$tmp" chmod -R u+rwX,go+rX "$tmp" rm -f "$2" jar --create --no-manifest --file "$2" -C "$tmp" . rm -rf "$tmp" } sysjar %{_javadir}/guava/guava.jar \ derived/maven/com/google/guava/guava/33.5.0-jre/guava-33.5.0-jre.jar sysjar %{_javadir}/guava/failureaccess.jar \ derived/maven/com/google/guava/failureaccess/1.0.3/failureaccess-1.0.3.jar sysjar %{_javadir}/beust-jcommander.jar \ derived/maven/com/beust/jcommander/1.82/jcommander-1.82.jar sysjar %{_javadir}/jsr-305.jar \ derived/maven/com/google/code/findbugs/jsr305/3.0.2/jsr305-3.0.2.jar sysjar %{_javadir}/commons-collections.jar \ derived/maven/commons-collections/commons-collections/3.2.2/commons-collections-3.2.2.jar sysjar %{_javadir}/jcip-annotations.jar \ derived/maven/com/github/stephenc/jcip/jcip-annotations/1.0-1/jcip-annotations-1.0-1.jar sysjar %{_javadir}/commons-codec.jar \ derived/maven/commons-codec/commons-codec/1.16.1/commons-codec-1.16.1.jar sysjar %{_javadir}/commons-io.jar \ derived/maven/commons-io/commons-io/2.15.1/commons-io-2.15.1.jar sysjar %{_javadir}/commons-lang3.jar \ derived/maven/org/apache/commons/commons-lang3/3.14.0/commons-lang3-3.14.0.jar sysjar %{_javadir}/commons-compress.jar \ derived/maven/org/apache/commons/commons-compress/1.26.1/commons-compress-1.26.1.jar sysjar %{_javadir}/xz-java.jar \ derived/maven/org/tukaani/xz/1.9/xz-1.9.jar sysjar %{_javadir}/java-diff-utils/java-diff-utils.jar \ derived/maven/io/github/java-diff-utils/java-diff-utils/4.12/java-diff-utils-4.12.jar sysjar %{_javadir}/google-gson/gson.jar \ derived/maven/com/google/code/gson/gson/2.11.0/gson-2.11.0.jar for a in asm asm-analysis asm-commons asm-tree asm-util; do sysjar %{_javadir}/objectweb-asm/$a.jar \ derived/maven/org/ow2/asm/$a/9.9/$a-9.9.jar done sysjar %{_javadir}/jacoco/org.jacoco.core.jar \ third_party/java/jacoco/org.jacoco.core-0.8.11.jar sysjar %{_javadir}/protobuf/protobuf-java.jar \ derived/jars/protobuf+/java/core/libcore.jar sysjar %{_javadir}/protobuf/protobuf-javalite.jar \ derived/jars/protobuf+/java/core/liblite.jar sysjar %{_javadir}/protobuf/protobuf-java-util.jar \ derived/jars/protobuf+/java/util/libutil.jar sysjar %{_javadir}/jakarta-annotations/jakarta.annotation-api.jar \ derived/maven/javax/annotation/javax.annotation-api/1.3.2/javax.annotation-api-1.3.2.jar sysjar %{_javadir}/jetbrains-annotations.jar \ derived/maven/org/jetbrains/annotations/24.0.0/annotations-24.0.0.jar sysjar %{_javadir}/log4j/log4j-api.jar \ derived/maven/org/apache/logging/log4j/log4j-api/2.19.0/log4j-api-2.19.0.jar sysjar %{_javadir}/log4j/log4j-core.jar \ derived/maven/org/apache/logging/log4j/log4j-core/2.19.0/log4j-core-2.19.0.jar # strip prebuilt jars/.so from cached module archives and re-hash them bash %{SOURCE5} %build %set_build_flags export BAZEL_CONLYOPTS="$(echo %{build_cflags} | tr ' ' ':')" export BAZEL_CXXOPTS="$(echo %{build_cxxflags} -std=c++17 | tr ' ' ':')" export BAZEL_LINKOPTS="$(echo %{build_ldflags} -lstdc++ -lm | tr ' ' ':')" export EMBED_LABEL=%{version} export BAZEL_JAVAC_OPTS="-J-Xmx2g -J-Xms200m -proc:full" export EXTRA_BAZEL_ARGS="\ --tool_java_runtime_version=local_jdk \ --java_runtime_version=local_jdk \ --javacopt=-proc:full \ --host_javacopt=-proc:full \ --compilation_mode=opt \ --jobs=%{_smp_build_ncpus} \ --repo_env=BAZEL_CONLYOPTS \ --repo_env=BAZEL_CXXOPTS \ --repo_env=BAZEL_LINKOPTS \ --action_env=RPM_ARCH=%{_arch} \ --action_env=RPM_PACKAGE_NAME=%{name} \ --action_env=RPM_PACKAGE_VERSION=%{version} \ --action_env=RPM_PACKAGE_RELEASE=%{release} \ --host_action_env=RPM_ARCH=%{_arch} \ --host_action_env=RPM_PACKAGE_NAME=%{name} \ --host_action_env=RPM_PACKAGE_VERSION=%{version} \ --host_action_env=RPM_PACKAGE_RELEASE=%{release} \ --verbose_failures" export JAVA_HOME=%{_jvmdir}/java-%{java_version}-openjdk bash %{SOURCE4} bash ./compile.sh bash ./scripts/generate_bash_completion.sh \ --bazel=output/bazel \ --output=output/bazel-complete.bash \ --prepend=scripts/bazel-complete-header.bash \ --prepend=scripts/bazel-complete-template.bash ./output/bazel shutdown %install install -Dpm 0755 output/bazel %{buildroot}%{_bindir}/bazel install -Dpm 0644 output/bazel-complete.bash %{buildroot}%{bash_completions_dir}/bazel install -Dpm 0644 scripts/zsh_completion/_bazel %{buildroot}%{zsh_completions_dir}/_bazel install -Dpm 0644 %{SOURCE3} %{buildroot}%{_sysconfdir}/bazel.bazelrc cat >> %{buildroot}%{_sysconfdir}/bazel.bazelrc < - 9.2.0-1 - Uncommitted changes ## END: Generated by rpmautospec