DFSG NEW Queue

DFSG, Licensing & New Packages Team

Review: eoip 2.3-1

Package Information

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

MaintainerBoian Bonev <bbonev@ipacct.com>
Changed ByBoian Bonev <bbonev@ipacct.com>
Sponsormaytham@debian.org
Distributionunstable
Architectureany all
VCSgit: https://github.com/bbonev/eoip.git (browse)
Closes#1142403
Trackerhttps://tracker.debian.org/pkg/eoip
Uploaded11 hours ago

New Package Report

.changes◂
Architecturesource amd64 all
Distributionunstable
DateSat, 18 Jul 2026 18:02:13 +0000
Sourceeoip
Version2.3-1
Changed-ByBoian Bonev <bbonev@ipacct.com>
Changelog◂
eoip (2.3-1) unstable; urgency=medium
 .
   * Initial release (Closes: #1142403)
.dsc◂
Package-Listeoip deb net optional arch=any
eoip-dkms deb kernel optional arch=all
Sectionnet
Priorityoptional
Componentmain
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/copyright is 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 no debian/tests/ directory and no Testsuite: field in debian/control.
  • Problem: The only code compiled during the package build is the userland tool (eoipcr.c, libnetlink.c), because NO_MODS=1 makes make install skip 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 on dkms, linux-headers-generic and @, and a test that runs dkms build -m eoip -v <version> (or make -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.h and Files: 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 Kuznetsov and Boian Bonev and states either 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 the Files: * 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=+all plus debhelper's own set_buildflags() (Dh_Lib.pm, exports CFLAGS/LDFLAGS from dpkg-buildflags into the environment) means upstream's CFLAGS?=-O3 -fno-stack-protector -flto is not used; only the LDFLAGS+= 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) and dh_dkms -V $(VERSION) therefore agree on /usr/src/eoip-2.3, and the -V substitution 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's dkms (>= 2.1.0.0) substvar plus the explicit dkms in 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 mkotar target 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, packaged 2.3).
  • Every pointer of debian/copyright to /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.

Final Comment

Back to Dashboard | View all reviews for this package