Review: jackson3-core 3.2.4-1
Package Information
| Description | fast and powerful JSON library for Java -- core library The Jackson Data Processor is a multi-purpose Java library for processing JSON. Jackson aims to be the best possible combination of fast, correct, lightweight, and ergonomic for developers. It offers three alternative methods for processing JSON: * Streaming API inspired by StAX * Tree Model * Data Binding converts JSON to and from POJOs In addition to the core library, there are numerous extension that provide additional functionality such as additional data formats beyond JSON, additional data types or JVM languages. This package contains the Jackson core library. |
|---|---|
| Maintainer | Debian Java Maintainers <pkg-java-maintainers@lists.alioth.debian.org> |
| Changed By | Emmanuel Bourg <ebourg@apache.org> |
| Sponsor | ebourg@apache.org |
| Distribution | unstable |
| Architecture | all |
| VCS | git: https://salsa.debian.org/java-team/jackson3-core.git (browse) |
| Closes | #1149814 |
| Tracker | https://tracker.debian.org/pkg/jackson3-core |
| Uploaded | 5 days ago |
New Package Report
.changes
| Architecture | source all |
|---|---|
| Distribution | unstable |
| Date | Mon, 26 Oct 2026 15:21:47 +0100 |
| Source | jackson3-core |
| Version | 3.2.4-1 |
| Changed-By | Emmanuel Bourg <ebourg@apache.org> |
Changelog
jackson3-core (3.2.4-1) unstable; urgency=medium
.
* Team upload.
* Cloned the package as jackson3-core (Closes: #1149814)
* New upstream release
- Install the parent POMs of Jackson 3 (jackson-bom, jackson-base and
oss-parent)
- Updated the Maven rules
- Set the language source/target level to Java 17
- Build without the Java module descriptors
- Updated debian/copyright.dsc
| Priority | optional |
|---|---|
| Component | main |
| Package-List | libjackson3-core-java deb java optional arch=all |
| Section | java |
debian/copyright
Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
Upstream-Name: jackson-core
Source: https://github.com/FasterXML/jackson-core
Files-Excluded: docs/javadoc/*
mvnw*
.mvn/*
Files: *
Copyright: 2007-2026, Tatu Saloranta <tatu.saloranta@iki.fi>
2012-2022, FasterXML, LLC, Seattle, USA <info@fasterxml.com>
License: Apache-2.0
Files: src/main/java/tools/jackson/core/io/schubfach/*
src/main/resources/META-INF/Schubfach-LICENSE
src/test/java/tools/jackson/core/unittest/io/schubfach/DoubleToDecimalChecker.java
src/test/java/tools/jackson/core/unittest/io/schubfach/FloatToDecimalChecker.java
src/test/java/tools/jackson/core/unittest/io/schubfach/MathUtilsTest.java
src/test/java/tools/jackson/core/unittest/io/schubfach/ToDecimalChecker.java
Copyright: 2018-2020, Raffaello Giulietti
License: Expat
Files: src/main/resources/META-INF/FastDoubleParser-LICENSE
src/main/resources/META-INF/FastDoubleParser-ThirdParty-LICENSE
Copyright: 2023-2024, Werner Randelshofer
2021, The fast_float authors
2020-2022, Tim Buktu
2022, Daniel Lemire
License: Expat and BSL-1.0 and BSD-2-clause
Files: debian/*
Copyright: 2013, Wolodja Wentland <debian@babilen5.org>
2014, Timo Aaltonen <tjaalton@debian.org>
2016, Emmanuel Bourg <ebourg@apache.org>
2019-2020, Mechtilde Stehmann <mechtilde@debian.org>
2017-2022, Markus Koschany <apo@debian.org>
License: Apache-2.0
License: Apache-2.0
On Debian systems you can find the complete text of the
Apache-2.0 license in '/usr/share/common-licenses/Apache-2.0'
License: BSD-2-clause
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
are met:
.
1. Redistributions of source code must retain the above copyright notice, this
list of conditions and the following disclaimer.
.
2. Redistributions in binary form must reproduce the above copyright notice,
this list of conditions and the following disclaimer in the documentation
and/or other materials provided with the distribution.
.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
License: BSL-1.0
On Debian systems you can find the complete text of the
Boost Software License in '/usr/share/common-licenses/BSL-1.0'
License: Expat
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
.
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.
DFSG Assistant LLM REVIEW 0 blocker, 0 important, 2 minor
This is an LLM based review using a Debian Inference based workflow. It was not written by a member of the DFSG team and has not been checked by one. It is not a decision on the package: it may be wrong, and it may have missed things.
Reviewed 5 days ago.
Report
DFSG NEW review for jackson3-core version 3.2.4-1
Summary
- Licensing is DFSG-compliant and
debian/copyrightis accurate: Yes - Packaging is of good quality: Yes
- Issues: 0 blocker, 0 important, 2 minor
- debian/watch: version 5
- debian/copyright: machine-readable
- Scan before the review: 2 found
Licensing
debian/copyright is DEP-5 (canonical Format URL) and matches the tree: the Files: * Apache-2.0 stanza covers everything, the Schubfach stanza (Expat, Raffaello Giulietti) matches exactly the three io/schubfach/*.java sources, Schubfach-LICENSE and the four unittest/io/schubfach/*Checker.java/MathUtilsTest.java files, and the FastDoubleParser stanza names all four holders of the two META-INF licence texts with the composite licence Expat and BSL-1.0 and BSD-2-clause, whose BSL-1.0 and BSD-2-clause notices are reproduced in full. No other copyright holder appears anywhere in the tree, every licence is DFSG-free, no non-free clause exists, no binary or vendored third-party code is present, and no file lacks a licence. The two holders the prescan suspected were missing (Daniel Lemire, Werner Randelshofer) are both named.
Packaging
Standard, well-maintained Java team packaging: compat 13 with dh $@, Architecture: all, correct use of maven-debian-helper, all Build-Depends/-Indep names present in the archive, a single DEP-3-headered patch with a clear purpose, the jackson-bom/jackson-base/oss-parent POMs installed with the version conflict against libjackson2-core-java avoided deliberately, and a clean changelog for a renamed source package. Only a small defect in debian/replace-generate.sh (a broken error branch) was found; nothing else a sponsor would require is wrong. One aspect of the build cannot be confirmed without building (see Not confirmed).
Issues
1. [minor] [packaging] debian/replace-generate.sh's "unreplaced tag" check never fails: the exit status is passed to echo, not executed
- Files:
debian/replace-generate.sh:30-31 - Basis: checked, in the package or with a reference tool
- Evidence:
echo 'Not all tags were\n replaced' >&2 exit 1— the;between the redirect andexit 1is missing, soexitand1become arguments ofecho - Problem: The guard that is meant to abort the build when a template token such as
@projectversion@was not substituted does not exit: the script continues withset -esatisfied (echo returns 0) and installs aPackageVersion.javastill containing literal@...@tokens, turning a clear error into a confusing compile failure later. - Fix: Add the missing separator:
echo 'Not all tags were replaced' >&2; exit 1(or make theifbody a single{ ...; exit 1; }).
2. [minor] [packaging] Files-Excluded is set but the version carries no repack suffix
- Files:
debian/copyright,debian/changelog,debian/watch - Basis: found by the review tooling's own checks
- Evidence:
3.2.4-1 - Problem:
debian/copyrighthasFiles-Excluded, so uscan repacks the upstream tarball, but the version indebian/changelogdoes not say so with a suffix such as+dfsgor+ds, as is the convention for a tarball that differs from upstream's. - Fix: Add the suffix to the version, and
Repacksuffixtodebian/watch.
Verified
- debian/copyright read in full; DEP-5,
Format:is the canonical copyright-format/1.0 URL. Stanzas:Files: *(Apache-2.0, 2007-2026 Tatu Saloranta, 2012-2022 FasterXML LLC), the Schubfach stanza (Expat, 2018-2020 Raffaello Giulietti), the FastDoubleParser stanza (Expat and BSL-1.0 and BSD-2-clause, 2023-2024 Werner Randelshofer / 2021 The fast_float authors / 2020-2022 Tim Buktu / 2022 Daniel Lemire) anddebian/*(Apache-2.0) last, so it overrides the catch-all for debian/. - Every
Files:pattern checked against the tree:src/main/java/tools/jackson/core/io/schubfach/*matches exactly DoubleToDecimal.java, FloatToDecimal.java, MathUtils.java (each carrying the Raffaello Giulietti Expat header), and the four listed test files are exactly those present in src/test/java/tools/jackson/core/unittest/io/schubfach/. - The FastDoubleParser stanza covers both META-INF texts and names every holder they mention; FastDoubleParser-ThirdParty-LICENSE contains the Boost Software License (for Daniel Lemire's fast_double_parser), the MIT text (fast_float authors) and the 2-clause BSD text (Tim Buktu), all reflected by
License: Expat and BSL-1.0 and BSD-2-clause; BSL-1.0 is cited by reference, Expat and BSD-2-clause are given in full. - Prescan's two "possibly named under a similar name" holders are actually present:
Werner RandelshoferandDaniel Lemireare both in the FastDoubleParser stanza (only the country suffix "Switzerland" is dropped). - Tree-wide grep for
Copyright,(C),©(excluding .pc/) finds no holder beyond Tatu Saloranta (main sources), Raffaello Giulietti (schubfach sources and their checkers) and the third-party licence texts; grep for SPDX, "Licensed under", "Permission is hereby granted", GNU/LGPL, Apache/Mozilla/CC, "public domain", "All rights reserved", "non-commercial" finds nothing outside the Apache/MIT/BSL/BSD texts. - No built or opaque files in the tree: glob for jar/class/zip/png/gif/jpg/pdf/so/dll/exe/pyc/min.js/woff/ttf matches nothing; no vendored copy of another library (Jackson uses ch.randelshofer.fastdoubleparser from libfastdoubleparser-java 2.0.1-4, which the archive has, and org.moditect/maven-shade-plugin are in debian/maven.ignoreRules so the Debian jar is not shaded).
- Generated file has its generator input in the tree: src/main/java/tools/jackson/core/json/PackageVersion.java is produced by debian/replace-generate.sh from the shipped PackageVersion.java.in, and removed in override_dh_auto_clean.
Files-Excluded(docs/javadoc/, mvnw, .mvn/*) names nothing present: the tree has no mvnw, no .mvn and docs/ holds only README.md.release.shstill calls ./mvnw, but it is an upstream release helper not used by the build.- Prescan binary file src/test/resources/data/fuzz-json-34435.json is a fuzz input (a corrupt JSON document, with JVM symbol strings in it from the fuzzer corpus) used as a crash reproducer by src/test/java/tools/jackson/core/unittest/fuzz/Fuzz34435ParseTest.java; prescan binary file src/test/resources/data/fuzz-json-utf32-32208.json is the same kind of input, UTF-32 encoded, used by Fuzz32208UTF32ParseTest.java and perf/ManualFuzzUTF32.java. Both are test data, not programs, and are covered by
Files: *(Apache-2.0). - src/test/resources/data/FastDoubleParser_errorcases.txt (912 KB) is a list of numeric literals only, with no text, header or licence notice, and no test in the tree references it; it is data, covered by
Files: *. Likewise test_0xA0.json, floats-755.json and META-INF/maven/foo/bar/foo-bar/pom.properties are small hand-made test fixtures. - Packaging files read: control, rules, changelog (all 3.2.4-1 entries), source/format, patches/series and no-module-descriptors.patch, libjackson3-core-java.poms, maven.properties, maven.rules, maven.ignoreRules, replace-generate.sh, salsa-ci.yml, upstream/metadata, and the three installed POMs. No maintainer scripts, no debian/tests, no .maintscript, no gbp.conf.
- Build-Depends/-Indep names all exist in the archive (apt-cache): junit5 5.14.4, libassertj-core-java 3.26.3, libbuild-helper-maven-plugin-java 3.3.0, libfastdoubleparser-java 2.0.1-4, libmaven-bundle-plugin-java 5.1.9, libmaven-enforcer-plugin-java 3.5.0, libreplacer-java 1.5.3.
- Standards-Version 4.7.4 against the reviewing system's Policy 4.7.4.1: first two components match, so it is current; changelog is for unstable, 3.2.4-1, team upload, Closes: #1149814, and keeps the jackson-core history, correct for a source package cloned and renamed.
- uscan found the packaged version as the newest upstream release (upstream
3.2.4, packaged3.2.4). - Every pointer of
debian/copyrightto /usr/share/common-licenses names a file that is there (Apache-2.0,BSL-1.0).
Not confirmed
- Whether the build compiles tools.jackson.core.json.PackageVersion twice. debian/rules:9,12 generates src/main/java/tools/jackson/core/json/PackageVersion.java before dh_auto_configure, while the inherited POM configuration (debian/jackson-base-3.2.4.pom:183-196, the
process-packageVersionexecution of com.google.code.maven-replacer-plugin with phase generate-sources) writes the same class to${generatedSourcesDir}/tools/jackson/core/json/PackageVersion.java, i.e. target/generated-sources, which debian/oss-parent-79.pom:371-382 adds as an extra source root via build-helper-maven-plugin. Nothing in debian/maven.ignoreRules disables the replacer, and libreplacer-java is a Build-Depends-Indep, which suggests it does run in the Debian build; if so javac should report a duplicate class. A build would show this immediately, either asduplicate class: tools.jackson.core.json.PackageVersionor as the replacer not being executed at all (in which case debian/replace-generate.sh is the only generator and all is well). - Whether the test scope resolves with the versions the installed parent POMs pin: debian/oss-parent-79.pom pins junit-bom 6.0.3 and assertj 3.27.7 while the archive has junit5 5.14.4 and libassertj-core-java 3.26.3; maven-debian-helper's version mangling is expected to reconcile them, but that could not be checked (the maven buildsystem of maven-debian-helper is not installed on this reviewing system).
Proposed changes
None.
Uploader's response to the LLM review
The uploader was emailed about the review 5 days ago.
Review Information
accepted — allocated to awm 3 days ago, started 3 days ago, completed 3 days ago.