Review: jline4 4.0.14+ds2-1
Package Information
| Description | console input handling library for Java (JLine 4) JLine is a Java library for handling console input. It is similar in functionality to BSD editline and GNU readline but with additional features that bring it on par with the ZSH line editor. This package contains JLine 4: the line reader (org.jline.reader), the terminal abstraction (org.jline.terminal) and its JNI terminal provider, and the native library loader. It can be installed together with JLine 3 (libjline3-java). |
|---|---|
| Maintainer | Debian Java Maintainers <pkg-java-maintainers@lists.alioth.debian.org> |
| Changed By | Juan Manuel Méndez Rey <juan.mendezr@proton.me> |
| Sponsor | tsimonq2@debian.org |
| Distribution | unstable |
| Architecture | any all |
| VCS | git: https://salsa.debian.org/java-team/jline4.git (browse) |
| Closes | #1149767 |
| Tracker | https://tracker.debian.org/pkg/jline4 |
| Uploaded | 10 days ago |
New Package Report
.changes
| Source | jline4 |
|---|---|
| Version | 4.0.14+ds2-1 |
| Changed-By | Juan Manuel Méndez Rey <juan.mendezr@proton.me> |
| Architecture | source all amd64 |
| Distribution | unstable |
| Date | Fri, 02 Oct 2026 19:06:50 +0200 |
Changelog
jline4 (4.0.14+ds2-1) unstable; urgency=medium . * Initial release. (Closes: #1149767)
.dsc
| Section | java |
|---|---|
| Priority | optional |
| Component | main |
| Package-List | libjline4-java deb java optional arch=all libjline4-jni deb java optional arch=any |
debian/copyright
Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
Upstream-Name: JLine
Upstream-Contact: Guillaume Nodet <gnodet@gmail.com>
Source: https://github.com/jline/jline3
Comment:
The orig tarball is repacked (+ds2) to drop:
- prebuilt native libraries for every platform (the JNI library is built
from native/src/main/native at build time);
- demo/wget.exe, a prebuilt Windows executable;
- .mvn, .mvx, mvx and mvx.cmd: Maven extensions (git versioning, release
tooling) and a launcher that downloads Maven, none usable offline;
- website/, the documentation web site (not used by the build);
- the help texts of the nano and less builtins and three nano syntax
files, copied from GNU nano and less without their licence notices;
they belong to the builtins, demo and groovy modules, which this
package does not build;
- other third-party copies in modules not built here: nano syntax
(sh-repl.nanorc, test nano/java.nanorc and xml.nanorc), the Readline
manual's sample inputrc (test config1, config2), a Stack Overflow answer
(PackageHelper.java) and an unlicensed gist (SystemRegistryImpl.java).
Files-Excluded:
.mvn
.mvx
mvx
mvx.cmd
demo/wget.exe
native/src/main/resources/org/jline/nativ/FreeBSD
native/src/main/resources/org/jline/nativ/Linux
native/src/main/resources/org/jline/nativ/Mac
native/src/main/resources/org/jline/nativ/Windows
website
builtins/src/main/resources/org/jline/builtins/*-help.txt
demo/src/main/scripts/nanorc/groovy.nanorc
demo/src/main/scripts/nanorc/java.nanorc
demo/src/main/scripts/nanorc/xml.nanorc
groovy/src/main/resources/org/jline/groovy/java.nanorc
demo/src/main/scripts/nanorc/sh-repl.nanorc
builtins/src/test/resources/nano/java.nanorc
builtins/src/test/resources/nano/xml.nanorc
builtins/src/test/resources/org/jline/builtins/config1
builtins/src/test/resources/org/jline/builtins/config2
groovy/src/main/java/org/jline/script/PackageHelper.java
console/src/main/java/org/jline/console/impl/SystemRegistryImpl.java
Files: *
Copyright: 2002-2026, the original author(s)
2002-2026, the original author or authors
License: BSD-3-clause
Comment:
Most files carry the short JLine header ("This software is distributable
under the BSD license"), which refers to LICENSE.txt.
Files: console-ui/*
Copyright: 2020, Andreas Wegmann
2025, the original author(s)
License: BSD-3-clause
Comment:
ConsoleUI was written by Andreas Wegmann and merged into JLine
(console-ui/README.md); its sources now carry the JLine BSD-3-clause
header. This module is not built by this package.
Files: console-ui/LICENSE.txt
docs/ConsoleUI-Logo.png
Copyright: 2016-2020, Andreas Wegmann
License: Apache-2.0
Comment: Licence file and logo of the original ConsoleUI project.
Files: native/src/main/native/clibrary.c
native/src/main/native/kernel32.c
native/src/main/resources/org/jline/nativ/jlinenative.properties
terminal/src/main/resources/META-INF/jline/README.md
terminal/src/main/resources/META-INF/jline/providers/dumb
terminal/src/main/resources/META-INF/jline/providers/exec
terminal/src/main/resources/META-INF/services/org.jline.terminal.spi.TerminalProvider
terminal-ffm/src/main/resources/META-INF/jline/providers/ffm
terminal-ffm/src/main/resources/META-INF/services/org.jline.terminal.spi.TerminalProvider
terminal-jni/src/main/resources/META-INF/jline/providers/jni
terminal-jni/src/main/resources/META-INF/services/org.jline.terminal.spi.TerminalProvider
Copyright: 2009-2026, the original author(s)
2019, the original author or authors
License: Apache-2.0
Files: .github/dependabot.yml
.github/release-drafter-3x.yml
.github/release-drafter.yml
.github/workflows/master-build.yml
demo/etc/logging.properties
demo/etc/logging-verbose.properties
native/Makefile
native/Makefile.common
Copyright: The Apache Software Foundation
License: Apache-2.0
Comment:
These files carry the Apache Software Foundation licence header, which
has no copyright line; the ASF is the holder it refers to.
Files: builtins/src/main/java/org/jline/builtins/Options.java
builtins/src/test/java/org/jline/builtins/OptionsTest.java
demo/src/main/java/org/apache/felix/gogo/jline/Posix.java
demo/src/main/java/org/apache/felix/gogo/jline/Shell.java
Copyright: the original author(s)
The Apache Software Foundation
License: BSD-3-clause and Apache-2.0
Comment:
These files carry the JLine BSD-3-clause header and, below it, the
Apache Software Foundation licence header. Both licences apply.
Files: native/src/main/java/org/jline/nativ/JLineNativeLoader.java
native/src/main/java/org/jline/nativ/OSInfo.java
Copyright: the original author(s)
The Apache Software Foundation
2007-2008, Taro L. Saito
License: BSD-3-clause and Apache-2.0
Comment: JLine and ASF headers; code by Taro L. Saito, via Jansi.
Files: native/src/main/java/org/jline/nativ/CLibrary.java
native/src/main/java/org/jline/nativ/Kernel32.java
native/src/main/native/jlinenative.h
terminal/src/main/java/org/jline/utils/AnsiWriter.java
terminal-ffm/src/main/java/org/jline/terminal/impl/ffm/WindowsAnsiWriter.java
terminal-jni/src/main/java/org/jline/terminal/impl/jni/win/WindowsAnsiWriter.java
Copyright: the original author(s)
2009, Progress Software Corporation and/or its subsidiaries or affiliates
License: BSD-3-clause and Apache-2.0
Comment: Adapted from Jansi (https://github.com/fusesource/jansi).
Files: jansi-core/src/main/java/org/jline/jansi/Ansi.java
jansi-core/src/main/java/org/jline/jansi/AnsiColors.java
jansi-core/src/main/java/org/jline/jansi/AnsiConsole.java
jansi-core/src/main/java/org/jline/jansi/AnsiMain.java
jansi-core/src/main/java/org/jline/jansi/AnsiMode.java
jansi-core/src/main/java/org/jline/jansi/AnsiPrintStream.java
jansi-core/src/main/java/org/jline/jansi/AnsiRenderer.java
jansi-core/src/main/java/org/jline/jansi/AnsiType.java
jansi-core/src/main/java/org/jline/jansi/io/AnsiOutputStream.java
jansi-core/src/main/java/org/jline/jansi/io/AnsiProcessor.java
jansi-core/src/main/java/org/jline/jansi/io/ColorsAnsiProcessor.java
jansi-core/src/main/java/org/jline/jansi/io/WindowsAnsiProcessor.java
jansi-core/src/main/resources/org/jline/jansi/jansi.txt
jansi-core/src/test/java/org/jline/jansi/AnsiConsoleExample.java
jansi-core/src/test/java/org/jline/jansi/AnsiConsoleExample2.java
jansi-core/src/test/java/org/jline/jansi/AnsiRendererTest.java
jansi-core/src/test/java/org/jline/jansi/AnsiStringTest.java
jansi-core/src/test/java/org/jline/jansi/AnsiTest.java
jansi-core/src/test/java/org/jline/jansi/EncodingTest.java
jansi-core/src/test/java/org/jline/jansi/io/AnsiOutputStreamTest.java
jansi-core/src/test/resources/jansi.ans
Copyright: 2009-2023, the original author(s)
2009, Progress Software Corporation and/or its subsidiaries or affiliates
License: BSD-3-clause and Apache-2.0
Comment: Jansi 2.4 (Apache-2.0) relabelled with the JLine header; not built.
Files: builtins/src/main/java/org/jline/builtins/PosixCommands.java
builtins/src/main/java/org/jline/builtins/ScreenTerminal.java
demo/src/main/java/org/apache/felix/gogo/runtime/Reflective.java
demo/src/main/java/org/jline/demo/FunctionConverter.java
remote-ssh/src/main/java/org/jline/builtins/ssh/ShellCommand.java
remote-ssh/src/main/java/org/jline/builtins/ssh/ShellFactoryImpl.java
remote-telnet/src/main/java/org/jline/builtins/telnet/Telnet.java
style/src/main/java/org/jline/style/InterpolationHelper.java
terminal/src/test/java/org/jline/utils/ScreenTerminal.java
Copyright: the original author(s)
The Apache Software Foundation
License: BSD-3-clause and Apache-2.0
Comment: Adapted from Apache Felix gogo/utils and Apache Karaf; not built.
Files: demo/src/main/java/org/jline/demo/consoleui/BasicDynamic.java
prompt/src/main/java/org/jline/prompt/impl/DefaultPrompter.java
Copyright: the original author(s)
2020, Andreas Wegmann
License: BSD-3-clause
Comment: Partly adapted from the ConsoleUI sources in console-ui/.
Files: terminal/src/main/java/org/jline/utils/InputStreamReader.java
Copyright: the original author(s)
The Apache Software Foundation
License: BSD-3-clause and Apache-2.0
Comment: Adapted from Apache Harmony's java.io.InputStreamReader.
Files: terminal/src/main/java/org/jline/utils/WCWidth.java
Copyright: the original author(s)
2007, Markus Kuhn
License: BSD-3-clause and Kuhn-wcwidth
Comment: Java port of https://www.cl.cam.ac.uk/~mgk25/ucs/wcwidth.c.
Files: terminal/src/main/resources/org/jline/utils/ansi.caps
terminal/src/main/resources/org/jline/utils/dumb.caps
terminal/src/main/resources/org/jline/utils/rxvt-basic.caps
terminal/src/main/resources/org/jline/utils/rxvt-unicode-256color.caps
terminal/src/main/resources/org/jline/utils/rxvt-unicode.caps
terminal/src/main/resources/org/jline/utils/rxvt.caps
terminal/src/main/resources/org/jline/utils/screen-256color.caps
terminal/src/main/resources/org/jline/utils/screen.caps
terminal/src/main/resources/org/jline/utils/xterm-256color.caps
terminal/src/main/resources/org/jline/utils/xterm.caps
Copyright: 1998-2018, Free Software Foundation, Inc.
2018-2020, Thomas E. Dickey
License: X11-distribute-modifications-variant
Comment: Printed by infocmp from the ncurses terminfo database.
Files: remote-telnet/src/main/java/org/jline/builtins/telnet/Connection.java
remote-telnet/src/main/java/org/jline/builtins/telnet/ConnectionData.java
remote-telnet/src/main/java/org/jline/builtins/telnet/ConnectionEvent.java
remote-telnet/src/main/java/org/jline/builtins/telnet/ConnectionFilter.java
remote-telnet/src/main/java/org/jline/builtins/telnet/ConnectionListener.java
remote-telnet/src/main/java/org/jline/builtins/telnet/ConnectionManager.java
remote-telnet/src/main/java/org/jline/builtins/telnet/PortListener.java
remote-telnet/src/main/java/org/jline/builtins/telnet/TelnetIO.java
Copyright: 2000-2005, Dieter Wimberger
the original author(s)
License: BSD-3-clause and BSD-3-clause-telnetd
Comment:
Code from the Java TelnetD library: the JLine BSD-3-clause header and the
original TelnetD licence (text below). Both apply. This module is not
built by this package.
Files: demo/src/main/scripts/nanorc/dark.nanorctheme
demo/src/main/scripts/nanorc/light.nanorctheme
Copyright: 2016, Yuri Sakhno
2021, the original author(s)
License: CC0-1.0 and BSD-3-clause
Comment: Adapted from https://github.com/YSakhno/nanorc themes (CC0-1.0).
Files: debian/*
Copyright: 2026, Juan Manuel Méndez Rey <juan.mendezr@proton.me>
License: BSD-3-clause
License: BSD-3-clause
Redistribution and use in source and binary forms, with or
without modification, are permitted provided that the following
conditions are met:
.
Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
.
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.
.
Neither the name of JLine nor the names of its contributors
may be used to endorse or promote products derived from this
software without specific prior written permission.
.
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 OWNER 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: BSD-3-clause-telnetd
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are
met:
Redistributions of source code must retain the above copyright notice,
this list of conditions and the following disclaimer.
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.
.
Neither the name of the author nor the names of its contributors
may be used to endorse or promote products derived from this software
without specific prior written permission.
.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDER 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 REGENTS 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: Apache-2.0
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
.
http://www.apache.org/licenses/LICENSE-2.0
.
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
.
On Debian systems, the complete text of the Apache version 2.0 license
can be found in "/usr/share/common-licenses/Apache-2.0".
License: CC0-1.0
To the extent possible under law, the author(s) have dedicated all
copyright and related and neighboring rights to this software to the
public domain worldwide. This software is distributed without any
warranty.
.
On Debian systems, the complete text of the CC0 1.0 Universal license
can be found in "/usr/share/common-licenses/CC0-1.0".
License: Kuhn-wcwidth
Permission to use, copy, modify, and distribute this software
for any purpose and without fee is hereby granted. The author
disclaims all warranties with regard to this software.
License: X11-distribute-modifications-variant
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, distribute with modifications, 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 ABOVE 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.
.
Except as contained in this notice, the name(s) of the above copyright
holders shall not be used in advertising or otherwise to promote the
sale, use or other dealings in this Software without prior written
authorization.
DFSG Assistant LLM REVIEW 0 blocker, 0 important, 0 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 10 days ago.
Report
DFSG NEW review for jline4 version 4.0.14+ds2-1
Summary
- Licensing is DFSG-compliant and
debian/copyrightis accurate: Yes - Packaging is of good quality: Yes
- Issues: 0 blocker, 0 important, 0 minor
- debian/watch: version 5
- debian/copyright: machine-readable
- Scan before the review: nothing found
Licensing
debian/copyright is DEP-5 (Format, Upstream-Name, Source, a documented Files-Excluded list) with a Files: * catch-all in BSD-3-clause, sixteen further stanzas and six stand-alone License paragraphs covering every short name used, including inline text for the three non-common-licences (BSD-3-clause-telnetd, Kuhn-wcwidth, X11-distribute-modifications-variant) and /usr/share/common-licenses pointers for Apache-2.0 and CC0-1.0. I found no file whose header contradicts its stanza: the JLine BSD header covers the mass of the tree, and every ASF-headed file, the Jansi/TelnetD/Kuhn/ConsoleUI/ncurses-derived files and the nano themes are each in a stanza that names the right holder and licence. Nothing in the tree is non-free, nothing lacks a licence grant, and all licences combined in the two binaries (BSD-3-clause, Apache-2.0, X11-variant) are mutually compatible.
Packaging
The packaging is careful and current: debhelper compat 14 via debhelper-compat with dh, a clean arch/indep split (JNI .so built from source into /usr/lib//jni/jline4, jars built with maven-debian-helper), Multi-Arch: same on libjline4-jni, a versioned same-source dependency expressed with ${source:Version}, two DEP-3 patches with clear purpose, an autopkgtest that exercises the installed reader, JNI loader and JNI provider, Standards-Version 4.7.4 (current; debian-policy is 4.7.4.1), Vcs-*, upstream/metadata, gbp.conf and a README.source explaining the repack, module selection and Maven/JNI layout. The only choices a sponsor might debate (empty override_dh_auto_test because upstream needs JUnit 6, and building only four modules) are documented and compensated by the autopkgtest.
Issues
None.
Verified ◂
- The prescan reported no missing copyright holders and no built, minified or PDF files; the only binary file in the tree is docs/ConsoleUI-Logo.png (42 KB PNG), recorded by name and not opened, with its Apache-2.0/Andreas Wegmann attribution taken from console-ui/LICENSE.txt and console-ui/README.md.
- debian/copyright: DEP-5 header with Format, Upstream-Name, Upstream-Contact, Source, a Comment and Files-Excluded;
Files: *in BSD-3-clause with the holders the file headers use (the original author(s)/the original author or authors), then sixteen more specific paragraphs (later ones override, so console-ui/LICENSE.txt and the logo correctly override console-ui/*), and stand-alone License paragraphs for BSD-3-clause, BSD-3-clause-telnetd, Apache-2.0, CC0-1.0, Kuhn-wcwidth and X11-distribute-modifications-variant. - Every path named in a Files stanza exists, including the less obvious ones: demo/src/main/java/org/apache/felix/gogo/runtime/Reflective.java, demo/src/main/java/org/jline/demo/FunctionConverter.java and consoleui/BasicDynamic.java, prompt/src/main/java/org/jline/prompt/impl/DefaultPrompter.java, style/src/main/java/org/jline/style/InterpolationHelper.java, remote-ssh/.../ShellCommand.java and ShellFactoryImpl.java, remote-telnet/.../Telnet.java, terminal/src/test/java/org/jline/utils/ScreenTerminal.java, terminal-jni/.../META-INF/services/org.jline.terminal.spi.TerminalProvider, terminal-ffm/.../META-INF/jline/providers/ffm.
- Every Files-Excluded entry is absent from the unpacked tree: .mvn, .mvx, mvx, mvx.cmd, website/, demo/wget.exe, the four prebuilt native libraries under native/src/main/resources/org/jline/nativ/, builtins/src/main/resources/org/jline/builtins/-help.txt, the demo and builtins nano syntax files, builtins test config1/config2 and nano/.nanorc, groovy/.../PackageHelper.java and console/.../SystemRegistryImpl.java.
- The ten .caps files in the tree are exactly those beginning
# Reconstructed via infocmp from file:; windows.caps, windows-256color.caps, windows-conemu.caps, windows-vtp.caps and dumb-color.caps have no infocmp line (hand-written JLine entries) and are correctly left in the Files: * BSD-3-clause stanza rather than the ncurses one. - The ncurses attribution was checked against /usr/share/doc/ncurses-base/copyright: terminfo data is MIT/X11 (
distribute, distribute with modifications, sublicense, and/or sell ... Except as contained in this notice, the name(s) of the above copyright holders shall not be used in advertising), i.e. the text debian/copyright gives as X11-distribute-modifications-variant, with Copyright 1998-2018 Free Software Foundation, Inc. and Thomas E. Dickey; the year ranges differ only cosmetically. - Every file with an Apache Software Foundation header is in an Apache-2.0 or dual stanza: .github/dependabot.yml, .github/release-drafter.yml, .github/release-drafter-3x.yml, .github/workflows/master-build.yml, builtins/.../Options.java, builtins/.../OptionsTest.java, demo/etc/logging.properties, demo/etc/logging-verbose.properties, demo/.../felix/gogo/jline/Posix.java and Shell.java, native/Makefile, native/Makefile.common, native/.../JLineNativeLoader.java and OSInfo.java. The dual-licence comment is accurate where checked: Posix.java and Options.java carry the JLine BSD header above the ASF header; Reflective.java and ScreenTerminal.java carry only the JLine header but are listed with the ASF/Karaf source in their Comment.
- File-level licences match their stanzas: native/src/main/native/clibrary.c and kernel32.c start with the Apache-2.0 header and are in the Apache-2.0 paragraph; jlinenative.c and jlinenative.h carry the JLine BSD header; remote-telnet's eight Connection*.java/PortListener/TelnetIO files contain Dieter Wimberger's TelnetD text exactly as reproduced in BSD-3-clause-telnetd; WCWidth.java names Markus Kuhn and his permission notice is reproduced as Kuhn-wcwidth; console-ui/LICENSE.txt is the Apache-2.0 text with
Copyright 2020 Andreas Wegmann. - jansi-core files not named in its dual stanza (io/Colors.java, io/FastBufferedOutputStream.java, module-info.java, InstallUninstallTest.java, jansi.properties, native-image metadata) are JLine wrappers or extensions carrying the JLine BSD header, so the Files: * BSD-3-clause claim for them is accurate.
- The files removed for licensing reasons leave dangling references in modules this package does not build: console/.../SimpleSystemRegistryImpl.java and ConsoleDispatcherBuilder.java extend/use the removed SystemRegistryImpl, groovy/.../GroovyEngine.java calls the removed PackageHelper, and builtins InputRCTest.java loads the removed config1/config2. Those modules are
--ignored in debian/libjline4-java.poms and absent from JLINE_MODULES, and the removals are documented in the copyright Comment, so no built code is affected. - debian/patches: series has 0001 and 0002, both with Description, Author, Forwarded: not-needed and Last-Update DEP-3 headers; 0001 adds the jline4 subdirectory lookup to JLineNativeLoader and 0002 replaces ${nisse.jgit.dynamicVersion} with 4.0.14 in the root POM and the four built modules, matching their stated purpose.
- debian/rules:
dh $@at compat 14; the arch build compiles native/src/main/native/clibrary.c and jlinenative.c with dpkg-buildflags into debian/native/libjlinenative.so and installs it at usr/lib/$(DEB_HOST_MULTIARCH)/jni/jline4/ for libjline4-jni; the indep build packages only-pl native,terminal,terminal-jni,reader; MVN_ARGS supplies nisse.jgit.dynamicVersion (4.0.14, stripped of +ds2) and a SOURCE_DATE_EPOCH-derived build date; execute_after_dh_auto_clean removes debian/native. - debian/control: compat 14 (debhelper-compat), Standards-Version 4.7.4 against debian-policy 4.7.4.1, Section java, Vcs-Git/Vcs-Browser/Homepage present; libjline4-jni is Architecture: any with Multi-Arch: same and ${shlibs:Depends}; libjline4-java is Architecture: all and depends on libjline4-jni (>= ${source:Version}), which is the correct substvar for an arch:all package depending on an arch:any one (a binNMU leaves the arch:all package at the source version).
- Build-Depends all exist in unstable: libmaven-bundle-plugin-java 5.1.9 and maven-debian-helper 2.8.1 (apt-cache); the 6.0.2 maven-bundle-plugin pin in pom.xml is reconciled with the archive's 5.1.9 by the maven buildsystem's
mh_patchpoms ... --maven-repostep (/usr/share/perl5/Debian/Debhelper/Buildsystem/maven.pm), and maven.ignoreRules drops the enforcer/spotless/exec/graal plugins and junit/easymock, so the JUnit 6 vs 5.10 difference cannot affect the build. - debian/tests/control and debian/tests/readline: the test compiles and runs against APIs that exist in the built modules (JLineNativeLoader.initialize() and getNativeLibraryPath(), DumbTerminal(InputStream,OutputStream), TerminalBuilder.builder()/system(boolean)/provider(String), TerminalExt) and uses the /usr/share/java/jline4-*.jar names created by --usj-name= in debian/libjline4-java.poms; Depends covers script (bsdutils), dpkg-architecture (dpkg-dev) and default-jdk-headless, and libjline4-jni arrives through libjline4-java's Depends.
- debian/changelog is an initial unstable upload closing the ITP (#1149767) with a valid date; debian/source/format is 3.0 (quilt); debian/gbp.conf and debian/upstream/metadata are consistent with the source; debian/README.source documents the repack, the four built modules, the JUnit 6 reason for not running upstream tests and the Maven/JNI coexistence with jline3.
- Files: debian/* covers the packaging (including debian/lrc.config and debian/tests/readline); the stray upstream file prompt/pom.xml.bak is an unbuilt copy of that module's POM and is under the Files: * BSD-3-clause stanza.
- uscan found upstream releases with
debian/watch; a newer upstream version is available (upstream4.4.8, packaged4.0.14+ds2), which is not a fault of the package. - Every pointer of
debian/copyrightto /usr/share/common-licenses names a file that is there (Apache-2.0,CC0-1.0).
Not confirmed ◂
- The +ds2 repack cannot be compared with a pristine upstream tarball (only the repacked orig is shipped), so I cannot prove that Files-Excluded is exhaustive; the excluded paths themselves are all absent, as listed above.
- Provenance of files that may be Jansi-derived beyond what debian/copyright records (terminal-ffm/src/main/java/org/jline/terminal/impl/ffm/CLibrary.java and Kernel32.java, terminal-jni/src/main/java/org/jline/terminal/impl/jni/win/NativeWinSysTerminal.java and NativeWinConsoleWriter.java, terminal-ffm's NativeWinConsoleWriter). CLAUDE.md states that a formatting hook rewrites every Java header mechanically, so a JLine header does not prove JLine authorship; checking this would need Jansi's sources, which are not available on the reviewing system.
- docs/ConsoleUI-Logo.png is a binary image and was not opened; its licence and holder rest on console-ui/LICENSE.txt and README.md.
- The existence of the salsa repositories named in Vcs-Git/Vcs-Browser was not checked, and the Maven repository versions installed (4.0.14 vs 4.x via --has-package-version and debian/maven.rules) and the patched loader's behaviour were not run; an autopkgtest run would show the latter.
Proposed changes ◂
None.
Uploader's response to the LLM review
The uploader was emailed about the review 10 days ago.
Review Information
accepted — allocated to mechtilde 10 days ago, started 10 days ago, completed 10 days ago.
Final Comment
Other Reviews of this Package
| Version | Hash | Allocated | Completed | Reviewer | Status | Details |
|---|---|---|---|---|---|---|
| 4.0.14+ds-1 | 5e22dbf3… | 2026-10-28 10:06 | 2026-10-28 10:06 | dfsg-uploader | rejected | VIEW |
Public Notes
Load licenses database
Command: dnq license-check -prepare
Exit code: 0
License check [main]:
Found 6 unique license identifier(s) in debian/copyright:
COMPATIBLE (4):
Apache-2.0 [Note: not compatible with GPL-2]
BSD-3-clause
CC0-1.0
X11-distribute-modifications-variant [X11 distribute modifications variant; permissive]
UNKNOWN (not in DFSG license database):
BSD-3-clause-telnetd (manually verify DFSG compatibility)
Kuhn-wcwidth (manually verify DFSG compatibility)
Result: ATTENTION REQUIRED
- 2 unrecognized license(s) require manual review