Bug 2015277 - Review Request: bazel - A java based build system
Summary: Review Request: bazel - A java based build system
Keywords:
Status: CLOSED DEFERRED
Alias: None
Product: Fedora
Classification: Fedora
Component: Package Review
Version: rawhide
Hardware: Unspecified
OS: Unspecified
unspecified
unspecified
Target Milestone: ---
Assignee: Nobody's working on this, feel free to take it
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard: NotReady
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2021-10-18 19:10 UTC by Tom Rix
Modified: 2022-12-01 02:23 UTC (History)
3 users (show)

Fixed In Version:
Clone Of:
Environment:
Last Closed: 2022-11-22 01:00:19 UTC
Type: Bug
Embargoed:


Attachments (Terms of Use)

Description Tom Rix 2021-10-18 19:10:14 UTC
Spec URL: https://trix.fedorapeople.org/bazel.spec

SRPM URL: https://trix.fedorapeople.org/bazel-3.7.2-5.fc36.src.rpm

Description: Bazel is a java based build system.

Fedora Account System Username: trix

Comment 1 Ben Beasley 2021-10-20 20:26:12 UTC
I am totally unable to review a Java package, but I can provide some context.

Here is a link to the last attempt to get bazel in Fedora: https://bugzilla.redhat.com/show_bug.cgi?id=1470842
Here is a comment in that issue revisiting what would be needed as of Fedora 32: https://bugzilla.redhat.com/show_bug.cgi?id=1470842#c6

I assume that most of the issues raised there are still unresolved.

Here is the widely-used bazel COPR maintained by Vincent Batts: https://copr.fedorainfracloud.org/coprs/vbatts/bazel/

Comment 2 Ben Beasley 2021-10-20 20:39:48 UTC
Here is a list of .jar and .zip files in the source archive:

