#1121223 ITP: kvmtool -- Native Linux KVM TOOL (re-introduction)

#1121223#5
Date:
2025-11-23 06:07:10 UTC
From:
To:
* 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.

#1121223#10
Date:
2025-11-23 08:21:08 UTC
From:
To:
Hi,

+1

I'm happy to do so. Just let me know if there's anything I can help with.

Regards,
Daniel

#1121223#15
Date:
2025-11-23 09:32:33 UTC
From:
To:
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

#1121223#20
Date:
2025-11-23 19:53:14 UTC
From:
To:
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.

#1121223#25
Date:
2025-11-24 04:02:33 UTC
From:
To:
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

#1121223#30
Date:
2025-11-25 18:06:47 UTC
From:
To:
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

#1121223#33
Date:
2025-11-25 18:06:47 UTC
From:
To:
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

#1121223#40
Date:
2026-03-11 13:03:52 UTC
From:
To:
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

#1121223#43
Date:
2026-03-11 13:03:52 UTC
From:
To:
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

#1121223#48
Date:
2026-03-11 13:44:05 UTC
From:
To:
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

#1121223#51
Date:
2026-03-11 13:44:05 UTC
From:
To:
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

#1121223#56
Date:
2026-03-12 19:10:41 UTC
From:
To:
Hi,

no worries, and great - I'll have a look tomorrow or over the weekend.

Regards,
Daniel

#1121223#59
Date:
2026-03-12 19:10:41 UTC
From:
To:
Hi,

no worries, and great - I'll have a look tomorrow or over the weekend.

Regards,
Daniel