Review: jline3 3.29.0+ds-1
Package Information
| Description | Console input handling library 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 in par with ZSH line editor. People familiar with the readline/editline capabilities for modern shells (such as bash and tcsh) will find most of the command editing features of JLine to be familiar. This package contains the JLine Java classes. Native terminal support is provided by the libjline3-jni package; without it JLine falls back to the pure-Java exec (stty) terminal provider. |
|---|---|
| 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/jline3.git (browse) |
| Popcon Installs | 194 |
| Binary NEW | Yes (new binary packages of a source already in sid) |
| Tracker | https://tracker.debian.org/pkg/jline3 |
| Uploaded | 10 days ago |
New Package Report
.changes
| Source | jline3 |
|---|---|
| Version | 3.29.0+ds-1 |
| Changed-By | Juan Manuel Méndez Rey <juan.mendezr@proton.me> |
| Architecture | source all amd64 |
| Distribution | unstable |
| Date | Tue, 09 Jun 2026 23:11:51 +0200 |
Changelog
jline3 (3.29.0+ds-1) unstable; urgency=medium
.
* Team upload.
* New upstream release 3.29.0 (needed by Scala 2.13.18 bootstrap).
* d/watch: Version 5 git mode; Repacksuffix +ds.
* d/copyright: Files-Exclude prebuilt JNI binaries; build
libjlinenative.so from C.
* New libjline3-jni package (Arch: any) with the native library from
source.
* d/control: refresh build-deps for 3.29; Standards-Version 4.7.4.
* d/maven.rules: map jna, jansi and sshd to the debian version instead
of a fixed one, so newer uploads of them do not break the build.
* Build the JNI library with the Debian build flags (debug symbols,
hardening)..dsc
| Section | java |
|---|---|
| Priority | optional |
| Component | main |
| Package-List | libjline3-java deb java optional arch=all libjline3-jni deb java optional arch=any |
debian/copyright
Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
Upstream-Name: JLine
Source: https://github.com/jline/jline3
Files-Excluded: *.exe
mvnw*
.mvn
.travis*
native/src/main/resources/org/jline/nativ/*
Files: *
Copyright: 2002-2024, the original author(s)
2002-2024, the original author or authors
2002-2017, Guillaume Nodet
2002-2016, Jason Dillon
License: BSD-3-clause
Files: jansi-core/*
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 (https://github.com/fusesource/jansi, Apache-2.0), merged into
JLine by its maintainer; the copies carry only the JLine header. Ansi.java,
AnsiConsole.java and io/AnsiOutputStream.java come from Jansi 1.x files
that name Progress Software Corporation.
Files: native/src/main/native/clibrary.c
native/src/main/native/kernel32.c
Copyright: 2009-2017, the original author(s)
License: Apache-2.0
Files: terminal*/src/main/resources/META-INF/services/org/jline/terminal/provider/*
Copyright: 2022, the original author(s)
License: Apache-2.0
Files: native/Makefile
native/Makefile.common
demo/etc/logging.properties
demo/etc/logging-verbose.properties
.github/dependabot.yml
.github/release-drafter.yml
.github/workflows/master-build.yml
Copyright: The Apache Software Foundation
License: Apache-2.0
Comment: These files carry only the ASF Apache-2.0 header, with no year.
Files: console-ui/LICENSE.txt
console-ui/doc/*
Copyright: 2016-2020, Andreas Wegmann
License: Apache-2.0
Comment: Licence, logo, screenshots and howto of the standalone ConsoleUI
project, kept when its author agreed to merge it into JLine
(https://github.com/jline/jline3/issues/841). The console-ui sources carry
the JLine BSD-3-clause header and fall under Files: *.
Files: builtins/src/main/java/org/jline/builtins/Options.java
builtins/src/main/java/org/jline/builtins/ScreenTerminal.java
builtins/src/test/java/org/jline/builtins/OptionsTest.java
Copyright: 2002-2020, the original author(s)
The Apache Software Foundation
License: BSD-3-clause and Apache-2.0
Comment:
These files carry a dual header: the JLine BSD-3-clause notice plus the
Apache Software Foundation grant under the Apache License, Version 2.0.
Both licenses apply. ScreenTerminal.java is copied from the Apache Karaf
WebConsole Gogo plugin, as it says, which is based on Ajaxterm (public
domain).
.
On Debian systems, the complete text of the Apache version 2.0 license
can be found in "/usr/share/common-licenses/Apache-2.0".
Files: 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: 2002-2023, 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; the copies carry
only the JLine header. The remote-ssh, remote-telnet and style ones are
built; the demo and test ones are not.
Files: demo/src/main/java/org/apache/felix/gogo/jline/Posix.java
Copyright: 2023, the original author(s)
Apache Software Foundation (Apache Felix)
License: BSD-3-clause and Apache-2.0
Comment:
Apache Felix Gogo code carrying a dual header: the JLine BSD-3-clause notice
plus the Apache Software Foundation grant under the Apache License,
Version 2.0. Both licenses apply.
.
On Debian systems, the complete text of the Apache version 2.0 license
can be found in "/usr/share/common-licenses/Apache-2.0".
Files: native/src/main/java/org/jline/nativ/JLineNativeLoader.java
native/src/main/java/org/jline/nativ/OSInfo.java
Copyright: 2023, 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 as above. The code comes, through Jansi, from
JansiLoader.java and OSInfo.java, "Copyright 2007/2008 Taro L. Saito",
Apache-2.0.
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-jansi/src/main/java/org/jline/terminal/impl/jansi/win/WindowsAnsiWriter.java
terminal-jna/src/main/java/org/jline/terminal/impl/jna/win/WindowsAnsiWriter.java
terminal-jni/src/main/java/org/jline/terminal/impl/jni/win/WindowsAnsiWriter.java
Copyright: 2002-2023, 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, Apache-2.0):
internal/CLibrary.java, internal/Kernel32.java, jansi.h,
AnsiOutputStream.java and WindowsAnsiOutputStream.java. Jansi 1.x headers
name Progress Software Corporation, later ones "2009-2023 the original
author(s)". The JLine copies carry only the JLine header.
Files: terminal/src/main/java/org/jline/utils/InputStreamReader.java
Copyright: 2002-2016, the original author(s)
The Apache Software Foundation
License: BSD-3-clause and Apache-2.0
Comment:
Adapted from java/io/InputStreamReader.java of Apache Harmony
(Apache-2.0, ASF header), as its javadoc says.
Files: terminal/src/main/java/org/jline/utils/WCWidth.java
Copyright: 2002-2016, the original author(s)
2007, Markus Kuhn
License: BSD-3-clause and Kuhn-wcwidth
Comment:
A Java port of Markus Kuhn's wcwidth.c
(https://www.cl.cam.ac.uk/~mgk25/ucs/wcwidth.c), whose comments it
copies.
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:
Terminal descriptions printed by infocmp from the ncurses terminfo
database (first line of each file). The other *.caps files there were
written for JLine.
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
2002-2018, 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.
Files: builtins/src/main/resources/org/jline/builtins/nano-browser-help.txt
builtins/src/main/resources/org/jline/builtins/nano-goto-help.txt
builtins/src/main/resources/org/jline/builtins/nano-main-help.txt
builtins/src/main/resources/org/jline/builtins/nano-read-help.txt
builtins/src/main/resources/org/jline/builtins/nano-replace-help.txt
builtins/src/main/resources/org/jline/builtins/nano-search-help.txt
builtins/src/main/resources/org/jline/builtins/nano-search-replace-help.txt
builtins/src/main/resources/org/jline/builtins/nano-write-help.txt
Copyright: 1999-2009, Free Software Foundation, Inc.
License: GPL-3+
Comment:
Help texts of the nano builtin, copied from GNU nano 2.2 (src/global.c,
src/help.c) without its notice. Installed in the jline3 and
jline3-builtins jars.
Files: builtins/src/main/resources/org/jline/builtins/less-help.txt
Copyright: 1984-2015, Mark Nudelman
License: GPL-3+ or Less
Comment:
Help text of the less builtin, copied from less.hlp of less 481 without
its notice. Installed in the jline3 and jline3-builtins jars.
Files: demo/src/main/scripts/nanorc/groovy.nanorc
demo/src/main/scripts/nanorc/java.nanorc
demo/src/main/scripts/nanorc/sh-repl.nanorc
demo/src/main/scripts/nanorc/xml.nanorc
groovy/src/main/resources/org/jline/groovy/java.nanorc
Copyright: 1999-2011, 2013-2016, Free Software Foundation, Inc.
2014-2020, The contributors to GNU nano
2020-2025, the original author(s)
License: GPL-3+
Comment:
Adapted from the GNU nano java, xml and sh syntax files. Not built or
installed by this package. The other *.nanorc files in console, demo and
groovy were written for JLine.
Files: groovy/src/main/java/org/jline/script/PackageHelper.java
Copyright: 2002-2021, the original author(s)
2014-2019, BrainStone
License: BSD-3-clause and CC-BY-SA-4.0
Comment:
Partly copied from the Stack Overflow answer it links to
(https://stackoverflow.com/a/22462785, last edited 2019, CC BY-SA 4.0).
Not built by this package.
Files: console/src/main/java/org/jline/console/impl/SystemRegistryImpl.java
Copyright: 2002-2023, the original author(s)
2013, Udo Klimaschewski
License: BSD-3-clause and Expat
Comment:
unescape() is based on https://gist.github.com/uklimaschewski/6741769,
as the file says. The author put the gist under the MIT licence in
https://gist.github.com/uklimaschewski/6741769?permalink_comment_id=6447592
(2026-10-28).
Files: builtins/src/test/resources/org/jline/builtins/config1
builtins/src/test/resources/org/jline/builtins/config2
Copyright: 1988-2016, Free Software Foundation, Inc.
License: Readline-manual
Comment:
Test fixtures copied from the "Sample Init File" of the GNU Readline
manual (doc/rluser.texi). Not built or installed 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 themes/default.nanorctheme of
https://github.com/YSakhno/nanorc, which is CC0-1.0. The demo module
is not built by this package.
Files: debian/*
Copyright: 2019, Saif Abdul Cassim <saif.15@cse.mrt.ac.lk>
2020, Samyak Jain <samyak.jn11@gmail.com>
License: BSD-3-clause
Comment:
The Debian packaging is licensed under the same terms as the upstream project.
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: 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: 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: GPL-3+
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
.
You should have received a copy of the GNU General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>.
.
On Debian systems, the complete text of the GNU General Public License
version 3 can be found in "/usr/share/common-licenses/GPL-3".
License: Less
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 in the documentation and/or other materials provided with
the distribution.
.
THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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: 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.
License: CC-BY-SA-4.0
This work is licensed under the Creative Commons Attribution-ShareAlike
4.0 International License.
.
On Debian systems, the complete text of the CC-BY-SA 4.0 license can be
found in "/usr/share/common-licenses/CC-BY-SA-4.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.
License: Readline-manual
Permission is granted to process this file through Tex and print the
results, provided the printed document carries copying permission notice
identical to this one except for the removal of this paragraph (this
paragraph not being relevant to the printed manual).
.
Permission is granted to make and distribute verbatim copies of this manual
provided the copyright notice and this permission notice are preserved on
all copies.
.
Permission is granted to copy and distribute modified versions of this
manual under the conditions for verbatim copying, provided also that the
GNU Copyright statement is available to the distributee, and provided that
the entire resulting derived work is distributed under the terms of a
permission notice identical to this one.
.
Permission is granted to copy and distribute translations of this manual
into another language, under the above conditions for modified versions.
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 10 days ago.
Report
DFSG NEW review for jline3 version 3.29.0+ds-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: nothing found
Licensing
debian/copyright is DEP-5 and matches the tree. Upstream is BSD-3-clause, and every third-party part I could find has its own stanza with the right holder and licence: Jansi/Apache-2.0 (jansi-core, native CLibrary/Kernel32, the four WindowsAnsiWriter copies), TelnetD BSD, ncurses terminfo (X11-distribute-modifications-variant), Kuhn wcwidth, Apache Harmony/Felix/Karaf, GNU nano and less help texts (GPL-3+, Less), GNU Readline manual fixtures and CC-BY-SA-4.0 in the unbuilt groovy module. All are free and mutually compatible; full texts are present or point at /usr/share/common-licenses; nothing non-free was found, and Files-Excluded did remove the prebuilt JNI binaries. One consequence worth knowing: the GPL-3+ nano/less help texts are jar resources, so the shipped jline3-builtins.jar and shaded jline3.jar are GPL-3+ works as a whole - BSD-3 permits that and d/copyright states it, but consumers of libjline3-java inherit the GPL-3+ terms.
Packaging
Competent packaging: dh at compat 13 with maven-debian-helper, a module list that builds exactly the jars debian/libjline3-java.poms installs, Build-Depends that match the reactor and all exist in the archive, and the JNI library built from clibrary.c/jlinenative.c with dpkg-buildflags (hardening=+all) and installed to /usr/lib//jni, which is where JLineNativeLoader's java.library.path fallback looks. The new libjline3-jni is Architecture: any with Multi-Arch: same and ${shlibs:Depends} (which compat 13 still needs), the -Werror patch is small and DEP-3, Standards-Version 4.7.4 is current against Policy 4.7.4.1, and salsa-ci.yml and upstream/metadata are there. Two gaps: the upstream test suite is switched off at both layers with no autopkgtest to replace it, and the debian/* copyright stanza was not updated for the 2026 rewrite.
Issues
minor licensing 1. Files: debian/* names only the 2019/2020 packagers, not the author of the 2026 packaging rewrite ◂
- Files:
debian/copyright:251-253,debian/changelog:1-17 - Basis: inferred from what was read, not seen directly
- Evidence:
Files: debian/*/Copyright: 2019, Saif Abdul Cassim ... 2020, Samyak Jain ..., while the changelog entry for 3.29.0+ds-1 is signed by Juan Manuel Mendez Rey and describes this upload writing d/rules' native build, the new libjline3-jni package, d/control and d/copyright itself. - Problem: The licence (BSD-3-clause) is right, but the stanza's holder list is out of date: the d/rules native build, the new binary package and the rewritten copyright file are new packaging written in 2026, and the file that exists to record copyright in debian/* does not name their author. It is the only inaccuracy I found in an otherwise very precise copyright file.
- Fix: Add the 2026 packaging author to the
Files: debian/*Copyright field (and refresh the years), or state in the Comment that the packaging is held by the Debian Java team.
minor packaging 2. Upstream test suite is neither compiled nor run, and no autopkgtest replaces it ◂
- Files:
debian/maven.properties:1,debian/rules:31,debian/tests/control (absent) - Basis: checked, in the package or with a reference tool
- Evidence: debian/maven.properties:
maven.test.skip=true; debian/rules:31:override_dh_auto_test:with no recipe; there is no debian/tests/ directory. - Problem: maven.test.skip skips test compilation as well as execution, and the empty override removes dh_auto_test entirely, so nothing from the suite (reader, console, builtins, terminal) runs at build time or in autopkgtest. This upload jumps from 3.3.1 to 3.29.0 and adds a new binary package whose only content is a dlopen'ed native library, whose failure mode (library not found, symbol not exported, wrong java.library.path) no part of the package exercises. Debian does not require a test suite, but a sponsor will ask what covers such a jump.
- Fix: Either drop maven.test.skip and run the part of the suite that works headless (many JLine tests use its own PTY and are offline-safe), or leave the build alone and add debian/tests/control with an autopkgtest that creates a Terminal through the jni provider (or at least calls JLineNativeLoader.initialize()) against the installed packages.
Verified ◂
- The pre-review scan listed no files to account for and no missing holders; I re-derived that conclusion: every holder appearing in a file notice (Dieter Wimberger, Markus Kuhn, Yuri Sakhno, Andreas Wegmann, Udo Klimaschewski, the ASF, Progress Software, the FSF) has a stanza, and the files added in 3.29 (native CLibrary/JLineNativeLoader, console-ui, nano/less help texts, the JLine jansi-core merge) are covered.
- Coverage: all of debian/ except debian/watch; every non-debian LICENSE/COPYING/README notice; tree-wide greps for Copyright/(C)/(c)/SPDX-License-Identifier/'Licensed under'/'Permission is hereby granted'/GPL/LGPL/Apache/MPL/'public domain'/'All rights reserved'/Creative Commons, and for non-free wording (non-commercial, NoDerivatives, 'Good, not Evil', 'no modification', field-of-use): no non-free terms anywhere.
- The ten .caps that carry an 'Reconstructed via infocmp' first line are exactly the ten in the X11-distribute-modifications-variant stanza; dumb-color.caps and the four windows.caps carry no infocmp header and fall under Files: * as JLine's own, which is what the Comment says.
- Files-Excluded matches the orig tarball: no mvnw*, .mvn, .travis* or *.exe remain, and native/src/main/resources/org/jline/nativ/ is empty, so the loader's hasResource() check fails and it falls through to java.library.path - the documented reason for shipping the library from libjline3-jni.
- jansi-core is a renamed merge of Jansi 2.4 (org.jline.jansi), documented in its own stanza; Debian's libjansi-java is used separately for the terminal-jansi provider, and no file or jar name collides between them, so this is a deliberate upstream fork rather than an unnoticed embedded library copy.
- The third-party headers I checked match their stanzas: ASF Apache-2.0 in builtins Options/ScreenTerminal/OptionsTest, demo Posix/Reflective, native Makefile/Makefile.common, JLineNativeLoader/OSInfo, .github/{dependabot,release-drafter,master-build}; TelnetD BSD in remote-telnet; Apache Harmony in InputStreamReader; Kuhn's notice in WCWidth; ncurses text in the License stanza is verbatim.
- The GPL-3+ nano help texts and less-help.txt are free and GPL-3-compatible with the BSD-3 code; builtins/pom.xml has no resource exclusion, so they are in jline3-builtins.jar, and jline/pom.xml unpacks the other modules' non-class resources into the shaded jline3.jar, which is what the copyright's Comment asserts.
- Every Build-Depends and Depends name exists: apt-cache show gave libmina-sshd-java 2.13.2-3, libjansi-java 2.4.3-1 (2.4.x, which terminal-jansi needs), libjuniversalchardet-java 2.5.0-1 and libmaven-shade-plugin-java 3.6.2-1.
- The native library is compiled with dpkg-buildflags (DEB_BUILD_MAINT_OPTIONS = hardening=+all) and -fvisibility=hidden, which is safe because Debian's jni_md.h defines JNIEXPORT as attribute((visibility("default"))); the sources compiled (clibrary.c, jlinenative.c) are the same two upstream's Makefile builds for Linux, and -lutil is passed as upstream does.
- Standards-Version 4.7.4 is current against Policy 4.7.4.1, the single patch has DEP-3 headers (Description/Author/Forwarded/Last-Update), debhelper-compat (= 13) with ${misc:Depends} in both packages and ${shlibs:Depends} in the arch:any one matches what compat 13 requires, and debian/source/format, salsa-ci.yml and upstream/metadata are all present and sane.
- The console-ui PNG/SVG logo and screenshots were recorded by name and not opened; they are taken on the strength of their own Apache-2.0 LICENSE.txt and the stanza naming Andreas Wegmann.
- uscan found upstream releases with
debian/watch; a newer upstream version is available (upstream3.30.17, packaged3.29.0+ds), 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,CC-BY-SA-4.0,CC0-1.0,GPL-3).
Not confirmed ◂
- The native library was never loaded: whether the default JDK's java.library.path on the target systems really contains /usr/lib//jni is assumed from Debian's OpenJDK defaults, not observed here.
- The provenance comments in d/copyright (GNU nano 2.2, less 481, the Stack Overflow answer, the gist revision dated 2026-10-28) rest on the maintainer's statements; I did not fetch the upstream copies to compare the texts verbatim.
Proposed changes ◂
None.
Uploader's response to the LLM review
Both things are being tackled for the next revision.
Please, do not reject. MR !6 will include it.
https://salsa.debian.org/java-team/jline3/-/merge_requests/6
Details:
debian/copyright: Files: debian/* now names the 2026 packaging work beside the
2019 and 2020 packagers.
Regarding the test suite: maven.test.skip=true was why nothing compiled or ran.
Debian has what it needs, junit5 5.14.4-2 for the jupiter artifacts and
libsurefire-java for the junit-platform provider, so the suite runs in the
build now rather than being replaced by an autopkgtest.
— Juan Manuel Méndez Rey (mendezr), 10 days ago
Review Information
accepted — allocated to awm 5 days ago, started 5 days ago, completed 5 days ago.
Final Comment
Other Reviews of this Package
| Version | Hash | Allocated | Completed | Reviewer | Status | Details |
|---|---|---|---|---|---|---|
| 3.29.0+ds-1 | 69064795… | 2026-10-28 20:06 | 2026-10-28 20:06 | dfsg-uploader | rejected | VIEW |