1
0
Fork 0

Adding debian version 1:10.0.2+ds-1.

Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
This commit is contained in:
Daniel Baumann 2025-06-22 14:27:18 +02:00
parent ea34ddeea6
commit 665688c177
Signed by: daniel.baumann
GPG key ID: BCC918A2ABD66424
95 changed files with 13839 additions and 0 deletions

74
debian/README-components-versions vendored Normal file
View file

@ -0,0 +1,74 @@
Evolution of qemu-related packages in debian
kvm: was a binary package providing /usr/bin/kvm before squeeze.
In squeeze it has been renamed to qemu-kvm,
so kvm becomes a transitional package.
Probably can be get rid of now.
No need to conflict with this package, but we can force-remove it
by conflicting with it.
Some packages may still Require/Depend/Suggest: kvm.
qemu-kvm: was a binary package providing /usr/bin/kvm in wheezy (v. 1.1)
This binary become a (deprecated) shell wrapper and was a part of
qemu-system-x86 package between versions 1.3.0+dfsg-5 (when qemu-system
were split) up to 1.7.0+dfsg-1, with qemu-kvm package being transitional.
At version 1.7.0+dfsg-2, qemu-kvm packcage is not transitional anymore,
and the wrapper is provided by qemu-kvm, not qemu-system-x86.
Some packages may Require/Depend/Suggest: qemu-kvm.
qemu: initially it was a mix of all of qemu (unrelated, not conflicting
with qemu-kvm or kvm)
at 0.11.0-1 it were split to qemu-user, qemu-user-static and qemu-system.
Also qemu-keymaps is made a separate package at version 0.12.4+dfsg-4
(for use together with qemu-kvm and xen and, on ubuntu, qemu-linaro).
And qemu-utils become a separate package (look when? since the beginning?)
Now it is a metapackage and a placeholder for some docs
qemu-system: was a package with all qemu-system-* binaries.
Were split into individual qemu-system-foo and qemu-system-common at version
1.3.0+dfsg-5, so qemu-system becomes a metapackage without its own files.
The split introduced a bunch of qemu-system-* conflicting+replacing
qemu-system<<1.3.0+dfsg-5.
At version 1.3.0+dfsg-4exp (before split, in experimental), /usr/bin/kvm was
a part of qemu-system (and later qemu-system-x86)/
At the same version, virtfs-proxy-helper binary has been moved from qemu-utils
to qemu-system (and later to qemu-system-common).
qemu-system-common: appeared at 1.3.0+dfsg-5, files common for all qemu-system*
briefly (>=1.3.0+dfsg-4exp, <<1.3.0+dfsg-5), qemu-utils had
virtfs-proxy-helper binary which is in qemu-system-common
qemu-keymaps: keymap definition for qemu, qemu-kvm and xen.
Can be merged into qemu-system-common now, or after qemu-linaro.
Were split out of qemu at version 0.12.4+dfsg-4
qemu-utils: common utilities (part of qemu-common in ubuntu?)
In versions between 1.3.0+dfsg-1~exp1 and 1.3.0+dfsg-4exp, wrongly shipped
virtfs-proxy-helper binary
qemu-user, qemu-user-static: user-mode qemu emulation
Were split out of qemu at verson 0.11.0-1 (pre-squeeze),
do not conflict/replace anything anymore.
qemu-common: ubuntu package

16
debian/TODO vendored Normal file
View file

