DFSG NEW Queue

DFSG, Licensing & New Packages Team

Review: execline 2.10.0.0-1

Package Information

Descriptionsmall 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.

MaintainerShengjing Zhu <zhsj@debian.org>
Changed ByShengjing Zhu <zhsj@debian.org>
Sponsorzhsj@debian.org
Distributionunstable
Architectureany all
VCSgit: https://salsa.debian.org/zhsj/execline.git (browse)
Popcon Installs134
Binary NEWYes (new binary packages of a source already in sid)
Trackerhttps://tracker.debian.org/pkg/execline
Uploaded2 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-ByShengjing Zhu <zhsj@debian.org>
Architecturesource amd64 all
Distributionunstable
DateFri, 06 Nov 2026 04:45:20 +0800
Sourceexecline
Version2.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◂
Componentmain
Package-Listexecline 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
Sectionadmin
Priorityoptional
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/copyright is 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, while usr/lib/execline/bin installs 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 foreground and 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-output followed by diff 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, so Files: * 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, packaged 2.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

VersionHashAllocatedCompletedReviewerStatusDetails
2.10.0.0-1 4a14051d… 2026-11-05 21:04 2026-11-05 21:04 dfsg-uploader rejected VIEW

Back to Dashboard | View all reviews for this package