* Package name : kvmtool Version : 0.20250918-1 Upstream Contact: Will Deacon <will@kernel.org> * URL : https://git.kernel.org/pub/scm/linux/kernel/git/will/kvmtool.git/ * License : GPL2 Programming Lang: C Description : Native Linux KVM TOOL kvmtool is a lightweight tool for hosting KVM guests. As a pure virtualization tool, it only supports guests using the same architecture, though it supports running 32-bit guests on those 64-bit architectures that allow this. [Reason for Re-introduction] This package was previously removed from Debian in 2022 (RoQA) due to lack of maintenance. I intend to re-introduce it because it remains a highly valuable tool for kernel development and low-level architecture research. [Why is this package useful?] I am currently using kvmtool to develop and verify features for current hardware architectures. It is particularly useful for Research & Development purposes where a lightweight, minimal environment is preferred over a full-featured emulator. Compared to QEMU, kvmtool is significantly smaller and simpler, making it faster to set up for specific Linux-on-Linux virtualization tasks (e.g., direct kernel booting, filesystem passthrough). While it is not as "major" or general-purpose as QEMU, there is a distinct group of developers and researchers who rely on it. Bringing it back to Debian will facilitate easier access for these users and help improve the tool's stability through the Debian bug reporting system. [Maintenance Plan] I plan to maintain this package by tracking the latest upstream git repository and fixing the build issues (likely GCC/toolchain related) that caused its removal. I will initially maintain it myself but will be looking for a sponsor to upload the package. I am also open to joining the Debian Virtualization Team or Kernel Team to maintain it collaboratively in the long term.
Hi, +1 I'm happy to do so. Just let me know if there's anything I can help with. Regards, Daniel
Hi Daniel, I have completed the latest kvmtool packaging work to re-introduce this tool to Debian: https://mentors.debian.net/package/kvmtool/ I have verified that the package builds successfully. * Package Salsa Repository: https://salsa.debian.org/ysk/kvmtool Formerly on the salsa repository: https://salsa.debian.org/debian/kvmtool * My work for the packaging commit: https://salsa.debian.org/ysk/kvmtool/-/commit/65ef109 * Reference (Ubuntu): https://git.launchpad.net/ubuntu/+source/kvmtool/ * Key Changes & Modernization - Updated to debhelper-compat (= 13) and Standards-Version 4.7.0. - Fixed debian/rules to correctly handle DESTDIR and prefix for installation. - Updated build dependencies. - Set Architecture to linux-any to support a wider range of architectures including RISC-V. I would appreciate any feedback or review on the work done so far. Thank you! Best regards, Yunseong Kim
Just had a quick look. few comments: 1. You can remove the debian/patches folder, its not necessary. 2. Please update Standards-Version to 4.7.2 in debian/control. 3. debian/changelog should close this ITP bug.
Hi Sudip, Thank you for the code review! I removed legacy patches folder. I updated from 4.7.0 to 4.7.2. Added Closes tag to changelog. Here is my updated patch from your review: https://salsa.debian.org/ysk/kvmtool/-/commit/9418828 Thank you! Best regards, Yunseong Kim
Hi Yunseong,
I had a look at the package:
* when you create a source tarball yourself (because you use a git
snapshot), please create it from a directory named $package-$version
currently, it's just $package (i.e. kvmtool instead of
kvmtool-0.20251123).
* when packaging git snapshots, it usually makes sense to be explicit
about which git commit you used and encode that in the upstream
version, in your case that could be 0.20251123+7ad32e5.
* 'Rules-Requires-Root: no' in control is default, please remove it.
* 'Priority: optional' can be removed as it's also default now,
however, there are a few tools that can't handle that just yet (like
reprepro), so you might want to keep it for a little while longer.
* please use wrap-and-sort (part of devscripts) to sort the debian
packaging files. I like 'wrap-and-sort -bast', ymmv.
* unfortunately, wrap-and-sort doesn't sort the order of fields in
control, currently you have a non-standard order which makes it
unecessarily harder to read. please consider using the default one:
Source: [...]
Section: [...]
Priority: [...]
Maintainer: [...]
Build-Depends: [...]
Standards-Version: [...]
Homepage: [...]
Vcs-Browser: [...]
Vcs-Git: [...]
* Same goes for the binary package:
Package: [...]
Architecture: [...]
Depends: [...]
Description: [...]
* please don't write "TOOL" in the package short-description in all
uppercase letters.
* why prefering libsdl1.2-dev over libsl2-dev? If there's no good
reason, I'd use libsl2-dev only.
* --parallel in rules can be removed, that's default.
* if you want to micro-optimize, you can use 'install -D' in
override_dh_auto_install to create the target directory and copy
the binary in one 'install'-command.
however, personally I would rather use debian/kvmtool.install
with 'lkvm usr/bin' in it instead, I prefer declarative use
of debhelper over manual commands.
* I'd recommend for to use POSIX mode of writing 'test'-statements in
shell, so rather than this:
if [ -w /dev/kvm && -x /usr/bin/xorriso]; then [...]
I'd write this:
if [ -w /dev/kvm ] && [ -x /usr/bin/xorriso ]; then [...]
* copyright has a non-default order as well, please use:
Format: [...]
Upstream-Name: [...]
Upstream-Contact: [...]
Source: [...]
* consider writing copyright more derivative friendly:
's/On Debian systems, the complete/The complete/'
* consider using the standard GPL-2/GPL-2+ license blurbs, see e.g.
the GPL-2 and GPL-3+ ones here (in your case, of course you could
simply replace the '3' in GPL-3+ with a '2'):
https://tracker.debian.org/media/packages/r/rtrlib/copyright-0.8.0-5
* you might want to add a manpage symlink from kvmtool to lkvm.
* please run lintian on it and fix the remaining warnings
Regards,
Daniel
Hi Yunseong,
I had a look at the package:
* when you create a source tarball yourself (because you use a git
snapshot), please create it from a directory named $package-$version
currently, it's just $package (i.e. kvmtool instead of
kvmtool-0.20251123).
* when packaging git snapshots, it usually makes sense to be explicit
about which git commit you used and encode that in the upstream
version, in your case that could be 0.20251123+7ad32e5.
* 'Rules-Requires-Root: no' in control is default, please remove it.
* 'Priority: optional' can be removed as it's also default now,
however, there are a few tools that can't handle that just yet (like
reprepro), so you might want to keep it for a little while longer.
* please use wrap-and-sort (part of devscripts) to sort the debian
packaging files. I like 'wrap-and-sort -bast', ymmv.
* unfortunately, wrap-and-sort doesn't sort the order of fields in
control, currently you have a non-standard order which makes it
unecessarily harder to read. please consider using the default one:
Source: [...]
Section: [...]
Priority: [...]
Maintainer: [...]
Build-Depends: [...]
Standards-Version: [...]
Homepage: [...]
Vcs-Browser: [...]
Vcs-Git: [...]
* Same goes for the binary package:
Package: [...]
Architecture: [...]
Depends: [...]
Description: [...]
* please don't write "TOOL" in the package short-description in all
uppercase letters.
* why prefering libsdl1.2-dev over libsl2-dev? If there's no good
reason, I'd use libsl2-dev only.
* --parallel in rules can be removed, that's default.
* if you want to micro-optimize, you can use 'install -D' in
override_dh_auto_install to create the target directory and copy
the binary in one 'install'-command.
however, personally I would rather use debian/kvmtool.install
with 'lkvm usr/bin' in it instead, I prefer declarative use
of debhelper over manual commands.
* I'd recommend for to use POSIX mode of writing 'test'-statements in
shell, so rather than this:
if [ -w /dev/kvm && -x /usr/bin/xorriso]; then [...]
I'd write this:
if [ -w /dev/kvm ] && [ -x /usr/bin/xorriso ]; then [...]
* copyright has a non-default order as well, please use:
Format: [...]
Upstream-Name: [...]
Upstream-Contact: [...]
Source: [...]
* consider writing copyright more derivative friendly:
's/On Debian systems, the complete/The complete/'
* consider using the standard GPL-2/GPL-2+ license blurbs, see e.g.
the GPL-2 and GPL-3+ ones here (in your case, of course you could
simply replace the '3' in GPL-3+ with a '2'):
https://tracker.debian.org/media/packages/r/rtrlib/copyright-0.8.0-5
* you might want to add a manpage symlink from kvmtool to lkvm.
* please run lintian on it and fix the remaining warnings
Regards,
Daniel
Hi Daniel, Thank you so much for the code review! I apologize for the late reply. I've updated from your feedback into 3rd version upload: https://mentors.debian.net/package/kvmtool/#upload-3 and also sync to salsa, switching repository to debian/kvmtool: https://salsa.debian.org/debian/kvmtool I've found this tool incredibly useful, and I hope others will find it, too. I wanted to share this tool with debian people at this year's Debconf, as a reminder of its alive. Thank you! Best regards, Yunseong
Hi Daniel, Thank you so much for the code review! I apologize for the late reply. I've updated from your feedback into 3rd version upload: https://mentors.debian.net/package/kvmtool/#upload-3 and also sync to salsa, switching repository to debian/kvmtool: https://salsa.debian.org/debian/kvmtool I've found this tool incredibly useful, and I hope others will find it, too. I wanted to share this tool with debian people at this year's Debconf, as a reminder of its alive. Thank you! Best regards, Yunseong
Hi Apologies for the confusion. I accidentally sent the previous email using the wrong identity due to a mail client misconfiguration. This is Yunseong Kim. Please disregard the previous sender name! Best regards, Yunseong Kim
Hi Apologies for the confusion. I accidentally sent the previous email using the wrong identity due to a mail client misconfiguration. This is Yunseong Kim. Please disregard the previous sender name! Best regards, Yunseong Kim
Hi, no worries, and great - I'll have a look tomorrow or over the weekend. Regards, Daniel
Hi, no worries, and great - I'll have a look tomorrow or over the weekend. Regards, Daniel