@ -0,0 +1,16 @@
* fix other binaries (s390-zipl, ppc_rom)
* permissions/ownership for /dev/vhost_net???
* startup script for qemu-guest-agent: check dependencies & runlevels.
* maybe provide activation for udev & systemd:
SUBSYSTEM=="virtio-ports", ATTR{name}=="org.qemu.guest_agent.0", \
TAG+="systemd" ENV{SYSTEMD_WANTS}="qemu-guest-agent.service"
and dev-virtio/ports-org.qemu.guest_agent.0.device activation
for systemd.
* decide what to do with qemu-bridge-helper (#691138)

147
debian/binfmt-install vendored Executable file
View file

@ -0,0 +1,147 @@
#!/bin/sh
# Generate linux-user binfmt entries and registrations
# Accepts list of formats to work on
set -e
removed_fmts="ppc64abi32 cris"
# linux ELF_OSABI(byte7) can be 0 (traditional,SYSV) or 3 (GNU/LINUX extensions)
# binfmt registration does not allow a enum, only value&mask. So we use broader mask
# to allow both 0 and 3 here, this also lets 1 (HPUX) and 2 (NETBSD) - 0xfc not 0xff
# alternative is to create 2 magic/mask pairs instead of one
aarch64_magic='\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\xb7\x00'
aarch64_mask='\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff'
aarch64_be_magic='\x7f\x45\x4c\x46\x02\x02\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\xb7'
aarch64_be_mask='\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff'
alpha_magic='\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x26\x90'
alpha_mask='\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff'
arm_magic='\x7f\x45\x4c\x46\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x28\x00'
arm_mask='\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff'
armeb_magic='\x7f\x45\x4c\x46\x01\x02\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x28'
armeb_mask='\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff'
# cris_magic='\x7f\x45\x4c\x46\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x4c\x00'
# cris_mask='\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff'
hexagon_magic='\x7f\x45\x4c\x46\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\xa4\x00'
hexagon_mask='\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff'
hppa_magic='\x7f\x45\x4c\x46\x01\x02\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x0f'
hppa_mask='\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff'
i386_magic='\x7f\x45\x4c\x46\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x03\x00'
i386_mask='\xff\xff\xff\xff\xff\xfe\xfe\xfc\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff'
loongarch64_magic='\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x02\x01'
loongarch64_mask='\xff\xff\xff\xff\xff\xff\xff\xfc\x00\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff'
m68k_magic='\x7f\x45\x4c\x46\x01\x02\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x04'
m68k_mask='\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff'
microblaze_magic='\x7f\x45\x4c\x46\x01\x02\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\xba\xab'
microblaze_mask='\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff'
microblazeel_magic='\x7f\x45\x4c\x46\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\xab\xba'
microblazeel_mask='\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff'
mips_magic='\x7f\x45\x4c\x46\x01\x02\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x08\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'
mips_mask='\xff\xff\xff\xff\xff\xff\xff\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20'
mipsel_magic='\x7f\x45\x4c\x46\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x08\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'
mipsel_mask='\xff\xff\xff\xff\xff\xff\xff\x00\x00\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00'
mipsn32_magic='\x7f\x45\x4c\x46\x01\x02\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x08\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20'
mipsn32_mask='\xff\xff\xff\xff\xff\xff\xff\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20'
mipsn32el_magic='\x7f\x45\x4c\x46\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x08\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00'
mipsn32el_mask='\xff\xff\xff\xff\xff\xff\xff\x00\x00\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00'
mips64_magic='\x7f\x45\x4c\x46\x02\x02\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x08'
mips64_mask='\xff\xff\xff\xff\xff\xff\xff\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff'
mips64el_magic='\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x08\x00'
mips64el_mask='\xff\xff\xff\xff\xff\xff\xff\x00\x00\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff'
or1k_magic='\x7f\x45\x4c\x46\x01\x02\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x5c'
or1k_mask='\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff'
ppc_magic='\x7f\x45\x4c\x46\x01\x02\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x14'
ppc_mask='\xff\xff\xff\xff\xff\xff\xff\xfc\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff'
ppc64_magic='\x7f\x45\x4c\x46\x02\x02\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x15'
ppc64_mask='\xff\xff\xff\xff\xff\xff\xff\xfc\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff'
ppc64le_magic='\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x15\x00'
ppc64le_mask='\xff\xff\xff\xff\xff\xff\xff\xfc\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\x00'
riscv32_magic='\x7f\x45\x4c\x46\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\xf3\x00'
riscv32_mask='\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff'
riscv64_magic='\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\xf3\x00'
riscv64_mask='\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff'
s390x_magic='\x7f\x45\x4c\x46\x02\x02\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x16'
s390x_mask='\xff\xff\xff\xff\xff\xff\xff\xfc\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff'
sh4_magic='\x7f\x45\x4c\x46\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x2a\x00'
sh4_mask='\xff\xff\xff\xff\xff\xff\xff\xfc\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff'
sh4eb_magic='\x7f\x45\x4c\x46\x01\x02\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x2a'
sh4eb_mask='\xff\xff\xff\xff\xff\xff\xff\xfc\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff'
sparc_magic='\x7f\x45\x4c\x46\x01\x02\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x02'
sparc_mask='\xff\xff\xff\xff\xff\xff\xff\xfc\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff'
sparc32plus_magic='\x7f\x45\x4c\x46\x01\x02\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x12'
sparc32plus_mask='\xff\xff\xff\xff\xff\xff\xff\xfc\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff'
sparc64_magic='\x7f\x45\x4c\x46\x02\x02\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x2b'
sparc64_mask='\xff\xff\xff\xff\xff\xff\xff\xfc\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff'
x86_64_magic='\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x3e\x00'
x86_64_mask='\xff\xff\xff\xff\xff\xfe\xfe\xfc\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff'
xtensa_magic='\x7f\x45\x4c\x46\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x5e\x00'
xtensa_mask='\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff'
xtensaeb_magic='\x7f\x45\x4c\x46\x01\x02\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x5e'
xtensaeb_mask='\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff'
: ${DEB_HOST_ARCH:=$(dpkg-architecture -qDEB_HOST_ARCH)}
# find which fmts needs to be filtered out, which is arch-dependent.
# Drop support for emulating amd64 on i386, http://bugs.debian.org/604712
case "$DEB_HOST_ARCH" in
amd64 | i386 | x32) omit="i386 x86_64 x32" ;;
arm | armel | armhf | arm64) omit="arm aarch64" ;;
loong64) omit="loongarch64" ;;
ppc64 | powerpc) omit="ppc ppc64 ppc64abi32" ;;
ppc64el) omit="ppc64le" ;;
riscv64) omit="riscv32 riscv64" ;;
sparc | sparc64) omit="sparc sparc32plus sparc64" ;;
*) omit="$DEB_HOST_ARCH" ;;
esac
mkdir -p \
debian/qemu-user-binfmt/usr/lib/binfmt.d \
debian/qemu-user/usr/share/qemu/binfmt.d \
debian/qemu-user/usr/libexec/qemu-binfmt \
#
# compat:
mkdir -p \
debian/qemu-user-static/usr/share/doc/qemu-user-static \
#
for fmt in "$@" ; do
eval "magic=\"\$${fmt}_magic\" mask=\"\$${fmt}_mask\""
if [ ! "$magic" -o ! "$mask" ]; then
echo "$0: unknown format $fmt (no magic/mask)" >&2; exit 1
fi
ln -sf ../../bin/qemu-$fmt debian/qemu-user/usr/libexec/qemu-binfmt/$fmt-binfmt-P
echo ":qemu-$fmt:M::$magic:$mask:/usr/libexec/qemu-binfmt/$fmt-binfmt-P:OCPF" \
>debian/qemu-user/usr/share/qemu/binfmt.d/qemu-$fmt.conf
case " $omit " in
(*" $fmt "*) ;;
(*)
ln -sf ../../share/qemu/binfmt.d/qemu-$fmt.conf \
debian/qemu-user-binfmt/usr/lib/binfmt.d/
;;
esac
done
# generate postinst script to unregister all from binfmt-support
# when upgrading from older qemu (<<8.0+dfsg-1~), from bookworm
for x in qemu-user-binfmt: qemu-user-static:-static
do
PACKAGE=${x%:*} SUFFIX=${x#*:}
cat >>debian/$PACKAGE.postinst.debhelper <<EOF
binfmt_update() {
test configure = "\$1" || return 0
dpkg --compare-versions "\$2" lt "1:8.0+dfsg" || return 0
command -v update-binfmts >/dev/null || return 0
for fmt in $fmts $removed_fmts; do
if [ -f /var/lib/binfmts/qemu-\$fmt ]; then
[ -f /usr/bin/qemu-\$fmt$SUFFIX ] ||
echo "$PACKAGE.preinst: note: the warning from update-binfmts about missing qemu-\$fmt$SUFFIX is okay" >&2
update-binfmts --package $PACKAGE --remove qemu-\$fmt /usr/bin/qemu-\$fmt$SUFFIX
fi
done
}
binfmt_update "\$1" "\$2"
EOF
done

6434
debian/changelog vendored Normal file

File diff suppressed because it is too large Load diff

715
debian/control vendored Normal file
View file

@ -0,0 +1,715 @@
# autogenerated file from debian/control-in
Source: qemu
Section: otherosfs
Priority: optional
Maintainer: Debian QEMU Team <pkg-qemu-devel@lists.alioth.debian.org>
Uploaders: Michael Tokarev <mjt@tls.msk.ru>
Build-Depends: debhelper-compat (= 13),
python3:any,
python3-venv:any,
python3:any (>> 3.11) | python3-tomli,
meson (>> 1.5.0~), ninja-build,
flex, bison,
# for :native suffix see #995622
python3-sphinx:native, python3-sphinx-rtd-theme:native,
# python3-pycotap:native,
Build-Depends-Arch:
# In comments below we also specify (system-specific) arguments
# to qemu's configure script, -- optional features which depend
# on build-dependencies.
# always needed
pkgconf, libglib2.0-dev, zlib1g-dev,
# target/hexagon/ builds a build-time (ie: native) tool using glib
pkgconf:native, libglib2.0-dev:native,
# iasl (from acpica-tools) is used only in a single test these days, not for building
# acpica-tools,
# libcapstone is in universe in ubuntu
# --enable-capstone
libcapstone-dev,
# --enable-linux-aio linux-any
libaio-dev [linux-any],
# libsndio is in universe in ubuntu
# --disable-sndio
# --audio-drv-list=pipewire,pa,alsa,jack,oss,sdl amd64 arm arm64 armel armhf i386 loong64 mips mips64 mips64el mipsel powerpc powerpcspe ppc64 ppc64el riscv64 s390x sparc sparc64
libjack-dev [amd64 arm arm64 armel armhf i386 loong64 mips mips64 mips64el mipsel powerpc powerpcspe ppc64 ppc64el riscv64 s390x sparc sparc64],
libpulse-dev [amd64 arm arm64 armel armhf i386 loong64 mips mips64 mips64el mipsel powerpc powerpcspe ppc64 ppc64el riscv64 s390x sparc sparc64],
libasound2-dev [amd64 arm arm64 armel armhf i386 loong64 mips mips64 mips64el mipsel powerpc powerpcspe ppc64 ppc64el riscv64 s390x sparc sparc64],
libpipewire-0.3-dev [amd64 arm arm64 armel armhf i386 loong64 mips mips64 mips64el mipsel powerpc powerpcspe ppc64 ppc64el riscv64 s390x sparc sparc64],
# for virtfs (now in libc6)
# --enable-attr
# --enable-bpf amd64 arm arm64 armel armhf i386 loong64 mips mips64 mips64el mipsel powerpc powerpcspe ppc64 ppc64el riscv64 s390x sparc sparc64
libbpf-dev [amd64 arm arm64 armel armhf i386 loong64 mips mips64 mips64el mipsel powerpc powerpcspe ppc64 ppc64el riscv64 s390x sparc sparc64],
# --enable-blkio amd64 arm64 loong64 mips64 mips64el ppc64 ppc64el riscv64 s390x sparc64
libblkio-dev [amd64 arm64 loong64 mips64 mips64el ppc64 ppc64el riscv64 s390x sparc64],
# --enable-brlapi amd64 arm arm64 armel armhf i386 loong64 mips mips64 mips64el mipsel powerpc powerpcspe ppc64 ppc64el riscv64 s390x sparc sparc64
libbrlapi-dev [amd64 arm arm64 armel armhf i386 loong64 mips mips64 mips64el mipsel powerpc powerpcspe ppc64 ppc64el riscv64 s390x sparc sparc64],
# --enable-virtfs amd64 arm arm64 armel armhf i386 loong64 mips mips64 mips64el mipsel powerpc powerpcspe ppc64 ppc64el riscv64 s390x sparc sparc64
# needed for virtfs
# --enable-cap-ng amd64 arm arm64 armel armhf i386 loong64 mips mips64 mips64el mipsel powerpc powerpcspe ppc64 ppc64el riscv64 s390x sparc sparc64
libcap-ng-dev [amd64 arm arm64 armel armhf i386 loong64 mips mips64 mips64el mipsel powerpc powerpcspe ppc64 ppc64el riscv64 s390x sparc sparc64],
# --enable-curl
libcurl4-gnutls-dev,
# --enable-fdt amd64 arm arm64 armel armhf i386 loong64 mips mips64 mips64el mipsel powerpc powerpcspe ppc64 ppc64el riscv64 s390x sparc sparc64
libfdt-dev [amd64 arm arm64 armel armhf i386 loong64 mips mips64 mips64el mipsel powerpc powerpcspe ppc64 ppc64el riscv64 s390x sparc sparc64],
# --enable-fuse linux-any
libfuse3-dev [linux-any],
# --enable-gnutls
gnutls-dev,
# --enable-gtk --enable-vte amd64 arm arm64 armel armhf i386 loong64 mips mips64 mips64el mipsel powerpc powerpcspe ppc64 ppc64el riscv64 s390x sparc sparc64
libgtk-3-dev [amd64 arm arm64 armel armhf i386 loong64 mips mips64 mips64el mipsel powerpc powerpcspe ppc64 ppc64el riscv64 s390x sparc sparc64],
libvte-2.91-dev [amd64 arm arm64 armel armhf i386 loong64 mips mips64 mips64el mipsel powerpc powerpcspe ppc64 ppc64el riscv64 s390x sparc sparc64],
# --enable-libiscsi
libiscsi-dev,
# --enable-curses amd64 arm arm64 armel armhf i386 loong64 mips mips64 mips64el mipsel powerpc powerpcspe ppc64 ppc64el riscv64 s390x sparc sparc64
libncurses-dev [amd64 arm arm64 armel armhf i386 loong64 mips mips64 mips64el mipsel powerpc powerpcspe ppc64 ppc64el riscv64 s390x sparc sparc64],
# --enable-virglrenderer amd64 arm arm64 armel armhf i386 loong64 mips mips64 mips64el mipsel powerpc powerpcspe ppc64 ppc64el riscv64 s390x sparc sparc64
libvirglrenderer-dev [amd64 arm arm64 armel armhf i386 loong64 mips mips64 mips64el mipsel powerpc powerpcspe ppc64 ppc64el riscv64 s390x sparc sparc64],
# --enable-opengl amd64 arm arm64 armel armhf i386 loong64 mips mips64 mips64el mipsel powerpc powerpcspe ppc64 ppc64el riscv64 s390x sparc sparc64
libepoxy-dev [amd64 arm arm64 armel armhf i386 loong64 mips mips64 mips64el mipsel powerpc powerpcspe ppc64 ppc64el riscv64 s390x sparc sparc64],
libdrm-dev [amd64 arm arm64 armel armhf i386 loong64 mips mips64 mips64el mipsel powerpc powerpcspe ppc64 ppc64el riscv64 s390x sparc sparc64],
libgbm-dev [amd64 arm arm64 armel armhf i386 loong64 mips mips64 mips64el mipsel powerpc powerpcspe ppc64 ppc64el riscv64 s390x sparc sparc64],
# --enable-libnfs
libnfs-dev,
# --enable-numa amd64 arm arm64 armel armhf i386 loong64 mips mips64 mips64el mipsel powerpc powerpcspe ppc64 ppc64el riscv64 s390x sparc sparc64
libnuma-dev [amd64 arm arm64 armel armhf i386 loong64 mips mips64 mips64el mipsel powerpc powerpcspe ppc64 ppc64el riscv64 s390x sparc sparc64],
# --enable-smartcard amd64 arm arm64 armel armhf i386 loong64 mips mips64 mips64el mipsel powerpc powerpcspe ppc64 ppc64el riscv64 s390x sparc sparc64
libcacard-dev [amd64 arm arm64 armel armhf i386 loong64 mips mips64 mips64el mipsel powerpc powerpcspe ppc64 ppc64el riscv64 s390x sparc sparc64],
# --enable-pixman amd64 arm arm64 armel armhf i386 loong64 mips mips64 mips64el mipsel powerpc powerpcspe ppc64 ppc64el riscv64 s390x sparc sparc64
libpixman-1-dev [amd64 arm arm64 armel armhf i386 loong64 mips mips64 mips64el mipsel powerpc powerpcspe ppc64 ppc64el riscv64 s390x sparc sparc64],
# --enable-rbd amd64 arm64 loong64 mips64el ppc64el riscv64 s390x
librbd-dev [amd64 arm64 loong64 mips64el ppc64el riscv64 s390x],
# gluster is 64bit-only: #1039604
# --enable-glusterfs amd64 arm64 loong64 mips64 mips64el ppc64 ppc64el riscv64 s390x sparc64
libglusterfs-dev [amd64 arm64 loong64 mips64 mips64el ppc64 ppc64el riscv64 s390x sparc64],
# --enable-vnc-sasl amd64 arm arm64 armel armhf i386 loong64 mips mips64 mips64el mipsel powerpc powerpcspe ppc64 ppc64el riscv64 s390x sparc sparc64
libsasl2-dev [amd64 arm arm64 armel armhf i386 loong64 mips mips64 mips64el mipsel powerpc powerpcspe ppc64 ppc64el riscv64 s390x sparc sparc64],
# --enable-sdl amd64 arm arm64 armel armhf i386 loong64 mips mips64 mips64el mipsel powerpc powerpcspe ppc64 ppc64el riscv64 s390x sparc sparc64
libsdl2-dev [amd64 arm arm64 armel armhf i386 loong64 mips mips64 mips64el mipsel powerpc powerpcspe ppc64 ppc64el riscv64 s390x sparc sparc64],
# --enable-seccomp amd64 arm64 armel armhf i386 loong64 mips64el mipsel ppc64 ppc64el powerpc riscv64 s390x
libseccomp-dev [amd64 arm64 armel armhf i386 loong64 mips64el mipsel ppc64 ppc64el powerpc riscv64 s390x],
# --enable-slirp amd64 arm arm64 armel armhf i386 loong64 mips mips64 mips64el mipsel powerpc powerpcspe ppc64 ppc64el riscv64 s390x sparc sparc64
libslirp-dev [amd64 arm arm64 armel armhf i386 loong64 mips mips64 mips64el mipsel powerpc powerpcspe ppc64 ppc64el riscv64 s390x sparc sparc64],
# --enable-spice amd64 i386 arm64 armel armhf loong64 mips64el mipsel ppc64el riscv64
libspice-server-dev [amd64 i386 arm64 armel armhf loong64 mips64el mipsel ppc64el riscv64],
# --enable-rdma linux-any
librdmacm-dev [linux-any], libibverbs-dev [linux-any], libibumad-dev [linux-any],
# --enable-linux-io-uring linux-any
liburing-dev [linux-any],
# --enable-libusb amd64 arm arm64 armel armhf i386 loong64 mips mips64 mips64el mipsel powerpc powerpcspe ppc64 ppc64el riscv64 s390x sparc sparc64
libusb-1.0-0-dev [amd64 arm arm64 armel armhf i386 loong64 mips mips64 mips64el mipsel powerpc powerpcspe ppc64 ppc64el riscv64 s390x sparc sparc64],
# --enable-usb-redir amd64 arm arm64 armel armhf i386 loong64 mips mips64 mips64el mipsel powerpc powerpcspe ppc64 ppc64el riscv64 s390x sparc sparc64
libusbredirparser-dev [amd64 arm arm64 armel armhf i386 loong64 mips mips64 mips64el mipsel powerpc powerpcspe ppc64 ppc64el riscv64 s390x sparc sparc64],
# --enable-libssh
libssh-dev,
# --enable-zstd
libzstd-dev,
# vde is debian-only since ubuntu/vde2 is in universe
# --enable-vde amd64 arm arm64 armel armhf i386 loong64 mips mips64 mips64el mipsel powerpc powerpcspe ppc64 ppc64el riscv64 s390x sparc sparc64
libvdeplug-dev [amd64 arm arm64 armel armhf i386 loong64 mips mips64 mips64el mipsel powerpc powerpcspe ppc64 ppc64el riscv64 s390x sparc sparc64],
libxen-dev [linux-amd64],
# --enable-nettle amd64 arm arm64 armel armhf i386 loong64 mips mips64 mips64el mipsel powerpc powerpcspe ppc64 ppc64el riscv64 s390x sparc sparc64
nettle-dev [amd64 arm arm64 armel armhf i386 loong64 mips mips64 mips64el mipsel powerpc powerpcspe ppc64 ppc64el riscv64 s390x sparc sparc64],
# other optional features we enable
# --enable-libudev
# needed for qga?
libudev-dev [linux-any],
# --enable-vnc amd64 arm arm64 armel armhf i386 loong64 mips mips64 mips64el mipsel powerpc powerpcspe ppc64 ppc64el riscv64 s390x sparc sparc64
# --enable-vnc-jpeg amd64 arm arm64 armel armhf i386 loong64 mips mips64 mips64el mipsel powerpc powerpcspe ppc64 ppc64el riscv64 s390x sparc sparc64
libjpeg-dev [amd64 arm arm64 armel armhf i386 loong64 mips mips64 mips64el mipsel powerpc powerpcspe ppc64 ppc64el riscv64 s390x sparc sparc64],
# --enable-png amd64 arm arm64 armel armhf i386 loong64 mips mips64 mips64el mipsel powerpc powerpcspe ppc64 ppc64el riscv64 s390x sparc sparc64
libpng-dev [amd64 arm arm64 armel armhf i386 loong64 mips mips64 mips64el mipsel powerpc powerpcspe ppc64 ppc64el riscv64 s390x sparc sparc64],
# --enable-libpmem amd64 arm64
libpmem-dev [amd64 arm64],
# --enable-kvm amd64 arm arm64 armel armhf i386 loong64 mips mips64 mips64el mipsel powerpc powerpcspe ppc64 ppc64el riscv64 s390x sparc sparc64
# --enable-vhost-net amd64 arm arm64 armel armhf i386 loong64 mips mips64 mips64el mipsel powerpc powerpcspe ppc64 ppc64el riscv64 s390x sparc sparc64 # is it really linux-specific?
##--enable-lzo todo, for (memory) dumps
##--enable-netmap todo bsd
##--enable-xen-pci-passthrough todo
## auth-pam - for auth for vnc&Co using PAM
#
# the testsuite:
# ipxe-qemu [amd64 arm arm64 armel armhf i386 loong64 mips mips64 mips64el mipsel powerpc powerpcspe ppc64 ppc64el riscv64 s390x sparc sparc64] <!nocheck>,
seabios (>> 1.16.3-1~) [amd64 arm arm64 armel armhf i386 loong64 mips mips64 mips64el mipsel powerpc powerpcspe ppc64 ppc64el riscv64 s390x sparc sparc64] <!nocheck>,
qemu-system-data (>> 1:9.0) [amd64 arm arm64 armel armhf i386 loong64 mips mips64 mips64el mipsel powerpc powerpcspe ppc64 ppc64el riscv64 s390x sparc sparc64] <!nocheck>,
#
# vdso: for linux-user, we need small arch-specific .so files to embed them
# into linux-user for many architectures.
# On debian, arch and indep parts are built separately, and cross-compilers
# to build all vdsos aren't available on all architectures. So we build a
# tarball of them in indep build and place it in qemu-system-data. When
# building both arch+indep parts in one go, d/rules has magic to always
# (re)build vdso files and use the result immediately.
# pkg.qemu.use-upstream-vdso - always use upstream pre-built vdso files,
# do not embed vdso files into qemu-system-data binary package
# pkg.qemu.omit-vdso-build-dep - do not Build-Depend-Arch: qemu-system-data for
# vdso (allows to build and use vdso files with single arch+indep build)
# Ubuntu builds both arch+indep parts (on amd64), so there this is irrelevant.
# Effectively it always enables pkg.qemu.omit-vdso-build-dep build-profile.
# With each upstream, check if vdso code changed and bump the version:
qemu-system-data (>> 1:9.2.0~rc3+ds-1~) [amd64 arm arm64 armel armhf i386 loong64 mips mips64 mips64el mipsel powerpc powerpcspe ppc64 ppc64el riscv64 s390x sparc sparc64]
<!pkg.qemu.use-upstream-vdso !pkg.qemu.omit-vdso-build-dep>,
Build-Depends-Indep:
# x86_64 firmware
gcc-x86-64-linux-gnu,
# compiler used to build i386 firmware
gcc-i686-linux-gnu,
# pc-bios/*.dts => *.dtb (PPC firmware)
device-tree-compiler,
gcc-s390x-linux-gnu,
# qemu-palcode/palcode-clipper
gcc-alpha-linux-gnu,
# u-boot code
gcc-powerpc-linux-gnu,
# skiboot firmware, openbios
gcc-powerpc64-linux-gnu,
# skiboot includes <openssl/something.h>
libssl-dev,
# openbios
gcc-sparc64-linux-gnu, fcode-utils, xsltproc,
# hppa-firmware (32 and 64 bit)
gcc-hppa-linux-gnu, gcc-hppa64-linux-gnu,
gcc-riscv64-linux-gnu,
# vbootrom/npcm7xx
gcc-arm-linux-gnueabi, libc6-dev-armel-cross,
# vbootrom/npcm8xx
gcc-aarch64-linux-gnu, libc6-dev-arm64-cross,
# vdso (configure:probe_target_compiler() needs libc too):
gcc-arm-linux-gnueabi <!pkg.qemu.use-upstream-vdso>, libc6-dev-armel-cross <!pkg.qemu.use-upstream-vdso>,
gcc-hppa-linux-gnu <!pkg.qemu.use-upstream-vdso>, libc6-dev-hppa-cross <!pkg.qemu.use-upstream-vdso>,
gcc-i686-linux-gnu <!pkg.qemu.use-upstream-vdso>, libc6-dev-i386-cross <!pkg.qemu.use-upstream-vdso>,
gcc-loongarch64-linux-gnu <!pkg.qemu.use-upstream-vdso>, libc6-dev-loong64-cross <!pkg.qemu.use-upstream-vdso>,
gcc-powerpc64-linux-gnu <!pkg.qemu.use-upstream-vdso>, libc6-dev-ppc64-cross <!pkg.qemu.use-upstream-vdso>,
gcc-riscv64-linux-gnu <!pkg.qemu.use-upstream-vdso>, libc6-dev-riscv64-cross <!pkg.qemu.use-upstream-vdso>,
gcc-s390x-linux-gnu <!pkg.qemu.use-upstream-vdso>, libc6-dev-s390x-cross <!pkg.qemu.use-upstream-vdso>,
gcc-x86-64-linux-gnu <!pkg.qemu.use-upstream-vdso>,
Build-Conflicts: oss4-dev
Standards-Version: 4.7.2
Homepage: http://www.qemu.org/
Rules-Requires-Root: no
Vcs-Browser: https://salsa.debian.org/qemu-team/qemu
Vcs-Git: https://salsa.debian.org/qemu-team/qemu.git
Package: qemu-system
Architecture: amd64 arm arm64 armel armhf i386 loong64 mips mips64 mips64el mipsel powerpc powerpcspe ppc64 ppc64el riscv64 s390x sparc sparc64
Multi-Arch: foreign
Build-Profiles: <!pkg.qemu.omit-system>
Depends: ${misc:Depends},
qemu-system-arm,
qemu-system-mips,
qemu-system-ppc,
qemu-system-riscv,
qemu-system-s390x,
qemu-system-sparc,
qemu-system-x86,
qemu-system-misc
Description: QEMU full system emulation binaries
QEMU is a fast processor emulator: currently the package supports Alpha, ARM,
CRIS, i386, LoongArch, M68k (ColdFire), MicroBlaze, MIPS, PowerPC, RISC-V,
S390x, SH4, SPARC, x86-64, Xtensa and other emulations. By using dynamic
translation it achieves reasonable speed while being easy to port on new host
CPUs.
.
This metapackage provides the full system emulation binaries for all supported
targets, by depending on all per-architecture system emulation packages which
QEMU supports.
Package: qemu-block-extra
Architecture: alpha amd64 arm arm64 armel armhf hppa i386 loong64 m68k mips mips64 mips64el mipsel powerpc powerpcspe ppc64 ppc64el riscv64 s390x sh4 sparc sparc64 x32
Multi-Arch: no
Depends: ${misc:Depends}, ${shlibs:Depends},
# we need to ensure qemu-block-extra is upgraded with qemu-system-* or qemu-utils
qemu-system-any (= ${binary:Version}) [amd64 arm arm64 armel armhf i386 loong64 mips mips64 mips64el mipsel powerpc powerpcspe ppc64 ppc64el riscv64 s390x sparc sparc64] | qemu-utils (= ${binary:Version}),
Enhances: qemu-utils,
qemu-system-arm,
qemu-system-mips,
qemu-system-ppc,
qemu-system-riscv,
qemu-system-s390x,
qemu-system-sparc,
qemu-system-x86,
qemu-system-misc,
Provides: qemu-block-supplemental [amd64 arm64 ppc64el riscv64 s390x],
Description: extra block backend modules for qemu-system and qemu-utils
QEMU is a fast processor emulator: currently the package supports Alpha, ARM,
CRIS, i386, LoongArch, M68k (ColdFire), MicroBlaze, MIPS, PowerPC, RISC-V,
S390x, SH4, SPARC, x86-64, Xtensa and other emulations. By using dynamic
translation it achieves reasonable speed while being easy to port on new host
CPUs.
.
This package provides extra block device backend modules for qemu-system
emulation and qemu-img from qemu-utils package, which are rarely used and
has extra dependencies.
Package: qemu-system-data
Architecture: all
Multi-Arch: foreign
Conflicts: sgabios, qemu-skiboot, openbios-sparc, openbios-ppc, qemu-slof,
Replaces: sgabios, openbios-sparc, openbios-ppc, qemu-slof,
qemu-system-ppc (<< 1:6.1-4~),
qemu-system-common (<< 1:8.2.2+ds-1~),
Breaks: qemu-system-ppc (<< 1:6.1-4~),
qemu-system-common (<< 1:8.2.2+ds-1~),
# s390x-netboot dropped in 9.2, breaks qemu-system-s390x
qemu-system-misc (<< 1:9.1.1+ds-1~),
qemu-system-s390x (<< 1:9.2.0~),
Provides: qemu-keymaps, sgabios, qemu-skiboot, openbios-sparc, openbios-ppc, qemu-slof,
Depends: ${misc:Depends}
Description: QEMU full system emulation (data files)
This package provides architecture-neutral data files
(such as keyboard definitions, icons) for system-mode
QEMU emulation (qemu-system-*) packages.
Package: qemu-system-common
Architecture: amd64 arm arm64 armel armhf i386 loong64 mips mips64 mips64el mipsel powerpc powerpcspe ppc64 ppc64el riscv64 s390x sparc sparc64
Multi-Arch: no
Build-Profiles: <!pkg.qemu.omit-system>
Breaks: libvirt-daemon (<< 7.2.0-1)
Depends: ${misc:Depends}, ${shlibs:Depends},
# to fix wrong acl for newly created device node on ubuntu:
Description: QEMU full system emulation binaries (common files)
QEMU is a fast processor emulator: currently the package supports Alpha, ARM,
CRIS, i386, LoongArch, M68k (ColdFire), MicroBlaze, MIPS, PowerPC, RISC-V,
S390x, SH4, SPARC, x86-64, Xtensa and other emulations. By using dynamic
translation it achieves reasonable speed while being easy to port on new host
CPUs.
.
This package provides common files needed for target-specific
full system emulation (qemu-system-*) packages.
Package: qemu-system-gui
Architecture: amd64 arm arm64 armel armhf i386 loong64 mips mips64 mips64el mipsel powerpc powerpcspe ppc64 ppc64el riscv64 s390x sparc sparc64
#XXX M-A: same does not really work for now due to /usr/lib/qemu/vhost-user-gpu
#XXX we'll deal with this if some actual need arises,
#XXX by moving that binary back to q-s-common or packaging it separately
#Multi-Arch: same
Build-Profiles: <!pkg.qemu.omit-system>
Depends: ${misc:Depends}, ${shlibs:Depends},
# ui-* depends on ui-opengl
qemu-system-modules-opengl (= ${binary:Version}),
# we need to ensure qemu-system-gui is upgraded with qemu-system-*
qemu-system-any (= ${binary:Version}),
# libgl1 is dynamically loaded by sdl display code
libgl1,
# we moved vhost-user-gpu files here from qemu-system-common at 6.1-4
Replaces: qemu-system-common (<< 1:6.1+dfsg-4~)
Description: QEMU full system emulation binaries (graphical display and audio modules)
This package provides optional graphical guest display modules (currently GTK
and SDL) and audio backend modules for full system emulation (qemu-system-*)
packages.
.
This package is not a management/control/GUI interface for qemu, use something
else (like virt-manager) for that.
Package: qemu-system-modules-spice
Architecture: amd64 i386 arm64 armel armhf loong64 mips64el mipsel ppc64el riscv64
Build-Profiles: <!pkg.qemu.omit-system>
Depends: ${misc:Depends}, ${shlibs:Depends},
# spice modules depends on ui-opengl
qemu-system-modules-opengl (= ${binary:Version}),
# we need to ensure qemu-system-modules-spice is upgraded with qemu-system-*
qemu-system-any (= ${binary:Version}),
Replaces: qemu-system-common (<< 1:8.1.0+ds-1~exp2~)
Breaks: qemu-system-common (<< 1:8.1.0+ds-1~exp2~)
Description: QEMU full system emulation binaries (spice display modules)
This package provides optional spice display (qxl and spice-app) and audio
support modules for QEMU full system emulation (qemu-system-*) packages.
Package: qemu-system-modules-opengl
Architecture: amd64 arm arm64 armel armhf i386 loong64 mips mips64 mips64el mipsel powerpc powerpcspe ppc64 ppc64el riscv64 s390x sparc sparc64
Build-Profiles: <!pkg.qemu.omit-system>
Depends: ${misc:Depends}, ${shlibs:Depends},
# we need to ensure qemu-system-modules-opengl is upgraded when qemu-system is upgraded
qemu-system-any (= ${binary:Version}),
Replaces: qemu-system-common (<< 1:8.1.0+ds-1~exp2~), qemu-system-gui (<< 1:8.1.0+ds-1~exp2~)
Breaks: qemu-system-common (<< 1:8.1.0+ds-1~exp2~), qemu-system-gui (<< 1:8.1.0+ds-1~exp2~)
Description: QEMU full system emulation binaries (OpenGL display modules)
This package provides optional OpenGL display support modules for QEMU full
system emulation (qemu-system-*) packages. It also provides D-Bus display
type.
Package: qemu-system-misc
Architecture: amd64 arm arm64 armel armhf i386 loong64 mips mips64 mips64el mipsel powerpc powerpcspe ppc64 ppc64el riscv64 s390x sparc sparc64
Multi-Arch: foreign
Build-Profiles: <!pkg.qemu.omit-system>
Depends: ${shlibs:Depends}, ${misc:Depends},
qemu-system-common (= ${binary:Version}),
qemu-system-data (>> ${source:Upstream-Version}~),
# depends on qemu-system-riscv & -s390x since 9.1.1 for now to avoid breaking
# existing setups which used to get riscv&s390 binaries from -misc.
# Downgrade to Recommends for one release cycle once tests are fixed
qemu-system-riscv,
qemu-system-s390x,
Recommends: qemu-utils,
# alpha uses vgabios
# alpha m68k sh4 uses bootroms
seabios,
ipxe-qemu,
qemu-system-gui (= ${binary:Version}),
qemu-system-modules-spice (= ${binary:Version}) [amd64 i386 arm64 armel armhf loong64 mips64el mipsel ppc64el riscv64],
qemu-system-modules-opengl (= ${binary:Version}),
qemu-block-extra (= ${binary:Version}),
Suggests: samba, vde2,
Provides: ${qemu:Provides}
Conflicts: ${qemu:Conflicts}
Description: QEMU full system emulation binaries (miscellaneous)
QEMU is a fast processor emulator: currently the package supports Alpha, ARM,
CRIS, i386, LoongArch, M68k (ColdFire), MicroBlaze, MIPS, PowerPC, RISC-V,
S390x, SH4, SPARC, x86-64, Xtensa and other emulations. By using dynamic
translation it achieves reasonable speed while being easy to port on new host
CPUs.
.
This package provides the full system emulation binaries to emulate
various other hardware which did not made into separate packages.
Emulators for the following architectures are provided:
${qemu:archlist}.
.
In system emulation mode QEMU emulates a full system, including a processor
and various peripherals. It enables easier testing and debugging of system
code. It can also be used to provide virtual hosting of several virtual
machines on a single server.
Package: qemu-system-arm
Architecture: amd64 arm arm64 armel armhf i386 loong64 mips mips64 mips64el mipsel powerpc powerpcspe ppc64 ppc64el riscv64 s390x sparc sparc64
Multi-Arch: foreign
Build-Profiles: <!pkg.qemu.omit-system>
Depends: ${shlibs:Depends}, ${misc:Depends}, qemu-system-common (= ${binary:Version}), qemu-system-data (>> ${source:Upstream-Version}~),
Recommends: qemu-utils,
# aarch64 arm uses bootroms
ipxe-qemu,
# for now virtio-vga won't check arch and insist on vgabios-virtio.bin
seabios,
qemu-efi-aarch64, qemu-efi-arm,
qemu-system-gui (= ${binary:Version}),
qemu-system-modules-spice (= ${binary:Version}) [amd64 i386 arm64 armel armhf loong64 mips64el mipsel ppc64el riscv64],
qemu-system-modules-opengl (= ${binary:Version}),
qemu-block-extra (= ${binary:Version}),
Suggests: samba, vde2,
Provides: ${qemu:Provides}
Conflicts: ${qemu:Conflicts}
Description: QEMU full system emulation binaries (arm)
QEMU is a fast processor emulator: currently the package supports
ARM emulation. By using dynamic translation it achieves
reasonable speed while being easy to port on new host CPUs.
.
This package provides the full system emulation binaries to emulate
the following arm hardware: ${qemu:archlist}.
.
In system emulation mode QEMU emulates a full system, including a processor
and various peripherals. It enables easier testing and debugging of system
code. It can also be used to provide virtual hosting of several virtual
machines on a single server.
Package: qemu-system-mips
Architecture: amd64 arm arm64 armel armhf i386 loong64 mips mips64 mips64el mipsel powerpc powerpcspe ppc64 ppc64el riscv64 s390x sparc sparc64
Multi-Arch: foreign
Build-Profiles: <!pkg.qemu.omit-system>
Depends: ${shlibs:Depends}, ${misc:Depends}, qemu-system-common (= ${binary:Version}), qemu-system-data (>> ${source:Upstream-Version}~),
Recommends: qemu-utils,
# all mips targets uses vgabios and bootroms
seabios,
ipxe-qemu,
qemu-system-gui (= ${binary:Version}),
qemu-system-modules-spice (= ${binary:Version}) [amd64 i386 arm64 armel armhf loong64 mips64el mipsel ppc64el riscv64],
qemu-system-modules-opengl (= ${binary:Version}),
qemu-block-extra (= ${binary:Version}),
Suggests: samba, vde2,
Provides: ${qemu:Provides}
Conflicts: ${qemu:Conflicts}
Description: QEMU full system emulation binaries (mips)
QEMU is a fast processor emulator: currently the package supports
MIPS emulation. By using dynamic translation it achieves
reasonable speed while being easy to port on new host CPUs.
.
This package provides the full system emulation binaries to emulate
the following mips hardware: ${qemu:archlist}.
.
In system emulation mode QEMU emulates a full system, including a processor
and various peripherals. It enables easier testing and debugging of system
code. It can also be used to provide virtual hosting of several virtual
machines on a single server.
Package: qemu-system-ppc
Architecture: amd64 arm arm64 armel armhf i386 loong64 mips mips64 mips64el mipsel powerpc powerpcspe ppc64 ppc64el riscv64 s390x sparc sparc64
Multi-Arch: foreign
Build-Profiles: <!pkg.qemu.omit-system>
Depends: ${shlibs:Depends}, ${misc:Depends}, qemu-system-common (= ${binary:Version}), qemu-system-data (>> ${source:Upstream-Version}~),
Recommends: qemu-utils,
# ppc targets use vgabios-stdvga and bootroms
seabios,
ipxe-qemu,
qemu-system-gui (= ${binary:Version}),
qemu-system-modules-spice (= ${binary:Version}) [amd64 i386 arm64 armel armhf loong64 mips64el mipsel ppc64el riscv64],
qemu-system-modules-opengl (= ${binary:Version}),
qemu-block-extra (= ${binary:Version}),
Suggests: samba, vde2,
Provides: ${qemu:Provides}
Conflicts: ${qemu:Conflicts}
Description: QEMU full system emulation binaries (ppc)
QEMU is a fast processor emulator: currently the package supports
PowerPC emulation. By using dynamic translation it achieves
reasonable speed while being easy to port on new host CPUs.
.
This package provides the full system emulation binaries to emulate
the following PowerPC hardware: ${qemu:archlist}.
.
In system emulation mode QEMU emulates a full system, including a processor
and various peripherals. It enables easier testing and debugging of system
code. It can also be used to provide virtual hosting of several virtual
machines on a single server.
Package: qemu-system-riscv
Architecture: amd64 arm arm64 armel armhf i386 loong64 mips mips64 mips64el mipsel powerpc powerpcspe ppc64 ppc64el riscv64 s390x sparc sparc64
Multi-Arch: foreign
Build-Profiles: <!pkg.qemu.omit-system>
Depends: ${shlibs:Depends}, ${misc:Depends},
qemu-system-common (= ${binary:Version}),
qemu-system-data (>> ${source:Upstream-Version}~),
opensbi (>> 1.5.1-1~),
Recommends: qemu-utils,
ipxe-qemu,
Breaks: qemu-system-data (<< 1:9.1.0+ds-4~), qemu-system-misc (<< 1:9.1.0+ds-9~)
Replaces: qemu-system-data (<< 1:9.1.0+ds-4~), qemu-system-misc (<< 1:9.1.0+ds-9~)
Suggests: samba, vde2,
Provides: ${qemu:Provides}
Conflicts: ${qemu:Conflicts}
Description: QEMU full system emulation binaries (riscv)
QEMU is a fast processor emulator: currently the package supports
riscv emulation. By using dynamic translation it achieves
reasonable speed while being easy to port on new host CPUs.
.
This package provides the full system emulation binaries to emulate
the following riscv hardware: ${qemu:archlist}.
Package: qemu-system-s390x
Architecture: amd64 arm arm64 armel armhf i386 loong64 mips mips64 mips64el mipsel powerpc powerpcspe ppc64 ppc64el riscv64 s390x sparc sparc64
Multi-Arch: foreign
Build-Profiles: <!pkg.qemu.omit-system>
Depends: ${shlibs:Depends}, ${misc:Depends}, qemu-system-common (= ${binary:Version}), qemu-system-data (>> ${source:Upstream-Version}~),
Recommends: qemu-utils,
qemu-system-gui (= ${binary:Version}),
qemu-system-modules-spice (= ${binary:Version}) [amd64 i386 arm64 armel armhf loong64 mips64el mipsel ppc64el riscv64],
qemu-system-modules-opengl (= ${binary:Version}),
qemu-block-extra (= ${binary:Version}),
Breaks: qemu-system-misc (<< 1:9.1.0+ds-9~)
Replaces: qemu-system-misc (<< 1:9.1.0+ds-9~)
Provides: ${qemu:Provides}
Conflicts: ${qemu:Conflicts}
Description: QEMU full system emulation binaries (s390x)
QEMU is a fast processor emulator: currently the package supports
s390x emulation. By using dynamic translation it achieves reasonable
speed while being easy to port on new host CPUs.
.
This package provides the full system emulation binaries to emulate
the following s390x hardware: ${qemu:archlist}.
.
In system emulation mode QEMU emulates a full system, including a processor
and various peripherals. It enables easier testing and debugging of system
code. It can also be used to provide virtual hosting of several virtual
machines on a single server.
Package: qemu-system-sparc
Architecture: amd64 arm arm64 armel armhf i386 loong64 mips mips64 mips64el mipsel powerpc powerpcspe ppc64 ppc64el riscv64 s390x sparc sparc64
Multi-Arch: foreign
Build-Profiles: <!pkg.qemu.omit-system>
Depends: ${shlibs:Depends}, ${misc:Depends}, qemu-system-common (= ${binary:Version}), qemu-system-data (>> ${source:Upstream-Version}~),
Recommends: qemu-utils,
# sparc64 uses vgabios-stdvga and bootroms
seabios,
ipxe-qemu,
qemu-system-gui (= ${binary:Version}),
qemu-system-modules-spice (= ${binary:Version}) [amd64 i386 arm64 armel armhf loong64 mips64el mipsel ppc64el riscv64],
qemu-system-modules-opengl (= ${binary:Version}),
qemu-block-extra (= ${binary:Version}),
Suggests: samba, vde2,
Provides: ${qemu:Provides}
Conflicts: ${qemu:Conflicts}
Description: QEMU full system emulation binaries (sparc)
QEMU is a fast processor emulator: currently the package supports
SPARC emulation. By using dynamic translation it achieves
reasonable speed while being easy to port on new host CPUs.
.
This package provides the full system emulation binaries to emulate
the following sparc hardware: ${qemu:archlist}.
.
In system emulation mode QEMU emulates a full system, including a processor
and various peripherals. It enables easier testing and debugging of system
code. It can also be used to provide virtual hosting of several virtual
machines on a single server.
Package: qemu-system-x86
Architecture: amd64 arm arm64 armel armhf i386 loong64 mips mips64 mips64el mipsel powerpc powerpcspe ppc64 ppc64el riscv64 s390x sparc sparc64
Multi-Arch: foreign
Build-Profiles: <!pkg.qemu.omit-system>
Depends: ${shlibs:Depends}, ${misc:Depends}, qemu-system-common (= ${binary:Version}), qemu-system-data (>> ${source:Upstream-Version}~),
seabios (>> 1.16.3-1~),
ipxe-qemu,
Recommends: qemu-utils,
ovmf,
qemu-system-gui (= ${binary:Version}),
qemu-system-modules-spice (= ${binary:Version}) [amd64 i386 arm64 armel armhf loong64 mips64el mipsel ppc64el riscv64],
qemu-system-modules-opengl (= ${binary:Version}),
qemu-block-extra (= ${binary:Version}),
Suggests: samba, vde2,
Provides: ${qemu:Provides}
Conflicts: ${qemu:Conflicts}
Description: QEMU full system emulation binaries (x86)
QEMU is a fast processor emulator: currently the package supports
i386 and x86-64 emulation. By using dynamic translation it achieves
reasonable speed while being easy to port on new host CPUs.
.
This package provides the full system emulation binaries to emulate
the following x86 hardware: ${qemu:archlist}.
.
In system emulation mode QEMU emulates a full system, including a processor
and various peripherals. It enables easier testing and debugging of system
code. It can also be used to provide virtual hosting of several virtual
machines on a single server.
.
On x86 host hardware this package also enables KVM kernel virtual machine
usage on systems which supports it.
Package: qemu-system-xen
Architecture: amd64
Multi-Arch: no
Build-Profiles: <!pkg.qemu.omit-system-xen>
# do we really need qemu-system-data? keymaps only?
Depends: ${shlibs:Depends}, ${misc:Depends}, qemu-system-data (>> ${source:Upstream-Version}~),
seabios
Recommends: qemu-utils,
ovmf,
Description: QEMU full system emulation (Xen helper package)
This package provides the i386 system emulation binary to work
together with the Xen hypervisor for some types of DomUs.
This package is not useful by its own.
Package: qemu-user
Architecture: amd64 arm arm64 armel armhf i386 loong64 mips mips64 mips64el mipsel powerpc powerpcspe ppc64 ppc64el riscv64 s390x sparc sparc64
Multi-Arch: foreign
Static-Built-Using: ${built-using}
Build-Profiles: <!pkg.qemu.omit-user>
Depends: ${misc:Depends}
Breaks: qemu-user-static (<< 1:9.1.0), qemu-user-binfmt (<< 1:9.1.0)
Replaces: qemu-user-static (<< 1:9.1.0), qemu-user-binfmt (<< 1:9.1.0)
Recommends: qemu-user-binfmt
Description: QEMU user mode emulation (static binaries)
QEMU is a fast processor emulator: currently the package supports Alpha, ARM,
CRIS, i386, LoongArch, M68k (ColdFire), MicroBlaze, MIPS, PowerPC, RISC-V,
S390x, SH4, SPARC, x86-64, Xtensa and other emulations. By using dynamic
translation it achieves reasonable speed while being easy to port on new host
CPUs.
.
This package provides statically linked user mode emulation binaries.
In user mode QEMU can launch Linux processes compiled for one CPU
on another CPU.
.
If qemu-user-binfmt package is also installed, it will register binary
format handlers from this qemu-user package with the kernel automatically
so it will be possible to run foreign binaries directly. Without
qemu-user-binfmt, it is possible to register certain binfmt(s) by using:
cat /usr/share/qemu/binfmt.d/qemu-ARCH.conf \
> /proc/sys/fs/binfmt_misc/register
# remove this package in favour of qemu-user-binfmt in the future
Package: qemu-user-static
Architecture: amd64 arm arm64 armel armhf i386 loong64 mips mips64 mips64el mipsel powerpc powerpcspe ppc64 ppc64el riscv64 s390x sparc sparc64
Multi-Arch: foreign
Build-Profiles: <!pkg.qemu.omit-user>
Depends: ${misc:Depends},
qemu-user (>= ${binary:Version}), qemu-user-binfmt (>= ${binary:Version})
Section: oldlibs
Description: QEMU user mode emulation (compat/transitional package)
In the past, this package provided statically-built qemu user-mode emulation
binaries. Now this functionality is provided by qemu-user package, and this
package just to help migration to qemu-user.
.
This package provides old/compatibility symlinks from qemu-user-static binaries
pointing to corresponding qemu-user binaries, and old qemu-debootstrap script.
Neither of these should be used in practice.
.
Please remove this package once you ensure nothing is using the old interfaces.
Package: qemu-user-binfmt
Architecture: amd64 arm arm64 armel armhf i386 loong64 mips mips64 mips64el mipsel powerpc powerpcspe ppc64 ppc64el riscv64 s390x sparc sparc64
Multi-Arch: foreign
Build-Profiles: <!pkg.qemu.omit-user>
Depends: ${misc:Depends}, qemu-user (= ${binary:Version})
Breaks: qemu-user-static (<< 1:9.1.0)
Replaces: qemu-user-static (<< 1:9.1.0)
# Recommend systemd for binfmt-misc registration
Recommends: systemd
# When qemu-user-static is removed, this package should provide it,
# since the old user-static provided automatic binfmt registration
#Provides: qemu-user-static
Description: QEMU user mode binfmt registration for qemu-user
QEMU is a fast processor emulator: currently the package supports Alpha, ARM,
CRIS, i386, LoongArch, M68k (ColdFire), MicroBlaze, MIPS, PowerPC, RISC-V,
S390x, SH4, SPARC, x86-64, Xtensa and other emulations. By using dynamic
translation it achieves reasonable speed while being easy to port on new host
CPUs.
.
This package provides binfmt support registration for the user-mode emulation
binaries from qemu-user. This package does not contain additional binaries,
just (sym)links to binfmt registration data in /usr/lib/binfmt.d/ so it is
picked up automatically by, eg, systemd. Actual files are provided by
qemu-user package.
Package: qemu-utils
Architecture: alpha amd64 arm arm64 armel armhf hppa i386 loong64 m68k mips mips64 mips64el mipsel powerpc powerpcspe ppc64 ppc64el riscv64 s390x sh4 sparc sparc64 x32
Multi-Arch: foreign
Depends: ${shlibs:Depends}, ${misc:Depends},
Recommends:
qemu-block-extra (= ${binary:Version}),
Replaces:
# qemu-storage-daemon and qemu-block-driver.7 has been moved from q-s-c.
qemu-system-common (<< 1:8.0+dfsg-5~),
Breaks:
qemu-system-common (<< 1:8.0+dfsg-5~),
Description: QEMU utilities
QEMU is a fast processor emulator: currently the package supports Alpha, ARM,
CRIS, i386, LoongArch, M68k (ColdFire), MicroBlaze, MIPS, PowerPC, RISC-V,
S390x, SH4, SPARC, x86-64, Xtensa and other emulations. By using dynamic
translation it achieves reasonable speed while being easy to port on new host
CPUs.
.
This package provides QEMU related utilities:
* qemu-img: QEMU disk image utility
* qemu-io: QEMU disk exerciser
* qemu-nbd: QEMU disk network block device server
Package: qemu-guest-agent
Architecture: linux-any
Multi-Arch: foreign
Depends: ${shlibs:Depends}, ${misc:Depends}
Pre-Depends: ${misc:Pre-Depends}
Description: Guest-side qemu-system agent
QEMU is a fast processor emulator: currently the package supports Alpha, ARM,
CRIS, i386, LoongArch, M68k (ColdFire), MicroBlaze, MIPS, PowerPC, RISC-V,
S390x, SH4, SPARC, x86-64, Xtensa and other emulations. By using dynamic
translation it achieves reasonable speed while being easy to port on new host
CPUs.
.
This package provides a daemon (agent) to run inside qemu-system
guests (full system emulation). It communicates with the host using
a virtio-serial channel org.qemu.guest_agent.0, and allows one to perform
some functions in the guest from the host, including:
- querying and setting guest system time
- performing guest filesystem sync operation
- initiating guest shutdown or suspend to ram
- accessing guest files
- freezing/thawing guest filesystem operations
- others.
.
Install this package on a system which is running as guest inside
qemu virtual machine. It is not used on the host.
#Package: qemu-system-for-host
## This is actually all architectures for which qemu-system (softmmu) target is implemented
#Architecture: any
#Multi-Arch: same
#Depends: ${qemu:for-host} (=${binary:Version})
#Description: QEMU full system emulation (dependency-only package for the host architecture)
# This package pulls one of qemu-system-* subpackages which contains
# qemu-system-${}{DEB_HOST_ARCH_CPU} binary specific for the host
# architecture. This one depends on ${qemu:for-host}.
#

769
debian/control-in vendored Normal file
View file

@ -0,0 +1,769 @@
Source: qemu
Section: otherosfs
Priority: optional
:debian:Maintainer: Debian QEMU Team <pkg-qemu-devel@lists.alioth.debian.org>
:ubuntu:Maintainer: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com>
:ubuntu:XSBC-Original-Maintainer: Debian QEMU Team <pkg-qemu-devel@lists.alioth.debian.org>
Uploaders: Michael Tokarev <mjt@tls.msk.ru>
Build-Depends: debhelper-compat (= 13),
python3:any,
python3-venv:any,
python3:any (>> 3.11) | python3-tomli,
meson (>> 1.5.0~), ninja-build,
flex, bison,
# for :native suffix see #995622
python3-sphinx:native, python3-sphinx-rtd-theme:native,
# python3-pycotap:native,
Build-Depends-Arch:
# In comments below we also specify (system-specific) arguments
# to qemu's configure script, -- optional features which depend
# on build-dependencies.
# always needed
pkgconf, libglib2.0-dev, zlib1g-dev,
# target/hexagon/ builds a build-time (ie: native) tool using glib
pkgconf:native, libglib2.0-dev:native,
# iasl (from acpica-tools) is used only in a single test these days, not for building
# acpica-tools,
# libcapstone is in universe in ubuntu
:debian:# --enable-capstone
:debian: libcapstone-dev,
# --enable-linux-aio linux-any
libaio-dev [linux-any],
# libsndio is in universe in ubuntu
# --disable-sndio
# --audio-drv-list=pipewire,pa,alsa,jack,oss,sdl :system-arch-linux:
libjack-dev [:system-arch-linux:],
libpulse-dev [:system-arch:],
libasound2-dev [:system-arch-linux:],
libpipewire-0.3-dev [:system-arch-linux:],
# for virtfs (now in libc6)
# --enable-attr
# --enable-bpf :system-arch-linux:
libbpf-dev [:system-arch-linux:],
# --enable-blkio :system-arch-linux-64:
libblkio-dev [:system-arch-linux-64:],
# --enable-brlapi :system-arch:
libbrlapi-dev [:system-arch:],
# --enable-virtfs :system-arch-linux:
# needed for virtfs
# --enable-cap-ng :system-arch-linux:
libcap-ng-dev [:system-arch-linux:],
# --enable-curl
libcurl4-gnutls-dev,
# --enable-fdt :system-arch:
libfdt-dev [:system-arch:],
# --enable-fuse linux-any
libfuse3-dev [linux-any],
# --enable-gnutls
gnutls-dev,
# --enable-gtk --enable-vte :system-arch:
libgtk-3-dev [:system-arch:],
libvte-2.91-dev [:system-arch:],
# --enable-libiscsi
libiscsi-dev,
# --enable-curses :system-arch:
libncurses-dev [:system-arch:],
# --enable-virglrenderer :system-arch-linux:
libvirglrenderer-dev [:system-arch-linux:],
# --enable-opengl :system-arch-linux:
libepoxy-dev [:system-arch-linux:],
libdrm-dev [:system-arch-linux:],
libgbm-dev [:system-arch-linux:],
# --enable-libnfs
libnfs-dev,
# --enable-numa :system-arch-linux:
libnuma-dev [:system-arch-linux:],
# --enable-smartcard :system-arch:
libcacard-dev [:system-arch:],
# --enable-pixman :system-arch:
libpixman-1-dev [:system-arch:],
# --enable-rbd amd64 arm64 loong64 mips64el ppc64el riscv64 s390x
librbd-dev [amd64 arm64 loong64 mips64el ppc64el riscv64 s390x],
# gluster is 64bit-only: #1039604
# --enable-glusterfs :system-arch-linux-64:
libglusterfs-dev [:system-arch-linux-64:],
# --enable-vnc-sasl :system-arch:
libsasl2-dev [:system-arch:],
# --enable-sdl :system-arch:
libsdl2-dev [:system-arch:],
# --enable-seccomp amd64 arm64 armel armhf i386 loong64 mips64el mipsel ppc64 ppc64el powerpc riscv64 s390x
libseccomp-dev [amd64 arm64 armel armhf i386 loong64 mips64el mipsel ppc64 ppc64el powerpc riscv64 s390x],
# --enable-slirp :system-arch:
libslirp-dev [:system-arch:],
# --enable-spice :spice-arch:
libspice-server-dev [:spice-arch:],
# --enable-rdma linux-any
librdmacm-dev [linux-any], libibverbs-dev [linux-any], libibumad-dev [linux-any],
# --enable-linux-io-uring linux-any
liburing-dev [linux-any],
# --enable-libusb :system-arch-linux:
libusb-1.0-0-dev [:system-arch-linux:],
# --enable-usb-redir :system-arch-linux:
libusbredirparser-dev [:system-arch-linux:],
# --enable-libssh
libssh-dev,
# --enable-zstd
libzstd-dev,
# vde is debian-only since ubuntu/vde2 is in universe
:debian:# --enable-vde :system-arch:
:debian: libvdeplug-dev [:system-arch:],
libxen-dev [linux-amd64],
# --enable-nettle :system-arch:
nettle-dev [:system-arch:],
# other optional features we enable
# --enable-libudev
# needed for qga?
libudev-dev [linux-any],
# --enable-vnc :system-arch:
# --enable-vnc-jpeg :system-arch:
libjpeg-dev [:system-arch:],
# --enable-png :system-arch:
libpng-dev [:system-arch:],
# --enable-libpmem amd64 arm64
libpmem-dev [amd64 arm64],
# --enable-kvm :system-arch-linux:
# --enable-vhost-net :system-arch-linux: # is it really linux-specific?
##--enable-lzo todo, for (memory) dumps
##--enable-netmap todo bsd
##--enable-xen-pci-passthrough todo
## auth-pam - for auth for vnc&Co using PAM
#
# the testsuite:
# ipxe-qemu [:system-arch-linux:] <!nocheck>,
seabios (>> 1.16.3-1~) [:system-arch-linux:] <!nocheck>,
qemu-system-data (>> 1:9.0) [:system-arch-linux:] <!nocheck>,
#
# vdso: for linux-user, we need small arch-specific .so files to embed them
# into linux-user for many architectures.
# On debian, arch and indep parts are built separately, and cross-compilers
# to build all vdsos aren't available on all architectures. So we build a
# tarball of them in indep build and place it in qemu-system-data. When
# building both arch+indep parts in one go, d/rules has magic to always
# (re)build vdso files and use the result immediately.
# pkg.qemu.use-upstream-vdso - always use upstream pre-built vdso files,
# do not embed vdso files into qemu-system-data binary package
# pkg.qemu.omit-vdso-build-dep - do not Build-Depend-Arch: qemu-system-data for
# vdso (allows to build and use vdso files with single arch+indep build)
# Ubuntu builds both arch+indep parts (on amd64), so there this is irrelevant.
# Effectively it always enables pkg.qemu.omit-vdso-build-dep build-profile.
# With each upstream, check if vdso code changed and bump the version:
:debian: qemu-system-data (>> :vdso-version:) [:user-arch:]
:debian: <!pkg.qemu.use-upstream-vdso !pkg.qemu.omit-vdso-build-dep>,
Build-Depends-Indep:
# x86_64 firmware
gcc-x86-64-linux-gnu,
# compiler used to build i386 firmware
gcc-i686-linux-gnu,
# pc-bios/*.dts => *.dtb (PPC firmware)
device-tree-compiler,
gcc-s390x-linux-gnu,
# qemu-palcode/palcode-clipper
gcc-alpha-linux-gnu,
# u-boot code
gcc-powerpc-linux-gnu,
# skiboot firmware, openbios
gcc-powerpc64-linux-gnu,
# skiboot includes <openssl/something.h>
libssl-dev,
# openbios
gcc-sparc64-linux-gnu, fcode-utils, xsltproc,
# hppa-firmware (32 and 64 bit)
gcc-hppa-linux-gnu, gcc-hppa64-linux-gnu,
gcc-riscv64-linux-gnu,
# vbootrom/npcm7xx
gcc-arm-linux-gnueabi, libc6-dev-armel-cross,
# vbootrom/npcm8xx
gcc-aarch64-linux-gnu, libc6-dev-arm64-cross,
# vdso (configure:probe_target_compiler() needs libc too):
gcc-arm-linux-gnueabi <!pkg.qemu.use-upstream-vdso>, libc6-dev-armel-cross <!pkg.qemu.use-upstream-vdso>,
gcc-hppa-linux-gnu <!pkg.qemu.use-upstream-vdso>, libc6-dev-hppa-cross <!pkg.qemu.use-upstream-vdso>,
gcc-i686-linux-gnu <!pkg.qemu.use-upstream-vdso>, libc6-dev-i386-cross <!pkg.qemu.use-upstream-vdso>,
gcc-loongarch64-linux-gnu <!pkg.qemu.use-upstream-vdso>, libc6-dev-loong64-cross <!pkg.qemu.use-upstream-vdso>,
gcc-powerpc64-linux-gnu <!pkg.qemu.use-upstream-vdso>, libc6-dev-ppc64-cross <!pkg.qemu.use-upstream-vdso>,
gcc-riscv64-linux-gnu <!pkg.qemu.use-upstream-vdso>, libc6-dev-riscv64-cross <!pkg.qemu.use-upstream-vdso>,
gcc-s390x-linux-gnu <!pkg.qemu.use-upstream-vdso>, libc6-dev-s390x-cross <!pkg.qemu.use-upstream-vdso>,
gcc-x86-64-linux-gnu <!pkg.qemu.use-upstream-vdso>,
Build-Conflicts: oss4-dev
Standards-Version: 4.7.2
Homepage: http://www.qemu.org/
Rules-Requires-Root: no
:debian:Vcs-Browser: https://salsa.debian.org/qemu-team/qemu
:debian:Vcs-Git: https://salsa.debian.org/qemu-team/qemu.git
:ubuntu:XS-Debian-Vcs-Browser: https://salsa.debian.org/qemu-team/qemu
:ubuntu:XS-Debian-Vcs-Git: https://salsa.debian.org/qemu-team/qemu.git
:ubuntu:Vcs-Browser: https://git.launchpad.net/ubuntu/+source/qemu
:ubuntu:Vcs-Git: https://git.launchpad.net/ubuntu/+source/qemu
Package: qemu-system
Architecture: :system-arch:
Multi-Arch: foreign
Build-Profiles: <!pkg.qemu.omit-system>
Depends: ${misc:Depends},
qemu-system-arm,
qemu-system-mips,
qemu-system-ppc,
qemu-system-riscv,
qemu-system-s390x,
qemu-system-sparc,
qemu-system-x86,
qemu-system-misc
Description: QEMU full system emulation binaries
QEMU is a fast processor emulator: currently the package supports Alpha, ARM,
CRIS, i386, LoongArch, M68k (ColdFire), MicroBlaze, MIPS, PowerPC, RISC-V,
S390x, SH4, SPARC, x86-64, Xtensa and other emulations. By using dynamic
translation it achieves reasonable speed while being easy to port on new host
CPUs.
.
This metapackage provides the full system emulation binaries for all supported
targets, by depending on all per-architecture system emulation packages which
QEMU supports.
Package: qemu-block-extra
Architecture: :utils-arch:
Multi-Arch: no
Depends: ${misc:Depends}, ${shlibs:Depends},
# we need to ensure qemu-block-extra is upgraded with qemu-system-* or qemu-utils
qemu-system-any (= ${binary:Version}) [:system-arch:] | qemu-utils (= ${binary:Version}),
Enhances: qemu-utils,
qemu-system-arm,
qemu-system-mips,
qemu-system-ppc,
qemu-system-riscv,
qemu-system-s390x,
qemu-system-sparc,
qemu-system-x86,
qemu-system-misc,
:debian:Provides: qemu-block-supplemental [amd64 arm64 ppc64el riscv64 s390x],
Description: extra block backend modules for qemu-system and qemu-utils
QEMU is a fast processor emulator: currently the package supports Alpha, ARM,
CRIS, i386, LoongArch, M68k (ColdFire), MicroBlaze, MIPS, PowerPC, RISC-V,
S390x, SH4, SPARC, x86-64, Xtensa and other emulations. By using dynamic
translation it achieves reasonable speed while being easy to port on new host
CPUs.
.
This package provides extra block device backend modules for qemu-system
emulation and qemu-img from qemu-utils package, which are rarely used and
has extra dependencies.
:ubuntu:
:ubuntu:Package: qemu-block-supplemental
:ubuntu:Architecture: amd64 arm64 ppc64el riscv64 s390x
:ubuntu:Multi-Arch: no
:ubuntu:Depends: ${misc:Depends}, ${shlibs:Depends},
:ubuntu:# we need to ensure qemu-block-supplemental is upgraded with qemu-system-* or qemu-utils
:ubuntu: qemu-system-any (= ${binary:Version}) [amd64 arm64 armhf ppc64el riscv64 s390x] | qemu-utils (= ${binary:Version}),
:ubuntu:Enhances: qemu-utils,
:ubuntu: qemu-system-arm,
:ubuntu: qemu-system-mips,
:ubuntu: qemu-system-ppc,
:ubuntu: qemu-system-riscv,
:ubuntu: qemu-system-s390x,
:ubuntu: qemu-system-sparc,
:ubuntu: qemu-system-x86,
:ubuntu: qemu-system-misc,
:ubuntu:Breaks: qemu-block-extra (<< 1:8.2.0+ds-4ubuntu2~)
:ubuntu:Replaces: qemu-block-extra (<< 1:8.2.0+ds-4ubuntu2~)
:ubuntu:Description: supplemental block backend modules for qemu-system and qemu-utils
:ubuntu: QEMU is a fast processor emulator: currently the package supports Alpha, ARM,
:ubuntu: CRIS, i386, LoongArch, M68k (ColdFire), MicroBlaze, MIPS, PowerPC, RISC-V,
:ubuntu: S390x, SH4, SPARC, x86-64, Xtensa and other emulations. By using dynamic
:ubuntu: translation it achieves reasonable speed while being easy to port on new host
:ubuntu: CPUs.
:ubuntu: .
:ubuntu: This package provides supplemental block device backend modules for qemu-system
:ubuntu: emulation and qemu-img from qemu-utils package.
:ubuntu: .
:ubuntu: Currently, the following modules are shipped in this package:
:ubuntu: block-glusterfs block-blkio
Package: qemu-system-data
Architecture: all
Multi-Arch: foreign
Conflicts: sgabios, qemu-skiboot, openbios-sparc, openbios-ppc, qemu-slof,
Replaces: sgabios, openbios-sparc, openbios-ppc, qemu-slof,
qemu-system-ppc (<< 1:6.1-4~),
qemu-system-common (<< 1:8.2.2+ds-1~),
Breaks: qemu-system-ppc (<< 1:6.1-4~),
qemu-system-common (<< 1:8.2.2+ds-1~),
# s390x-netboot dropped in 9.2, breaks qemu-system-s390x
:debian: qemu-system-misc (<< 1:9.1.1+ds-1~),
qemu-system-s390x (<< 1:9.2.0~),
Provides: qemu-keymaps, sgabios, qemu-skiboot, openbios-sparc, openbios-ppc, qemu-slof,
Depends: ${misc:Depends}
Description: QEMU full system emulation (data files)
This package provides architecture-neutral data files
(such as keyboard definitions, icons) for system-mode
QEMU emulation (qemu-system-*) packages.
Package: qemu-system-common
Architecture: :system-arch:
Multi-Arch: no
Build-Profiles: <!pkg.qemu.omit-system>
Breaks: libvirt-daemon (<< 7.2.0-1)
Depends: ${misc:Depends}, ${shlibs:Depends},
# to fix wrong acl for newly created device node on ubuntu:
:ubuntu: acl
Description: QEMU full system emulation binaries (common files)
QEMU is a fast processor emulator: currently the package supports Alpha, ARM,
CRIS, i386, LoongArch, M68k (ColdFire), MicroBlaze, MIPS, PowerPC, RISC-V,
S390x, SH4, SPARC, x86-64, Xtensa and other emulations. By using dynamic
translation it achieves reasonable speed while being easy to port on new host
CPUs.
.
This package provides common files needed for target-specific
full system emulation (qemu-system-*) packages.
Package: qemu-system-gui
Architecture: :system-arch:
#XXX M-A: same does not really work for now due to /usr/lib/qemu/vhost-user-gpu
#XXX we'll deal with this if some actual need arises,
#XXX by moving that binary back to q-s-common or packaging it separately
#Multi-Arch: same
Build-Profiles: <!pkg.qemu.omit-system>
Depends: ${misc:Depends}, ${shlibs:Depends},
# ui-* depends on ui-opengl
qemu-system-modules-opengl (= ${binary:Version}),
# we need to ensure qemu-system-gui is upgraded with qemu-system-*
qemu-system-any (= ${binary:Version}),
# libgl1 is dynamically loaded by sdl display code
libgl1,
# we moved vhost-user-gpu files here from qemu-system-common at 6.1-4
Replaces: qemu-system-common (<< 1:6.1+dfsg-4~)
Description: QEMU full system emulation binaries (graphical display and audio modules)
This package provides optional graphical guest display modules (currently GTK
and SDL) and audio backend modules for full system emulation (qemu-system-*)
packages.
.
This package is not a management/control/GUI interface for qemu, use something
else (like virt-manager) for that.
Package: qemu-system-modules-spice
Architecture: :spice-arch:
Build-Profiles: <!pkg.qemu.omit-system>
Depends: ${misc:Depends}, ${shlibs:Depends},
# spice modules depends on ui-opengl
qemu-system-modules-opengl (= ${binary:Version}),
# we need to ensure qemu-system-modules-spice is upgraded with qemu-system-*
qemu-system-any (= ${binary:Version}),
Replaces: qemu-system-common (<< 1:8.1.0+ds-1~exp2~)
Breaks: qemu-system-common (<< 1:8.1.0+ds-1~exp2~)
Description: QEMU full system emulation binaries (spice display modules)
This package provides optional spice display (qxl and spice-app) and audio
support modules for QEMU full system emulation (qemu-system-*) packages.
Package: qemu-system-modules-opengl
Architecture: :system-arch:
Build-Profiles: <!pkg.qemu.omit-system>
Depends: ${misc:Depends}, ${shlibs:Depends},
# we need to ensure qemu-system-modules-opengl is upgraded when qemu-system is upgraded
qemu-system-any (= ${binary:Version}),
Replaces: qemu-system-common (<< 1:8.1.0+ds-1~exp2~), qemu-system-gui (<< 1:8.1.0+ds-1~exp2~)
Breaks: qemu-system-common (<< 1:8.1.0+ds-1~exp2~), qemu-system-gui (<< 1:8.1.0+ds-1~exp2~)
Description: QEMU full system emulation binaries (OpenGL display modules)
This package provides optional OpenGL display support modules for QEMU full
system emulation (qemu-system-*) packages. It also provides D-Bus display
type.
Package: qemu-system-misc
Architecture: :system-arch:
Multi-Arch: foreign
Build-Profiles: <!pkg.qemu.omit-system>
Depends: ${shlibs:Depends}, ${misc:Depends},
qemu-system-common (= ${binary:Version}),
qemu-system-data (>> ${source:Upstream-Version}~),
# depends on qemu-system-riscv & -s390x since 9.1.1 for now to avoid breaking
# existing setups which used to get riscv&s390 binaries from -misc.
# Downgrade to Recommends for one release cycle once tests are fixed
qemu-system-riscv,
:debian: qemu-system-s390x,
Recommends: qemu-utils,
# alpha uses vgabios
# alpha m68k sh4 uses bootroms
seabios,
ipxe-qemu,
qemu-system-gui (= ${binary:Version}),
qemu-system-modules-spice (= ${binary:Version}) [:spice-arch:],
qemu-system-modules-opengl (= ${binary:Version}),
qemu-block-extra (= ${binary:Version}),
Suggests: samba, vde2,
Provides: ${qemu:Provides}
Conflicts: ${qemu:Conflicts}
Description: QEMU full system emulation binaries (miscellaneous)
QEMU is a fast processor emulator: currently the package supports Alpha, ARM,
CRIS, i386, LoongArch, M68k (ColdFire), MicroBlaze, MIPS, PowerPC, RISC-V,
S390x, SH4, SPARC, x86-64, Xtensa and other emulations. By using dynamic
translation it achieves reasonable speed while being easy to port on new host
CPUs.
.
This package provides the full system emulation binaries to emulate
various other hardware which did not made into separate packages.
Emulators for the following architectures are provided:
${qemu:archlist}.
.
In system emulation mode QEMU emulates a full system, including a processor
and various peripherals. It enables easier testing and debugging of system
code. It can also be used to provide virtual hosting of several virtual
machines on a single server.
Package: qemu-system-arm
Architecture: :system-arch:
Multi-Arch: foreign
Build-Profiles: <!pkg.qemu.omit-system>
Depends: ${shlibs:Depends}, ${misc:Depends}, qemu-system-common (= ${binary:Version}), qemu-system-data (>> ${source:Upstream-Version}~),
Recommends: qemu-utils,
# aarch64 arm uses bootroms
ipxe-qemu,
# for now virtio-vga won't check arch and insist on vgabios-virtio.bin
seabios,
qemu-efi-aarch64, qemu-efi-arm,
qemu-system-gui (= ${binary:Version}),
qemu-system-modules-spice (= ${binary:Version}) [:spice-arch:],
qemu-system-modules-opengl (= ${binary:Version}),
qemu-block-extra (= ${binary:Version}),
Suggests: samba, vde2,
Provides: ${qemu:Provides}
Conflicts: ${qemu:Conflicts}
Description: QEMU full system emulation binaries (arm)
QEMU is a fast processor emulator: currently the package supports
ARM emulation. By using dynamic translation it achieves
reasonable speed while being easy to port on new host CPUs.
.
This package provides the full system emulation binaries to emulate
the following arm hardware: ${qemu:archlist}.
.
In system emulation mode QEMU emulates a full system, including a processor
and various peripherals. It enables easier testing and debugging of system
code. It can also be used to provide virtual hosting of several virtual
machines on a single server.
Package: qemu-system-mips
Architecture: :system-arch:
Multi-Arch: foreign
Build-Profiles: <!pkg.qemu.omit-system>
Depends: ${shlibs:Depends}, ${misc:Depends}, qemu-system-common (= ${binary:Version}), qemu-system-data (>> ${source:Upstream-Version}~),
Recommends: qemu-utils,
# all mips targets uses vgabios and bootroms
seabios,
ipxe-qemu,
qemu-system-gui (= ${binary:Version}),
qemu-system-modules-spice (= ${binary:Version}) [:spice-arch:],
qemu-system-modules-opengl (= ${binary:Version}),
qemu-block-extra (= ${binary:Version}),
Suggests: samba, vde2,
Provides: ${qemu:Provides}
Conflicts: ${qemu:Conflicts}
Description: QEMU full system emulation binaries (mips)
QEMU is a fast processor emulator: currently the package supports
MIPS emulation. By using dynamic translation it achieves
reasonable speed while being easy to port on new host CPUs.
.
This package provides the full system emulation binaries to emulate
the following mips hardware: ${qemu:archlist}.
.
In system emulation mode QEMU emulates a full system, including a processor
and various peripherals. It enables easier testing and debugging of system
code. It can also be used to provide virtual hosting of several virtual
machines on a single server.
Package: qemu-system-ppc
Architecture: :system-arch:
Multi-Arch: foreign
Build-Profiles: <!pkg.qemu.omit-system>
Depends: ${shlibs:Depends}, ${misc:Depends}, qemu-system-common (= ${binary:Version}), qemu-system-data (>> ${source:Upstream-Version}~),
Recommends: qemu-utils,
# ppc targets use vgabios-stdvga and bootroms
seabios,
ipxe-qemu,
qemu-system-gui (= ${binary:Version}),
qemu-system-modules-spice (= ${binary:Version}) [:spice-arch:],
qemu-system-modules-opengl (= ${binary:Version}),
qemu-block-extra (= ${binary:Version}),
Suggests: samba, vde2,
Provides: ${qemu:Provides}
Conflicts: ${qemu:Conflicts}
Description: QEMU full system emulation binaries (ppc)
QEMU is a fast processor emulator: currently the package supports
PowerPC emulation. By using dynamic translation it achieves
reasonable speed while being easy to port on new host CPUs.
.
This package provides the full system emulation binaries to emulate
the following PowerPC hardware: ${qemu:archlist}.
.
In system emulation mode QEMU emulates a full system, including a processor
and various peripherals. It enables easier testing and debugging of system
code. It can also be used to provide virtual hosting of several virtual
machines on a single server.
Package: qemu-system-riscv
Architecture: :system-arch:
Multi-Arch: foreign
Build-Profiles: <!pkg.qemu.omit-system>
Depends: ${shlibs:Depends}, ${misc:Depends},
qemu-system-common (= ${binary:Version}),
qemu-system-data (>> ${source:Upstream-Version}~),
opensbi (>> 1.5.1-1~),
Recommends: qemu-utils,
ipxe-qemu,
Breaks: qemu-system-data (<< 1:9.1.0+ds-4~), qemu-system-misc (<< 1:9.1.0+ds-9~)
Replaces: qemu-system-data (<< 1:9.1.0+ds-4~), qemu-system-misc (<< 1:9.1.0+ds-9~)
Suggests: samba, vde2,
Provides: ${qemu:Provides}
Conflicts: ${qemu:Conflicts}
Description: QEMU full system emulation binaries (riscv)
QEMU is a fast processor emulator: currently the package supports
riscv emulation. By using dynamic translation it achieves
reasonable speed while being easy to port on new host CPUs.
.
This package provides the full system emulation binaries to emulate
the following riscv hardware: ${qemu:archlist}.
Package: qemu-system-s390x
Architecture: :system-arch:
Multi-Arch: foreign
Build-Profiles: <!pkg.qemu.omit-system>
Depends: ${shlibs:Depends}, ${misc:Depends}, qemu-system-common (= ${binary:Version}), qemu-system-data (>> ${source:Upstream-Version}~),
Recommends: qemu-utils,
qemu-system-gui (= ${binary:Version}),
qemu-system-modules-spice (= ${binary:Version}) [:spice-arch:],
qemu-system-modules-opengl (= ${binary:Version}),
qemu-block-extra (= ${binary:Version}),
:debian:Breaks: qemu-system-misc (<< 1:9.1.0+ds-9~)
:debian:Replaces: qemu-system-misc (<< 1:9.1.0+ds-9~)
Provides: ${qemu:Provides}
Conflicts: ${qemu:Conflicts}
Description: QEMU full system emulation binaries (s390x)
QEMU is a fast processor emulator: currently the package supports
s390x emulation. By using dynamic translation it achieves reasonable
speed while being easy to port on new host CPUs.
.
This package provides the full system emulation binaries to emulate
the following s390x hardware: ${qemu:archlist}.
.
In system emulation mode QEMU emulates a full system, including a processor
and various peripherals. It enables easier testing and debugging of system
code. It can also be used to provide virtual hosting of several virtual
machines on a single server.
Package: qemu-system-sparc
Architecture: :system-arch:
Multi-Arch: foreign
Build-Profiles: <!pkg.qemu.omit-system>
Depends: ${shlibs:Depends}, ${misc:Depends}, qemu-system-common (= ${binary:Version}), qemu-system-data (>> ${source:Upstream-Version}~),
Recommends: qemu-utils,
# sparc64 uses vgabios-stdvga and bootroms
seabios,
ipxe-qemu,
qemu-system-gui (= ${binary:Version}),
qemu-system-modules-spice (= ${binary:Version}) [:spice-arch:],
qemu-system-modules-opengl (= ${binary:Version}),
qemu-block-extra (= ${binary:Version}),
Suggests: samba, vde2,
Provides: ${qemu:Provides}
Conflicts: ${qemu:Conflicts}
Description: QEMU full system emulation binaries (sparc)
QEMU is a fast processor emulator: currently the package supports
SPARC emulation. By using dynamic translation it achieves
reasonable speed while being easy to port on new host CPUs.
.
This package provides the full system emulation binaries to emulate
the following sparc hardware: ${qemu:archlist}.
.
In system emulation mode QEMU emulates a full system, including a processor
and various peripherals. It enables easier testing and debugging of system
code. It can also be used to provide virtual hosting of several virtual
machines on a single server.
:ubuntu:# xen support generally is disabled on ubuntu, for a while we used
:ubuntu:# an extra build with xen enabled. In the meantime Debian followed that
:ubuntu:# approach but with a different name, so add a transitional until
:ubuntu:# after 24.04
:ubuntu:Package: qemu-system-x86-xen
:ubuntu:Architecture: amd64
:ubuntu:Multi-Arch: foreign
:ubuntu:Section: oldlibs
:ubuntu:Depends: qemu-system-xen (>= 1:7.0+dfsg-7ubuntu1), ${misc:Depends}
:ubuntu:Description: QEMU full system emulation binaries (x86)
:ubuntu: The former qemu-system-x86-xen binaries are now in qemu-system-xen.
:ubuntu: .
:ubuntu: This is a transitional package. You can safely remove it.
Package: qemu-system-x86
Architecture: :system-arch:
Multi-Arch: foreign
Build-Profiles: <!pkg.qemu.omit-system>
Depends: ${shlibs:Depends}, ${misc:Depends}, qemu-system-common (= ${binary:Version}), qemu-system-data (>> ${source:Upstream-Version}~),
seabios (>> 1.16.3-1~),
ipxe-qemu,
Recommends: qemu-utils,
ovmf,
qemu-system-gui (= ${binary:Version}),
qemu-system-modules-spice (= ${binary:Version}) [:spice-arch:],
qemu-system-modules-opengl (= ${binary:Version}),
qemu-block-extra (= ${binary:Version}),
:ubuntu: cpu-checker,
Suggests: samba, vde2,
Provides: ${qemu:Provides}
Conflicts: ${qemu:Conflicts}
Description: QEMU full system emulation binaries (x86)
QEMU is a fast processor emulator: currently the package supports
i386 and x86-64 emulation. By using dynamic translation it achieves
reasonable speed while being easy to port on new host CPUs.
.
This package provides the full system emulation binaries to emulate
the following x86 hardware: ${qemu:archlist}.
.
In system emulation mode QEMU emulates a full system, including a processor
and various peripherals. It enables easier testing and debugging of system
code. It can also be used to provide virtual hosting of several virtual
machines on a single server.
.
On x86 host hardware this package also enables KVM kernel virtual machine
usage on systems which supports it.
Package: qemu-system-xen
Architecture: amd64
Multi-Arch: no
Build-Profiles: <!pkg.qemu.omit-system-xen>
# do we really need qemu-system-data? keymaps only?
Depends: ${shlibs:Depends}, ${misc:Depends}, qemu-system-data (>> ${source:Upstream-Version}~),
seabios
Recommends: qemu-utils,
ovmf,
:ubuntu:# For the transition from the former qemu-system-x86-xen name
:ubuntu:Breaks: qemu-system-x86-xen (<<1:7.0+dfsg-7ubuntu1)
:ubuntu:Replaces: qemu-system-x86-xen (<<1:7.0+dfsg-7ubuntu1)
:ubuntu:Provides: qemu-system-x86-xen
Description: QEMU full system emulation (Xen helper package)
This package provides the i386 system emulation binary to work
together with the Xen hypervisor for some types of DomUs.
This package is not useful by its own.
Package: qemu-user
Architecture: :user-arch:
Multi-Arch: foreign
Static-Built-Using: ${built-using}
Build-Profiles: <!pkg.qemu.omit-user>
Depends: ${misc:Depends}
Breaks: qemu-user-static (<< 1:9.1.0), qemu-user-binfmt (<< 1:9.1.0)
Replaces: qemu-user-static (<< 1:9.1.0), qemu-user-binfmt (<< 1:9.1.0)
Recommends: qemu-user-binfmt
Description: QEMU user mode emulation (static binaries)
QEMU is a fast processor emulator: currently the package supports Alpha, ARM,
CRIS, i386, LoongArch, M68k (ColdFire), MicroBlaze, MIPS, PowerPC, RISC-V,
S390x, SH4, SPARC, x86-64, Xtensa and other emulations. By using dynamic
translation it achieves reasonable speed while being easy to port on new host
CPUs.
.
This package provides statically linked user mode emulation binaries.
In user mode QEMU can launch Linux processes compiled for one CPU
on another CPU.
.
If qemu-user-binfmt package is also installed, it will register binary
format handlers from this qemu-user package with the kernel automatically
so it will be possible to run foreign binaries directly. Without
qemu-user-binfmt, it is possible to register certain binfmt(s) by using:
cat /usr/share/qemu/binfmt.d/qemu-ARCH.conf \
> /proc/sys/fs/binfmt_misc/register
# remove this package in favour of qemu-user-binfmt in the future
Package: qemu-user-static
Architecture: :user-arch:
Multi-Arch: foreign
Build-Profiles: <!pkg.qemu.omit-user>
Depends: ${misc:Depends},
qemu-user (>= ${binary:Version}), qemu-user-binfmt (>= ${binary:Version})
Section: oldlibs
Description: QEMU user mode emulation (compat/transitional package)
In the past, this package provided statically-built qemu user-mode emulation
binaries. Now this functionality is provided by qemu-user package, and this
package just to help migration to qemu-user.
.
This package provides old/compatibility symlinks from qemu-user-static binaries
pointing to corresponding qemu-user binaries, and old qemu-debootstrap script.
Neither of these should be used in practice.
.
Please remove this package once you ensure nothing is using the old interfaces.
Package: qemu-user-binfmt
Architecture: :user-arch:
Multi-Arch: foreign
Build-Profiles: <!pkg.qemu.omit-user>
Depends: ${misc:Depends}, qemu-user (= ${binary:Version})
Breaks: qemu-user-static (<< 1:9.1.0)
Replaces: qemu-user-static (<< 1:9.1.0)
# Recommend systemd for binfmt-misc registration
Recommends: systemd
# When qemu-user-static is removed, this package should provide it,
# since the old user-static provided automatic binfmt registration
#Provides: qemu-user-static
Description: QEMU user mode binfmt registration for qemu-user
QEMU is a fast processor emulator: currently the package supports Alpha, ARM,
CRIS, i386, LoongArch, M68k (ColdFire), MicroBlaze, MIPS, PowerPC, RISC-V,
S390x, SH4, SPARC, x86-64, Xtensa and other emulations. By using dynamic
translation it achieves reasonable speed while being easy to port on new host
CPUs.
.
This package provides binfmt support registration for the user-mode emulation
binaries from qemu-user. This package does not contain additional binaries,
just (sym)links to binfmt registration data in /usr/lib/binfmt.d/ so it is
picked up automatically by, eg, systemd. Actual files are provided by
qemu-user package.
Package: qemu-utils
Architecture: :utils-arch:
Multi-Arch: foreign
Depends: ${shlibs:Depends}, ${misc:Depends},
Recommends:
qemu-block-extra (= ${binary:Version}),
Replaces:
# qemu-storage-daemon and qemu-block-driver.7 has been moved from q-s-c.
qemu-system-common (<< 1:8.0+dfsg-5~),
Breaks:
qemu-system-common (<< 1:8.0+dfsg-5~),
Description: QEMU utilities
QEMU is a fast processor emulator: currently the package supports Alpha, ARM,
CRIS, i386, LoongArch, M68k (ColdFire), MicroBlaze, MIPS, PowerPC, RISC-V,
S390x, SH4, SPARC, x86-64, Xtensa and other emulations. By using dynamic
translation it achieves reasonable speed while being easy to port on new host
CPUs.
.
This package provides QEMU related utilities:
* qemu-img: QEMU disk image utility
* qemu-io: QEMU disk exerciser
* qemu-nbd: QEMU disk network block device server
Package: qemu-guest-agent
Architecture: linux-any
Multi-Arch: foreign
Depends: ${shlibs:Depends}, ${misc:Depends}
Pre-Depends: ${misc:Pre-Depends}
Description: Guest-side qemu-system agent
QEMU is a fast processor emulator: currently the package supports Alpha, ARM,
CRIS, i386, LoongArch, M68k (ColdFire), MicroBlaze, MIPS, PowerPC, RISC-V,
S390x, SH4, SPARC, x86-64, Xtensa and other emulations. By using dynamic
translation it achieves reasonable speed while being easy to port on new host
CPUs.
.
This package provides a daemon (agent) to run inside qemu-system
guests (full system emulation). It communicates with the host using
a virtio-serial channel org.qemu.guest_agent.0, and allows one to perform
some functions in the guest from the host, including:
- querying and setting guest system time
- performing guest filesystem sync operation
- initiating guest shutdown or suspend to ram
- accessing guest files
- freezing/thawing guest filesystem operations
- others.
.
Install this package on a system which is running as guest inside
qemu virtual machine. It is not used on the host.
#Package: qemu-system-for-host
## This is actually all architectures for which qemu-system (softmmu) target is implemented
#Architecture: any
#Multi-Arch: same
#Depends: ${qemu:for-host} (=${binary:Version})
#Description: QEMU full system emulation (dependency-only package for the host architecture)
# This package pulls one of qemu-system-* subpackages which contains
# qemu-system-${}{DEB_HOST_ARCH_CPU} binary specific for the host
# architecture. This one depends on ${qemu:for-host}.
#

198
debian/control.mk vendored Executable file
View file

@ -0,0 +1,198 @@
#!/usr/bin/make -rRf
SHELL = /bin/sh -e
VENDOR := $(shell dpkg-vendor --derives-from Ubuntu && \
echo ubuntu || echo debian)
include /usr/share/dpkg/pkg-info.mk
empty :=
# since some files and/or lists differ from version to version,
# ensure we have the expected qemu version, or else scream loudly
checked-version := 10.0.2+ds
# version of last vdso change for d/control Depends field:
vdso-version := 1:9.2.0~rc3+ds-1~
vdso-files := \
linux-user/aarch64/vdso-be.so \
linux-user/aarch64/vdso-le.so \
linux-user/arm/vdso-be32.so \
linux-user/arm/vdso-be8.so \
linux-user/arm/vdso-le.so \
linux-user/hppa/vdso.so \
linux-user/i386/vdso.so \
linux-user/loongarch64/vdso.so \
linux-user/ppc/vdso-32.so \
linux-user/ppc/vdso-64.so \
linux-user/ppc/vdso-64le.so \
linux-user/riscv/vdso-32.so \
linux-user/riscv/vdso-64.so \
linux-user/s390x/vdso.so \
linux-user/x86_64/vdso.so \
${empty}
user-targets := \
aarch64 \
aarch64_be \
alpha \
arm \
armeb \
hexagon \
hppa \
i386 \
loongarch64 \
m68k \
microblaze \
microblazeel \
mips \
mips64 \
mips64el \
mipsel \
mipsn32 \
mipsn32el \
or1k \
ppc \
ppc64 \
ppc64le \
riscv32 \
riscv64 \
s390x \
sh4 \
sh4eb \
sparc \
sparc32plus \
sparc64 \
x86_64 \
xtensa \
xtensaeb \
${empty}
# qemu-system (softmmu) targets, in multiple packages
# For each package:
# system-archlist-$pkg - list qemu architectues which should go to this pkg
# For each of ${system-archlist-*}, optional:
# system-alias-$qcpu - aliases for this qemu architecture
system-packages := arm mips ppc riscv s390x sparc x86 misc
system-archlist-arm := aarch64 arm
system-alias-aarch64 := arm64
system-alias-arm := armel armhf
system-archlist-mips := mips mipsel mips64 mips64el
system-archlist-ppc := ppc ppc64
system-alias-ppc := powerpc
system-alias-ppc64 := ppc64le ppc64el
system-archlist-riscv := riscv32 riscv64
system-archlist-s390x := s390x
system-archlist-sparc := sparc sparc64
system-archlist-x86 := i386 x86_64
system-alias-x86_64 := amd64
system-archlist-misc := alpha avr hppa m68k loongarch64 \
microblaze microblazeel or1k rx sh4 sh4eb \
tricore xtensa xtensaeb
system-alias-loongarch64 := loong64
# system-kvm - list of qemu architectures where native kvm is provided
system-kvm := \
aarch64 \
arm \
loongarch64 \
ppc \
ppc64 \
s390x \
x86_64 \
${empty}
# temp: disallow 64bit emulation on 32bit host case
# upstream qemu dropped 64-on-32 case in 10.0,
# and deprecated 32bit host entirely.
# Keep this as long as 32bit host is supported
DEB_HOST_ARCH_BITS ?= $(shell dpkg-architecture -q DEB_TARGET_ARCH_BITS)
ifeq (32,${DEB_HOST_ARCH_BITS})
vdso-files := \
linux-user/arm/vdso-be32.so \
linux-user/arm/vdso-be8.so \
linux-user/arm/vdso-le.so \
linux-user/i386/vdso.so \
linux-user/ppc/vdso-32.so \
linux-user/riscv/vdso-32.so \
${empty}
user-targets := $(filter-out %64 aarch64% alpha hppa mips64% mipsn32% ppc64% s390x sparc32plus,${user-targets})
system-packages := $(filter-out s390x,${system-packages})
system-archlist-arm := arm
system-archlist-mips := mips mipsel
system-archlist-ppc := ppc
system-archlist-riscv := riscv32
system-archlist-s390x :=
system-archlist-sparc := sparc
system-archlist-x86 := i386
system-archlist-misc := $(filter-out alpha hppa loongarch64 microblaze% s390x,${system-archlist-misc})
system-kvm :=
endif
ifneq (${checked-version},${DEB_VERSION_UPSTREAM})
$(warning Debian packaging is set up for version ${checked-version} while actual version is ${DEB_VERSION_UPSTREAM})
actual-vdso-files := $(sort $(shell \
for f in linux-user/*/Makefile.vdso ; do \
sed -n "s|^\\\$$(SUBDIR)/\(.*\):.*|$${f%/*}/\1|p" $$f; \
done))
ifneq ($(sort ${vdso-files}),${actual-vdso-files})
$(warning vdso-files list changed: \
added: $(filter-out ${vdso-files},${actual-vdso-files}), \
removed: $(filter-out ${actual-vdso-files},${vdso-files}))
endif
vdso-version-upstream := $(word 2,$(subst :, ,$(subst -, ,${vdso-version})))
vdso-tag := v$(subst ~rc,-rc,${vdso-version-upstream:+ds=})
actual-vdso-tag := v$(subst ~rc,-rc,${DEB_VERSION_UPSTREAM:+ds=})
vdso-changed-files != set -x; \
git diff --name-only ${vdso-tag}..${actual-vdso-tag} -- 'linux-user/*/vdso*.so'
ifneq (0,${.SHELLSTATUS})
$(warning unable to run git to find list of changed vdso files)
endif
ifneq (,${vdso-changed-files})
$(warning changes in vdso files found since ${vdso-version}, update vdso-version)
endif
actual-user-targets := $(sort $(shell \
ls -1 configs/targets/*-linux-user.mak \
| sed 's|.*/\(.*\)-linux-user\.mak$$|\1|'))
ifneq ($(sort ${user-targets}),${actual-user-targets})
$(warning user-targets list differs from actual, \
added: $(filter-out ${user-targets},${actual-user-targets}), \
removed: $(filter-out ${actual-user-targets},${user-targets}))
$(warning Check debian/binfmt-install too!)
endif
$(error verify everything is set up correctly)
endif
# Host architectures we produce packages for.
# when changing this list, check d/control-in too, if any changes
# needs to be done for build deps and --enable options.
system-arch-linux-64 = \
amd64 arm64 loong64 mips64 mips64el ppc64 ppc64el riscv64 s390x sparc64
system-arch-linux = $(sort ${system-arch-linux-64} \
arm armel armhf i386 mips mipsel powerpc powerpcspe sparc)
system-arch = ${system-arch-linux}
user-arch = ${system-arch-linux}
utils-arch = $(sort ${system-arch} alpha hppa m68k sh4 x32)
# subset of system-arch
spice-arch = amd64 i386 arm64 armel armhf loong64 mips64el mipsel ppc64el riscv64
substvars = system-arch-linux-64 system-arch-linux system-arch spice-arch user-arch utils-arch \
vdso-version
debian/control: debian/control-in debian/control.mk
sed -e '1i\# autogenerated file from debian/control-in' \
-e 's/^:${VENDOR}://' -e '/^:[a-z]*:/D' \
$(foreach v,${substvars},-e 's/:$v:/${$v}/') \
$< > $@.tmp
mv -f $@.tmp $@

535
debian/copyright vendored Normal file
View file

@ -0,0 +1,535 @@
Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
Files-Excluded:
roms/QemuMacDrivers
roms/edk2
roms/ipxe
roms/seabios
roms/opensbi
# roms/u-boot
#
roms/SLOF/board-js2x/rtas/i2c_bmc.oco
roms/SLOF/board-js2x/rtas/ipmi_oem.oco
roms/SLOF/clients/takeover/takeover.oco
roms/SLOF/lib/libipmi/libipmi.oco
#
pc-bios/QEMU,*.bin
pc-bios/bamboo.dtb pc-bios/canyonlands.dtb
pc-bios/bios.bin
pc-bios/bios-256k.bin
pc-bios/bios-microvm.bin
pc-bios/edk2-*.fd.bz2
pc-bios/efi-*.rom
pc-bios/pxe-*.rom
pc-bios/hppa-firmware.img
pc-bios/hppa-firmware64.img
pc-bios/kvmvapic.bin
pc-bios/linuxboot.bin
pc-bios/linuxboot_dma.bin
pc-bios/multiboot.bin
pc-bios/multiboot_dma.bin
pc-bios/openbios-ppc
pc-bios/openbios-sparc32
pc-bios/openbios-sparc64
pc-bios/opensbi-*.bin
pc-bios/palcode-clipper
pc-bios/petalogix-ml605.dtb
pc-bios/petalogix-s3adsp1800.dtb
pc-bios/pvh.bin
pc-bios/qboot.rom
pc-bios/qemu_vga.ndrv
pc-bios/s390-ccw.img
pc-bios/skiboot.lid
pc-bios/slof.bin
pc-bios/u-boot-sam460-20100605.bin
pc-bios/u-boot.e500
pc-bios/vgabios.bin
pc-bios/vgabios-*.bin
pc-bios/vof.bin
#
python/wheels/*.whl
#
subprojects/packagecache
subprojects/packagefiles
Files: *
Copyright:
Copyright (C) 1982, 1986, 1988-1994 The Regents of the University of California
Copyright (C) 1986-2007 Free Software Foundation Inc.
Copyright (C) 1988-1992 Richard Outerbridge
Copyright (C) 1991-1992, 1996 Linus Torvalds
Copyright (C) 1992 Graven Imagery
Copyright (C) 1995 Danny Gasparovski
Copyright (C) 1996-1999 Eduardo Horvath
Copyright (C) 1996 Paul Mackerras
Copyright (C) 1997-1999, 2001, 2006-2009 Red Hat Inc.
Copyright (C) 1998-1999 Philip Blundell
Copyright (C) 1998-2001, 2003, 2006 Thomas Sailer <t.sailer@alumni.ethz.ch>
Copyright (C) 1998, 2003-2008 Fabrice Bellard
Copyright (C) 1998-2004 Samuel Rydh <samuel@ibrium.se>
Copyright (C) 1998 Kenneth Albanowski <kjahds@kjahds.com>
Copyright (C) 1998 The Silver Hammer Group Ltd.
Copyright (C) 1999-2000, 2002-2003 Maxim Krasnyansky <maxk@qualcomm.com>
Copyright (C) 1999-2000 Tatsuyuki Satoh
Copyright (C) 1999-2006, 2008 Intel Corporation
Copyright (C) 1999 AT&T Laboratories Cambridge
Copyright (C) 2000-2001 Qualcomm Incorporated
Copyright (C) 2000-2002, 2004-2009 Axis Communications AB.
Copyright (C) 2000-2003, 2005 Martin Schwidefsky
Copyright (C) 2000-2003 David McCullough <davidm@snapgear.com> <davidm@lineo.com>
Copyright (C) 2000-2005 All Rights Reserved.
Copyright (C) 2000-2005 DENX Software Engineering <wd@denx.de.>
Copyright (C) 2000-2005 Silicon Graphics Inc.
Copyright (C) 2000-2005 Wolfgang Denk
Copyright (C) 2000-2007 Tibor "TS" Schütz
Copyright (C) 2001 OKTET Ltd.
Copyright (C) 2001 Xilinx Inc.
Copyright (C) 2002-2005 Vassili Karpov
Copyright (C) 2002-2006 Marcel Holtmann <marcel@holtmann.org>
Copyright (C) 2002 Greg Ungerer <gerg@snapgear.com>
Copyright (C) 2002 Paul Dale <pauli@snapgear.com>
Copyright (C) 2003-2004 James Yonan
Copyright (C) 2003-2007 Jocelyn Mayer
Copyright (C) 2003 Damion K. Wilson
Copyright (C) 2003 Thomas M. Ogrisegg <tom@fnord.at>
Copyright (C) 2004-2005 Johannes E. Schindelin
Copyright (C) 2004, 2007 Magnus Damm <damm@opensource.se>
Copyright (C) 2004 Antony T Curtis
Copyright (C) 2004 Gianni Tedesco
Copyright (C) 2004 Johannes Schindelin
Copyright (C) 2004 Makoto Suzuki
Copyright (C) 2005, 2007 Alex Beregszaszi
Copyright (C) 2005-2007 Anthony Liguori <aliguori@us.ibm.com> <anthony@codemonkey.ws>
Copyright (C) 2005-2008 Andrzej Zaborowski <balrog@zabor.org> <andrew@openedhand.com>
Copyright (C) 2005-2009 Paul Brook <paul@codesourcery.com>
Copyright (C) 2005 Anthony Liguori <aliguori@us.ibm.com>
Copyright (C) 2005 Filip Navara
Copyright (C) 2005 International Business Machines Corp.
Copyright (C) 2005 LLC. Written
Copyright (C) 2005 Mike Kronenberg
Copyright (C) 2005 Samuel Tardieu
Copyright (C) 2006-2007, 2009 Aurelien Jarno <aurelien@aurel32.net>
Copyright (C) 2006-2007, 2009 Stefan Weil
Copyright (C) 2006-2007 Thiemo Seufer
Copyright (C) 2006-2007 Thorsten Zitterell <info@bitmux.org>
Copyright (C) 2006-2008 Openedhand Ltd.
Copyright (C) 2006-2008 Qumranet Technologies
Copyright (C) 2006 Frederick Reeve
Copyright (C) 2006 Igor Kovalenko
Copyright (C) 2006 InnoTek Systemberatung GmbH
Copyright (C) 2006 Joachim Henke
Copyright (C) 2006 Lonnie Mendez
Copyright (C) 2006 Marius Groeger
Copyright (C) 2007-2008 Bull S.A.S.
Copyright (C) 2007-2008 IBM Corporation
Copyright (C) 2007-2008 Lauro Ramos Venancio <lauro.venancio@indt.org.br>
Copyright (C) 2007-2008 Nokia Corporation
Copyright (C) 2007-2008 OpenMoko Inc. <andrew@openedhand.com>
Copyright (C) 2007, 2009 Alexander Graf <agraf@suse.de>
Copyright (C) 2007-2009 Edgar E. Iglesias <edgar.iglesias@gmail.com>
Copyright (C) 2007-2009 Herve Poussineau
Copyright (C) 2007 Arastra Inc.
Copyright (C) 2007 Armin Kuster <akuster@mvista.com>
Copyright (C) 2007 Dan Aloni
Copyright (C) 2007 Marko Kohtala
Copyright (C) 2007 MontaVista Software Inc.
Copyright (C) 2007 Robert Reif
Copyright (C) 2007 Vladimir Ananiev <vovan888@gmail.com>
Copyright (C) 2008-2009 Arnaud Patard <arnaud.patard@rtp-net.org>
Copyright (C) 2008-2009 Citrix Systems Inc.
Copyright (C) 2008-2009 Gerd Hoffmann <kraxel@redhat.com>
Copyright (C) 2008 Dell MessageOne
Copyright (C) 2008 Dmitry Baryshkov
Copyright (C) 2008 Gleb Natapov
Copyright (C) 2008 Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>
Copyright (C) 2008 Lubomir Rintel
Copyright (C) 2008 Max Krasnyansky
Copyright (C) 2008 Paul Mundt
Copyright (C) 2008 Samuel Thibault <samuel.thibault@ens-lyon.org>
Copyright (C) 2008 Shin-ichiro KAWASAKI
Copyright (C) 2008 Takashi YOSHII
Copyright (C) 2008 TJ <linux@tjworld.net>
Copyright (C) 2009 CodeSourcery
Copyright (C) 2009 Freescale Semiconductor Inc.
Copyright (C) 2009 Hewlett-Packard Development Company
Copyright (C) 2009 Isaku Yamahata <yamahata@valinux.co.jp>
Copyright (C) 2009 Kevin Wolf <kwolf@redhat.com> <kwolf@suse.de>
Copyright (C) 2009 Laurent Vivier <laurent.vivier@bull.net>
Copyright (C) 2009 Michael S. Tsirkin <mst@redhat.com>
Copyright (C) 2009 Novell Inc.
Copyright (C) 2009 Ulrich Hecht <uli@suse.de>
Copyright (C) 2009 VA Linux Systems Japan
License:
QEMU as a whole is released under the GNU General Public License version 2.
On Debian systems, the complete text of the GNU General Public License
version 2 can be found in the file /usr/share/common-licenses/GPL-2.
.
Parts of QEMU have specific licenses which are compatible with the
GNU General Public License. Hence each source file contains its own
licensing information.
.
In particular, the QEMU virtual CPU core library (libqemu.a) is
released under the GNU Lesser General Public License version 2 or later.
On Debian systems, the complete text of the GNU Lesser General Public
License can be found in the file /usr/share/common-licenses/LGPL-2.
.
The BSD emulator is released under the following BSD license:
.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
are met:
1. Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
.
THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
SUCH DAMAGE.
.
The TCG code and many hardware device emulation sources are released under the
following MIT license:
.
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
.
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.
.
The QEMU Logo, pc-bios/qemu_logo*.svg, and also icons and pictures derived from
it, pc-bios/qemu-icon.bmp, pc-bios/qemu-nsis.*, are licensed under Creative
Commons Attribution license version 3.0 (CC-BY-3.0):
.
Attribution 3.0 Unported
.
CREATIVE COMMONS CORPORATION IS NOT A LAW FIRM AND DOES NOT PROVIDE
LEGAL SERVICES. DISTRIBUTION OF THIS LICENSE DOES NOT CREATE AN
ATTORNEY-CLIENT RELATIONSHIP. CREATIVE COMMONS PROVIDES THIS
INFORMATION ON AN "AS-IS" BASIS. CREATIVE COMMONS MAKES NO WARRANTIES
REGARDING THE INFORMATION PROVIDED, AND DISCLAIMS LIABILITY FOR
DAMAGES RESULTING FROM ITS USE.
.
License
.
THE WORK (AS DEFINED BELOW) IS PROVIDED UNDER THE TERMS OF THIS CREATIVE
COMMONS PUBLIC LICENSE ("CCPL" OR "LICENSE"). THE WORK IS PROTECTED BY
COPYRIGHT AND/OR OTHER APPLICABLE LAW. ANY USE OF THE WORK OTHER THAN AS
AUTHORIZED UNDER THIS LICENSE OR COPYRIGHT LAW IS PROHIBITED.
.
BY EXERCISING ANY RIGHTS TO THE WORK PROVIDED HERE, YOU ACCEPT AND AGREE
TO BE BOUND BY THE TERMS OF THIS LICENSE. TO THE EXTENT THIS LICENSE MAY
BE CONSIDERED TO BE A CONTRACT, THE LICENSOR GRANTS YOU THE RIGHTS
CONTAINED HERE IN CONSIDERATION OF YOUR ACCEPTANCE OF SUCH TERMS AND
CONDITIONS.
.
1. Definitions
.
a. "Adaptation" means a work based upon the Work, or upon the Work and
other pre-existing works, such as a translation, adaptation,
derivative work, arrangement of music or other alterations of a
literary or artistic work, or phonogram or performance and includes
cinematographic adaptations or any other form in which the Work may be
recast, transformed, or adapted including in any form recognizably
derived from the original, except that a work that constitutes a
Collection will not be considered an Adaptation for the purpose of
this License. For the avoidance of doubt, where the Work is a musical
work, performance or phonogram, the synchronization of the Work in
timed-relation with a moving image ("synching") will be considered an
Adaptation for the purpose of this License.
b. "Collection" means a collection of literary or artistic works, such as
encyclopedias and anthologies, or performances, phonograms or
broadcasts, or other works or subject matter other than works listed
in Section 1(f) below, which, by reason of the selection and
arrangement of their contents, constitute intellectual creations, in
which the Work is included in its entirety in unmodified form along
with one or more other contributions, each constituting separate and
independent works in themselves, which together are assembled into a
collective whole. A work that constitutes a Collection will not be
considered an Adaptation (as defined above) for the purposes of this
License.
c. "Distribute" means to make available to the public the original and
copies of the Work or Adaptation, as appropriate, through sale or
other transfer of ownership.
d. "Licensor" means the individual, individuals, entity or entities that
offer(s) the Work under the terms of this License.
e. "Original Author" means, in the case of a literary or artistic work,
the individual, individuals, entity or entities who created the Work
or if no individual or entity can be identified, the publisher; and in
addition (i) in the case of a performance the actors, singers,
musicians, dancers, and other persons who act, sing, deliver, declaim,
play in, interpret or otherwise perform literary or artistic works or
expressions of folklore; (ii) in the case of a phonogram the producer
being the person or legal entity who first fixes the sounds of a
performance or other sounds; and, (iii) in the case of broadcasts, the
organization that transmits the broadcast.
f. "Work" means the literary and/or artistic work offered under the terms
of this License including without limitation any production in the
literary, scientific and artistic domain, whatever may be the mode or
form of its expression including digital form, such as a book,
pamphlet and other writing; a lecture, address, sermon or other work
of the same nature; a dramatic or dramatico-musical work; a
choreographic work or entertainment in dumb show; a musical
composition with or without words; a cinematographic work to which are
assimilated works expressed by a process analogous to cinematography;
a work of drawing, painting, architecture, sculpture, engraving or
lithography; a photographic work to which are assimilated works
expressed by a process analogous to photography; a work of applied
art; an illustration, map, plan, sketch or three-dimensional work
relative to geography, topography, architecture or science; a
performance; a broadcast; a phonogram; a compilation of data to the
extent it is protected as a copyrightable work; or a work performed by
a variety or circus performer to the extent it is not otherwise
considered a literary or artistic work.
g. "You" means an individual or entity exercising rights under this
License who has not previously violated the terms of this License with
respect to the Work, or who has received express permission from the
Licensor to exercise rights under this License despite a previous
violation.
h. "Publicly Perform" means to perform public recitations of the Work and
to communicate to the public those public recitations, by any means or
process, including by wire or wireless means or public digital
performances; to make available to the public Works in such a way that
members of the public may access these Works from a place and at a
place individually chosen by them; to perform the Work to the public
by any means or process and the communication to the public of the
performances of the Work, including by public digital performance; to
broadcast and rebroadcast the Work by any means including signs,
sounds or images.
i. "Reproduce" means to make copies of the Work by any means including
without limitation by sound or visual recordings and the right of
fixation and reproducing fixations of the Work, including storage of a
protected performance or phonogram in digital form or other electronic
medium.
.
2. Fair Dealing Rights. Nothing in this License is intended to reduce,
limit, or restrict any uses free from copyright or rights arising from
limitations or exceptions that are provided for in connection with the
copyright protection under copyright law or other applicable laws.
.
3. License Grant. Subject to the terms and conditions of this License,
Licensor hereby grants You a worldwide, royalty-free, non-exclusive,
perpetual (for the duration of the applicable copyright) license to
exercise the rights in the Work as stated below:
.
a. to Reproduce the Work, to incorporate the Work into one or more
Collections, and to Reproduce the Work as incorporated in the
Collections;
b. to create and Reproduce Adaptations provided that any such Adaptation,
including any translation in any medium, takes reasonable steps to
clearly label, demarcate or otherwise identify that changes were made
to the original Work. For example, a translation could be marked "The
original work was translated from English to Spanish," or a
modification could indicate "The original work has been modified.";
c. to Distribute and Publicly Perform the Work including as incorporated
in Collections; and,
d. to Distribute and Publicly Perform Adaptations.
e. For the avoidance of doubt:
.
i. Non-waivable Compulsory License Schemes. In those jurisdictions in
which the right to collect royalties through any statutory or
compulsory licensing scheme cannot be waived, the Licensor
reserves the exclusive right to collect such royalties for any
exercise by You of the rights granted under this License;
ii. Waivable Compulsory License Schemes. In those jurisdictions in
which the right to collect royalties through any statutory or
compulsory licensing scheme can be waived, the Licensor waives the
exclusive right to collect such royalties for any exercise by You
of the rights granted under this License; and,
iii. Voluntary License Schemes. The Licensor waives the right to
collect royalties, whether individually or, in the event that the
Licensor is a member of a collecting society that administers
voluntary licensing schemes, via that society, from any exercise
by You of the rights granted under this License.
.
The above rights may be exercised in all media and formats whether now
known or hereafter devised. The above rights include the right to make
such modifications as are technically necessary to exercise the rights in
other media and formats. Subject to Section 8(f), all rights not expressly
granted by Licensor are hereby reserved.
.
4. Restrictions. The license granted in Section 3 above is expressly made
subject to and limited by the following restrictions:
.
a. You may Distribute or Publicly Perform the Work only under the terms
of this License. You must include a copy of, or the Uniform Resource
Identifier (URI) for, this License with every copy of the Work You
Distribute or Publicly Perform. You may not offer or impose any terms
on the Work that restrict the terms of this License or the ability of
the recipient of the Work to exercise the rights granted to that
recipient under the terms of the License. You may not sublicense the
Work. You must keep intact all notices that refer to this License and
to the disclaimer of warranties with every copy of the Work You
Distribute or Publicly Perform. When You Distribute or Publicly
Perform the Work, You may not impose any effective technological
measures on the Work that restrict the ability of a recipient of the
Work from You to exercise the rights granted to that recipient under
the terms of the License. This Section 4(a) applies to the Work as
incorporated in a Collection, but this does not require the Collection
apart from the Work itself to be made subject to the terms of this
License. If You create a Collection, upon notice from any Licensor You
must, to the extent practicable, remove from the Collection any credit
as required by Section 4(b), as requested. If You create an
Adaptation, upon notice from any Licensor You must, to the extent
practicable, remove from the Adaptation any credit as required by
Section 4(b), as requested.
b. If You Distribute, or Publicly Perform the Work or any Adaptations or
Collections, You must, unless a request has been made pursuant to
Section 4(a), keep intact all copyright notices for the Work and
provide, reasonable to the medium or means You are utilizing: (i) the
name of the Original Author (or pseudonym, if applicable) if supplied,
and/or if the Original Author and/or Licensor designate another party
or parties (e.g., a sponsor institute, publishing entity, journal) for
attribution ("Attribution Parties") in Licensor's copyright notice,
terms of service or by other reasonable means, the name of such party
or parties; (ii) the title of the Work if supplied; (iii) to the
extent reasonably practicable, the URI, if any, that Licensor
specifies to be associated with the Work, unless such URI does not
refer to the copyright notice or licensing information for the Work;
and (iv) , consistent with Section 3(b), in the case of an Adaptation,
a credit identifying the use of the Work in the Adaptation (e.g.,
"French translation of the Work by Original Author," or "Screenplay
based on original Work by Original Author"). The credit required by
this Section 4 (b) may be implemented in any reasonable manner;
provided, however, that in the case of a Adaptation or Collection, at
a minimum such credit will appear, if a credit for all contributing
authors of the Adaptation or Collection appears, then as part of these
credits and in a manner at least as prominent as the credits for the
other contributing authors. For the avoidance of doubt, You may only
use the credit required by this Section for the purpose of attribution
in the manner set out above and, by exercising Your rights under this
License, You may not implicitly or explicitly assert or imply any
connection with, sponsorship or endorsement by the Original Author,
Licensor and/or Attribution Parties, as appropriate, of You or Your
use of the Work, without the separate, express prior written
permission of the Original Author, Licensor and/or Attribution
Parties.
c. Except as otherwise agreed in writing by the Licensor or as may be
otherwise permitted by applicable law, if You Reproduce, Distribute or
Publicly Perform the Work either by itself or as part of any
Adaptations or Collections, You must not distort, mutilate, modify or
take other derogatory action in relation to the Work which would be
prejudicial to the Original Author's honor or reputation. Licensor
agrees that in those jurisdictions (e.g. Japan), in which any exercise
of the right granted in Section 3(b) of this License (the right to
make Adaptations) would be deemed to be a distortion, mutilation,
modification or other derogatory action prejudicial to the Original
Author's honor and reputation, the Licensor will waive or not assert,
as appropriate, this Section, to the fullest extent permitted by the
applicable national law, to enable You to reasonably exercise Your
right under Section 3(b) of this License (right to make Adaptations)
but not otherwise.
.
5. Representations, Warranties and Disclaimer
.
UNLESS OTHERWISE MUTUALLY AGREED TO BY THE PARTIES IN WRITING, LICENSOR
OFFERS THE WORK AS-IS AND MAKES NO REPRESENTATIONS OR WARRANTIES OF ANY
KIND CONCERNING THE WORK, EXPRESS, IMPLIED, STATUTORY OR OTHERWISE,
INCLUDING, WITHOUT LIMITATION, WARRANTIES OF TITLE, MERCHANTIBILITY,
FITNESS FOR A PARTICULAR PURPOSE, NONINFRINGEMENT, OR THE ABSENCE OF
LATENT OR OTHER DEFECTS, ACCURACY, OR THE PRESENCE OF ABSENCE OF ERRORS,
WHETHER OR NOT DISCOVERABLE. SOME JURISDICTIONS DO NOT ALLOW THE EXCLUSION
OF IMPLIED WARRANTIES, SO SUCH EXCLUSION MAY NOT APPLY TO YOU.
.
6. Limitation on Liability. EXCEPT TO THE EXTENT REQUIRED BY APPLICABLE
LAW, IN NO EVENT WILL LICENSOR BE LIABLE TO YOU ON ANY LEGAL THEORY FOR
ANY SPECIAL, INCIDENTAL, CONSEQUENTIAL, PUNITIVE OR EXEMPLARY DAMAGES
ARISING OUT OF THIS LICENSE OR THE USE OF THE WORK, EVEN IF LICENSOR HAS
BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
.
7. Termination
.
a. This License and the rights granted hereunder will terminate
automatically upon any breach by You of the terms of this License.
Individuals or entities who have received Adaptations or Collections
from You under this License, however, will not have their licenses
terminated provided such individuals or entities remain in full
compliance with those licenses. Sections 1, 2, 5, 6, 7, and 8 will
survive any termination of this License.
b. Subject to the above terms and conditions, the license granted here is
perpetual (for the duration of the applicable copyright in the Work).
Notwithstanding the above, Licensor reserves the right to release the
Work under different license terms or to stop distributing the Work at
any time; provided, however that any such election will not serve to
withdraw this License (or any other license that has been, or is
required to be, granted under the terms of this License), and this
License will continue in full force and effect unless terminated as
stated above.
.
8. Miscellaneous
.
a. Each time You Distribute or Publicly Perform the Work or a Collection,
the Licensor offers to the recipient a license to the Work on the same
terms and conditions as the license granted to You under this License.
b. Each time You Distribute or Publicly Perform an Adaptation, Licensor
offers to the recipient a license to the original Work on the same
terms and conditions as the license granted to You under this License.
c. If any provision of this License is invalid or unenforceable under
applicable law, it shall not affect the validity or enforceability of
the remainder of the terms of this License, and without further action
by the parties to this agreement, such provision shall be reformed to
the minimum extent necessary to make such provision valid and
enforceable.
d. No term or provision of this License shall be deemed waived and no
breach consented to unless such waiver or consent shall be in writing
and signed by the party to be charged with such waiver or consent.
e. This License constitutes the entire agreement between the parties with
respect to the Work licensed here. There are no understandings,
agreements or representations with respect to the Work not specified
here. Licensor shall not be bound by any additional provisions that
may appear in any communication from You. This License may not be
modified without the mutual written agreement of the Licensor and You.
f. The rights granted under, and the subject matter referenced, in this
License were drafted utilizing the terminology of the Berne Convention
for the Protection of Literary and Artistic Works (as amended on
September 28, 1979), the Rome Convention of 1961, the WIPO Copyright
Treaty of 1996, the WIPO Performances and Phonograms Treaty of 1996
and the Universal Copyright Convention (as revised on July 24, 1971).
These rights and subject matter take effect in the relevant
jurisdiction in which the License terms are sought to be enforced
according to the corresponding provisions of the implementation of
those treaty provisions in the applicable national law. If the
standard suite of rights granted under applicable copyright law
includes additional rights not granted under this License, such
additional rights are deemed to be included in the License; this
License is not intended to restrict the license of any rights under
applicable law.
.
Creative Commons Notice
.
Creative Commons is not a party to this License, and makes no warranty
whatsoever in connection with the Work. Creative Commons will not be
liable to You or any party on any legal theory for any damages
whatsoever, including without limitation any general, special,
incidental or consequential damages arising in connection to this
license. Notwithstanding the foregoing two (2) sentences, if Creative
Commons has expressly identified itself as the Licensor hereunder, it
shall have all rights and obligations of Licensor.
.
Except for the limited purpose of indicating to the public that the
Work is licensed under the CCPL, Creative Commons does not authorize
the use by either party of the trademark "Creative Commons" or any
related trademark or logo of Creative Commons without the prior
written consent of Creative Commons. Any permitted use will be in
compliance with Creative Commons' then-current trademark usage
guidelines, as may be published on its website or otherwise made
available upon request from time to time. For the avoidance of doubt,
this trademark restriction does not form part of this License.
.
Creative Commons may be contacted at https://creativecommons.org/.

22
debian/extract-config-opts vendored Executable file
View file

@ -0,0 +1,22 @@
#! /bin/sh
# This is a trivial script to parse comments in debian/control
# into a set of system-specific configure options.
# Usage: ./debian/extract-config-opts $OS-$ARCH debian/control
osarch=$1
control=$2
sed -n 's/^# \?--/--/p' $control | \
while IFS=' ' read f p x; do
set -- $p
if [ $# = 0 ]; then echo $f; continue; fi
for p in "$@"; do
case "$p" in
*-any) p="${p%-any}-*" ;;
*-*) ;;
*) p="linux-$p" ;;
esac
eval "case \$osarch in ($p) echo \$f; continue;; esac"
done
done

6
debian/gbp.conf vendored Normal file
View file

@ -0,0 +1,6 @@
[DEFAULT]
sign-tags = True
pristine-tar = True
# When switching version, check if VDSO has changed since previous version
# and update qemu-system-data version requiriment in Build-Depends-Arch.
upstream-branch = upstream-10.0

84
debian/gen-module-upgrade.sh vendored Normal file
View file

@ -0,0 +1,84 @@
#! /bin/sh
pkg=$1 pkgversion="$2" moddir="$3"
# qemu-system-* can be told to add a new device at runtime,
# including block devices for which a driver is implemented
# in a loadable module. In case qemu is upgraded, running
# qemus will not be able to load modules anymore (since the
# new modules are from the different build). Qemu has
# mechanism to load modules from alternative directory,
# it is hardcoded in util/module.c as /run/qemu/$version/.
# We can save old modules on upgrade if qemu processes are
# running, - it does not take much space but ensures qemu
# is not left without maybe-needed modules. See LP#1847361.
#
# Ideally the remove of the saved modules should be done when
# last qemu-system-* process with this version is terminated,
# but we can't do this. So old modules keep accumulating in
# /run/qemu/ until reboot, even if not needed already.
#
# Currently we handle purging of the modules, removing the
# whole saved LAST-versioned subdir. Probably we should
# remove all saved subdirs in this case.
#
# Additional complication is that /run is mounted noexec
# so it's impossible to run .so files from there, and
# a (bind-re-)mount is needed.
#
# When this script is run, files for the package in question
# has already been installed into debian/package/.
savetopdir=/run/qemu
savedir=$savetopdir/$(echo -n "$pkgversion" |
tr --complement '[:alnum:]+-.~' '_')
tagname=.savemoddir
tx=$savedir/$tagname
marker="### added by qemu/$0:"
# add_maintscript_fragment package {preinst|postinst|prerm|postrm} < contents
add_maintscript_fragment() {
maintscript=debian/$1.$2.debhelper
if ! grep -sq "^$marker$" $maintscript; then
{ echo "$marker"; cat; echo "### end added section"; } >> $maintscript
fi
}
modules=$(echo debian/$pkg/$moddir/*.so | sed "s|debian/[^ ]*/||g")
add_maintscript_fragment $pkg prerm <<EOF
case \$1 in
(upgrade|deconfigure)
# only save if qemu-system-* or kvm process running
# can also check version of the running processes
if ps -e -o comm | grep -E -q '^(qemu-system-|kvm$)'; then
echo "$pkg: qemu process(es) running, saving block modules in $savedir..."
mkdir -p -m 0755 $savedir
( cd $moddir/; cp -p -n -t $savedir/ $modules )
> $tx; chmod 0744 $tx
if [ ! -x $tx ]; then # mounted noexec?
mountpoint -q $savedir || mount --bind $savedir $savedir
mount -o remount,exec $savedir
fi
fi
;;
esac
EOF
add_maintscript_fragment $pkg postrm <<EOF
case \$1 in
(remove)
# remove modules for all versions not just one
for dirf in ${savedir%%_*}_*/$tagname; do
[ -f "\$dirf" ] || continue
dir="\${dirf%/*}"
( cd "\$dir"; rm -f $modules )
if [ ! "\$(ls -- "\$dir/")" ]; then
rm -f "\$dirf"
umount "\$dir" 2>/dev/null || :
rmdir "\$dir" 2>/dev/null || :
fi
done
;;
esac
EOF

10
debian/kvm-spice vendored Executable file
View file

@ -0,0 +1,10 @@
#! /bin/sh
echo "$0: W: this is an old compat wrapper script for kvm-spice" >&2
echo "$0: W: please use qemu-system-x86_64 instead of $0" >&2
if echo "$@" | grep -q -E -e '(^|\s)-machine\s.*accel=' -e '(^|\s)-accel\s'; then
# acceleration already set via commandline option - adding -enable-kvm would conflic"
exec qemu-system-x86_64 "$@"
else
exec qemu-system-x86_64 -enable-kvm "$@"
fi

17
debian/kvm-spice.1 vendored Normal file
View file

@ -0,0 +1,17 @@
.TH kvm-spice 1 2020-07 "5.0" Ubuntu
.SH NAME
kvm-spice, qemu-system-x86_64-spice \- compatibility names for qemu-system-x86_64
.SH DESCRIPTION
The two names are aliases for
.BR qemu-system-x86_64 ,
where kvm-spice enables kvm native hardware mode by default.
These names are kept for backward compatibility
wih old package, when spice-enabled qemu were packaged
separately. Now main qemu-system has spice functionality
built in. Please use
.B qemu-system-x86_64
instead of the old compat names.
.SH SEE ALSO
.BR qemu-system-x86_64 (1).
.SH AUTHOR
This manual page was written by Michael Tokarev <mjt@tls.msk.ru>.

20
debian/kvm.1 vendored Normal file
View file

@ -0,0 +1,20 @@
.TH kvm 1 2020-07 "5.0" Debian
.SH NAME
kvm \- kvm-enabling link for qemu-system-@ARCH@
.SH DESCRIPTION
When executed as
.BR kvm ,
qemu-system is run with preference to native hardware-based
virtualization, instead of relying solely on emulation.
Essentially
.B kvm
is equivalent to
.B qemu-system-@ARCH@
.I -machine accel=kvm:tcg
so when the host CPU support the kvm mode, native hardware
virtualization is enabled, or qemu-system-@ARCH@ falls back
to the emulation (TCG) mode.
.SH SEE ALSO
.BR qemu-system-@ARCH@ (1).
.SH AUTHOR
This manual page was written by Michael Tokarev <mjt@tls.msk.ru>.

19
debian/microvm-devices.mak vendored Normal file
View file

@ -0,0 +1,19 @@
# see configs/devices/i386-softmmu/default.mak
# for additional devices which can be disabled
#
CONFIG_PCI_DEVICES=n
CONFIG_MICROVM=y
CONFIG_VIRTIO_BLK=y
CONFIG_VIRTIO_SERIAL=y
CONFIG_VIRTIO_INPUT=y
CONFIG_VIRTIO_INPUT_HOST=y
CONFIG_VHOST_USER_INPUT=y
CONFIG_VIRTIO_NET=y
CONFIG_VIRTIO_SCSI=y
CONFIG_VIRTIO_RNG=y
CONFIG_VIRTIO_CRYPTO=y
CONFIG_VIRTIO_BALLOON=y
CONFIG_VIRTIO_GPU=y
CONFIG_VHOST_USER_GPU=y

16
debian/not-installed vendored Normal file
View file

@ -0,0 +1,16 @@
usr/include/qemu-plugin.h
usr/share/doc/qemu/_static
usr/share/doc/qemu/about
usr/share/doc/qemu/devel
usr/share/doc/qemu/interop
usr/share/doc/qemu/specs
usr/share/doc/qemu/tools
usr/share/doc/qemu/*.*
usr/share/doc/qemu/.buildinfo
usr/bin/elf2dmp
# test tool
usr/bin/qemu-edid
# we install these files in d/rules into arch-all qemu-system-data
usr/share/icons
usr/share/applications/qemu.desktop
usr/share/qemu/keymaps

16
debian/patches/disable-pycotap.patch vendored Normal file
View file

@ -0,0 +1,16 @@
From: Michael Tokarev <mjt@tls.msk.ru>
Subject: disable pycotap for now
Date: Fri, 27 Dec 2024 13:23:28 +0300
Forwarded: not-needed
pycotap is only needed for functional tests.
Disable it for now for building qemu.
diff --git a/pythondeps.toml b/pythondeps.toml
--- a/pythondeps.toml
+++ b/pythondeps.toml
@@ -22,3 +22,3 @@
meson = { accepted = ">=1.5.0", installed = "1.5.0", canary = "meson" }
-pycotap = { accepted = ">=1.1.0", installed = "1.3.1" }
+#pycotap = { accepted = ">=1.1.0", installed = "1.3.1" }

61
debian/patches/gnu-hurd.patch vendored Normal file
View file

@ -0,0 +1,61 @@
From: Michael Tokarev <mjt@tls.msk.ru>
Date: Sat, 24 Aug 2024 08:00:35 +0300
Updated: Mon, 02 Dec 2024 17:14:04 +0300
Subject: Add OS detection and support for GNU/Hurd
Forwarded: not-needed
Adds minimal (just OS detection) "support" for
GNU/Hurd. Just a test for now.
diff --git a/configure b/configure
index 0aea9b113b..0648634636 100755
--- a/configure
+++ b/configure
@@ -353,2 +353,4 @@ elif check_define __NetBSD__; then
host_os=netbsd
+elif check_define __GNU__; then
+ host_os=hurd
elif check_define __APPLE__; then
diff --git a/meson.build b/meson.build
index 91a0aa64c6..12246a588d 100644
--- a/meson.build
+++ b/meson.build
@@ -46,3 +46,3 @@ qapi_trace_events = []
bsd_oses = ['gnu/kfreebsd', 'freebsd', 'netbsd', 'openbsd', 'dragonfly', 'darwin']
-supported_oses = ['windows', 'freebsd', 'netbsd', 'openbsd', 'darwin', 'sunos', 'linux']
+supported_oses = ['windows', 'freebsd', 'netbsd', 'openbsd', 'darwin', 'sunos', 'linux', 'hurd']
supported_cpus = ['ppc', 'ppc64', 's390x', 'riscv32', 'riscv64', 'x86', 'x86_64',
diff --git a/include/qemu/osdep.h b/include/qemu/osdep.h
index c7053cdc2b..560ed59ac0 100644
--- a/include/qemu/osdep.h
+++ b/include/qemu/osdep.h
@@ -135,4 +135,11 @@ QEMU_EXTERN_C int daemon(int, int);
+#if defined(__GNU__) && !defined(PATH_MAX) /* GNU Hurd */
+# define PATH_MAX 4096
+#endif
+
#ifdef CONFIG_IOVEC
#include <sys/uio.h>
+# if defined(__GNU__) && !defined(IOV_MAX) /* GNU Hurd */
+# define IOV_MAX 1024
+# endif
#endif
diff --git a/block/file-posix.c b/block/file-posix.c
index ff928b5e85..bf165a5a71 100644
--- a/block/file-posix.c
+++ b/block/file-posix.c
@@ -85,4 +85,7 @@
#endif
#endif
+#ifdef __GNU__
+#include <sys/ioctl.h>
+#endif
#if defined(CONFIG_FALLOCATE_PUNCH_HOLE) || defined(CONFIG_FALLOCATE_ZERO_RANGE)
#include <linux/falloc.h>
@@ -2004,4 +2007,5 @@ static int handle_aiocb_write_zeroes_unmap(void *opaque)
#ifndef HAVE_COPY_FILE_RANGE
+#define copy_file_range qemu_copy_file_range
static off_t copy_file_range(int in_fd, off_t *in_off, int out_fd,
off_t *out_off, size_t len, unsigned int flags)

View file

@ -0,0 +1,51 @@
From: Michael Tokarev <mjt@tls.msk.ru>
Date: Fri, 21 Feb 2025 16:34:52 +0300
Subject: hw/display/qxl-render.c: fix qxl_unpack_chunks() chunk size calculation
Forwarded: https://lore.kernel.org/qemu-devel/20250221134856.478806-1-mjt@tls.msk.ru/T/#u
Bug: https://gitlab.com/qemu-project/qemu/-/issues/1628
In case of multiple chunks, code in qxl_unpack_chunks() takes size of the
wrong (next in the chain) chunk, instead of using current chunk size.
This leads to wrong number of bytes being copied, and to crashes if next
chunk size is larger than the current one.
Based on the code by Gao Yong.
Resolves: https://gitlab.com/qemu-project/qemu/-/issues/1628
Signed-off-by: Michael Tokarev <mjt@tls.msk.ru>
---
hw/display/qxl-render.c | 11 ++++++++++-
1 file changed, 10 insertions(+), 1 deletion(-)
diff --git a/hw/display/qxl-render.c b/hw/display/qxl-render.c
index eda6d3de37..c6a9ac1da1 100644
--- a/hw/display/qxl-render.c
+++ b/hw/display/qxl-render.c
@@ -222,6 +222,7 @@ static void qxl_unpack_chunks(void *dest, size_t size, PCIQXLDevice *qxl,
uint32_t max_chunks = 32;
size_t offset = 0;
size_t bytes;
+ QXLPHYSICAL next_chunk_phys = 0;
for (;;) {
bytes = MIN(size - offset, chunk->data_size);
@@ -230,7 +231,15 @@ static void qxl_unpack_chunks(void *dest, size_t size, PCIQXLDevice *qxl,
if (offset == size) {
return;
}
- chunk = qxl_phys2virt(qxl, chunk->next_chunk, group_id,
+ next_chunk_phys = chunk->next_chunk;
+ /* fist time, only get the next chunk's data size */
+ chunk = qxl_phys2virt(qxl, next_chunk_phys, group_id,
+ sizeof(QXLDataChunk));
+ if (!chunk) {
+ return;
+ }
+ /* second time, check data size and get data */
+ chunk = qxl_phys2virt(qxl, next_chunk_phys, group_id,
sizeof(QXLDataChunk) + chunk->data_size);
if (!chunk) {
return;
--
2.39.5

92
debian/patches/linux-user-binfmt-P.diff vendored Normal file
View file

@ -0,0 +1,92 @@
Subject: [PATCH, HACK]: linux-user: handle binfmt-misc P flag as a separate exe name
From: Michael Tokarev <mjt@tls.msk.ru>
Date: Sat, 13 Feb 2021 13:57:52 +0300
Updated: Wed, 31 Aug 2022 12:30:17 +0300
Forwarded: https://patchwork.ozlabs.org/project/qemu-devel/patch/27dfe8eb-adce-8db4-f28b-c42858b086db@msgid.tls.msk.ru/
Upstream-Status: rejected this simple userspace solution in favour of more complex in-kernel one
A hackish way to distinguish the case when qemu-user binary is executed
using in-kernel binfmt-misc subsystem with P flag (preserve argv).
We register binfmt interpreter under name /usr/libexec/qemu-binfmt/qemu-foo-binfmt-P
(which is just a symlink to ../../bin/qemu-foo), and if run like that,
qemu-user binary will "know" it should interpret argv[1] & argv[2]
in a special way.
diff --git a/linux-user/main.c b/linux-user/main.c
index 9277df2e9d..bd323f70bc 100644
--- a/linux-user/main.c
+++ b/linux-user/main.c
@@ -600,7 +600,7 @@ static void usage(int exitcode)
exit(exitcode);
}
-static int parse_args(int argc, char **argv)
+static int parse_args(int argc, char **argv, bool *preserve_argv0)
{
const char *r;
int optind;
@@ -617,6 +617,28 @@ static int parse_args(int argc, char **argv)
}
}
+ /* HACK alert.
+ * when run as an interpreter using kernel's binfmt-misc mechanism,
+ * we have to know where are we (our own binary), where's the binary being run,
+ * and what it's argv[0] element.
+ * Only with the P interpreter flag kernel passes all 3 elements as first 3 argv[],
+ * but we can't distinguish if we were run with or without this P flag.
+ * So we register a special name with binfmt-misc system, a name which ends up
+ * in "-binfmt-P", and if our argv[0] ends up with that, we assume we were run
+ * from kernel's binfmt with P flag and our first 3 args are from kernel.
+ */
+ if (strlen(argv[0]) > sizeof("binfmt-P") &&
+ strcmp(argv[0] + strlen(argv[0]) - sizeof("binfmt-P"), "-binfmt-P") == 0) {
+ if (argc < 3) {
+ (void) fprintf(stderr, "qemu: %s has to be run using kernel binfmt-misc subsystem\n", argv[0]);
+ exit(EXIT_FAILURE);
+ }
+ exec_path = argv[1];
+ handle_arg_argv0(argv[2]);
+ *preserve_argv0 = true;
+ return 2;
+ }
+
optind = 1;
for (;;) {
if (optind >= argc) {
@@ -687,7 +709,7 @@ int main(int argc, char **argv, char **envp)
int execfd;
int host_page_size;
unsigned long max_reserved_va;
- bool preserve_argv0;
+ bool preserve_argv0 = 0;
error_init(argv[0]);
module_call_init(MODULE_INIT_TRACE);
@@ -726,7 +748,7 @@ int main(int argc, char **argv, char **envp)
qemu_add_opts(&qemu_trace_opts);
qemu_plugin_add_opts();
- optind = parse_args(argc, argv);
+ optind = parse_args(argc, argv, &preserve_argv0);
qemu_set_log_filename_flags(last_log_filename,
last_log_mask | (enable_strace * LOG_STRACE),
@@ -770,7 +792,9 @@ int main(int argc, char **argv, char **envp)
/*
* get binfmt_misc flags
+ * but only if not already done by parse_args() above
*/
+ if (!preserve_argv0) {
preserve_argv0 = !!(qemu_getauxval(AT_FLAGS) & AT_FLAGS_PRESERVE_ARGV0);
/*
@@ -781,6 +805,7 @@ int main(int argc, char **argv, char **envp)
if (optind + 1 < argc && preserve_argv0) {
optind++;
}
+ }
if (cpu_model == NULL) {
cpu_model = cpu_get_model(get_elf_eflags(execfd));

View file

@ -0,0 +1,33 @@
Subject: set default machine type to be microvm if CONFIG_MICROVM is defined
Debian-Specific: yes
Forwarded: not-needed
From: Michael Tokarev <mjt@tls.msk.ru>
Date: Sat, 22 Feb 2020 16:19:11 +0300
Updated: Fri, 21 Feb 2025 17:30:25 +0300
diff --git a/hw/i386/microvm.c b/hw/i386/microvm.c
index a8d354aabe..1806cde036 100644
--- a/hw/i386/microvm.c
+++ b/hw/i386/microvm.c
@@ -650,2 +650,5 @@ static void microvm_class_init(ObjectClass *oc, void *data)
mc->desc = "microvm (i386)";
+#ifdef CONFIG_MICROVM_DEFAULT
+ mc->is_default = true;
+#endif
mc->units_per_default_bus = 1;
diff --git a/hw/i386/pc_piix.c b/hw/i386/pc_piix.c
index 04d2957adc..fc52848caf 100644
--- a/hw/i386/pc_piix.c
+++ b/hw/i386/pc_piix.c
@@ -450,4 +450,10 @@ static void pc_i440fx_init(MachineState *machine)
+#ifdef CONFIG_MICROVM_DEFAULT
+#define LATEST_IS_DEFAULT false
+#else
+#define LATEST_IS_DEFAULT true
+#endif
+
#define DEFINE_I440FX_MACHINE_AS_LATEST(major, minor) \
- DEFINE_PC_VER_MACHINE(pc_i440fx, "pc-i440fx", pc_i440fx_init, true, "pc", major, minor);
+ DEFINE_PC_VER_MACHINE(pc_i440fx, "pc-i440fx", pc_i440fx_init, LATEST_IS_DEFAULT, "pc", major, minor);

View file

@ -0,0 +1,102 @@
Date: Sun, 22 Aug 2021 15:16:25 +0300
Updated: Wed, 03 Jan 2024 14:12:39 +0300
From: Michael Tokarev <mjt@tls.msk.ru>
Subject: Note missing module package name
Debian-Specific: yes
Forwarded: not-needed
Debian ships different modules in different packages.
By default qemu ignores the fact that it can not load
a module, pretending this module never existed.
Give a useful hint about the package where the module
in question resides.
This is a hack, but it makes qemu packaged in debian
more user-friendly.
diff --git a/audio/audio.c b/audio/audio.c
index 7ac74f9e16..15f1071bdc 100644
--- a/audio/audio.c
+++ b/audio/audio.c
@@ -1745,5 +1745,9 @@ static AudioState *audio_init(Audiodev *dev, Error **errp)
done = !audio_driver_init(s, driver, dev, errp);
} else {
- error_setg(errp, "Unknown audio driver `%s'", drvname);
+ error_setg(errp, "Unknown audio driver `%s'. Perhaps you want to install %s package?",
+ drvname,
+ !strcmp(drvname, "spice") ? "qemu-system-modules-spice" :
+ !strcmp(drvname, "dbus") ? "qemu-system-modules-opengl" :
+ "qemu-system-gui");
}
if (!done) {
diff --git a/block.c b/block.c
index bfb0861ec6..8de988961d 100644
--- a/block.c
+++ b/block.c
@@ -453,4 +453,10 @@ static BlockDriver *bdrv_do_find_format(const char *format_name)
}
+static void note_block_package_name(const char *b)
+{
+ error_report("Unable to load module %s. Perhaps you want to install qemu-block-extra or qemu-block-supplemental package?",
+ b);
+}
+
BlockDriver *bdrv_find_format(const char *format_name)
{
@@ -476,4 +482,5 @@ BlockDriver *bdrv_find_format(const char *format_name)
error_report_err(local_err);
}
+ else note_block_package_name(block_driver_modules[i].library_name);
break;
}
@@ -966,5 +973,8 @@ BlockDriver *bdrv_find_protocol(const char *filename,
return NULL;
}
- break;
+ else {
+ note_block_package_name(block_driver_modules[i].library_name);
+ return NULL;
+ }
}
}
diff --git a/system/vl.c b/system/vl.c
index e18fa3ce46..91019d6952 100644
--- a/system/vl.c
+++ b/system/vl.c
@@ -1049,5 +1049,7 @@ static void select_vgahw(const MachineClass *machine_class, const char *p)
if (ti->opt_name && strstart(p, ti->opt_name, &opts)) {
if (!vga_interface_available(t)) {
- error_report("%s not available", ti->name);
+ error_report("%s not available. Perhaps you want to install %s package?", ti->name,
+ /* qxl is in spice, some are in opengl, the some are in common */
+ !strcmp(ti->opt_name, "qxl") ? "qemu-system-modules-spice" : "qemu-system-modules-opengl");
exit(1);
}
@@ -3500,5 +3502,10 @@ void qemu_init(int argc, char **argv)
#ifdef CONFIG_SPICE
case QEMU_OPTION_spice:
- opts = qemu_opts_parse_noisily(qemu_find_opts("spice"), optarg, false);
+ olist = qemu_find_opts("spice");
+ if (!olist) {
+ error_report("Perhaps you want to install qemu-system-modules-spice package?");
+ exit(1);
+ }
+ opts = qemu_opts_parse_noisily(olist, optarg, false);
if (!opts) {
exit(1);
diff --git a/ui/console.c b/ui/console.c
index 832055675c..a930f88d68 100644
--- a/ui/console.c
+++ b/ui/console.c
@@ -1659,6 +1659,8 @@ void qemu_display_early_init(DisplayOptions *opts)
}
if (dpys[opts->type] == NULL) {
- error_report("Display '%s' is not available.",
- DisplayType_str(opts->type));
+ error_report("Display '%s' is not available. Perhaps you want to install %s package?",
+ DisplayType_str(opts->type),
+ (!strcmp(DisplayType_str(opts->type), "dbus") || !strcmp(DisplayType_str(opts->type), "egl-headless"))
+ ? "qemu-system-modules-opengl" : "qemu-system-gui");
exit(1);
}

View file

@ -0,0 +1,35 @@
From: Vagrant Cascadian <vagrant@reproducible-builds.org>
Date: Sun, 21 Jun 2020 19:27:11 +0000
X-Dgit-Generated: 1:5.0-6~0~20200621~20 0b5923e6cc49abffd582177ba8558cfb6c7f10ce
Subject: roms/openbios: Use SOURCE_DATE_EPOCH in Makefile.
Forwarded: no
Embedding the build time breaks reproducibility. Instead, use the date
specified by the SOURCE_DATE_EPOCH environment variable:
https://reproducible-builds.org/docs/source-date-epoch/
This patch relies on features of GNU date, and will need further
changes for portability to other systems.
---
--- qemu-5.0.orig/roms/openbios/Makefile.target
+++ qemu-5.0/roms/openbios/Makefile.target
@@ -54,14 +54,14 @@ versions: $(ODIR)/target/include/openbio
$(ODIR)/forth/version.fs:
$(call quiet-command,true, " GEN $(TARGET_DIR)$@")
- @DATE="$(shell echo `LC_ALL=C TZ=UTC date +'%b %e %Y %H:%M'`)" ; \
+ @DATE="$(shell echo `LC_ALL=C date --utc --date=@$(SOURCE_DATE_EPOCH) +'%b %e %Y %H:%M'`)" ; \
( echo ": builddate \" $$DATE\" ; " ; \
echo ": version \" $(VERSION)\" ; " ; ) \
> $(dir $@)/version.fs
$(ODIR)/target/include/openbios-version.h:
$(call quiet-command,true, " GEN $(TARGET_DIR)$@")
- @DATE="$(shell echo `LC_ALL=C TZ=UTC date +'%b %e %Y %H:%M'`)" ; \
+ @DATE="$(shell echo `LC_ALL=C date --utc --date=@$(SOURCE_DATE_EPOCH) +'%b %e %Y %H:%M'`)" ; \
( echo "#define OPENBIOS_BUILD_DATE \"$$DATE\"" ; \
echo "#define OPENBIOS_VERSION_STR \"$(VERSION)\"" ; ) \
> $(dir $@)/openbios-version.h

View file

@ -0,0 +1,44 @@
From e5fe12ebb41f4e24340c8c543231095482b6a9d8 Mon Sep 17 00:00:00 2001
From: Christian Ehrhardt <christian.ehrhardt@canonical.com>
Date: Wed, 6 Jul 2022 10:10:55 +0200
Subject: [PATCH] qboot: Disable LTO for ELF binary build step
If LTO is enabled by default qboot fails to link as it exposes
a few issues that break the build:
../code16.c: Assembler messages:
../code16.c:37: Error: redundant addr32 prefix
../code16.c:27: Error: redundant addr32 prefix
../code16.c:18: Error: redundant addr32 prefix
Until fixed suppress this behavior by adding -fno-lto to the end
of the linker flags.
Fixes: #31
Signed-off-by: Christian Ehrhardt <christian.ehrhardt@canonical.com>
Forwarded: yes
Author: Christian Ehrhardt <christian.ehrhardt@canonical.com>
Origin: https://gitlab.com/bonzini/qboot/-/merge_requests/32
Bug: https://gitlab.com/bonzini/qboot/-/issues/31
Last-Update: 2022-07-06
---
meson.build | 1 +
1 file changed, 1 insertion(+)
diff --git a/roms/qboot/meson.build b/roms/qboot/meson.build
index d060f75..a9792e8 100644
--- a/roms/qboot/meson.build
+++ b/roms/qboot/meson.build
@@ -19,6 +19,7 @@ link_args = ['-nostdlib', '-m32']
link_args += cc.get_supported_link_arguments('-Wl,--build-id=none')
link_args += '-Wl,-T' + meson.current_source_dir() / 'flat.lds'
link_args += cc.get_supported_link_arguments(['-no-pie'])
+link_args += cc.get_supported_link_arguments(['-fno-lto'])
elf = executable(
'bios.bin.elf',
--
2.37.0

View file

@ -0,0 +1,29 @@
Subject: set proper path for qemu-bridge-helper binary in the docs
Bug-Debian: https://bugs.debian.org/1027447
From: Michael Tokarev <mjt@tls.msk.ru>
Date: Tue, 18 Apr 2023 17:29:17 +0300
Forwarded: no
Upstream-Status: this should be fixed in a more generic way, this fix is debian-specific
Upstream should propagate this path from the config option.
This is a dumb-n-quick fix.
diff --git a/qemu-options.hx b/qemu-options.hx
index b56f6b2fb2..fe138c83d3 100644
--- a/qemu-options.hx
+++ b/qemu-options.hx
@@ -3158,3 +3158,3 @@ SRST
The default network helper executable is
- ``/path/to/qemu-bridge-helper`` and the default bridge device is
+ ``/usr/lib/qemu/qemu-bridge-helper`` and the default bridge device is
``br0``.
@@ -3184,3 +3184,3 @@ SRST
|qemu_system| linux.img -device virtio-net-pci,netdev=n1 \\
- -netdev tap,id=n1,"helper=/path/to/qemu-bridge-helper"
+ -netdev tap,id=n1,"helper=/usr/lib/qemu/qemu-bridge-helper"
@@ -3191,3 +3191,3 @@ SRST
attach it to the bridge. The default network helper executable is
- ``/path/to/qemu-bridge-helper`` and the default bridge device is
+ ``/usr/lib/qemu/qemu-bridge-helper`` and the default bridge device is
``br0``.

2092
debian/patches/qemu-img-options.patch vendored Normal file

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,32 @@
From: Vagrant Cascadian <vagrant@reproducible-builds.org>
Date: Sun, 21 Jun 2020 19:38:39 +0000
X-Dgit-Generated: 1:5.0-6~0~20200621~20 92cdacf1c512114ca313800748a5fc162775f51e
Subject: roms/seabios-hppa: Use consistent date and remove hostname.
Two issues break reproducibility; the time and hostname get embedded
in the resulting seabios binary.
Simply drop the hostname from the embedded version string, as it
shouldn't be needed in Debian package builds.
Use the SOURCE_DATE_EPOCH environment variable to set the build date
rather than the current time:
https://reproducible-builds.org/docs/source-date-epoch/
---
--- qemu-5.0.orig/roms/seabios-hppa/scripts/buildversion.py
+++ qemu-5.0/roms/seabios-hppa/scripts/buildversion.py
@@ -125,9 +125,8 @@ def main():
if not ver:
ver = "?"
if not cleanbuild:
- btime = time.strftime("%Y%m%d_%H%M%S")
- hostname = socket.gethostname()
- ver = "%s-%s-%s" % (ver, btime, hostname)
+ btime = time.strftime("%Y%m%d_%H%M%S", time.gmtime(int(os.environ.get('SOURCE_DATE_EPOCH', time.time()))))
+ ver = "%s-%s" % (ver, btime)
write_version(outfile, ver + options.extra, toolstr)
if __name__ == '__main__':

18
debian/patches/series vendored Normal file
View file

@ -0,0 +1,18 @@
microvm-default-machine-type.patch
static-linux-user-stubs.diff
linux-user-binfmt-P.diff
note-missing-module-pkg-name.diff
skip-unpack-edk2-blobs.patch
qemu-bridge-helper-path.patch
gnu-hurd.patch
qboot-Disable-LTO-for-ELF-binary-build-step.patch
u-boot-sam460ex-fdi.patch
u-boot-sam460ex-mstring.patch
u-boot-sam460ex-build.patch
openbios-use-source_date_epoch-in-makefile.patch
seabios-hppa-use-consistent-date-and-remove-hostname.patch
slof-remove-user-and-host-from-release-version.patch
slof-ensure-ld-is-called-with-C-locale.patch
qemu-img-options.patch
disable-pycotap.patch
hw-display-qxl-render.c-fix-qxl_unpack_chunks-chunk-.patch

View file

@ -0,0 +1,19 @@
From: Michael Tokarev <mjt@tls.msk.ru>
Subject: skip unpacking of edk2 blobs
Date: Sat, 01 Apr 2023 18:46:55 +0300
Debian-Specific: yes
Forwarded: not-needed
Debian strips the blobs from qemu.orig.tar.gz so the code
fails to unpack the missing files.
diff --git a/pc-bios/meson.build b/pc-bios/meson.build
index a7224ef469..ddaedd95af 100644
--- a/pc-bios/meson.build
+++ b/pc-bios/meson.build
@@ -1,4 +1,4 @@
roms = []
-if unpack_edk2_blobs
+if unpack_edk2_blobs and false
fds = [
'edk2-aarch64-code.fd',

View file

@ -0,0 +1,20 @@
From: Vagrant Cascadian <vagrant@reproducible-builds.org>
Date: Mon, 22 Jun 2020 00:40:39 +0000
X-Dgit-Generated: 1:5.0-6~0~20200622~0 973dc2cba2b12d0fc4706ad75af36abcab4f6da9
Subject: slof/Makefile.gen: Ensure ld is called with the C locale.
The output of "ld -V" changes based on the environment's locale.
---
--- qemu-5.0.orig/roms/SLOF/Makefile.gen
+++ qemu-5.0/roms/SLOF/Makefile.gen
@@ -62,7 +62,7 @@ romfs_build:
../build_info.img:
@echo "$(CC)" > ../build_info.img
@$(CC) -v >> ../build_info.img 2>&1
- @$(LD) -V >> ../build_info.img 2>&1
+ @LC_ALL=C $(LD) -V >> ../build_info.img 2>&1
../$(SUBBOARD).dtb:
@if [ -e dts/$(SUBBOARD).dts ]; then \

View file

@ -0,0 +1,21 @@
From: Vagrant Cascadian <vagrant@reproducible-builds.org>
Date: Mon, 22 Jun 2020 03:48:55 +0000
X-Dgit-Generated: 1:5.0-6~0~20200622~4 7ad3e07212ae4baf17ca3734670f0774d06403a7
Subject: roms/SLOF/Makefile.gen: Remove user and host from release version.
This version string ends up in the slof.bin, leading to
reproducibility issues.
---
--- qemu-5.0.orig/roms/SLOF/Makefile.gen
+++ qemu-5.0/roms/SLOF/Makefile.gen
@@ -26,7 +26,7 @@ RELEASE=git-$(shell git rev-parse --shor
export DRIVER_NAME=git-$(shell git rev-parse --short=12 HEAD)
else
ifneq (,$(shell cat ../VERSION))
-RELEASE="$(USER)@$(HOSTNAME) release $(shell cat ../VERSION)"
+RELEASE="release $(shell cat ../VERSION)"
export DRIVER_NAME=HEAD
else
RELEASE="$(USER)@$(HOSTNAME)(private build)"

View file

@ -0,0 +1,54 @@
Subject: static linux-user stubs
From: Michael Tokarev <mjt@tls.msk.ru>
Date: Thu, 25 Apr 2024 09:01:13 +0300
Forwarded: not-needed
When building a static linux-user binaries, ld complains:
/usr/bin/ld: libglib-2.0.a(gutils.c.o): in function `g_get_user_database_entry':
warning: Using 'getpwuid' in statically linked applications requires...
warning: Using 'getpwnam_r' in statically linked applications requires...
warning: Using 'getpwuid_r' in statically linked applications requires...
This is because glib, in their "misc utils" unit (gutils.c), has functions
to return current user home directory and similar stuff, and this unit is
almost always included into the link, even if these particular functions
aren't used by the application.
Ideally this should be fixed on the glib side, by splitting gutils.c into
several files, so unused symbols wont be included in the link at all.
But this requires extra efforts from glib side, and static linkage with
glib is very rare.
So just stub-out a few getpw* symbols here, - this will eliminate the
warning and will make resulting binary quite a bit smaller.
It would be nice to eliminate whole dlopen() too.
diff --git a/linux-user/main.c b/linux-user/main.c
--- a/linux-user/main.c
+++ b/linux-user/main.c
@@ -1025,3 +1025,23 @@ int main(int argc, char **argv, char **envp)
/* never exits */
return 0;
}
+
+#ifdef PROVIDE_STUBS_FOR_STATIC
+
+struct passwd *getpwuid(uid_t uid) {
+ return NULL;
+}
+
+int getpwnam_r(const char *name, struct passwd *pwd,
+ char buf[], size_t buflen,
+ struct passwd **result) {
+ return -1;
+}
+
+int getpwuid_r(uid_t uid, struct passwd *pwd,
+ char buf[], size_t buflen,
+ struct passwd **result) {
+ return -1;
+}
+
+#endif

View file

@ -0,0 +1,57 @@
From: Michael Tokarev <mjt@tls.msk.ru>
Date: Sat, 03 Aug 2024 11:18:58 +0300
Subject: u-boot-sam460ex: build fixes
Forwarded: https://lists.nongnu.org/archive/html/qemu-devel/2025-01/msg00767.html
Fixes or works around numerous build issues and one real bug.
Most are due to new defaults in gcc (in debian), like
-Werror=implicit-function-declarations (there are a lot of missing decls)
-Werror=incompatible-pointer-types (function types mismatches)
-Werror=int-conversion (free int <=> pointer conversion)
Bug-Debian: https://bugs.debian.org/1075428
Signed-off-by: Michael Tokarev <mjt@tls.msk.ru>
diff --git a/roms/u-boot-sam460ex/board/ACube/Sam460ex/Sam460ex.c b/roms/u-boot-sam460ex/board/ACube/Sam460ex/Sam460ex.c
index 4d5b953c02..5ecf16dbe2 100644
--- a/roms/u-boot-sam460ex/board/ACube/Sam460ex/Sam460ex.c
+++ b/roms/u-boot-sam460ex/board/ACube/Sam460ex/Sam460ex.c
@@ -843,7 +843,7 @@ int last_stage_init (void)
// cleanup last 8 bytes of the RTC registers bank -----
char arr[8] = { 0 };
- i2c_write(0x68, 0x08, 1, &arr, 8);
+ i2c_write(0x68, 0x08, 1, arr, 8);
// USB Init -------------------------------------------
diff --git a/roms/u-boot-sam460ex/common/usb.c b/roms/u-boot-sam460ex/common/usb.c
index 203c9f7795..d645d36c8e 100644
--- a/roms/u-boot-sam460ex/common/usb.c
+++ b/roms/u-boot-sam460ex/common/usb.c
@@ -957,7 +957,7 @@ void usb_scan_devices(void)
printf("%d USB Device(s) found\n", dev_index);
#ifdef CONFIG_SAM460EX
- static attempts = 0;
+ static int attempts = 0;
if (dev_index < 3) {
u16 fpga_val = in_be16((void *)CONFIG_SYS_FPGA_BASE + 0x2E);
diff --git a/roms/u-boot-sam460ex/config.mk b/roms/u-boot-sam460ex/config.mk
index bcda77611a..9928f5f4c6 100644
--- a/roms/u-boot-sam460ex/config.mk
+++ b/roms/u-boot-sam460ex/config.mk
@@ -191,6 +191,11 @@ endif
CFLAGS += $(call cc-option,-fno-stack-protector)
+# this u-boot is an old bad code
+CFLAGS += $(call cc-option,-Wno-error=implicit-function-declaration)
+CFLAGS += $(call cc-option,-Wno-error=incompatible-pointer-types)
+CFLAGS += $(call cc-option,-Wno-error=int-conversion)
+
# $(CPPFLAGS) sets -g, which causes gcc to pass a suitable -g<format>
# option to the assembler.
AFLAGS_DEBUG :=

View file

@ -0,0 +1,25 @@
From: Michael Tokarev <mjt@tls.msk.ru>
Subject: u-boot-sam460ex: fdi fix
Date: Sat Apr 1 17:34:09 2023 +0300
Forwarded: https://lists.nongnu.org/archive/html/qemu-devel/2025-01/msg00767.html
Fix the missing extern in a variable declaration,
resulting in this variable being repeated each time
this header is included, so the link with modern gcc
fails.
Signed-off-by: Michael Tokarev <mjt@tls.msk.ru>
diff --git a/roms/u-boot-sam460ex/board/ACube/common/vesa.h b/roms/u-boot-sam460ex/board/ACube/common/vesa.h
index a6c32c3c2c..99672aa67b 100644
--- a/roms/u-boot-sam460ex/board/ACube/common/vesa.h
+++ b/roms/u-boot-sam460ex/board/ACube/common/vesa.h
@@ -4,7 +4,7 @@
extern void *DoVesa(int argc, char *argv[]);
extern void *set_vesa_mode(int mode);
-struct FrameBufferInfo
+extern struct FrameBufferInfo
{
void *BaseAddress;
unsigned long XSize;

View file

@ -0,0 +1,18 @@
From: Michael Tokarev <mjt@tls.msk.ru>
Subject: u-boot-sam460ex: remove obsolete -mstring gcc option
Date: Sun Oct 22 23:35:45 2023 +0300
Forwarded: https://lists.nongnu.org/archive/html/qemu-devel/2025-01/msg00767.html
Modern gcc complains about it.
Signed-off-by: Michael Tokarev <mjt@tls.msk.ru>
diff --git a/roms/u-boot-sam460ex/arch/powerpc/cpu/ppc4xx/config.mk b/roms/u-boot-sam460ex/arch/powerpc/cpu/ppc4xx/config.mk
index 8f47c9b728..cf4414cee6 100644
--- a/roms/u-boot-sam460ex/arch/powerpc/cpu/ppc4xx/config.mk
+++ b/roms/u-boot-sam460ex/arch/powerpc/cpu/ppc4xx/config.mk
@@ -24,3 +24,3 @@
PLATFORM_RELFLAGS += -fPIC -meabi
-PLATFORM_CPPFLAGS += -DCONFIG_4xx -ffixed-r2 -mstring -msoft-float
+PLATFORM_CPPFLAGS += -DCONFIG_4xx -ffixed-r2 -msoft-float

10
debian/qemu-block-extra.postinst vendored Normal file
View file

@ -0,0 +1,10 @@
#! /bin/sh
set -e
if [ "$1" = configure -a -x /usr/bin/deb-systemd-helper ] &&
dpkg --compare-versions -- "$2" lt-nl 1:8.2.1+ds-2~
then
deb-systemd-helper purge 'run-qemu.mount' >/dev/null || :
fi
#DEBHELPER#

15
debian/qemu-debootstrap vendored Executable file
View file

@ -0,0 +1,15 @@
#!/bin/sh
# it was qemu-debootstrap - setup qemu syscall emulation in a debootstrap chroot
# since kernel binfmt-misc support F flag for the interpreter and we use it,
# there is no need to copy qemu-user binfmt interpreter binary to the chroot,
# so regular debootstrap can be used just fine without --foreign, since all
# commands inside the chroot will just run using qemu from binfmt-misc subsystem.
if ! command -v debootstrap >/dev/null; then
echo "E: debootstrap isn't found in \$PATH, is debootstrap package installed?" >&2
exit 1
fi
echo "W: qemu-debootstrap is deprecated. Please use regular debootstrap directly" >&2
echo "I: Running command: debootstrap $*" >&2
exec debootstrap "$@"

19
debian/qemu-debootstrap.1 vendored Normal file
View file

@ -0,0 +1,19 @@
.TH qemu\-debootstrap 1 2011-07-02 "0.14.1+dfsg" Debian
.SH NAME
qemu\-debootstrap \- QEMU debootstrap wrapper
.SH SYNOPSIS
.B qemu\-debootstrap
.RI [ options ]
.SH DESCRIPTION
The
.B qemu\-debootstrap
wrapper calls
.BR debootstrap (8)
making use of the \-\-foreign and \-\-second-stage options, and copies the appropriate
.BR qemu\-user\-static (1)
binary into place in order to install cross-architecture chroots. In order for it to work seamlessly, the binfmt-support package must be installed.
.SH SEE ALSO
.BR debootstrap (8),
.BR qemu\-user\-static (1).
.SH AUTHOR
This manual page was written by Vagrant Cascadian <vagrant@debian.org>.

1
debian/qemu-guest-agent.dirs vendored Normal file
View file

@ -0,0 +1 @@
/etc/qemu/fsfreeze-hook.d

131
debian/qemu-guest-agent.init vendored Normal file
View file

@ -0,0 +1,131 @@
#! /bin/sh
### BEGIN INIT INFO
# Provides: qemu-guest-agent
# Required-Start: $remote_fs $syslog
# Required-Stop: $remote_fs $syslog
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: QEMU Guest Agent startup script
# Description: Start the QEMU Guest Agent if we're running
# in a QEMU virtual machine
### END INIT INFO
# Author: Michael Tokarev <mjt@tls.msk.ru>
PATH=/sbin:/usr/sbin:/bin:/usr/bin
DESC="QEMU Guest Agent"
NAME=qemu-ga
DAEMON=/usr/sbin/$NAME
PIDFILE=/var/run/$NAME.pid
# config
DAEMON_ARGS=""
# default transport
TRANSPORT=virtio-serial:/dev/virtio-ports/org.qemu.guest_agent.0
# Exit if the package is not installed
[ -x "$DAEMON" ] || exit 0
# Read configuration variable file if it is present
[ -r /etc/default/qemu-guest-agent ] && . /etc/default/qemu-guest-agent
# Load the VERBOSE setting and other rcS variables
. /lib/init/vars.sh
# Define LSB log_* functions.
# Depend on lsb-base (>= 3.2-14) to ensure that this file is present
# and status_of_proc is working.
. /lib/lsb/init-functions
#
# Function that checks whenever system has necessary environment
# It also splits $TRANSPORT into $method and $path
#
do_check_transport() {
method=${TRANSPORT%%:*}; path=${TRANSPORT#*:}
case "$method" in
virtio-serial | isa-serial)
if [ ! -e "$path" ]; then
log_warning_msg "$NAME: transport endpoint not found, not starting"
return 1
fi
;;
esac
}
#
# Function that starts the daemon/service
#
do_start()
{
# Return
# 0 if daemon has been started
# 1 if daemon was already running
# 2 if daemon could not be started
start-stop-daemon -Sq -p $PIDFILE -x $DAEMON --test > /dev/null \
|| return 1
start-stop-daemon -Sq -p $PIDFILE -x $DAEMON -- --daemonize \
$DAEMON_ARGS -m "$method" -p "$path" \
|| return 2
}
#
# Function that stops the daemon/service
#
do_stop()
{
# Return
# 0 if daemon has been stopped
# 1 if daemon was already stopped
# 2 if daemon could not be stopped
# other if a failure occurred
start-stop-daemon -Kq --retry=TERM/30/KILL/5 -p $PIDFILE --name $NAME
}
case "$1" in
start)
do_check_transport || exit 0
[ "$VERBOSE" != no ] && log_daemon_msg "Starting $DESC" $NAME
do_start
case "$?" in
0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
esac
;;
stop)
[ "$VERBOSE" != no ] && log_daemon_msg "Stopping $DESC" $NAME
do_stop
case "$?" in
0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
esac
;;
status)
status_of_proc "$DAEMON" $NAME && exit 0 || exit $?
;;
restart|force-reload) # we do not support reload
do_check_transport || exit 0
log_daemon_msg "Restarting $DESC" $NAME
do_stop
case "$?" in
0|1)
do_start
case "$?" in
0) log_end_msg 0 ;;
1) log_end_msg 1 ;; # Old process is still running
*) log_end_msg 1 ;; # Failed to start
esac
;;
*)
# Failed to stop
log_end_msg 1
;;
esac
;;
*)
echo "Usage: /etc/init.d/qemu-guest-agent {start|stop|status|restart|force-reload}" >&2
exit 3
;;
esac
:

12
debian/qemu-guest-agent.install vendored Normal file
View file

@ -0,0 +1,12 @@
# from source tree
qga/qapi-schema.json /usr/share/doc/qemu-guest-agent/
scripts/qemu-guest-agent/fsfreeze-hook /etc/qemu/
# from staging area
usr/bin/qemu-ga /usr/sbin/
# from build dir
b/docs/qemu-ga.8 usr/share/man/man8/
b/docs/interop/qemu-ga.html usr/share/doc/qemu-guest-agent/
b/docs/qemu-ga-ref.7 usr/share/man/man7/
b/docs/interop/qemu-qmp-ref.html usr/share/doc/qemu-guest-agent/

59
debian/qemu-guest-agent.postinst vendored Normal file
View file

@ -0,0 +1,59 @@
#!/bin/sh
# postinst script for qemu-guest-agent
#
# see: dh_installdeb(1)
set -e
# summary of how this script can be called:
# * <postinst> `configure' <most-recently-configured-version>
# * <old-postinst> `abort-upgrade' <new version>
# * <conflictor's-postinst> `abort-remove' `in-favour' <package>
# <new-version>
# * <postinst> `abort-remove'
# * <deconfigured's-postinst> `abort-deconfigure' `in-favour'
# <failed-install-package> <version> `removing'
# <conflicting-package> <version>
# for details, see https://www.debian.org/doc/debian-policy/ or
# the debian-policy package
case "$1" in
configure)
;;
abort-upgrade|abort-remove|abort-deconfigure)
;;
*)
echo "postinst called with unknown argument \`$1'" >&2
exit 1
;;
esac
# dh_installdeb will replace this with shell code automatically
# generated by other debhelper scripts.
#DEBHELPER#
# Normal mv_conffile alone would fail due to the new path being a DIR in the old package version (LP: 1820291)
case "$1" in
configure)
# From /usr/bin/dpkg-maintscript-helper modified to be able to cope with this edge case
if [ -n "$2" ] && dpkg --compare-versions -- "$2" le-nl "1:3.1+dfsg-7~"; then
TMPCONFFILE="/etc/qemu/fsfreeze-hook.old"
NEWCONFFILE="/etc/qemu/fsfreeze-hook"
ORIGCONFFILE="/etc/qemu/fsfreeze-hook/fsfreeze-hook"
rm -f "$TMPCONFFILE.dpkg-remove"
if [ -e "$TMPCONFFILE" ]; then
echo "Preserving user changes to $NEWCONFFILE (renamed from $ORIGCONFFILE)..."
if [ -e "$NEWCONFFILE" ]; then
mv -f "$NEWCONFFILE" "$NEWCONFFILE.dpkg-new"
fi
mv -f "$TMPCONFFILE" "$NEWCONFFILE"
fi
fi
;;
esac
exit 0

56
debian/qemu-guest-agent.postrm vendored Normal file
View file

@ -0,0 +1,56 @@
#!/bin/sh
# postrm script for qemu-guest-agent
#
# see: dh_installdeb(1)
set -e
# summary of how this script can be called:
# * <postrm> `remove'
# * <postrm> `purge'
# * <old-postrm> `upgrade' <new-version>
# * <new-postrm> `failed-upgrade' <old-version>
# * <new-postrm> `abort-install'
# * <new-postrm> `abort-install' <old-version>
# * <new-postrm> `abort-upgrade' <old-version>
# * <disappearer's-postrm> `disappear' <overwriter>
# <overwriter-version>
# for details, see https://www.debian.org/doc/debian-policy/ or
# the debian-policy package
case "$1" in
purge|remove|upgrade|failed-upgrade|abort-install|abort-upgrade|disappear)
;;
*)
echo "postrm called with unknown argument \`$1'" >&2
exit 1
;;
esac
# dh_installdeb will replace this with shell code automatically
# generated by other debhelper scripts.
#DEBHELPER#
# If needed revert the move we have made in preinst to compensate the new path being a DIR in the old package version (LP: 1820291)
case "$1" in
abort-install|abort-upgrade)
# From /usr/bin/dpkg-maintscript-helper modified to be able to cope with this edge case
if [ -n "$2" ] && dpkg --compare-versions -- "$2" le-nl "1:3.1+dfsg-7~"; then
TMPCONFFILE="/etc/qemu/fsfreeze-hook.old"
NEWCONFFILE="/etc/qemu/fsfreeze-hook"
ORIGCONFFILE="/etc/qemu/fsfreeze-hook/fsfreeze-hook"
if [ -e "$TMPCONFFILE.dpkg-remove" ]; then
echo "Reinstalling $ORIGCONFFILE that was moved away"
if [ -f "$NEWCONFFILE" ]; then
rm -f "$NEWCONFFILE"
fi
mkdir -p "$NEWCONFFILE"
mv "$TMPCONFFILE.dpkg-remove" "$ORIGCONFFILE"
fi
fi
esac
exit 0

62
debian/qemu-guest-agent.preinst vendored Normal file
View file

@ -0,0 +1,62 @@
#!/bin/sh
# preinst script for qemu-guest-agent
#
# see: dh_installdeb(1)
set -e
# summary of how this script can be called:
# * <new-preinst> `install'
# * <new-preinst> `install' <old-version>
# * <new-preinst> `upgrade' <old-version>
# * <old-preinst> `abort-upgrade' <new-version>
# for details, see https://www.debian.org/doc/debian-policy/ or
# the debian-policy package
case "$1" in
install|upgrade)
;;
abort-upgrade)
;;
*)
echo "preinst called with unknown argument \`$1'" >&2
exit 1
;;
esac
# dh_installdeb will replace this with shell code automatically
# generated by other debhelper scripts.
# Normal mv_conffile alone would fail due to the new path being a DIR in the old package version (LP: 1820291)
case "$1" in
install|upgrade)
# From /usr/bin/dpkg-maintscript-helper modified to be able to cope with this edge case
if [ -n "$2" ] && dpkg --compare-versions -- "$2" le-nl "1:3.1+dfsg-7~"; then
TMPCONFFILE="/etc/qemu/fsfreeze-hook.old"
NEWCONFFILE="/etc/qemu/fsfreeze-hook"
ORIGCONFFILE="/etc/qemu/fsfreeze-hook/fsfreeze-hook"
if [ -f "$ORIGCONFFILE" ]; then
disk_md5sum="$(md5sum "$ORIGCONFFILE" | sed -e 's/ .*//')"
pkg_md5sum="$(dpkg-query -W -f='${Conffiles}' "qemu-guest-agent" | \
sed -n -e "\'^ $ORIGCONFFILE ' { s/ obsolete$//; s/.* //; p }")"
if [ "$disk_md5sum" = "$pkg_md5sum" ]; then
# mark as having no custom content
mv -f "$ORIGCONFFILE" "${TMPCONFFILE}.dpkg-remove"
else
# keep the "old" name to reflect there is content to be preserved
mv -f "$ORIGCONFFILE" "$TMPCONFFILE"
fi
# In any case the old directory blocking the new conffile
# has to be removed before unpack happens
rmdir "$NEWCONFFILE" || echo "failed to remove $NEWCONFFILE"
fi
fi
;;
esac
#DEBHELPER#
exit 0

11
debian/qemu-guest-agent.service vendored Normal file
View file

@ -0,0 +1,11 @@
[Unit]
Description=QEMU Guest Agent
BindsTo=dev-virtio\x2dports-org.qemu.guest_agent.0.device
After=dev-virtio\x2dports-org.qemu.guest_agent.0.device
[Service]
ExecStart=-/usr/sbin/qemu-ga
Restart=always
RestartSec=0
[Install]

2
debian/qemu-guest-agent.udev vendored Normal file
View file

@ -0,0 +1,2 @@
SUBSYSTEM=="virtio-ports", ATTR{name}=="org.qemu.guest_agent.0", \
TAG+="systemd", ENV{SYSTEMD_WANTS}="qemu-guest-agent.service"

6
debian/qemu-ifdown vendored Executable file
View file

@ -0,0 +1,6 @@
#! /bin/sh
# Script to shut down a network (tap) device for qemu.
# Initially this script is empty, but you can configure,
# for example, accounting info here.
:

41
debian/qemu-ifup vendored Executable file
View file

@ -0,0 +1,41 @@
#! /bin/sh
# Script to bring a network (tap) device for qemu up.
# The idea is to add the tap device to the same bridge
# as we have default routing to.
# in order to be able to find brctl
PATH=$PATH:/sbin:/usr/sbin
ip=$(command -v ip)
if [ -n "$ip" ]; then
ip link set "$1" up
else
brctl=$(command -v brctl)
if [ -z "$ip$brctl" ]; then
echo "W: $0: not doing any bridge processing: neither ip nor brctl utility not found" >&2
exit 0
fi
ifconfig "$1" 0.0.0.0 up
fi
switch=$(ip route ls | \
awk '/^default / {
for(i=0;i<NF;i++) { if ($i == "dev") { print $(i+1); next; } }
}'
)
# only add the interface to default-route bridge if we
# have such interface (with default route) and if that
# interface is actually a bridge.
# It is possible to have several default routes too
for br in $switch; do
if [ -d /sys/class/net/$br/bridge/. ]; then
if [ -n "$ip" ]; then
exec ip link set "$1" master "$br"
else
exec brctl addif $br "$1"
fi
fi
done
echo "W: $0: no bridge for guest interface found" >&2

43
debian/qemu-io.1 vendored Normal file
View file

@ -0,0 +1,43 @@
.TH QEMU-IO 1 "December 18, 2011"
.SH NAME
qemu-io \- QEMU Disk exerciser
.SH SYNOPSIS
.B qemu-io [-h] [-V] [-rsnm] [-c cmd] ... [file]
.SH DESCRIPTION
qemu-io is a command line utility to exercise the QEMU I/O path.
.SH OPTIONS
.TP
.B \-c,\ \-\-cmd\ <cmd>
Command to execute
.TP
.B \-r,\ \-\-read-only
Export read-only
.TP
.B \-s,\ \-\-snapshot
Use snapshot file
.TP
.B \-n,\ \-\-nocache
Disable host cache
.TP
.B \-g,\ \-\-growable
Allow file to grow (only applies to protocols)
.TP
.B \-m,\ \-\-misalign
Misalign allocations for O_DIRECT
.TP
.B \-k,\ \-\-native-aio
Use kernel AIO implementation (on Linux only)
.TP
.B \-h,\ \-\-help
Display help and exit
.TP
.B \-V,\ \-\-version
Output version information and exit
.SH SEE ALSO
.BR qemu-img (1),
.BR qemu-nbd (8)
.SH AUTHOR
QEMU project
.PP
This manual page was written by Asias He <asias.hejun@gmail.com>, for the Debian project (and may be used by others). Permission is granted to copy, distribute and/or modify this document under the terms of the Creative Commons Attribution-Share Alike 3.0 United States License. (See http://creativecommons.org/licenses/by-sa/3.0/us/legalcode)
.

1
debian/qemu-system-arm.maintscript vendored Normal file
View file

@ -0,0 +1 @@
dir_to_symlink /usr/share/doc/qemu-system-arm qemu-system-common 1:8.0+dfsg-4~ qemu-system-arm

106
debian/qemu-system-common.NEWS vendored Normal file
View file

@ -0,0 +1,106 @@
qemu (1:8.0+dfsg-1) experimental; urgency=medium
Qemu upstream dropped support of the C-language virtiofsd daemon
implementation in version 8.0, so this package does not ship
virtiofsd anymore. A rust-language implementation is available
in a separate virtiofsd package.
-- Michael Tokarev <mjt@tls.msk.ru> Tue, 18 Apr 2023 21:26:14 +0300
qemu (1:7.0+dfsg-7) unstable; urgency=medium
Starting with this version of qemu-system-x86 on x86 architecture, xen
support is moved out to a separate package named qemu-system-xen. Xen
release since 4.16.1-1 already uses qemu binary from this package. In
order to support transition from old xen and xen-supporting qemu-system-x86
to separate xen build of qemu, the qemu-system-i386 binary is temporarily
replaced by a shell wrapper which detects xen usage and if found, redirects
the call to xen-enabled qemu binary if found (with a warning), or suggests
to install qemu-system-xen package. If you used qemu-system-x86 (or
qemu-system-x86-xen on Ubuntu) to run xen, please install qemu-system-xen.
qemu-system-x86 is not used by xen anymore since 4.16.1-1.
-- Michael Tokarev <mjt@tls.msk.ru> Sun, 15 May 2022 15:15:58 +0300
qemu (1:5.0-9) unstable; urgency=medium
With this version, kvm wrapper (initially from the separate kvm
package, which were later renamed to qemu-kvm) is merged back
to qemu-system-x86 package, replacing old qemu-kvm package.
'kvm' command name turned out to be very handy for manual
execution of qemu with kvm enabled, and we now rely on the
upstream behavor - when executable name ends with "kvm" it
enables the kvm mode by default if available, and falls back
to TCG if not.
-- Michael Tokarev <mjt@tls.msk.ru> Fri, 17 Jul 2020 12:54:35 +0300
qemu (1:2.12+dfsg-2) unstable; urgency=medium
Since qemu 2.12, [G]UI display frontends can be built as modules.
Debian creates new package, qemu-system-gui, which currently
includes GTK3 support. This also switches display from SDL to GTK.
Qemu-system-* packages recommends installing qemu-system-gui, so
by default on upgrade you will have new package installed, and
local GUI will continue to work. However, if you choose to not
install recommended packages, you might consider installing
qemu-system-gui package separately, if you need local GUI support
as well. Without this package, qemu-system-* becomes "headless",
and can be used on servers to reduce amount of dependencies -
this way, no X11 stuff is needed by qemu-system anymore.
-- Michael Tokarev <mjt@tls.msk.ru> Sun, 27 Apr 2018 09:18:32 +0300
qemu (1:2.2+dfsg-6exp) unstable; urgency=medium
Since Debian release 2.2+dfsg-6exp, a new package named qemu-block-extra
has been created and some less frequently used block backends has been
split out of main qemu-system binaries and from qemu-img binary to
this new package. The backends which has been split are:
curl
iscsi
rbd (ceph/rados)
ssh
If you use any of these, please install qemu-block-extra package in
addition to qemu-system-* or qemu-utils package, because without it
these block backends won't work anymore.
-- Michael Tokarev <mjt@tls.msk.ru> Mon, 27 Apr 2015 09:29:55 +0300
qemu (2.0.0+dfsg-1) unstable; urgency=low
qemu-system-* packages does not provide /usr/bin/qemu alternative
anymore, and all various alternatives will be unregistered at new
individual qemu-system packages install. This is because different
architectures are not really alternatives, and never has been.
Historically, qemu emulated just one architecture, so the name "qemu"
was used for the binary. However when more architectures were added,
the old name "qemu" was used as an alternative, pointing to one of
the emulators. Upstream does not use the name "qemu" for binaries
for a long time. If you have scripts using the old name "qemu"
please update them to use the right qemu-system-* binary.
-- Michael Tokarev <mjt@tls.msk.ru> Fri, 11 Apr 2014 19:57:22 +0400
qemu (1.7.0+dfsg-2) unstable; urgency=low
Since version 1.7.0+dfsg-2, qemu-system-x86 switched from vgabios for
plex/bochs project to implementation of vgabios provided by seabios.
The latter is written almost entirely in C language so it is much easier
to debugu/develop, but it lacks some 16bit protected mode functions which
are present in vgabios. This means that it is possible that, for eaxample,
some protected-mode games written for MS-DOS may not work since this
release.
This also means that vgabios package isn't used by qemu anymore, and might
be removed from the system if there are no other users of it left.
/usr/bin/kvm shell wrapper has been moved back to qemu-kvm package (it was
moved to qemu-system-x86 in version 1.3.0+dfsg-2exp). Please note that we
do not re-install qemu-kvm package if it has been removed as obsolete, so
if you need /usr/bin/kvm wrapper please install qemu-kvm package again.
This change allows qemu-system-x86 package to co-exist with the old qemu-kvm
binary (not shell-wrapper) package from wheezy.
-- Michael Tokarev <mjt@tls.msk.ru> Thu, 28 Nov 2013 18:40:56 +0400

35
debian/qemu-system-common.README.Debian vendored Normal file
View file

@ -0,0 +1,35 @@
Historically, there were different naming in use for the
same architectures within different groups/projects. For
example, amd64 architecture (Debian name) is also known as
x86_64; arm64 and aarch64; and so on. Qemu used one way
to name the binaries, debian used another, some architectures
are named the same way, while for other architectures there's
a difference.
Starting with debian qemu-system-* packages version 8.0, we now
provide debian-compatible naming scheme for qemu-system-$arch
binaries, shipping symlinks to qemu names when qemu name is
different from debian's. For example, qemu-system-amd64 is a
symlink to qemu-system-x86_64.
Since qemu-system emulates a CPU (it is agnostic to what
OS/kernel/abi is being actually used inside), we can use
qemu-system-${DEB_HOST_ARCH_CPU} from dpkg-architecture,
not qemu-system-${DEB_HOST_ARCH}.
In particular, the following extra names are provided:
amd64 => x86_64
arm64 => aarch64
loong64 => loongarch64
powerpc => ppc
ppc64el => ppc64
The other names do match between qemu and debian.
There's another name which is also provided but which is
neither in debian nor in qemu: it is ppc64le, which is
the name used for this architecture in the linux kernel.
One can run qemu-system-$archos binary, and you can
list it in (Build-)Depends: field too.

27
debian/qemu-system-common.install vendored Normal file
View file

@ -0,0 +1,27 @@
debian/qemu-ifup etc/
debian/qemu-ifdown etc/
b/docs/qemu-system.1 usr/share/man/man1/
b/docs/qemu-qmp-ref.7 usr/share/man/man7/
b/docs/qemu-cpu-models.7 usr/share/man/man7/
usr/share/qemu/trace-events-all
usr/bin/qemu-pr-helper
b/docs/qemu-pr-helper.8 usr/share/man/man8/
# linux-specific
usr/lib/qemu/qemu-bridge-helper
# common modules. Other gui modules are in qemu-system-gui
usr/lib/${DEB_HOST_MULTIARCH}/qemu/audio-alsa.so
usr/lib/${DEB_HOST_MULTIARCH}/qemu/audio-oss.so
usr/lib/${DEB_HOST_MULTIARCH}/qemu/chardev-baum.so
usr/lib/${DEB_HOST_MULTIARCH}/qemu/hw-display-virtio-gpu-pci.so
usr/lib/${DEB_HOST_MULTIARCH}/qemu/hw-display-virtio-gpu.so
usr/lib/${DEB_HOST_MULTIARCH}/qemu/hw-display-virtio-vga.so
usr/lib/${DEB_HOST_MULTIARCH}/qemu/hw-uefi-vars.so
usr/lib/${DEB_HOST_MULTIARCH}/qemu/hw-usb-host.so
usr/lib/${DEB_HOST_MULTIARCH}/qemu/hw-usb-redirect.so
usr/lib/${DEB_HOST_MULTIARCH}/qemu/hw-usb-smartcard.so
usr/lib/${DEB_HOST_MULTIARCH}/qemu/hw-s390x-virtio-gpu-ccw.so
usr/lib/${DEB_HOST_MULTIARCH}/qemu/ui-curses.so

View file

@ -0,0 +1,8 @@
# probably a false positives
qemu-system-common: shared-library-lacks-prerequisites [usr/lib/*/qemu/hw-display-virtio-gpu-pci.so]
qemu-system-common: shared-library-lacks-prerequisites [usr/lib/*/qemu/hw-display-virtio-vga.so]
qemu-system-common: shared-library-lacks-prerequisites [usr/lib/*/qemu/hw-s390x-virtio-gpu-ccw.so]
qemu-system-common: hardening-no-fortify-functions [usr/lib/*/qemu/audio-alsa.so]
qemu-system-common: hardening-no-fortify-functions [usr/lib/*/qemu/audio-oss.so]
# this is a common/generic manpage used by all qemu-system-* binaries
qemu-system-common: spare-manual-page [usr/share/man/man1/qemu-system.1.gz]

12
debian/qemu-system-data.doc-base vendored Normal file
View file

@ -0,0 +1,12 @@
Document: qemu-system-doc
Title: QEMU User Manual
Author: Fabrice Bellard
Abstract: The QEMU user manual intends to make the user understand what
qemu is/does, and to guide them through the first steps of getting
the emulator to work, documenting parameters and commands, among other
useful things.
Section: Emulators
Format: HTML
Index: /usr/share/doc/qemu-system-common/system/index.html
Files: /usr/share/doc/qemu-system-common/system/index.html

3
debian/qemu-system-data.docs vendored Normal file
View file

@ -0,0 +1,3 @@
docs/multiseat.txt
docs/qdev-device-use.txt
docs/qemupciserial.inf

14
debian/qemu-system-data.install vendored Normal file
View file

@ -0,0 +1,14 @@
# install docs to qemu-system-common so its easier to find:
b/docs/system usr/share/doc/qemu-system-common/
b/docs/about usr/share/doc/qemu-system-common/
b/docs/interop usr/share/doc/qemu-system-common/
b/docs/specs usr/share/doc/qemu-system-common/
docs/config usr/share/doc/qemu-system-common/
b/docs/tools/qemu-pr-helper.html usr/share/doc/qemu-system-common/
b/docs/interop/pr-helper.html usr/share/doc/qemu-system-common/
docs/multiseat.txt usr/share/doc/qemu-system-common/
docs/qdev-device-use.txt usr/share/doc/qemu-system-common/
docs/qemupciserial.inf usr/share/doc/qemu-system-common/

View file

@ -0,0 +1,5 @@
# firmware files are arch-dependent binaries and can be statically linked
qemu-system-data: arch-dependent-file-in-usr-share *usr/share/qemu/*
qemu-system-data: arch-independent-package-contains-binary-or-object *usr/share/qemu/*
qemu-system-data: statically-linked-binary *usr/share/qemu/*
qemu-system-data: shared-library-lacks-prerequisites *usr/share/qemu/s390-*

10
debian/qemu-system-gui.install vendored Normal file
View file

@ -0,0 +1,10 @@
usr/share/locale/*/LC_MESSAGES/qemu.mo
usr/share/qemu/vhost-user/50-qemu-gpu.json
usr/lib/qemu/vhost-user-gpu
# modules
usr/lib/${DEB_HOST_MULTIARCH}/qemu/ui-gtk.so
usr/lib/${DEB_HOST_MULTIARCH}/qemu/ui-sdl.so
usr/lib/${DEB_HOST_MULTIARCH}/qemu/audio-sdl.so
usr/lib/${DEB_HOST_MULTIARCH}/qemu/audio-jack.so
usr/lib/${DEB_HOST_MULTIARCH}/qemu/audio-pa.so
usr/lib/${DEB_HOST_MULTIARCH}/qemu/audio-pipewire.so

View file

@ -0,0 +1 @@
qemu-system-mips: spelling-error-in-binary wtH with *usr/bin/qemu-system-mips64*

1
debian/qemu-system-mips.maintscript vendored Normal file
View file

@ -0,0 +1 @@
dir_to_symlink /usr/share/doc/qemu-system-mips qemu-system-common 1:8.0+dfsg-4~ qemu-system-mips

23
debian/qemu-system-misc.NEWS vendored Normal file
View file

@ -0,0 +1,23 @@
qemu (1:9.1.1+ds-1) unstable; urgency=medium
In this version of qemu in Debian, qemu-system-s390x binary has been split
from qemu-system-misc to its own separate package, qemu-system-s390x, as
has been done long ago in Ubuntu.
Additionally, qemu-system-riscv32 and qemu-system-riscv64 binaries has been
split into their own separate package, qemu-system-riscv.
This makes every CPU family in the list of release architectures in Debian,
to be its own separate binary package, with qemu-system-misc containing
non-release architectures only.
If you had installed qemu-system-misc package to have system emulators for
s390x, riscv32 or riscv64, please install qemu-system-s390x package or
qemu-system-riscv package instead.
The name `qemu-system-s390x`, with the `x` at the end instead of using a
cpu family `s390`, like for all other qemu-system-ARCH packages, has been
choosen due to historical compatibility reasons with Ubuntu, where this
package has always been named like this.
-- Michael Tokarev <mjt@tls.msk.ru> Sat, 05 Oct 2024 11:55:24 +0300

View file

@ -0,0 +1 @@
qemu-system-misc: spelling-error-in-binary nott not *usr/bin/qemu-*

1
debian/qemu-system-misc.maintscript vendored Normal file
View file

@ -0,0 +1 @@
dir_to_symlink /usr/share/doc/qemu-system-misc qemu-system-common 1:8.0+dfsg-4~ qemu-system-misc

View file

@ -0,0 +1,8 @@
usr/lib/${DEB_HOST_MULTIARCH}/qemu/ui-opengl.so
usr/lib/${DEB_HOST_MULTIARCH}/qemu/ui-egl-headless.so
usr/lib/${DEB_HOST_MULTIARCH}/qemu/hw-display-virtio-gpu-pci-gl.so
usr/lib/${DEB_HOST_MULTIARCH}/qemu/hw-display-virtio-gpu-gl.so
usr/lib/${DEB_HOST_MULTIARCH}/qemu/hw-display-virtio-vga-gl.so
# ui-dbus requires ui-opengl
usr/lib/${DEB_HOST_MULTIARCH}/qemu/audio-dbus.so
usr/lib/${DEB_HOST_MULTIARCH}/qemu/ui-dbus.so

View file

@ -0,0 +1,3 @@
# probably false positives
qemu-system-modules-opengl: shared-library-lacks-prerequisites [usr/lib/*/qemu/hw-display-virtio-gpu-pci-gl.so]
qemu-system-modules-opengl: shared-library-lacks-prerequisites [usr/lib/*/qemu/hw-display-virtio-vga-gl.so]

View file

@ -0,0 +1,5 @@
usr/lib/${DEB_HOST_MULTIARCH}/qemu/audio-spice.so
usr/lib/${DEB_HOST_MULTIARCH}/qemu/chardev-spice.so
usr/lib/${DEB_HOST_MULTIARCH}/qemu/hw-display-qxl.so
usr/lib/${DEB_HOST_MULTIARCH}/qemu/ui-spice-app.so
usr/lib/${DEB_HOST_MULTIARCH}/qemu/ui-spice-core.so

View file

@ -0,0 +1,2 @@
qemu-system-ppc: spelling-error-in-binary buid build *usr/bin/qemu-system-ppc64*
qemu-system-ppc: spelling-error-in-binary wTH with *usr/bin/qemu-system-ppc64*

1
debian/qemu-system-ppc.maintscript vendored Normal file
View file

@ -0,0 +1 @@
dir_to_symlink /usr/share/doc/qemu-system-ppc qemu-system-common 1:8.0+dfsg-4~ qemu-system-ppc

2
debian/qemu-system-riscv.links vendored Normal file
View file

@ -0,0 +1,2 @@
usr/lib/riscv32-linux-gnu/opensbi/generic/fw_dynamic.bin usr/share/qemu/opensbi-riscv32-generic-fw_dynamic.bin
usr/lib/riscv64-linux-gnu/opensbi/generic/fw_dynamic.bin usr/share/qemu/opensbi-riscv64-generic-fw_dynamic.bin

View file

@ -0,0 +1 @@
qemu-system-riscv: spelling-error-in-binary addd add *usr/bin/qemu-*

1
debian/qemu-system-s390x.maintscript vendored Normal file
View file

@ -0,0 +1 @@
dir_to_symlink /usr/share/doc/qemu-system-s390x qemu-system-common 1:8.0+dfsg-4~ qemu-system-s390x

1
debian/qemu-system-sparc.maintscript vendored Normal file
View file

@ -0,0 +1 @@
dir_to_symlink /usr/share/doc/qemu-system-sparc qemu-system-common 1:8.0+dfsg-4~ qemu-system-sparc

1
debian/qemu-system-x86.maintscript vendored Normal file
View file

@ -0,0 +1 @@
dir_to_symlink /usr/share/doc/qemu-system-x86 qemu-system-common 1:8.0+dfsg-4~ qemu-system-x86

5
debian/qemu-system-x86_64-spice vendored Executable file
View file

@ -0,0 +1,5 @@
#! /bin/sh
echo "$0: W: this is an old compat wrapper script for qemu-system-x86_64-spice" >&2
echo "$0: W: please use qemu-system-x86_64 instead of $0" >&2
exec qemu-system-x86_64 "$@"

47
debian/qemu-system.NEWS vendored Normal file
View file

@ -0,0 +1,47 @@
qemu (1.3.0+dfsg-4exp) experimental; urgency=low
Starting from 1.3.0 release, qemu-system package, which provided
QEMU system emulation targets for many architectures, has been
split into several packages, each providing a related,
per-base-architecture, set of emulators, and qemu-system-misc
package which contains some "other" architectures. There are
also qemu-system-common package, which provides common files for
all other qemu-system-*, packages. Former qemu-system package
now become a meta-package which installs emulators for all
available targets as before.
-- Michael Tokarev <mjt@tls.msk.ru> Tue, 22 Jan 2013 01:38:27 +0400
qemu (0.12.3+dfsg-3) unstable; urgency=low
Starting with QEMU 0.12.0, KQEMU support has been removed from
upstream, as it has not seen active development for a few years now,
while causing regressions or limitations for non-KQEMU users.
-- Aurelien Jarno <aurel32@debian.org> Wed, 24 Mar 2010 23:14:35 +0100
qemu (0.10.3-2) unstable; urgency=low
Starting with QEMU 0.10.0, it is possible to control how the host
cache is used to access block data, using the cache= suboption of the
-drive option. The following suboptions are available:
* none: The host page cache is entirely avoided.
* writeback (default in QEMU 0.9.x): Writeback caching reports data
writes as completed as soon as the data is present in the host page
cache. This is safe as long as you trust your host. If your host
crashes or loses power, then the guest may experience data
corruption.
* writethrough (default in QEMU 0.10.x): The host page cache is used
to read and write data but write notification is sent to the guest
only when the data has been reported as written by the storage
subsystem.
Note that depending on your configuration (filesystem, encryption,
kernel version, etc.), disk accesses can be very slow with the default
cache policy (writethrough). You can use the writeback cache policy
instead, but the data integrity is not assured anymore.
See qemu(1) for more details.
-- Aurelien Jarno <aurel32@debian.org> Sun, 03 May 2009 23:22:29 +0200

15
debian/qemu-user-static.1 vendored Normal file
View file

@ -0,0 +1,15 @@
.TH qemu\-user\-static\ 1 2024-08-26 "9.0" Debian
.SH NAME
qemu\-user\-static\ \- QEMU User Emulator (compatibility symlink)
.SH DESCRIPTION
.B qemu\-user\-static
is a compatibility symlink for old qemu\-user\-static package
pointing to qemu\-user binary.
Please do not use these compatibility links, instead, switch to using
corresponding qemu\-user binaries (without the
.B \-static
suffix).
.SH SEE ALSO
.BR qemu-user (1)
.SH AUTHOR
This manual page was written by Michael Tokarev <mjt@tls.msk.ru>

37
debian/qemu-user-static.NEWS vendored Normal file
View file

@ -0,0 +1,37 @@
qemu (1:9.1.0+ds-1) unstable; urgency=medium
Since this version, the statically-linked qemu-user binaries from
qemu-user-static package has been moved to qemu-user package,
effectively making it to be what qemu-user-static has been.
There's no dynamically-linked qemu-user binaries anymore, in no
qemu packages provided by Debian. For more information see
#1079603.
When you upgrade from previous version of qemu-user or qemu-user-static
packages, there should be no change in behavour. However, new qemu-user
does not provide binary names with "-static" suffix, for example, an
interpretator for aarch64 is named qemu-aarch64, not qemu-aarch64-static
(the same way it has always been in qemu-user, before this version when
it has become static, and it still is). In order to retain compatibility
with previous version, qemu-user-static package now ships just the
compatibility names (symlinks) with -static suffix.
Also, qemu-user-static now depends on qemu-user-binfmt package, which
just enables binfmt registation of qemu-user binary formats with
binfmt-misc kernel subsystem (the formats themselves are shipped by
qemu-user now, but are not enabled).
If you only need qemu in context of in-kernel binfmt-misc subsystem
(to run foreign binaries automatically), you need just qemu-user-binfmt
package (which also installs qemu-user). In this case, you can safely
remove this qemu-user-static package.
However, if you rely on the naming with -static suffix, you might want to
keep qemu-user-static package installed.
Long term, the intent is to drop this qemu-user-static package, which has
become just a compatibility wrapper around real work done now in qemu-user
and qemu-user-binfmt packages.
-- Michael Tokarev <mjt@tls.msk.ru> Fri, 06 Sep 2024 13:38:02 +0300

3
debian/qemu-user-static.install vendored Normal file
View file

@ -0,0 +1,3 @@
debian/qemu-user-static.1 usr/share/man/man1/
debian/qemu-debootstrap usr/sbin
debian/qemu-debootstrap.1 usr/share/man/man1/

37
debian/qemu-user.1 vendored Normal file
View file

@ -0,0 +1,37 @@
.TH qemu\-user\ 1 2007-02-08 "0.9.0" Debian
.SH NAME
qemu\-user\ \- QEMU User Emulator (static version)
.SH SYNOPSIS
.B qemu\-user\
.RI [ options ]
.I program
.RI [ program-arguments... ]
.SH DESCRIPTION
The
.B qemu\-user\
emulator can run binaries for other architectures but with the same operating
system as the current one.
.SH OPTIONS
.TP
.BR \-h
Print this help.
.TP
.BR \-g " \fI<port>\fP"
Wait gdb connection to port \fIport\fP.
.TP
.BR \-L " \fI<path>\fP"
Set the elf interpreter prefix (default=\fI/etc/qemu\-binfmt/%M\fP).
.TP
.BR \-s " \fI<size>\fP"
Set the stack size in bytes (default=\fI524288\fP).
.TP
.BR \-d " \fI<options>\fP"
Activate log (logfile=\fI/tmp/qemu.log\fP)
.TP
.BR \-p " \fI<pagesize>\fP"
Set the host page size to 'pagesize'.
.SH SEE ALSO
.BR qemu-system (1)
(in qemu-system-common package).
.SH AUTHOR
This manual page was written by Guillem Jover <guillem@debian.org>.

33
debian/qemu-user.README.Debian vendored Normal file
View file

@ -0,0 +1,33 @@
Historically, there were different naming in use for the
same architectures within different groups/projects. For
example, amd64 architecture (Debian name) is also known as
x86_64; arm64 and aarch64; and so on. Qemu used one way
to name the binaries, debian used another, some architectures
are named the same way, while for other architectures there's
a difference.
Starting with debian qemu-user package version 8.0, we
provide debian-compatible naming scheme for qemu-$arch
binaries, to be used as qemu-${DEB_HOST_ARCH}. For
example, qemu-armel is a symlink for qemu-arm.
In particular, the following extra names are provided:
amd64 => x86_64
arm64 => aarch64
armhf => arm
armel => arm
loong64 => loongarch64
powerpc => ppc
ppc64el => ppc64
The other names do match between qemu and debian.
There's another name which is also provided but which is
neither in debian nor in qemu: it is ppc64le, which is
the name used for this architecture in the linux kernel.
starting with version 9.0.2+ds-7, qemu-user provides
statically linked binaries which were previously provided
by qemu-user-static, while dynamic binaries are not built
anymore.

3
debian/qemu-user.install vendored Normal file
View file

@ -0,0 +1,3 @@
docs/user/main.rst usr/share/doc/qemu-user/
b/docs/user/main.html usr/share/doc/qemu-user/
debian/qemu-user.1 usr/share/man/man1/

7
debian/qemu-user.lintian-overrides vendored Normal file
View file

@ -0,0 +1,7 @@
qemu-user: spelling-error-in-binary addd add *usr/bin/qemu-*
qemu-user: spelling-error-in-binary nott not *usr/bin/qemu-*
qemu-user: spelling-error-in-binary wtH with *usr/bin/qemu-mips*
qemu-user: spare-manual-page [usr/share/man/man1/qemu-user.1.gz]
# these are static-pic executables, not shared executables:
qemu-user: shared-library-lacks-prerequisites *usr/bin/qemu-*
qemu-user: statically-linked-binary *usr/bin/qemu-*

15
debian/qemu-utils.NEWS vendored Normal file
View file

@ -0,0 +1,15 @@
qemu (1:2.2+dfsg-6exp) unstable; urgency=medium
Since Debian release 2.2+dfsg-6exp, a new package named qemu-block-extra
has been created and some less frequently used block backends has been
split out of main qemu-system binaries and from qemu-img binary to
this new package. The backends which has been split are:
curl
iscsi
rbd (ceph/rados)
ssh
If you use any of these, please install qemu-block-extra package in
addition to qemu-system-* or qemu-utils package, because without it
these block backends won't work anymore.
-- Michael Tokarev <mjt@tls.msk.ru> Mon, 27 Apr 2015 09:29:55 +0300

14
debian/qemu-utils.install vendored Normal file
View file

@ -0,0 +1,14 @@
usr/bin/qemu-img
b/docs/qemu-img.1 usr/share/man/man1/
b/docs/tools/qemu-img.html usr/share/doc/qemu-utils/
usr/bin/qemu-nbd
b/docs/qemu-nbd.8 usr/share/man/man8/
b/docs/tools/qemu-nbd.html usr/share/doc/qemu-utils/
usr/bin/qemu-io
debian/qemu-io.1 usr/share/man/man1/
usr/bin/qemu-storage-daemon
b/docs/qemu-storage-daemon.1 usr/share/man/man1/
b/docs/tools/qemu-storage-daemon.html usr/share/doc/qemu-utils/
b/docs/qemu-storage-daemon-qmp-ref.7 usr/share/man/man7/
b/docs/interop/qemu-storage-daemon-qmp-ref.html usr/share/doc/qemu-utils/
b/docs/qemu-block-drivers.7 usr/share/man/man7/

771
debian/rules vendored Executable file
View file

@ -0,0 +1,771 @@
#!/usr/bin/make -f
SHELL = /bin/sh -e
# stop python from generating .pyc caches
export PYTHONDONTWRITEBYTECODE=1
# in order to keep output non-intermixed together, disable parallel building
# of different targets in this d/rules but allow running parallel submakes
.NOTPARALLEL:
# this includes pkg-info.mk and defines VENDOR (debian|ubuntu):
include debian/control.mk
ifeq ($(and ${DEB_HOST_MULTIARCH},${DEB_HOST_ARCH}),)
# Fast version of dpkg/architecture.mk defining all vars in one go
$(foreach d, $(shell dpkg-architecture | sed 's/=/?=/'), $(eval export $d))
endif
# we build in a sub-subdir so strip that from file paths too
export DEB_CFLAGS_MAINT_APPEND = -ffile-prefix-map=../../=
# Disable LTO on non-amd64 builds, see:
# https://bugs.launchpad.net/ubuntu/+source/qemu/+bug/1921664
# https://issues.redhat.com/browse/RHEL-7385
ifneq ($(DEB_HOST_ARCH),amd64)
export DEB_BUILD_MAINT_OPTIONS += optimize=-lto
endif
# get CFLAGS LDFLAGS etc (should come after DEB_*MAINT*)
include /usr/share/dpkg/buildflags.mk
# DEB_BUILD_OPTIONS=parallel=N
MAKEFLAGS += $(subst parallel=,-j,$(filter parallel=%,${DEB_BUILD_OPTIONS}))
NUMJOBS := $(lastword 1 $(subst -j,,$(filter -j%,${MAKEFLAGS})))
# verbose build
V := $(if $(filter terse, ${DEB_BUILD_OPTIONS}),,1)
NINJA = ninja $(if $V,-v) -j${NUMJOBS}
MESON = meson
# list of packages we're supposed to build
BUILD_PACKAGES := $(shell dh_listpackages)
enable-system = $(if $(filter qemu-system,${BUILD_PACKAGES}),y)
enable-user = $(if $(filter qemu-user,${BUILD_PACKAGES}),y)
QEMU_XEN = /usr/libexec/xen-qemu-system-i386
PKGVERSION = Debian ${DEB_VERSION}
sysdatadir = /usr/share/qemu
sysdataidir = debian/qemu-system-data${sysdatadir}
libdir = /usr/lib/${DEB_HOST_MULTIARCH}
mandir = /usr/share/man
man1dir = ${mandir}/man1
FIRMWAREPATH = /usr/share/qemu:/usr/share/seabios:/usr/lib/ipxe/qemu
export cross_prefix_alpha = alpha-linux-gnu-
export cross_prefix_aarch64 = aarch64-linux-gnu-
export cross_prefix_arm = arm-linux-gnueabi-
export cross_prefix_hppa = hppa-linux-gnu-
export cross_prefix_hppa64 = hppa64-linux-gnu-
export cross_prefix_i386 = i686-linux-gnu-
export cross_prefix_loongarch64 = loongarch64-linux-gnu-
export cross_prefix_ppc = powerpc-linux-gnu-
export cross_prefix_ppc64 = powerpc64-linux-gnu-
export cross_prefix_riscv64 = riscv64-linux-gnu-
export cross_prefix_s390x = s390x-linux-gnu-
extra-cflags = ${CFLAGS} ${CPPFLAGS}
extra-ldflags = ${LDFLAGS} -Wl,--as-needed
# we add another set of configure options from debian/control
common_configure_opts = \
--with-pkgversion="$(PKGVERSION)" \
--prefix=/usr \
--sysconfdir=/etc \
--libdir=${libdir} \
--libexecdir=/usr/lib/qemu \
--firmwarepath=${FIRMWAREPATH} \
--localstatedir=/var \
--mandir=${mandir} \
--disable-install-blobs \
--disable-strip \
--localstatedir=/var \
--disable-download \
--disable-containers \
--disable-relocatable \
--disable-docs \
${empty}
# this disables building of qemu-keymap tool (!)
# qemu-keymap might be helpful for qemu-system -k <lang>
# but is -k flag useful these days?
common_configure_opts += --disable-xkbcommon
# Cross compiling support
ifneq ($(DEB_BUILD_GNU_TYPE), $(DEB_HOST_GNU_TYPE))
common_configure_opts += --cross-prefix=$(DEB_HOST_GNU_TYPE)-
endif
comma:=,
# system-packages, system-archlist-$pkg, system-alias-$arch, system-kvm
# are defined in d/control.mk
# qemu-system subpackages
define install-all-system
$(foreach p,${system-packages},\
$(call install-system,qemu-system-$p,${system-archlist-$p}\
,$(strip $(foreach a,${system-archlist-$p},$(if $(filter $a ${system-alias-$a},${DEB_HOST_ARCH_CPU}),$a)))))
endef
# install-system qemu-system-$pkg, ${system-archlist-$pkg}, [native-qemu-arch]
# install qemu-arch-list binaries with manpages and aliases into pkg
# install kvm link to qemu-system-${kvm-link} if it is not empty
# fills in qemu:Provides and qemu:archlist substvars
define install-system
# ==== installing $1 ===
dh_installdirs -p $1 usr/bin ${man1dir}
mv -t debian/$1/usr/bin/ $(addprefix debian/tmp/usr/bin/qemu-system-, $2)
$(foreach q, $2,\
echo ".so man1/qemu-system.1" > debian/$1${man1dir}/qemu-system-$q.1
)
dh_link -p $1 \
$(foreach q, $2, \
$(if $(filter $3,${system-kvm}), \
usr/bin/qemu-system-$3 usr/bin/kvm \
${man1dir}/qemu-system-$3.1 ${man1dir}/kvm.1) \
$(foreach a, ${system-alias-$q}, \
usr/bin/qemu-system-$q usr/bin/qemu-system-$a \
${man1dir}/qemu-system-$q.1 ${man1dir}/qemu-system-$a.1 \
))
${# note: older make does not understand line-splitting inside $(functions ..)}
echo 'qemu:Provides=$(if $3,qemu-system-native (=${DEB_VERSION})${comma})\
$(if $(filter $3,${system-kvm}),qemu-kvm (=${DEB_VERSION})${comma})\
$(patsubst %,% (=${DEB_VERSION})${comma},$(filter-out $1, $(patsubst %, qemu-system-%, any $2 $(foreach q,$2,${system-alias-$q}))))' \
| tr _ - >> debian/$1.substvars
echo 'qemu:Conflicts=$(if $(filter $3,${system-kvm}),qemu-kvm)' >> debian/$1.substvars
${# construct list `arch1 arch2 (alias) arch3..' for Description and word-wrap it}
list='$(foreach q,$2,$q$(if ${system-alias-$q}, (${system-alias-$q})))'; \
len2=$$(($${#list}/2)); \
if [ $$len2 -gt 36 ]; then \
while expr substr "$$list" $$len2 1 != " " >/dev/null; do len2=$$(($$len2+1)); done; \
list="$$(expr substr "$$list" 1 $$(($$len2-1)))\$${Newline} $$(expr substr "$$list" $$(($$len2+1)) $$len2)"; \
fi; \
echo "qemu:archlist=$$list" >> debian/$1.substvars
dh_installdocs -p $1 --link-doc=qemu-system-common
${# keep empty line at the end }
endef
sysdata-components :=
qemu-builds :=
# several builds of qemu binaries:
##############################################
# main system and tools build
configure-qemu: b/qemu/configured
b/qemu/configured: configure
rm -rf b/qemu; mkdir -p b/qemu
cd b/qemu && \
../../configure ${common_configure_opts} \
--extra-cflags="${extra-cflags}" \
--extra-ldflags="${extra-ldflags}" \
--$(if ${enable-system},enable,disable)-system \
--$(if $(filter qemu-guest-agent,${BUILD_PACKAGES}),enable,disable)-guest-agent \
--disable-user --disable-linux-user \
--enable-tools \
--disable-xen \
--enable-modules \
$(if ${enable-system},--enable-module-upgrades) \
$(shell sh debian/extract-config-opts \
$(DEB_HOST_ARCH_OS)-$(DEB_HOST_ARCH) debian/control) \
${QEMU_CONFIGURE_OPTIONS} || \
{ tail -n20 config.log meson-logs/meson-log.txt && false; }
touch $@
build-qemu: b/qemu/built
b/qemu/built: b/qemu/configured
${NINJA} -C b/qemu
touch $@
ifeq (,$(findstring nocheck, ${DEB_BUILD_OPTIONS} ${DEB_BUILD_PROFILES}))
ifeq (${enable-system},y)
ifneq (sparc64,${DEB_HOST_ARCH}) # tests are broken on sparc64
build-qemu: b/qemu/tested
endif
endif
endif
test-qemu: b/qemu/tested
b/qemu/tested: b/qemu/built
# ======== begin testing ========
rm -rf b/qemu/qemu-bundle
QEMU_MODULE_DIR=${CURDIR}/b/qemu \
${MESON} test -C b/qemu --suite=block -t2 \
--num-processes=${NUMJOBS} --no-rebuild --print-errorlogs
# ========= end testing =========
touch $@
install-qemu: build-qemu
DESTDIR=${CURDIR}/debian/tmp \
${NINJA} -C b/qemu install
# remove qtest "accel" modules
rm -f debian/tmp${libdir}/qemu/accel-qtest-*.so
ifeq (${enable-system},y)
$(call install-all-system)
ifneq ($(filter ${DEB_HOST_ARCH},amd64 i386),)
# qemu-vmsr-helper is x86-specific
install -m0755 -D -t debian/qemu-system-common/usr/bin/ \
debian/tmp/usr/bin/qemu-vmsr-helper
rm debian/tmp/usr/bin/qemu-vmsr-helper
install -m0644 -p -D -t debian/qemu-system-common/usr/lib/systemd/system/ \
contrib/systemd/qemu-vmsr-helper.service \
contrib/systemd/qemu-vmsr-helper.socket
endif
ifeq ($(DEB_HOST_ARCH_OS),linux)
ifeq (${VENDOR},ubuntu)
ifneq ($(filter ${DEB_HOST_ARCH},amd64 i386),)
# on ubuntu *-spice existed, may be used in libvirt xml and scripts - keep links for compatibility
# The sunset for this will be when Ubuntu-Bionic goes out of support which is expected to happen in 2028
install -m0644 -p -t debian/qemu-system-x86/usr/bin debian/kvm-spice debian/qemu-system-x86_64-spice
install -m0644 -p -t debian/qemu-system-x86/usr/share/man/man1/ debian/kvm-spice.1
echo ".so man1/kvm-spice.1" > debian/qemu-system-x86/usr/share/man/man1/qemu-system-x86_64-spice.1
endif # x86
# apport hook is ubuntu-specific
install -m0644 -p -D -t debian/qemu-system-common/usr/share/apport/package-hooks/ \
debian/source_qemu.py
endif # ubuntu
endif # linux
else # !enable-system
# qemu-system manpage is built regardless of system target
rm -fv debian/tmp/usr/share/man/man1/qemu.1
# vmsr-helper is built even if --disable-system
rm -fv debian/tmp/usr/bin/qemu-vmsr-helper
endif # enable-system
ifneq (,$(filter qemu-block-supplemental,${BUILD_PACKAGES}))
mkdir -p debian/qemu-block-supplemental/${libdir}/qemu
mv \
debian/tmp/${libdir}/qemu/block-gluster.so \
debian/tmp/${libdir}/qemu/block-blkio.so \
debian/qemu-block-supplemental/${libdir}/qemu
ifeq (${enable-system},y)
sh debian/gen-module-upgrade.sh qemu-block-supplemental "${PKGVERSION}" ${libdir}/qemu
endif
endif
ifneq (,$(filter qemu-block-extra,${BUILD_PACKAGES}))
mkdir -p debian/qemu-block-extra/${libdir}/qemu
mv debian/tmp/${libdir}/qemu/block-*.so \
debian/qemu-block-extra/${libdir}/qemu
ifeq (${enable-system},y)
sh debian/gen-module-upgrade.sh qemu-block-extra "${PKGVERSION}" ${libdir}/qemu
endif
endif
qemu-builds += qemu
##############################################
# microvm build:
configure-microvm: b/microvm/configured
b/microvm/configured: configure debian/microvm-devices.mak
rm -rf b/microvm; mkdir -p b/microvm
cp -up debian/microvm-devices.mak configs/devices/x86_64-softmmu/microvm.mak
cd b/microvm && \
../../configure ${common_configure_opts} \
--extra-cflags="${extra-cflags} -DCONFIG_MICROVM_DEFAULT=1" \
--extra-ldflags="${extra-ldflags}" \
--without-default-features \
--target-list=x86_64-softmmu --enable-kvm --disable-tcg \
--enable-pixman --enable-vnc \
--enable-virtfs \
--enable-linux-aio --enable-linux-io-uring \
--enable-numa \
--enable-attr \
--enable-coroutine-pool \
--audio-drv-list="" \
--without-default-devices \
--with-devices-x86_64=microvm \
--enable-vhost-kernel --enable-vhost-net \
--enable-vhost-vdpa \
--enable-vhost-user --enable-vhost-user-blk-server \
--enable-vhost-crypto \
--enable-seccomp \
${QEMU_MICROVM_CONFIGURE_OPTIONS}
touch $@
build-microvm: b/microvm/qemu-system-x86_64
b/microvm/qemu-system-x86_64: b/microvm/configured
${NINJA} -C b/microvm qemu-system-x86_64
install-microvm: b/microvm/qemu-system-x86_64
cp b/microvm/qemu-system-x86_64 debian/qemu-system-x86/usr/bin/qemu-system-x86_64-microvm
echo ".so man1/qemu-system.1" > debian/qemu-system-x86/usr/share/man/man1/qemu-system-x86_64-microvm.1
# build microvm on amd64 only if system build is enabled
qemu-builds += $(if $(filter ${DEB_HOST_ARCH}-${enable-system},amd64-y),microvm)
##############################################
# xen build (amd64 arch only, i386-softmmu target only)
configure-xen: b/xen/configured
b/xen/configured: configure
# system build for qemu-system-xen
rm -rf b/xen; mkdir -p b/xen
cd b/xen && \
../../configure ${common_configure_opts} \
--extra-cflags="${extra-cflags}" \
--extra-ldflags="${extra-ldflags}" \
--disable-tools \
--without-default-features \
--enable-avx2 \
--enable-xen --target-list=i386-softmmu \
--enable-xen-pci-passthrough \
--disable-tcg --disable-kvm \
--audio-drv-list= \
--enable-libusb \
--enable-pixman --enable-vnc --enable-vnc-jpeg \
--enable-spice \
--enable-virtfs --enable-attr --enable-cap-ng \
${QEMU_XEN_CONFIGURE_OPTIONS}
touch $@
build-xen: b/xen/built
b/xen/built: b/xen/configured
${NINJA} -C b/xen qemu-system-i386
touch $@
install-xen: b/xen/built
install -m0755 -D b/xen/qemu-system-i386 \
debian/qemu-system-xen${QEMU_XEN}
qemu-builds += $(if $(filter qemu-system-xen,${BUILD_PACKAGES}),xen)
##############################################
# user build (static)
# user-targets is defined in d/control.mk
configure-user: b/user/configured
b/user/configured: configure
# do not use debian/configure-opts here, all optional stuff will be enabled
# automatically, dependencies are already verified in the main build
# See LP:#1908331 for --static-pie (the default in qemu) and #1053101
# See https://sourceware.org/bugzilla/show_bug.cgi?id=29514
# use --disable-pie on i386 for now due to #1056739
# (maybe also add arm64 here for gcc12)
rm -rf b/user; mkdir -p b/user
cd b/user && \
../../configure ${common_configure_opts} \
--extra-cflags="${extra-cflags} -DPROVIDE_STUBS_FOR_STATIC" \
--extra-ldflags="${extra-ldflags} -Wl,-Map=%.map,--no-print-map-discarded" \
--static \
$(if $(filter i386,${DEB_HOST_ARCH}),--disable-pie) \
--disable-plugins \
--target-list="$(addsuffix -linux-user,${user-targets})"
touch $@
build-user: b/user/built
b/user/built: b/user/configured
# we use this invocation to build just the binaries
${NINJA} -C b/user $(addprefix qemu-,${user-targets})
touch $@
# aliases for missing ${DEB_HOST_ARCH} names in qemu-user:
user-alias-aarch64 = arm64
user-alias-arm = armel armhf
user-alias-loongarch64 = loong64
user-alias-ppc = powerpc
user-alias-ppc64le = ppc64el
user-alias-x86_64 = amd64
install-user: b/user/built
install -m0755 -t debian/qemu-user/usr/bin/ -D \
$(patsubst %,b/user/qemu-%,${user-targets})
dh_link -p qemu-user \
$(foreach t,${user-targets},\
${man1dir}/qemu-user.1 ${man1dir}/qemu-$t.1 \
$(foreach a,${user-alias-$t},\
usr/bin/qemu-$t usr/bin/qemu-$a \
${man1dir}/qemu-$t.1 ${man1dir}/qemu-$a.1\
))
dh_installdocs -p qemu-user-binfmt --link-doc=qemu-user
./debian/binfmt-install ${user-targets}
# build a Built-Using substvar:
echo "built-using=$$(\
grep -h ^/usr/lib b/user/qemu-*.map ${# all system libs} | \
cut -d'(' -f1 ${# strip trailing (file.o)} | \
sort -u ${# unique filenames} | \
xargs realpath ${# resolve ../} | \
xargs dpkg-query -S ${# get package names} | \
sed 's/: .*//' ${# strip trailing ': filename'} | \
sort -u ${# unique packages} | \
xargs dpkg-query -f '$${source:Package} (= $${source:Version}),' -W)" \
> debian/qemu-user.substvars
# compatibility symlinks for qemu-user-static (no manpage links for aliases):
dh_link -p qemu-user-static \
$(foreach t,${user-targets}, \
usr/bin/qemu-$t usr/bin/qemu-$t-static \
${man1dir}/qemu-user-static.1 ${man1dir}/qemu-$t-static.1 \
$(foreach a,${user-alias-$t}, \
usr/bin/qemu-$t-static usr/bin/qemu-$a-static \
))
qemu-builds += $(if ${enable-user},user)
##############################################
# docs: build it with sphinx directly
# two sphinx should not run in parallel!
docdir := b/docs
sphinx-build = CONFDIR=/etc/qemu sphinx-build -j auto \
-Dversion="$$(cat VERSION)" -Drelease="${PKGVERSION}" \
-d ${docdir}/manual.p ${CURDIR}/docs ${docdir}
${docdir}/qemu-system.1:
${sphinx-build} -b man
# fixup the q-s-d manpage
sed -i 's/\\fBqemu(1)\\fP manual page/\\fBqemu-system(1)\\fP manual page (in qemu-system-common package)/' \
${docdir}/qemu-storage-daemon.1
mv ${docdir}/qemu.1 ${docdir}/qemu-system.1
${docdir}/html-built:
${sphinx-build} -b html
# remove links to user/* from the main index
sed -i '/href="user\//D' ${docdir}/index.html
touch $@
build-html: ${docdir}/html-built
install-html: build-html
build-man: ${docdir}/qemu-system.1
install-man: build-man
##############################################
# qemu-system-for-host dep-only package
# find the qemu-system-foo package which contains the right binary:
#qemu-system-for-host=$(strip \
# $(foreach p,${system-packages},\
# $(if \
# $(filter \
# ${system-archlist-$p} $(foreach a,${system-archlist-$p},${system-alias-$a}),\
# ${DEB_HOST_ARCH_CPU}),\
# qemu-system-$p)))
install-qemu-system-for-host:
# $(if ${qemu-system-for-host},,$(error no qemu-system-for-host found for ${DEB_HOST_ARCH_CPU}))
# echo 'qemu-for-host=${qemu-system-for-host}'
echo 'qemu:for-host=qemu-system-${DEB_HOST_ARCH_CPU}' \
>> debian/qemu-system-for-host.substvars
dh_installdocs -p qemu-system-for-host --link-doc=qemu-system-common
configure-qemu-system-for-host:
build-qemu-system-for-host:
qemu-builds += $(filter ${BUILD_PACKAGES},qemu-system-for-host)
##############################################
# common rules
qemu-builds += man html
.PHONY: $(addprefix configure-, ${qemu-builds}) \
$(addprefix build-, ${qemu-builds}) \
$(addprefix install-, ${qemu-builds}) \
configure-arch build-arch test-qemu \
pre-install-arch install-arch binary-arch
configure-arch: $(addprefix configure-, ${qemu-builds})
build-arch: $(addprefix build-, ${qemu-builds})
pre-install-arch:
dh_testroot
dh_prep -a
dh_installdirs -a
install-arch: pre-install-arch $(addprefix install-, ${qemu-builds})
dh_install -a
dh_missing -a
dh_installdocs -a
dh_installchangelogs -a
dh_installman -a
dh_link -a
dh_installinit -pqemu-guest-agent
dh_installsystemd -pqemu-guest-agent --no-enable
dh_installudev -pqemu-guest-agent
dh_lintian -a
dh_strip_nondeterminism -a
dh_compress -a
dh_fixperms -a
dh_dwz -a
dh_strip -a
# qemu-user contains static binaries only, but they might be built
# as static-pie executables and dpkg-shlibdeps complains. Just omit it here.
dh_shlibdeps -a -Nqemu-user
binary-arch: install-arch binary-helper
binary-arch: a=-a
##############################################
### firmware, qemu-user-data package
### main qemu arch-indep build
# we configure qemu in b/data with default options, so that various
# subcomponents can be built from the main qemu source
b/data/.configured: | b
rm -rf b/data; mkdir -p b/data
cd b/data && ../../configure --skip-meson
touch $@
### linux-user vdso rules
# build vdso-archive containing all our vdso files and include it
# in qemu-user-data to be used when building arch-dependent packages,
# to avoid requiring all cross-compilers on every host architecture.
# Do not remove pre-built vdso files from .orig.tar.gz, because dak
# is picky about build-time deps on packages from the same source
# (we should be able to build without depending on ourselves).
# For this, pkg.qemu.use-upstream-vdso build profile is recognized
# (we do not rebuild or embed vdso files if it is enabled).
# Alternative is to enable pkg.qemu.omit-vdso-build-dep profile
# and build both arch and indep parts in one go, so that a rebuild
# of vdso files for arch-indep step is used in arch step too.
# ${vdso-files} are defined in d/control.mk
vdso-subdirs := $(sort $(dir ${vdso-files}))
vdso-archive = linux-user-vdso.tar.gz
build-vdso: b/${vdso-archive}
# build-vdso is to make multi-line expantion, not possible with inline $(foreach)
define build-vdso
rm -f ${vdso-files}
$(foreach d,${vdso-subdirs},\
@echo == building vdso for $d:
+${MAKE} -f $d/Makefile.vdso BUILD_DIR=b/data SRC_PATH=.
)
tar -cvzf $@ --owner=0 --group=0 --numeric-owner ${vdso-files}
endef
b/${vdso-archive}: b/data/.configured
$(call build-vdso)
install-vdso: b/${vdso-archive}
install -m0644 -t ${sysdataidir} $<
ifneq (,$(filter $(patsubst %,% %-indep,build install binary), ${MAKECMDGOALS}))
# if we were asked to produce both indep and arch targets, use vdso from local build
b/vdso-updated: b/${vdso-archive}
touch $@
else # else update vdso files from system
b/vdso-updated: ${sysdatadir}/${vdso-archive}
rm -f ${vdso-files}
tar -xvf $<
touch $@
endif
ifeq (,$(filter pkg.qemu.use-upstream-vdso, ${DEB_BUILD_PROFILES}))
sysdata-components += vdso
vdso-clean = ${vdso-files}
b/user/configured: b/vdso-updated
endif # !pkg.qemu.use-upstream-vdso
### x86 optionrom
build-x86-optionrom: b/data/pc-bios/optionrom/.built
b/data/pc-bios/optionrom/.built: b/data/.configured
env -u ELF_PACKAGE_METADATA \
make -C ${@D}
touch $@
install-x86-optionrom: b/data/pc-bios/optionrom/.built
install -m0644 -t ${sysdataidir} ${<D}/*.bin
sysdata-components += x86-optionrom
### s390x firmware in pc-bios/s390-ccw
build-s390x-fw: b/data/pc-bios/s390-ccw/.built
b/data/pc-bios/s390-ccw/.built: b/data/.configured
env -u ELF_PACKAGE_METADATA \
make -C ${@D} V=$V
touch $@
install-s390x-fw: b/data/pc-bios/s390-ccw/.built
install -m0644 -t ${sysdataidir} ${<D}/s390*.img
sysdata-components += s390x-fw
### vof.bin
build-vof: b/data/pc-bios/vof/vof.bin
b/data/pc-bios/vof/vof.bin: b/data/.configured
env -u ELF_PACKAGE_METADATA \
${MAKE} -C ${@D} V=$V ${@F}
install-vof: b/data/pc-bios/vof/vof.bin
install -m0644 -t ${sysdataidir} $<
sysdata-components += vof
### openbios rules
b/openbios/config-host.mak:
mkdir -p b/openbios
cd b/openbios && ../../roms/openbios/config/scripts/switch-arch builtin-ppc builtin-sparc32 builtin-sparc64
build-openbios: $(patsubst %,b/openbios/obj-%/.built, ppc sparc32 sparc64)
b/openbios/obj-%/.built: b/openbios/config-host.mak
env -u ELF_PACKAGE_METADATA \
${MAKE} -C ${@D} V=${V} EXTRACFLAGS="-ffreestanding -fno-pic -fno-stack-protector"
@touch $@
install-openbios: build-openbios
install -m0644 b/openbios/obj-ppc/openbios-qemu.elf ${sysdataidir}/openbios-ppc
install -m0644 b/openbios/obj-sparc32/openbios-builtin.elf ${sysdataidir}/openbios-sparc32
install -m0644 b/openbios/obj-sparc64/openbios-builtin.elf ${sysdataidir}/openbios-sparc64
install -m0644 -t ${sysdataidir} \
b/openbios/obj-sparc32/QEMU,tcx.bin \
b/openbios/obj-sparc32/QEMU,cgthree.bin \
b/openbios/obj-sparc64/QEMU,VGA.bin
sysdata-components += openbios
### powernv firmware in roms/skiboot
build-skiboot: b/skiboot/skiboot.lid
b/skiboot/skiboot.lid: | roms/skiboot/.version
mkdir -p b/skiboot
# skiboot makefiles makes it difficult to *add* an option to CFLAGS.
# Abuse OPTS= for this, with the default being -Os.
grep -q '^OPTS=-Os$$' roms/skiboot/Makefile.main || \
{ echo "review OPTS= in skiboot/Makefile.main"; false; }
env -u ELF_PACKAGE_METADATA \
${MAKE} -C b/skiboot -f ${CURDIR}/roms/skiboot/Makefile \
SRC=${CURDIR}/roms/skiboot \
OPTS='-Os -ffile-prefix-map="${CURDIR}/roms/skiboot/"=' \
CROSS_COMPILE=${cross_prefix_ppc64} V=${V}
install-skiboot: b/skiboot/skiboot.lid
install -m0644 -t ${sysdataidir} $<
sysdata-components += skiboot
### u-boot-e500 (u-boot.e500)
build-u-boot-e500: b/u-boot/build-e500/u-boot
b/u-boot/build-e500/u-boot: | b
cp -alu roms/u-boot b/
${MAKE} -C b/u-boot CROSS_COMPILE=${cross_prefix_ppc} O=build-e500 qemu-ppce500_config
env -u ELF_PACKAGE_METADATA \
${MAKE} -C b/u-boot CROSS_COMPILE=${cross_prefix_ppc} O=build-e500 V=$V
${cross_prefix_ppc}strip $@
install-u-boot-e500: b/u-boot/build-e500/u-boot
install -m0644 $< ${sysdataidir}/u-boot.e500
sysdata-components += u-boot-e500
### u-boot-sam460 (u-boot-sam460-20100605.bin)
build-u-boot-sam460: b/u-boot-sam460ex/u-boot.bin
b/u-boot-sam460ex/u-boot.bin: | b
cp -alu roms/u-boot-sam460ex b/
${MAKE} -C b/u-boot-sam460ex CROSS_COMPILE=${cross_prefix_ppc} Sam460ex_config
env -u LDFLAGS -u OBJCFLAGS -u ELF_PACKAGE_METADATA \
${MAKE} -C b/u-boot-sam460ex CROSS_COMPILE=${cross_prefix_ppc}
# ${cross_prefix_ppc}strip $@
install-u-boot-sam460: b/u-boot-sam460ex/u-boot.bin | ${sysdataidir}
install -m0644 $< ${sysdataidir}/u-boot-sam460-20100605.bin
sysdata-components += u-boot-sam460
### qboot, aka bios-microvm
build-qboot: b/qboot/bios.bin
b/qboot/bios.bin: | b
rm -rf b/qboot
meson setup roms/qboot b/qboot
env -u ELF_PACKAGE_METADATA \
${NINJA} -C b/qboot
install-qboot: b/qboot/bios.bin
install -m0644 $< ${sysdataidir}/qboot.rom
sysdata-components += qboot
### alpha firmware in roms/palcode-clipper
build-palcode-clipper: b/qemu-palcode/palcode-clipper
b/qemu-palcode/palcode-clipper: | b
cp -al roms/qemu-palcode b/
#XXX #1019011 (remove OPT= alternative when fixed)
env -u ELF_PACKAGE_METADATA \
${MAKE} -C b/qemu-palcode CROSS=${cross_prefix_alpha} -k || \
${MAKE} -C b/qemu-palcode CROSS=${cross_prefix_alpha} OPT=-O1
${cross_prefix_alpha}strip b/qemu-palcode/palcode-clipper
install-palcode-clipper: b/qemu-palcode/palcode-clipper
install -m0644 $< ${sysdataidir}/palcode-clipper
sysdata-components += palcode-clipper
### SLOF
build-slof: b/SLOF/boot_rom.bin
b/SLOF/boot_rom.bin: | b
cp -al roms/SLOF b/
env -u LDFLAGS -u CFLAGS -u ELF_PACKAGE_METADATA \
$(MAKE) -C b/SLOF qemu CROSS=${cross_prefix_ppc64} V=${V}
install-slof: b/SLOF/boot_rom.bin
install -m0644 $< ${sysdataidir}/slof.bin
sysdata-components += slof
### hppa-firmware (roms/seabios-hppa)
build-hppa-fw: b/hppa-fw/.built
b/hppa-fw/.built: | b
rm -rf $(dir $@)
cp -al roms/seabios-hppa $(dir $@)
env -u ELF_PACKAGE_METADATA \
${MAKE} PYTHON=python3 OUT=o32/ BITS=32 BIT_SUFFIX= CROSS_PREFIX=${cross_prefix_hppa} -C $(dir $@) -f Makefile.parisc all
${cross_prefix_hppa}strip -R.note -R.comment $(dir $@)o32/hppa-firmware.img
env -u ELF_PACKAGE_METADATA \
${MAKE} PYTHON=python3 OUT=o64/ BITS=64 BIT_SUFFIX=64 CROSS_PREFIX=${cross_prefix_hppa64} -C $(dir $@) -f Makefile.parisc all
${cross_prefix_hppa64}strip -R.note -R.comment $(dir $@)o64/hppa-firmware64.img
touch $@
install-hppa-fw: b/hppa-fw/.built
install -m0644 -t ${sysdataidir} \
$(dir $<)o32/hppa-firmware.img \
$(dir $<)o64/hppa-firmware64.img
sysdata-components += hppa-fw
### vbootrom (npcm7xx, npcm8xx)
build-vbootrom: b/vbootrom/.built
b/vbootrom/.built: | b
cp -pa roms/vbootrom b/
env -u ELF_PACKAGE_METADATA \
${MAKE} -C b/vbootrom/npcm7xx CROSS_COMPILE=${cross_prefix_arm}
env -u ELF_PACKAGE_METADATA \
${MAKE} -C b/vbootrom/npcm8xx CROSS_COMPILE=${cross_prefix_aarch64}
touch $@
install-vbootrom: build-vbootrom
install -m0644 \
b/vbootrom/npcm7xx/npcm7xx_bootrom.bin \
b/vbootrom/npcm8xx/npcm8xx_bootrom.bin \
-t ${sysdataidir}/
sysdata-components += vbootrom
### misc firmware
build-misc: b/misc/.built
b/misc/.built:
mkdir -p b/misc
dtc -o b/misc/bamboo.dtb pc-bios/bamboo.dts
dtc -o b/misc/canyonlands.dtb pc-bios/canyonlands.dts
dtc -o b/misc/petalogix-ml605.dtb pc-bios/petalogix-ml605.dts
dtc -o b/misc/petalogix-s3adsp1800.dtb pc-bios/petalogix-s3adsp1800.dts
touch $@
install-misc: build-misc
install -m0644 b/misc/bamboo.dtb b/misc/canyonlands.dtb \
-D -t ${sysdataidir}
install -m0644 b/misc/petalogix-ml605.dtb b/misc/petalogix-s3adsp1800.dtb \
-D -t debian/qemu-system-misc/usr/share/qemu/
# icon for gtk ui
install -Dp -m0644 ui/icons/qemu.svg \
-t debian/qemu-system-data/usr/share/icons/hicolor/scalable/apps/
install -Dp -m0644 ui/qemu.desktop \
-t debian/qemu-system-data/usr/share/applications/
# icon for sdl2 ui (non-sdl-image version)
install -Dp -m0644 ui/icons/qemu_32x32.bmp \
debian/qemu-system-data/usr/share/icons/hicolor/32x32/apps/qemu.bmp
install -Dp -m0644 -t debian/qemu-system-data/usr/share/qemu/keymaps/ \
$$(ls -1 pc-bios/keymaps/* | fgrep -v /meson.build)
sysdata-components += misc
sysdata-components += html
${sysdataidir}:
mkdir -p -m0755 $@
b:
mkdir -p $@
.PHONY: $(addprefix build- , ${sysdata-components}) \
$(addprefix install-, ${sysdata-components}) \
build-indep pre-install-indep install-indep binary-indep
$(addprefix build- , ${sysdata-components}): | b
$(addprefix install-, ${sysdata-components}): | ${sysdataidir}
build-indep: $(addprefix build-, ${sysdata-components})
pre-install-indep:
dh_testroot
# dh_prep might undo ${sysdataidir} creation, or even some install-foo?
dh_prep -i -v
mkdir -p -m0755 ${sysdataidir}
install-indep: pre-install-indep $(addprefix install-, ${sysdata-components})
dh_install -i
dh_installdocs -i
dh_installchangelogs -i
dh_lintian -i
dh_compress -i -Xusr/share/doc/qemu-system-common/config
dh_fixperms -i
binary-indep: install-indep binary-helper
binary-indep: a=-i
build: build-arch build-indep
install: install-arch install-indep
binary: install-arch install-indep binary-helper
binary: a=
binary-helper:
dh_installdeb $a
dh_gencontrol $a
dh_md5sums $a
dh_builddeb $a
clean: debian/control
dh_clean b/ ${vdso-clean} \
configs/devices/x86_64-softmmu/microvm.mak \
.PHONY: build install binary binary-helper clean

1
debian/source/format vendored Normal file
View file

@ -0,0 +1 @@
3.0 (quilt)

17
debian/source/lintian-overrides vendored Normal file
View file

@ -0,0 +1,17 @@
# deliberate spacing to align Breaks & Replaces
qemu source: debian-control-has-unusual-field-spacing Breaks *
qemu source: debian-control-has-unusual-field-spacing Replaces *
# we have a ton of files with long lines, just shut up this warning
qemu source: very-long-line-length-in-source-file *
qemu source: package-does-not-install-examples *roms/*/examples/*
# we refer to versioned Provides coming from the same source so it's ok
qemu source: version-substvar-for-external-package Depends ${binary:Version} qemu-* -> qemu-system-any *
# yes we do NOT use dh sequencer.
# dh exports CFLAGS et all, which breaks firmware compilation badly
# also, it makes whole thing recursive, uncontrollable and hidden,
# hence difficult to debug.
qemu source: no-dh-sequencer [debian/rules]
# the source is available in linux-user/*/vdso.S:
qemu source: source-is-missing [linux-user/*/vdso*.so]
# we have long field indeed
qemu source: field-too-long Build-Depends-Arch (5*

25
debian/source_qemu.py vendored Normal file
View file

@ -0,0 +1,25 @@
'''apport package hook for qemu
(c) 2009 Canonical Ltd.
'''
from apport.hookutils import *
import subprocess
def cmd_pipe(command1, command2, input = None, stderr = subprocess.STDOUT, stdin = None):
'''Try to pipe command1 into command2.'''
try:
sp1 = subprocess.Popen(command1, stdin=stdin, stdout=subprocess.PIPE, stderr=stderr, close_fds=True)
sp2 = subprocess.Popen(command2, stdin=sp1.stdout, stdout=subprocess.PIPE, stderr=stderr, close_fds=True)
except OSError as e:
return [127, str(e)]
out = sp2.communicate(input)[0]
return [sp2.returncode,out]
def add_info(report):
attach_hardware(report)
attach_related_packages(report, ['kvm*', '*libvirt*', 'virt-manager', 'qemu*'])
rc,output = cmd_pipe(['ps', '-eo', 'comm,stat,euid,ruid,pid,ppid,pcpu,args'], ['egrep', '(^COMMAND|^qemu|^kvm)'])
if rc == 0:
report['KvmCmdLine'] = output

11
debian/tests/control vendored Normal file
View file

@ -0,0 +1,11 @@
Tests: test-qemu-img.sh
Depends: qemu-utils
Restrictions: superficial
Tests: test-qemu-system.sh
Depends: qemu-system-x86
Restrictions: superficial
Tests: test-qemu-user.sh
Depends: qemu-user
Restrictions: needs-root, breaks-testbed, skippable

37
debian/tests/test-qemu-img.sh vendored Executable file
View file

@ -0,0 +1,37 @@
#!/bin/sh
set -e
cd "$AUTOPKGTEST_TMP"
doit() {
echo "$1:"
shift
echo "$1"
if [ -n "$2" ]; then
out="$($1)"
eval "case \"\$out\" in ( $2 ) echo \"\$out\";; (*) echo \"unexpected output:\"; echo \" want $2\"; echo \" got \$out\"; return 1;; esac"
else
$1
fi
echo ok.
}
doit "Testing if qemu-img creates images" \
"qemu-img create q.raw 12G"
doit "Testing for correct image size" \
"ls -l q.raw" '*\ 12884901888\ *'
fsblock=$(stat -f --format=%S q.raw)
doit "Testing if file is sparse" \
"ls -s --block-size=$fsblock q.raw" '[01]\ *'
doit "Testing if conversion to a qcow2 image works" \
"qemu-img convert -f raw -O qcow2 q.raw q.qcow2"
doit "Checking if image is qcow2" \
'qemu-img info q.qcow2' "*'file format: qcow2'*'size: 12 GiB (12884901888 bytes)'*"
rm -f q.raw q.qcow2

14
debian/tests/test-qemu-system.sh vendored Executable file
View file

@ -0,0 +1,14 @@
#!/bin/sh
set -e
architectures=i386
if [ -x /usr/bin/qemu-system-x86_64 ]; then
architectures="$architectures x86_64"
fi
for ARCH in $architectures; do
echo -n "Checking for pc in ${ARCH}..."
qemu-system-${ARCH} -M help | grep -qs "pc\s\+Standard PC"
echo "done."
done

52
debian/tests/test-qemu-user.sh vendored Executable file
View file

@ -0,0 +1,52 @@
#!/bin/sh
set -e
host=$(dpkg --print-architecture)
# test release architectures
# test 64bit architectures on 64bit host only
release_architectures="amd64 arm64 armel armhf i386 mips64el ppc64el riscv64 s390x"
architectures=
for arch in $release_architectures; do
[ -x /usr/bin/qemu-$arch ] || continue
architectures="$architectures $arch"
[ $arch = $host ] ||
dpkg --add-architecture $arch
done
echo "testing:$architectures"
apt-get update
skipped= failed= mismatch= ok=
for arch in $architectures; do
if ! apt-get install --no-install-recommends -q -y busybox:$arch 2>&1; then
echo "Skipping test for $arch because of busybox:$arch installation problem"
skipped="$skipped $arch"
continue
fi
f=/usr/bin/qemu-$arch
bb=/bin/busybox
echo "=== Checking if $f can run executables:"
echo "glob with sh: $f $bb ash -c \"$f $bb ls -dCFl debian/*[t]*\":"
ls="$($f $bb ash -c "$f $bb ls -dCFl debian/*[t]*")" || failed="$failed $arch"
echo "$ls"
case "$ls" in
(*debian/control*) echo "=== ok."; ok="$ok $arch";;
(*) echo "Expected output not found" >&2;;
esac
done
[ -z "$skipped" ] || echo skipped: $skipped
[ -z "$failed" ] || echo failed: $failed
if [ -n "$ok" ]; then
echo succeeded: $ok
else
exit 77
fi

44
debian/upstream/signing-key.asc vendored Normal file
View file

@ -0,0 +1,44 @@
-----BEGIN PGP PUBLIC KEY BLOCK-----
mQENBFJhQQ8BCAChk4A3y0VfqeGfuhBZK4nvpZP/cSIQntWDheF3Tx7m9CxEGbc+
5aHxfrvm45LSjwPCK020WjeqYX2UFQfcvcjoW6iMbth1BLydu11vx6Gk/CJuB7Ss
8AbyvEXBcOfHbginUdqr4nwLD9e8qlVxRFbSHfbFRbuybZghke4y1pZzekkqbseT
kahkWHxr6o1EGAjyIdjAq1IQxewW6yJ4rkHWsRvfv3sUQTqBU+wT180kdwC8AAv6
q6TX4um0HGR46uJ+5SG8DYb00kRMckQtYpTuwuUmlAvNh/qLg2fVVMEiHBpcuIiV
h7x8INuq94vc+tgxmr0bomIWIZljMQ7vp8ixABEBAAG0IE1pY2hhZWwgUm90aCA8
bWRyb3RoQHV0ZXhhcy5lZHU+iQE4BBMBAgAiBQJSYUEPAhsDBgsJCAcDAgYVCAIJ
CgsEFgIDAQIeAQIXgAAKCRAzU8nO8Qi1hAHFB/9XZo74FYIGrSY814qun2wWF1Ui
wljt6pLrwJfpn5DQJmMRn6ZMAJxXb7S7NE1jVvo0E85m4tykjidWZvrFtTljDBiV
WKA+xHT8ip5+cLIOr5ogwsR7ujC+Rk1u5nb8FIafo3G7V8raXYI6T7sfOCJ+wUUI
s0A3Sw7P7GiAQLuafQ+jAUjg7S0REPNBvGamZ+tIAJxL7bAAACTWe4hZUGodXJuV
Ofk7ic2p5SpeT0E6/Pd2JtAcQdsdpRB4x5M99neRtyEdZO/3SauoHzIoneRxml1Y
rp4hr27Ggr8I9WMomU5E0IMz7HR3fRTQXVd5SsXKLsitUqeKHmTOLn1zuXtUtCFN
aWNoYWVsIFJvdGggPGZsdWtzaHVuQGdtYWlsLmNvbT6JATgEEwECACIFAlJhQl4C
GwMGCwkIBwMCBhUIAgkKCwQWAgMBAh4BAheAAAoJEDNTyc7xCLWEj2cH/21MIyGv
podSPX6e2y6sS0cvZ3rTNTm+qVq3VY2yJlHX8KVcvT6Su9s0yl9J5FdeIkQCqpo4
+U/ANDK4R7rcnHl/gEw21932lVESPMMKhxlLluAb054nrqdwpdjtxf+VZcTt4c4B
zcF/K9po1LgZoOt6HJPxIC+tqYYQrsmrOZUtCJjgOXO6IkadrBmxoFNFxQ4qWB2u
oZ+/HEtceOIb56qNfOj36MtEKVwpScYPAxaePd9lO7P4vlCOx6yIzO3MzEl+Aen7
/NYKU8WwwRnshAlW4GTn2XbrEQeJx4HzSzI5r8xfMOH3JLh/ZVANBR7c5cw1MPe7
1fAj5WzXrr/scJu0KE1pY2hhZWwgUm90aCA8bWRyb3RoQGxpbnV4LnZuZXQuaWJt
LmNvbT6JATgEEwECACIFAlJhQjYCGwMGCwkIBwMCBhUIAgkKCwQWAgMBAh4BAheA
AAoJEDNTyc7xCLWEltAH/37ADf0YFPrJd3gcZyGC/zvtPhYPZ/kxnqoahoBIRF/s
ftGV5XqwwZOGm1Iws/VmTQ0PFBvU+Mw0vNT0HcreRT8PohtRlF+V8umHLVeL6x3C
tmJfsfyYBxLoE5/DLyYqBvpCothLm40ND4O6lRdLF5CUScGhgD1IblvmYBs0Uz71
tFnHmC+Ov3fNC8YkTNymaxnJGYlPtmwUZ7SWh1XRl8pMQzL+3B9Be6ecO3J5lbFm
wL8XYawx0HtayvM5n9VbPy2eawAn++e7bLLywc39YyQ9/ckmSlZqtlUsEuij+h0T
qmr9XY7K8WEHqBJXfl8txIm8DTOqq4dcx3j7k+qwQJC5AQ0EUmFBDwEIAJDxMtsu
9ie8QN7eepcm+WuaY6Zbg3iDdPOOrQ4Ez+4oLaib5FHiZZjikdTsD7hlwcVuuhyE
P2/bT9f29pbsrUVjHRgqJPdcuoOlUzAekgz17895Wh1gRarsbDIJDgs1878OSvIC
/ek++qAWkzU4Sy8Psu9eJMTP6F0nPBOvet+iPwWDZO/dxrf+BnBb9wuBZnihpKMa
v2gJox0iYrqpnFOFlK/XdSYnZNYpIyBin1e+K2CG+TzF2M+KmdZE7FMhnTz95est
AG2kC37VIVkCq8yHNVZqsgyAfMqpB1ayQI2r3FUBM0Hxp6z2+8v/Ezp6zhYCI+Bi
UC7VbrWSSuTlp4UAEQEAAYkBHwQYAQIACQUCUmFBDwIbDAAKCRAzU8nO8Qi1hKWY
B/0R6ct3W2SEyoNuHTTKd5szIJigHYXrsqBa4XQGaVuFz7XZtcIbFFhEHjMrvTJp
BWhuZ091Gp0AjV2ACNi2z+dSpXi16QxdFb1/4us6mFEm86UIu4tcNN1V3WPiODpW
fFkEys/vmqQImLjfSsdxzhMdX7Yen1B3fxiKzwzsTlFbnNiBr2Mv7flDiUvMdbHm
b/n0/B6a69SRYfVkJ3MZdl0gptJlXhJVdwjwVVl3bjvlQd0aZoLwJ7ntrWeMxOkb
f8950vPVxemQ1frblB0zR98fuUNhX4cjrFTI9iJck7xLUwNZfgOz9PodfqUv4riM
LczMmw3nwGZO/aJg0m6uWSWk
=IvBA
-----END PGP PUBLIC KEY BLOCK-----

9
debian/watch vendored Normal file
View file

@ -0,0 +1,9 @@
version=4
opts=\
dversionmangle=auto,\
repacksuffix=+ds,\
uversionmangle=s/-rc/~rc/,\
pgpsigurlmangle=s/$/.sig/,\
compression=xz \
https://download.qemu.org/ qemu-@ANY_VERSION@@ARCHIVE_EXT@