Review: execline 2.10.0.0-1
Package Information
| Description | small and non-interactive scripting language Execline is a (non-interactive) scripting language, like sh; but its syntax is quite different from a traditional shell syntax. The execlineb program is meant to be used as an interpreter for a text file; the other commands are essentially useful inside an execlineb script. Execline is as powerful as a shell: it features conditional loops, getopt-style option handling, filename globbing, and more. Meanwhile, its syntax is far more logic and predictable than the shell's syntax, and has no security issues. Documentation is provided in execline-doc package. Binaries are installed in /usr/lib/execline/bin. Use the /usr/bin/execlineb wrapper or add /usr/lib/execline/bin to PATH. |
|---|---|
| Maintainer | Shengjing Zhu <zhsj@debian.org> |
| Changed By | Shengjing Zhu <zhsj@debian.org> |
| Sponsor | zhsj@debian.org |
| Distribution | unstable |
| Architecture | any all |
| VCS | git: https://salsa.debian.org/zhsj/execline.git (browse) |
| Popcon Installs | 134 |
| Binary NEW | Yes (new binary packages of a source already in sid) |
| Tracker | https://tracker.debian.org/pkg/execline |
| Uploaded | 2 days ago |
Potential Library Transition
The maintainer says no transition is needed and asked us to review anyway.
This library is only used by s6 and related packages, which are all my packages.
ā zhsj, 2 days ago
New Package Report
.changes
| Changed-By | Shengjing Zhu <zhsj@debian.org> |
|---|---|
| Architecture | source amd64 all |
| Distribution | unstable |
| Date | Fri, 06 Nov 2026 04:45:20 +0800 |
| Source | execline |
| Version | 2.10.0.0-1 |
Changelog
execline (2.10.0.0-1) unstable; urgency=medium . * New upstream version 2.10.0.0 * Bump SO version to 2.10 * Bump skalibs-dev to 2.16.0.0 * Add DCO copyright * Add doc/quine-dam.txt license
.dsc
| Component | main |
|---|---|
| Package-List | execline deb admin optional arch=any execline-doc deb doc optional arch=all libexecline-dev deb libdevel optional arch=any libexecline2.10 deb libs optional arch=any |
| Section | admin |
| Priority | optional |
debian/copyright
Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/ Upstream-Name: execline Source: https://skarnet.org/software/execline/ Files: * Copyright: 2011-2018 Laurent Bercot <ska-skaware@skarnet.org> License: ISC Files: debian/* Copyright: 2018, Shengjing Zhu <i@zhsj.me> License: ISC Files: DCO Copyright: 2004, 2006 The Linux Foundation and its contributors License: verbatim Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. Files: doc/quine-dam.txt Copyright: none License: public-domain It's written by <david.madore@ens.fr>. It's in the public domain. License: ISC Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies. . THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
DFSG Assistant LLM REVIEW 0 blocker, 1 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 2 days ago.
Report
DFSG NEW review for execline version 2.10.0.0-1
Summary
- Licensing is DFSG-compliant and
debian/copyrightis accurate: Yes - Packaging is of good quality: No
- Issues: 0 blocker, 1 important, 2 minor
- debian/watch: version 5
- debian/copyright: machine-readable
- Scan before the review: nothing found
Licensing
The whole tree is ISC: COPYING, doc/index.html's licence link and every file under src/ that carries a licence line say ISC, and only Laurent Bercot holds copyright. The two exceptional files are documented: DCO is the Linux Foundation's verbatim-only licence text (not installed in any binary), and doc/quine-dam.txt is David Madore's public-domain quine. debian/copyright is DEP-5, its stanzas match the files, and it reproduces the ISC text itself since ISC is not in /usr/share/common-licenses. No DFSG problem found.
Packaging
Packaging is otherwise clean and modern (compat 14, dh, 3.0 (quilt), Standards-Version 4.7.4, Multi-Arch, symbols file, arch/indep split, gbp), but libexecline-dev is unusable on its own: the header it installs includes skalibs headers and the static library needs them, yet the package depends only on libexecline2.10 and not on skalibs-dev. Two minor points remain: most of the ~60 installed commands have no man page, and the autopkgtest writes into the source tree.
Issues
important packaging 1. libexecline-dev does not depend on skalibs-dev, though its installed header includes skalibs headers ◂
- Files:
debian/control,src/include/execline/execline.h:5-9 - Basis: checked, in the package or with a reference tool
- Evidence: libexecline-dev stanza has only
Depends: libexecline2.10 (= ${binary:Version}),; the installed header has#include <skalibs/gccattributes.h>,<skalibs/buffer.h>,<skalibs/stralloc.h>. - Problem: Policy 8.4 says installing the development package must result in installation of all development files necessary for compiling programs against the library. A program including <execline/execline.h> cannot be compiled after installing only libexecline-dev, because the skalibs headers come from skalibs-dev, which nothing pulls in; the installed libexecline.a has the same need for skalibs' development files.
- Fix: Add
skalibs-dev (>= 2.16.0.0)to libexecline-dev's Depends (next to libexecline2.10), so the version needed at build time is also the one the header is compatible with.
minor packaging 2. Only execlineb(1) has a man page; the other ~60 installed commands have none ◂
- Files:
debian/execline.manpages:1,debian/execline.install:2 - Basis: checked, in the package or with a reference tool
- Evidence: debian/execline.manpages contains only
debian/execlineb.1, whileusr/lib/execline/bininstalls foreground, forx, importas, redirfd and the rest as ELF programs; their documentation is HTML in execline-doc. - Problem: Policy 12.1: each program should have a manual page in the same package or a dependency, and the lack of one is considered a bug. Only execlineb is documented in man form; the HTML files under /usr/share/doc/execline are not manual pages, so
man foregroundand the rest fail. - Fix: Ship man pages for the other commands (upstream has none, so either write/debianise them or keep a forwarded wishlist bug and document the gap), or state in the package why the HTML is the substitute.
minor packaging 3. The autopkgtest writes quine-output into the unpacked source tree ◂
- Files:
debian/tests/quine:5 - Basis: checked, in the package or with a reference tool
- Evidence:
./quine-input > quine-outputfollowed bydiff quine-input quine-output, with the test's cwd in debian/tests inside the source tree. - Problem: The debian/tests/control specification forbids tests to modify the source tree and says they may not even have write access to it; on a runner that mounts the built tree read-only the redirection fails, and elsewhere it leaves debris behind.
- Fix: Write the output under $AUTOPKGTEST_TMP and diff there, e.g.
./quine-input > "$AUTOPKGTEST_TMP/quine-output".
Verified ◂
- The pre-scan listed no built files, no non-free wording, no unaccepted licence and no unnamed holder (its author check passed); the only copyright/licence texts in the tree are COPYING, DCO, doc/quine-dam.txt and doc/index.html's link to opensource.org/licenses/ISC.
- COPYING is ISC, 2011-2026 Laurent Bercot; 81 files under src/ carry
/* ISC license. */as their first line and no file carries a different notice, soFiles: *with ISC and Laurent Bercot is the right stanza. Its year range ends 2018 against COPYING's 2026 - year drift only. - DCO is the Linux Foundation's verbatim-copy licence text; the verbatim-only clause applies to that licence document, not to the software, and DCO is installed in no binary package, so it does not make anything non-free; the stanza quotes it and the holder correctly.
- doc/quine-dam.txt says
# Public Domain.and names david.madore@ens.fr; the dedicated public-domain stanza matches the file. The other doc/quine-*.txt files carry no notice and fall under the project's ISC stanza. - No vendored third-party code, fonts, images or archives: src/ is all skarnet.org code against skalibs, examples/etc/env-startup is eight tiny env files, and there are no debian/patches (3.0 (quilt) with an empty series).
- configure is generated from tools/configure.template by tools/gen-configure.el, and package/deps.mak is regenerated by tools/gen-deps.sh from debian/rules:override_dh_auto_configure-arch, so no generated file lacks its generator input. src/include/execline/config.h is created by configure.
- debian/tests/control has no Depends, and the autopkgtest specification says
Depends: @is assumed in that case, so the quine test does get the execline binaries it needs. - Hardening is effective although debian/rules only sets DEB_BUILD_MAINT_OPTIONS: dh's set_buildflags (Dh_Lib.pm) exports dpkg-buildflags to the environment, and upstream's configure puts the environment CFLAGS/LDFLAGS into CFLAGS_POST/LDFLAGS_POST, which the Makefile compiles and links with.
- debhelper compat 14 adds the relationship substvars itself, so the missing ${misc:Depends}/${shlibs:Depends} in the binary stanzas is correct; Standards-Version 4.7.4 matches the reviewing system's Policy 4.7.4.1.
- libexecline2.10.symbols lists every function the installed header declares and that src/libexecline defines, with Build-Depends-Package and versioned entries; the only exception, el_spawn1, is declared in src/include/execline/execline.h:43 but defined nowhere upstream and exported by nothing (an upstream header leftover, not a packaging defect).
- The build itself was not run, as instructed; debian/rules, the install files and the doc-base entry are consistent with the paths the upstream Makefile installs (headers under /usr/include//execline, library under /usr/lib/, binaries under /usr/lib/execline/bin).
- uscan found the packaged version as the newest upstream release (upstream
2.10.0.0, packaged2.10.0.0).
Not confirmed ◂
- Build-Depends-Arch requires skalibs-dev (>= 2.16.0.0), but the package lists available to the reference tool (unstable) have only skalibs-dev 2.15.1.0-1, so as those lists stand the build cannot be satisfied; presumably skalibs 2.16.0.0 is waiting in NEW, but neither tool nor package confirms it. A build in a current unstable chroot would show.
- Why the model asked for what a review has no use for. During this review it asked once for something outside the package and the reviewing system (another file of the sandbox, or a URL), or was given part of the review tooling's own configuration, and that was refused or withheld. A model does this when something it has read tells it to, so look in the package for text addressed to a reviewing program, and treat this report with suspicion. Refused:
grep: "xd://policy" is not a file of the package or of the reviewing system.
Proposed changes ◂
None.
Uploader's response to the LLM review
Not blocking issues.
ā Shengjing Zhu (zhsj), 2 days ago
Review Information
accepted — allocated to awm 1 day ago, started 1 day ago, completed 1 day ago.
Final Comment
Hi,
The "Developer's Certificate of Origin" is a curious document and I wonder about whether it is better to use Files-Excluded to leave it out entirely. As far as I can see it is only something which would apply to upstream, though I guess it's harmless to include it.
Thanks!
Other Reviews of this Package
| Version | Hash | Allocated | Completed | Reviewer | Status | Details |
|---|---|---|---|---|---|---|
| 2.10.0.0-1 | 4a14051d⦠| 2026-11-05 21:04 | 2026-11-05 21:04 | dfsg-uploader | rejected | VIEW |