Review: eoip 2.3-1
Package Information
| Description | MikroTik compatible EoIP tunnel management tool EoIP (Ethernet over IP) is a MikroTik RouterOS compatible protocol that transports Ethernet frames over an IPv4 or IPv6 network, presenting a transparent layer 2 link between two endpoints. This package provides the eoip command line utility, which creates and configures eoip and eoipv6 tunnel interfaces over rtnetlink. The kernel side is provided by the eoip-dkms package. |
|---|---|
| Maintainer | Boian Bonev <bbonev@ipacct.com> |
| Changed By | Boian Bonev <bbonev@ipacct.com> |
| Sponsor | maytham@debian.org |
| Distribution | unstable |
| Architecture | any all |
| VCS | git: https://github.com/bbonev/eoip.git (browse) |
| Closes | #1142403 |
| Tracker | https://tracker.debian.org/pkg/eoip |
| Uploaded | 11 hours ago |
New Package Report
.changes
| Architecture | source amd64 all |
|---|---|
| Distribution | unstable |
| Date | Sat, 18 Jul 2026 18:02:13 +0000 |
| Source | eoip |
| Version | 2.3-1 |
| Changed-By | Boian Bonev <bbonev@ipacct.com> |
Changelog
eoip (2.3-1) unstable; urgency=medium . * Initial release (Closes: #1142403)
.dsc
| Package-List | eoip deb net optional arch=any eoip-dkms deb kernel optional arch=all |
|---|---|
| Section | net |
| Priority | optional |
| Component | main |
debian/copyright
Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/ Upstream-Name: eoip Upstream-Contact: Boian Bonev <bbonev@ipacct.com> Source: https://github.com/bbonev/eoip Files: * Copyright: 2021-2026 Boian Bonev <bbonev@ipacct.com> License: GPL-2+ Files: unified/eoip.c Copyright: 2021-2026 Boian Bonev <bbonev@ipacct.com> Alexey Kuznetsov <kuznet@ms2.inr.ac.ru> Comment: Based on the code from the kernel ip_gre.c driver. License: GPL-2+ Files: libnetlink.c libnetlink.h Copyright: Alexey Kuznetsov <kuznet@ms2.inr.ac.ru> Comment: Taken from the iproute2 package. License: GPL-2+ Files: debian/* Copyright: 2026 Boian Bonev <bbonev@ipacct.com> License: GPL-2+ License: GPL-2+ 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 2 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 2 can be found in "/usr/share/common-licenses/GPL-2".
DFSG Assistant LLM REVIEW 0 blocker, 0 important, 1 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 9 hours ago.
Report
DFSG NEW review for eoip version 2.3-1
Summary
- Licensing is DFSG-compliant and
debian/copyrightis accurate: Yes - Packaging is of good quality: Yes
- Issues: 0 blocker, 0 important, 1 minor
- debian/watch: version 5
- debian/copyright: machine-readable
- Scan before the review: nothing found
Licensing
debian/copyright is DEP-5, and its three stanzas plus the catch-all account for all 18 upstream files. The only third-party material is libnetlink.c/libnetlink.h from iproute2 (own GPL-2+ header, own stanza) and unified/eoip.c, derived from the kernel's ip_gre.c, whose own header grants GPL version 2 or later and which is credited to both Alexey Kuznetsov and Boian Bonev. Every short name used is GPL-2+, which matches the 'either version 2 ... or any later version' notices in the C files, and the full text is referenced via /usr/share/common-licenses/GPL-2, which is allowed since nothing here needs a licence absent from common-licenses. Nothing in the tarball is built, generated, minified or of unclear provenance, no restricting wording appears anywhere, and the two licences are identical, so there is no compatibility question.
Packaging
Clean, modern packaging: compat 14 with debhelper-compat, dh-sequence-dkms, a correct arch:any/arch:all split, and a DKMS tree that matches what dh_dkms generates (/usr/src/eoip-2.3). Hardening is not lost against the upstream Makefile's own CFLAGS defaults, because debhelper exports dpkg-buildflags into the environment and upstream's assignments are conditional (?= or +=). Standards-Version 4.7.4 matches the current Policy 4.7.4.1, the changelog is sane, and no patches are needed. The one real gap is the absence of any autopkgtest: the build exports NO_MODS=1, so the kernel module sources are never compiled either at build time or in CI, and a break in unified/*.c would first surface on a user's machine.
Issues
minor packaging 1. No autopkgtest, and the DKMS module sources are never compiled before a user installs them ◂
- Files:
debian/rules:6,debian/control,unified/ - Basis: checked, in the package or with a reference tool
- Evidence: debian/rules:
# the kernel modules are built by dkms on the target system/export NO_MODS = 1; there is nodebian/tests/directory and noTestsuite:field indebian/control. - Problem: The only code compiled during the package build is the userland tool (eoipcr.c, libnetlink.c), because NO_MODS=1 makes
make installskip the module targets. The 2,700 lines of unified/eoip.c and unified/eoipv6.c are shipped to /usr/src as text and are compiled for the first time by dkms on an end user's machine, so neither the build daemons nor ci.debian.net ever check that they build at all - the most likely kind of breakage for a DKMS package (a kernel API change) is invisible until postinst fails on a user's system. This is not a Policy violation; it is a quality gap a sponsor would normally ask to close for a new DKMS package. - Fix: Add debian/tests/control with
Testsuite: autopkgtest-pkg-dkms(or a hand-written test) depending ondkms,linux-headers-genericand@, and a test that runsdkms build -m eoip -v <version>(ormake -C /usr/src/eoip-*/unified KDIR=/usr/src/linux-headers-$(uname -r)) so the module sources are compiled in CI.
Verified ◂
- The prescan's author check found every holder named in debian/copyright and listed no file; the tree has exactly the 18 upstream files it scanned, none of them built, minified, an archive or a PDF.
- debian/copyright is DEP-5 with the current Format URL;
Files: *,Files: unified/eoip.c,Files: libnetlink.c libnetlink.handFiles: debian/*match every path (the narrower stanzas correctly override the catch-all for the two third-party files). - libnetlink.c (lines 3-9) and libnetlink.h carry the iproute2 provenance; libnetlink.c's header reads
either version 2 of the License, or (at your option) any later version, so GPL-2+ is right, and Kuznetsov is named in the dedicated stanza. Debian ships no libnetlink library package, so this vendored copy duplicates nothing installable. - unified/eoip.c:6-15 credits
Alexey KuznetsovandBoian Bonevand stateseither version 2 of the License, or (at your option) any later version; debian/copyright's stanza for that file names both holders, and MODULE_LICENSE("GPL") is consistent. - Files with no per-file notice (eoipcr.c, contrib/install.sh, contrib/kernel-intree.sh, Makefile, version.sh, dkms.conf, eoip_version.h, eoip.8, README.md, SECURITY.md) are covered by top-level COPYING (GPL version 2) and README.md:262-265
All code and code modifications in this project are released under the GPL licence. Look at the COPYING file., and by theFiles: *stanza naming Boian Bonev. COPYING itself is the FSF's GPL-2 text, which is standard and needs no stanza of its own. - A grep of the whole tree for non-commercial, no-modification, field-of-use, patent, proprietary and similar wording returns only the GPL text itself and one README sentence about a
reverse-engineered proprietary protocol, which is a description, not a licence term. - Hardening is not lost to the upstream Makefile:
hardening=+allplus debhelper's own set_buildflags() (Dh_Lib.pm, exports CFLAGS/LDFLAGS from dpkg-buildflags into the environment) means upstream'sCFLAGS?=-O3 -fno-stack-protector -fltois not used; only theLDFLAGS+=line appends to the exported value, which is harmless at link time. - /usr/bin/dh_dkms installs dkms.conf at /usr/src/<PACKAGE_NAME>- and derives postinst/prerm from autoscripts; rules'
DKMSDIR := debian/eoip-dkms/usr/src/eoip-$(VERSION)anddh_dkms -V $(VERSION)therefore agree on /usr/src/eoip-2.3, and the-Vsubstitution replaces the#MODULE_VERSION#in debian/eoip-dkms.dkms. - Sequence/dkms.pm does
insert_before("dh_installinit", "dh_dkms"), i.e. dh_dkms runs after dh_auto_install, so the module sources copied by the rules override and dh_dkms's generated dkms.conf land in the same directory without clobbering each other; dh_dkms'sdkms (>= 2.1.0.0)substvar plus the explicitdkmsin Depends is redundant but valid. - dh-sequence-dkms is provided by dh-dkms 3.2.2-1 (apt-cache), so the Build-Depends is satisfiable; Standards-Version 4.7.4 has the same first two components as the reviewing system's Policy 4.7.4.1.
- The .orig tarball contains no debian/ directory, consistent with the upstream
mkotartarget excluding it (eoip-2.3/Makefile:110-118), so Vcs-Git/Vcs-Browser pointing at the upstream repository are the repository where packaging lives, not a mis-set pointer (Policy 5.6.26). - unified/Makefile builds eoip.ko and, when CONFIG_IPV6 is set, eoipv6.ko from the files the rules copy (eoip.c, eoipv6.c, eoip_keepalive.h, eoip_proto.h), and debian/eoip-dkms.dkms's MAKE[0] points at that same directory.
- No debian/patches: the package is 3.0 (quilt) with no patches, so there is nothing to review for DEP-3 headers or forwarding status.
- eoip.8:1 says
"eoip 2.1"while the package is 2.3 - a stale version string in the man page footer, cosmetic and not reported. - uscan found the packaged version as the newest upstream release (upstream
2.3, packaged2.3). - Every pointer of
debian/copyrightto /usr/share/common-licenses names a file that is there (GPL-2).
Not confirmed ◂
- I could not build or run anything, so the DKMS module sources compiling against a current kernel, and the claim in eoip-dkms's description that
A single set of sources builds on kernels from 3.2 up to current releases, are untested here.
Proposed changes ◂
None.
Uploader's response to the LLM review
The uploader was emailed about the review 9 hours ago.
Review Information
accepted — allocated to mechtilde 6 hours ago, started 6 hours ago, completed 6 hours ago.