> ./derived/distdir/1.25.0.zip
> ./derived/distdir/46993efdd33b73649796c5fc5c9efb193ae19d51.zip
> ./derived/distdir/7cf3cefd652008d0a64a419c34c13bdca6c8f178.zip
> ./derived/distdir/b1c40e1de81913a3c40e5948f78719c28152486d.zip
> ./derived/distdir/coverage_output_generator-v2.5.zip
> ./derived/distdir/e0b0291b2c51fbe5a7cfa14473a1ae850f94f021.zip
> ./derived/distdir/java_tools_javac11_darwin-v10.0.zip
> ./derived/distdir/java_tools_javac11_linux-v10.0.zip
> ./derived/distdir/java_tools_javac11_windows-v10.0.zip
> ./derived/jars/com_google_protobuf/java/core/libcore.jar
> ./derived/jars/com_google_protobuf/java/core/liblite.jar
> ./derived/jars/com_google_protobuf/java/util/libutil.jar
> ./src/java_tools/import_deps_checker/javatests/com/google/devtools/build/importdeps/testdata/LibraryModuleInfo.jar
> ./src/test/java/com/google/devtools/build/android/desugar/b72690624_testdata.jar
> ./src/test/java/com/google/devtools/build/android/desugar/classes_for_testing_type_inference/test_subjects.jar
> ./src/test/java/com/google/devtools/build/android/desugar/jacoco_0_7_5_default_method.jar
> ./src/test/java/com/google/devtools/build/android/desugar/unused_closed_resource.jar
> ./src/test/java/com/google/devtools/build/lib/bazel/repository/test_decompress_archive.zip
> ./src/test/py/bazel/testdata/bazel_external_repository_test/archive_with_symlink.zip
> ./src/tools/singlejar/data/empty.zip
> ./third_party/allocation_instrumenter/java-allocation-instrumenter-3.0.1.jar
> ./third_party/android_common/com.android_annotations_25.0.0.jar
> ./third_party/android_common/com.android.tools.build_builder_2.0.0.jar
> ./third_party/android_common/com.android.tools.build_builder-model_2.0.0.jar
> ./third_party/android_common/com.android.tools.build_builder-test-api_2.0.0.jar
> ./third_party/android_common/com.android.tools.build_manifest-merger_25.0.0-patched.jar
> ./third_party/android_common/com.android.tools_common_25.0.0.jar
> ./third_party/android_common/com.android.tools_dvlib_25.0.0.jar
> ./third_party/android_common/com.android.tools.external.lombok_lombok-ast_0.2.3.jar
> ./third_party/android_common/com.android.tools.layoutlib_layoutlib_26.1.2.jar
> ./third_party/android_common/com.android.tools.layoutlib_layoutlib_26.1.2-stripped.jar
> ./third_party/android_common/com.android.tools.lint_lint-api_25.0.0.jar
> ./third_party/android_common/com.android.tools.lint_lint-checks_25.0.0.jar
> ./third_party/android_common/com.android.tools_repository_25.0.0.jar
> ./third_party/android_common/com.android.tools_sdk-common_25.0.0-patched.jar
> ./third_party/android_common/com.android.tools_sdk-common_25.0.0-patched-stripped.jar
> ./third_party/android_common/com.android.tools_sdklib_25.0.0.jar
> ./third_party/animal_sniffer/animal-sniffer-annotations-1.14.jar
> ./third_party/antlr/antlr4-4.5.3.jar
> ./third_party/apache_commons_codec/commons-codec-1.10.jar
> ./third_party/apache_commons_collections/commons-collections-3.2.2.jar
> ./third_party/apache_commons_compress/apache-commons-compress-1.9.jar
> ./third_party/apache_commons_io/commons-io-2.4.jar
> ./third_party/apache_commons_lang/commons-lang-2.6.jar
> ./third_party/apache_commons_logging/commons-logging-1.1.1.jar
> ./third_party/apache_commons_pool2/commons-pool2-2.8.0.jar
> ./third_party/apache_velocity/velocity-1.7.jar
> ./third_party/api_client/google-api-client-1.22.0.jar
> ./third_party/api_client/google-api-client-jackson2-1.22.0.jar
> ./third_party/api_client/google-http-client-1.22.0-SNAPSHOT.jar
> ./third_party/api_client/google-http-client-jackson2-1.22.0.jar
> ./third_party/asm/asm-8.0.jar
> ./third_party/asm/asm-8.0-sources.jar
> ./third_party/asm/asm-analysis-8.0.jar
> ./third_party/asm/asm-analysis-8.0-sources.jar
> ./third_party/asm/asm-commons-8.0.jar
> ./third_party/asm/asm-commons-8.0-sources.jar
> ./third_party/asm/asm-tree-8.0.jar
> ./third_party/asm/asm-tree-8.0-sources.jar
> ./third_party/asm/asm-util-8.0.jar
> ./third_party/asm/asm-util-8.0-sources.jar
> ./third_party/auth/google-auth-library-credentials-0.17.1.jar
> ./third_party/auth/google-auth-library-oauth2-http-0.17.1.jar
> ./third_party/auto/auto-common-0.10.jar
> ./third_party/auto/auto-service-1.0-rc4.jar
> ./third_party/auto/auto-value-1.6.3rc1.jar
> ./third_party/auto/auto-value-annotations-1.6.3rc1.jar
> ./third_party/bazel_bootstrap/libautocodec-annotation.jar
> ./third_party/bazel_bootstrap/libautocodec-processor.jar
> ./third_party/bazel_bootstrap/libregistered-singleton.jar
> ./third_party/bazel_bootstrap/libserialization-constant-annotation.jar
> ./third_party/bazel_bootstrap/libserialization-constant-processor.jar
> ./third_party/bazel_bootstrap/libserialization.jar
> ./third_party/bazel_bootstrap/libserialization-processor-util.jar
> ./third_party/bazel_bootstrap/libunsafe-provider.jar
> ./third_party/bytebuddy/byte-buddy-1.9.7.jar
> ./third_party/bytebuddy/byte-buddy-agent-1.9.7.jar
> ./third_party/caffeine/caffeine-2.8.0.jar
> ./third_party/checker_framework_annotations/checker-qual-3.2.0.jar
> ./third_party/checker_framework_annotations/checker-qual-3.2.0-sources.jar
> ./third_party/checker_framework_dataflow/dataflow-shaded-3.1.2.jar
> ./third_party/checker_framework_dataflow/dataflow-shaded-3.1.2-sources.jar
> ./third_party/checker_framework_javacutil/javacutil-3.2.0.jar
> ./third_party/checker_framework_javacutil/javacutil-3.2.0-sources.jar
> ./third_party/compile_testing/compile-testing-0.18.jar
> ./third_party/diffutils/diffutils-1.3.0.jar
> ./third_party/error_prone/error_prone_annotation-2.4.0.jar
> ./third_party/error_prone/error_prone_annotations-2.4.0.jar
> ./third_party/error_prone/error_prone_check_api-2.4.0.jar
> ./third_party/error_prone/error_prone_core-2.4.0.jar
> ./third_party/error_prone/error_prone_type_annotations-2.4.0.jar
> ./third_party/error_prone/threeten-extra-1.5.0.jar
> ./third_party/flogger/flogger-0.5.1.jar
> ./third_party/flogger/flogger-system-backend-0.5.1.jar
> ./third_party/flogger/google-extensions-0.5.1.jar
> ./third_party/grpc/grpc-api-1.26.0.jar
> ./third_party/grpc/grpc-auth-1.26.0.jar
> ./third_party/grpc/grpc-context-1.26.0.jar
> ./third_party/grpc/grpc-core-1.26.0.jar
> ./third_party/grpc/grpc-netty-1.26.0.jar
> ./third_party/grpc/grpc-protobuf-1.26.0.jar
> ./third_party/grpc/grpc-protobuf-lite-1.26.0.jar
> ./third_party/grpc/grpc-stub-1.26.0.jar
> ./third_party/gson/gson-2.8.0.jar
> ./third_party/guava/failureaccess-1.0.1.jar
> ./third_party/guava/guava-25.1-jre.jar
> ./third_party/guava/guava-29.0-jre.jar
> ./third_party/guava/guava-testlib-25.1-jre.jar
> ./third_party/guava/guava-testlib-29.0-jre.jar
> ./third_party/hamcrest/hamcrest-core-1.3.jar
> ./third_party/hungarian_algorithm/software-and-algorithms-1.0.jar
> ./third_party/hungarian_algorithm/software-and-algorithms-1.0-src.jar
> ./third_party/ijar/test/jar-with-manifest-and-target-label.jar
> ./third_party/ijar/test/jar-with-manifest.jar
> ./third_party/ijar/test/jar-without-manifest.jar
> ./third_party/ijar/test/libwrongcentraldir.jar
> ./third_party/ijar/test/nestmates/nestmates.jar
> ./third_party/jackson2/jackson-core-2.8.6.jar
> ./third_party/java/android_databinding/v3_4_0/base.jar
> ./third_party/java/android_databinding/v3_4_0/compiler_common.jar
> ./third_party/java/android_databinding/v3_4_0/compiler.jar
> ./third_party/java/android_databinding/v3_4_0/exec.jar
> ./third_party/java/android_databinding/v3_4_0/x_common.jar
> ./third_party/java-diff-utils/java-diff-utils-4.0.jar
> ./third_party/java/j2objc-annotations/j2objc-annotations-1.1.jar
> ./third_party/java/jacoco/jacocoagent-0.8.3.jar
> ./third_party/java/jacoco/org.jacoco.agent-0.8.3.jar
> ./third_party/java/jacoco/org.jacoco.agent-0.8.3-sources.jar
> ./third_party/java/jacoco/org.jacoco.core-0.8.3.jar
> ./third_party/java/jacoco/org.jacoco.core-0.8.3-sources.jar
> ./third_party/java/jacoco/org.jacoco.report-0.8.3.jar
> ./third_party/java/jacoco/org.jacoco.report-0.8.3-sources.jar
> ./third_party/java/javapoet/javapoet-1.8.0.jar
> ./third_party/java/jcommander/jcommander-1.48.jar
> ./third_party/java/jdk/langtools/javac-9+181-r4173-1.jar
> ./third_party/java/jdk/langtools/java_compiler.jar
> ./third_party/java/jdk/langtools/java_compiler-src.jar
> ./third_party/java/jdk/langtools/jdk_compiler.jar
> ./third_party/java/jdk/langtools/jdk_compiler-src.jar
> ./third_party/java/proguard/proguard5.3.3/examples/annotations/lib/annotations.jar
> ./third_party/java/proguard/proguard5.3.3/lib/proguardgui.jar
> ./third_party/java/proguard/proguard5.3.3/lib/proguard.jar
> ./third_party/java/proguard/proguard5.3.3/lib/retrace.jar
> ./third_party/javax_activation/javax.activation-api-1.2.0.jar
> ./third_party/javax_activation/javax.activation-api-1.2.0-sources.jar
> ./third_party/javax_annotations/javax.annotation-api-1.3.2.jar
> ./third_party/javax_annotations/javax.annotation-api-1.3.2-sources.jar
> ./third_party/jaxb/2.3.0/jaxb-api-2.3.0.jar
> ./third_party/jaxb/2.3.0/jaxb-api-2.3.0-sources.jar
> ./third_party/jaxb/2.3.0/jaxb-core-2.3.0.jar
> ./third_party/jaxb/2.3.0/jaxb-core-2.3.0-sources.jar
> ./third_party/jaxb/2.3.0/jaxb-impl-2.3.0.jar
> ./third_party/jaxb/2.3.0/jaxb-impl-2.3.0-sources.jar
> ./third_party/jaxb/jaxb-api-2.3.1.jar
> ./third_party/jaxb/jaxb-api-2.3.1-patched.jar
> ./third_party/jaxb/jaxb-api-2.3.1-sources.jar
> ./third_party/jcip_annotations/jcip-annotations-1.0-1.jar
> ./third_party/jetbrains_annotations/annotations-13.0.jar
> ./third_party/jetifier/jetifier-core-1.0.0-beta04.jar
> ./third_party/jimfs/jimfs-1.1.jar
> ./third_party/jsr305/jsr-305.jar
> ./third_party/jsr330_inject/javax.inject.jar
> ./third_party/junit/junit-4.13.jar
> ./third_party/juniversalchardet/juniversalchardet-1.0.3.jar
> ./third_party/kotlin_stdlib/kotlin-stdlib-1.3.21.jar
> ./third_party/kotlin_stdlib/kotlin-stdlib-common-1.3.21.jar
> ./third_party/kotlin_stdlib/kotlin-stdlib-jdk7-1.3.21.jar
> ./third_party/kotlin_stdlib/kotlin-stdlib-jdk8-1.3.21.jar
> ./third_party/mockito/mockito-core-2.25.1.jar
> ./third_party/netty/netty-all-4.1.48.Final.jar
> ./third_party/netty_tcnative/netty-tcnative-boringssl-static-2.0.24.Final.jar
> ./third_party/objenesis/objenesis-1_3.jar
> ./third_party/opencensus/opencensus-api-0.24.0.jar
> ./third_party/opencensus/opencensus-contrib-grpc-metrics-0.24.0.jar
> ./third_party/pcollections/pcollections-2.1.2.jar
> ./third_party/perfmark/perfmark-api-0.19.0.jar
> ./third_party/tomcat_annotations_api/tomcat-annotations-api-8.0.5.jar
> ./third_party/truth8/truth-java8-extension-1.0.1.jar
> ./third_party/truth/truth-1.0.1.jar
> ./third_party/turbine/turbine_direct.jar
> ./third_party/xz/xz-1.5.jar
> ./tools/android/emulator/snapshots.img.zip

