The Debian NEW review of protobuf 36.2-1 has been completed.
Decision: ACCEPTED
Reviewer: Andrew McMillan
Review comment:
Two minor debian/copyright nits (not DFSG blockers):
- Files: * → BSD-3-Clause at debian/copyright:8-10 over-declares the whole
tree, but the separate utf8_range stanza covers the one divergent case, so it's
acceptable.
- The Public-Domain license block (debian/copyright:71-74) is defined but never
referenced by any Files: stanza — a dead entry.
Other Packaging quality issues
==============================
1. ruby_debug.patch ships leftover debug code (applied in build).
debian/patches/ruby_debug.patch:10 inserts puts "DEBUG GEM SPEC IS:
#{spec.inspect}" into the Ruby build. It also differs from every other patch in
form (no Description/Forwarded/Last-Update header) and silently drops the
:clean prerequisite from the :build rake task while adding tests/**/* to the
gem (ruby_debug.patch:27-40). It's active (in .pc/applied-patches and the
series), so this debug print runs during the Debian build.
2. libprotobuf-dev is missing a libutf8-range-dev dependency.
external_utf8_range.patch switches to the system utf8-range
(debian/patches/external_utf8_range.patch:15). The installed
protobuf.pc/protobuf-lite.pc now emit Requires: … utf8_range
(cmake/install.cmake:10, cmake/protobuf.pc.cmake), and the exported CMake
config does find_package(utf8_range CONFIG) (cmake/utf8_range.cmake:15). But
debian/control:113-114 lists only zlib1g-dev, libabsl-dev in libprotobuf-dev's
Depends. Downstream consumers using pkg-config/CMake will fail to resolve
utf8_range unless they also pull libutf8-range-dev themselves.
3. ffi.rake_path.patch uses a brittle 12-level relative path.
debian/patches/ffi.rake_path.patch:11 rewrites the import to
'../../../../../../../../../../../../ruby/lib/google/tasks/ffi.rake', which
depends on the exact in-tree nesting depth.
4. Contradictory/confusing Python test block in debian/rules:156-164.
It runs $$PYTHON setup.py test for each interpreter but then unconditionally
emits @echo Python testing is gone..., and the whole block is flagged
off-and-on. The message contradicts the code above it.
5. Multi-arch path inconsistency in debian/rules.
The Ruby GEM_DEST_DIR uses $(DEB_HOST_MULTIARCH) (debian/rules:207) while the
.so install uses $(DEB_BUILD_MULTIARCH) (debian/rules:236). These differ under
cross-building.
6. no_javax.patch/no_errorprone.patch disable code via commented-out imports.
They leave //import javax.annotation.Nullable;-style lines in place and strip
annotations (e.g. no_javax.patch:25) rather than cleanly removing them —
cosmetic, but leaves dead commented code in the shipped Java source.
I hope this is useful!
Thanks.
Full review details: https://dfsg-new-queue.debian.org/reviews/protobuf