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 | 3 hours 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. https://tracker.debian.org/s6
— zhsj, 1 hour ago
New Package Report
.changes
| Source | execline |
|---|---|
| Version | 2.10.0.0-1 |
| Changed-By | Shengjing Zhu <zhsj@debian.org> |
| Architecture | source amd64 all |
| Distribution | unstable |
| Date | Fri, 06 Nov 2026 02:23:00 +0800 |
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
.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 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 1 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 1 hour ago.
Report
DFSG NEW review for execline version 2.10.0.0-1
Summary
- Licensing is DFSG-compliant and
debian/copyrightis accurate: No - Packaging is of good quality: Yes
- Issues: 1 blocker, 0 important, 2 minor
- debian/watch: version 5
- debian/copyright: machine-readable
- Scan before the review: nothing found
Licensing
The licensing itself is DFSG-compliant: every .c and .h file carries /* ISC license. */, COPYING is the ISC text, doc/index.html says ISC, and the only other licence statement in the tree is the public-domain dedication in doc/quine-dam.txt; there are no non-free terms. debian/copyright is DEP-5, but it is inaccurate: its catch-all Files: * stanza attributes DCO (© 2004, 2006 The Linux Foundation and its contributors, a verbatim-only licence document) and doc/quine-dam.txt ("Public Domain.") to Laurent Bercot under ISC.
Packaging
Packaging is good overall: debhelper compat 14 with plain dh, cross-build-friendly Build-Depends-Arch, correct Multi-Arch/Section/Suggests fields, a symbols file with Build-Depends-Package, an autopkgtest, no patches, and Standards-Version 4.7.4 (current for Policy 4.7.4.1). One real gap: libexecline-dev does not depend on skalibs-dev although the only header it installs includes skalibs headers, so the -dev package alone cannot compile against the library.
Issues
blocker licensing 1. Files: * names Laurent Bercot and ISC for DCO, which is © 2004, 2006 The Linux Foundation and its contributors under a verbatim-only licence ◂
- Files:
debian/copyright:5-7,DCO:4-10 - Basis: checked, in the package or with a reference tool
- Evidence: debian/copyright:
Files: */Copyright: 2011-2018 Laurent Bercot <ska-skaware@skarnet.org>/License: ISC; DCO:Copyright (C) 2004, 2006 The Linux Foundation and its contributors.andEveryone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. - Problem: The catch-all stanza is the only one matching DCO, so the package records the wrong copyright holder and the wrong licence for it. DCO is not ISC: it permits redistribution of the document verbatim only, so ISC's permission to modify does not apply, and its holder is the Linux Foundation and its contributors. DEP-5 requires the copyright and licence of each file to be recorded;
debian/copyrightis therefore inaccurate (the prescan flagged this file). - Fix: Add a stanza
Files: DCO,Copyright: 2004, 2006 The Linux Foundation and its contributors,License: DCO, plus a stand-aloneLicense: DCOparagraph holding the DCO text (there is no file for it in /usr/share/common-licenses).
minor licensing 2. Files: * names Laurent Bercot and ISC for doc/quine-dam.txt, which declares itself Public Domain ◂
- Files:
debian/copyright:5-7,doc/quine-dam.txt:1-3 - Basis: checked, in the package or with a reference tool
- Evidence: doc/quine-dam.txt:
#! /command/execlineb -P/# Public Domain./# See comments below. - Problem: The only stanza matching this file claims ISC and a Laurent Bercot copyright for a file whose own header dedicates it to the public domain (and which has no such holder). The package stays free, but debian/copyright misstates this file's licence.
- Fix: Add
Files: doc/quine-dam.txt,Copyright: none,License: public-domainand a short stand-aloneLicense: public-domainparagraph reproducing the public-domain dedication.
minor packaging 3. libexecline-dev does not depend on skalibs-dev, though the header it installs includes skalibs headers ◂
- Files:
debian/control:50-56,src/include/execline/execline.h:8-10 - Basis: checked, in the package or with a reference tool
- Evidence: debian/control:
Package: libexecline-dev/Depends:/libexecline2.10 (= ${binary:Version}),; header:#include <skalibs/gccattributes.h>,#include <skalibs/buffer.h>,#include <skalibs/stralloc.h> - Problem: Installing libexecline-dev alone does not give a working development environment:
#include <execline/execline.h>cannot be preprocessed without skalibs-dev, and linking against the shipped libexecline.a needs libskarnet.a from skalibs-dev. Policy 8.4 requires a -dev package to install everything needed to compile against its library (its footnote explicitly allows the files to be split as long as the -dev package depends on the other packages). skalibs-dev is Multi-Arch: same, so adding it keeps M-A compatibility. - Fix: Add
skalibs-devto the Depends of libexecline-dev.
Verified ◂
- Every file of debian/ was read except debian/watch (out of scope). The whole tree was grepped case-insensitively for
Copyright,(C),©,SPDX-License-Identifier,Licensed under,Permission is hereby granted,GNU/GPL/LGPL,Apache,Mozilla,public domain,BSD,MIT,All rights reserved,Creative Commons,non-commercial; the only hits are the ISC statements, the DCO text and thePublic Domain.line in doc/quine-dam.txt. - All .c/.h source files seen (src/execline, src/libexecline, src/include, src/include-local) start with
/* ISC license. */; COPYING is ISC; doc/index.html states "execline is free software ... ISC license"; the quine-jriou/prj/sertonix files and examples/etc/* carry no separate terms and fall under the project licence. - No built files, binaries, images, fonts, PDFs, minified code or archives in the tree: a glob for png/jpg/svg/ttf/otf/woff/pdf/zip/gz/xz/o/a/so/pyc/jar returned nothing. All upstream text files are plain source, docs or tiny example data files.
- Generated files have their generators present: configure <- tools/configure.template (and package/configure-snippets/), package/deps.mak and src//deps-exe/* <- tools/gen-deps.sh (rules also regenerates deps.mak), src/multicall/execline.c <- tools/gen-multicall.sh (only for --enable-multicall, not enabled). doc/*.html are hand-written; the Makefile has no doc build target.
- DCO's
changing is not allowedclause restricts the licence document itself only (the same wording the GPL's own text uses) and Debian distributes it verbatim, so it is not a DFSG problem; what is wrong is its attribution in debian/copyright. - debian/copyright is DEP-5 with Format 1.0; its 2011-2018 year range against COPYING's 2011-2026 is year drift only.
- Standards-Version 4.7.4 matches Policy 4.7.4.1 in its first two components; debhelper-compat 14 is the recommended level on this system. Changelog is
unstable, version 2.10.0.0-1 against the single orig tarball; source format is 3.0 (quilt) with no debian/patches and an empty quilt applied-patches. - Build-Depends-Arch: skalibs-dev (>= 2.16.0.0) is satisfiable: skalibs 2.15.1.0-1 is archived and 2.16.0.0-1 is waiting in NEW (apt-cache).
- Packaging details checked: symbols file libexecline.so.2.10 with Build-Depends-Package: libexecline-dev; libexecline2.10/libexecline-dev Multi-Arch: same, execline-doc Multi-Arch: foreign; execline Suggests execline-doc (Policy 12.3 allows at most Suggests there); autopkgtest
quinehas no Depends, so autopkgtest assumes@and installs execline for /usr/bin/execlineb. - execline-doc installs the HTML under /usr/share/doc/execline and doc-base and debian/execlineb.1 both point there; Policy 12.3 encourages exactly this layout for a -doc package, so it is not a fault.
- debian/rules hardening=+all is not lost: upstream configure moves the environment's CPPFLAGS/CFLAGS/LDFLAGS into *_POST and re-applies them after its own flags, and the rules pass --disable-rpath, so dpkg-buildflags settings survive.
- uscan found the packaged version as the newest upstream release (upstream
2.10.0.0, packaged2.10.0.0).
Not confirmed ◂
- File modes are not visible with the read-only tools: debian/execlineb must be executable to become /usr/bin/execlineb and debian/tests/quine-input is executed by the test, but autopkgtest only adds the execute bit to the test script itself.
- src/include/execline/execline.h:43 declares el_spawn1 but no file in src/libexecline defines it, so a consumer calling it would fail to link; this looks like an upstream API defect rather than a packaging one, and it is not in the symbols file, so it does not affect the ABI check. Not confirmed as such without a build.
Proposed changes ◂
None.
Uploader's response to the LLM review
The uploader rejected this upload in response to the review.
Review Information
rejected — allocated to dfsg-uploader 1 hour ago, started 1 hour ago, completed 1 hour ago.
Final Comment
The uploader rejected this upload in response to the automated (LLM) review of it, so that they can fix the problems it found and upload again.