As I understand it, all of the .jar files would need to be removed in %prep and replaced either with separate Fedora Java packages, or with bundled Java packages following the bundling guidelines that are compiled from source in %build. Bundling is OK (under certain conditions); precompiled bytecode is not.

Some of the .zip files might also contain precompiled bytecode.

Comment 3 Ben Beasley 2021-10-25 01:30:03 UTC
If you have a plan for how to do a bootstrap from sources only, without any of the bundled precompiled Java bytecode, please comment. I wouldn’t be able to review it, but a lot of people would be excited if it were possible.

Otherwise it’s probably best to close this as WONTFIX—either you can do this, or I can take the review and fail it due to the precompiled jars.

Comment 4 Tom Rix 2021-10-25 13:02:59 UTC
Wowza! That is a lot of precompiled jars to unrazel.
I'll need a bit to see if that is possible.
My first thought is to see how capable the bootstrapped bazel and if it has such a huge list of dependencies.

Comment 5 Package Review 2022-11-22 00:45:19 UTC
This is an automatic check from review-stats script.

This review request ticket hasn't been updated for some time. We're sorry
it is taking so long. If you're still interested in packaging this software
into Fedora repositories, please respond to this comment clearing the
NEEDINFO flag.

You may want to update the specfile and the src.rpm to the latest version
available and to propose a review swap on Fedora devel mailing list to increase
chances to have your package reviewed. If this is your first package and you
need a sponsor, you may want to post some informal reviews. Read more at
https://fedoraproject.org/wiki/How_to_get_sponsored_into_the_packager_group.

Without any reply, this request will shortly be considered abandoned
and will be closed.
Thank you for your patience.


Note You need to log in before you can comment on or make changes to this bug.