Commit Graph

53 Commits

Author SHA1 Message Date
Fiona Ebner
89520c1cd0 d/rules: use disable-download option instead of git-submodules=ignore
See the following QEMU commits for reference:
0c5f3dcbb2 ("configure: add --enable-pypi and --disable-pypi")
ac4ccac740 ("configure: rename --enable-pypi to --enable-download, control subprojects too")
6f3ae23b29 ("configure: remove --with-git-submodules=") removed

The last one removed the option and the closest thing to
git-submodule=ignore is using disable-download. Which will then just
verify that the submodules are present.

Building now will require running either
* Running 'meson subprojects download' in the qemu submodule first.
* Using --enable-download, but then the submodules would be downloaded
  for each build (if not already downloaded in the submodule first)
  and it's just a bit too surprising if downloads happen during build.

The disable-download option will also disable automatic downloading of
missing Python modules from PyPI. Hopefully, it's enough to add them
as Debian build dependencies when required.

Signed-off-by: Fiona Ebner <f.ebner@proxmox.com>
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-10-24 15:01:23 +02:00
Thomas Lamprecht
de2dde2da9 buildsys: avoid handling noopt locally, rather extend CFLAGS
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-05-23 14:09:12 +02:00
Thomas Lamprecht
04e0262e2e d/rules: add identation for configure switches for readability
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-05-22 15:23:55 +02:00
Thomas Lamprecht
d0603efa38 buildsys: auto-generate dbgsym package
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-05-22 15:09:14 +02:00
Fiona Ebner
fb818ea5b9 d/rules: drop virtiofsd switch
virtiofsd is no longer part of QEMU 8.0. It got replaced by a separate
implementation written in Rust, which will be its own package.

See QEMU commit 0aaf44776e ("Merge tag 'pull-virtiofs-20230216b' of
https://gitlab.com/dagrh/qemu into staging").

Signed-off-by: Fiona Ebner <f.ebner@proxmox.com>
2023-05-22 15:09:14 +02:00
Thomas Lamprecht
cb2b3190a4 move cleanup of unused ROMs from d/rules to build-dir generation
this way we save a bit of space and should make build also slightly
faster, otherwise nothing should change.

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-05-22 13:29:59 +02:00
Thomas Lamprecht
2e416ad9d5 d/rules: fix debian-rules-missing-required-target
until we switch fully over to the dh sequencer

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-05-22 13:29:59 +02:00
Thomas Lamprecht
d80ca49db8 d/rules: cleanup cruft and use dpkg makefile fragements
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-05-22 13:29:59 +02:00
Fiona Ebner
6eb3e31968 d/rules: fix comment about when clean target is executed
Signed-off-by: Fiona Ebner <f.ebner@proxmox.com>
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-05-21 15:51:16 +02:00
Fiona Ebner
c913853be7 d/rules: move copying config.guess and config.sub to config.status target
It causes problems when done as part of the clean target when building
the dsc with the following error due to the additional files:
dpkg-source: error: aborting due to unexpected upstream changes

Signed-off-by: Fiona Ebner <f.ebner@proxmox.com>
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-05-21 15:51:16 +02:00
Fiona Ebner
023b916380 d/rules: set job flag for make based on DEB_BUILD_OPTIONS
Copied from Debian's QEMU package's d/rules. Otherwise, ninja will end
up using only a single job (in Debian Bookworm/Proxmox VE 8).

Suggested-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
Signed-off-by: Fiona Ebner <f.ebner@proxmox.com>
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-05-21 15:51:16 +02:00
Fiona Ebner
ade9f50160 d/rules: add note explaining why using noopt doesn't currenlty work
Signed-off-by: Fiona Ebner <f.ebner@proxmox.com>
2023-02-14 10:04:21 +01:00
Fiona Ebner
0fde60fd10 d/rules: add missing export for CFLAGS
Otherwise, they don't affect the build of QEMU at all.

Signed-off-by: Fiona Ebner <f.ebner@proxmox.com>
2023-02-14 10:04:21 +01:00
Fiona Ebner
0906461df0 d/rules: enable slirp again
Commit d03e1b3 ("update submodule and patches to 7.2.0") argued that
slirp is not explicitly supported in PVE, but that is not true. In
qemu-server, user networking is supported (via CLI/API) when no bridge
is set on a virtual NIC. So slirp needs to stay to keep such NICs
working.

Signed-off-by: Fiona Ebner <f.ebner@proxmox.com>
2022-12-21 13:52:16 +01:00
Fiona Ebner
82640bb859 d/rules: explicitly disable building slirp
Otherwise, it depends on whether libslirp-devel is installed or not.
See the previous commit message for more context.

Signed-off-by: Fiona Ebner <f.ebner@proxmox.com>
2022-12-16 11:47:25 +01:00
Fiona Ebner
2b259b70ec d/rules: add revision to package version
This version string can be queried with $BINARY --version as well as
the query-version QMP command.

Useful for qemu-server to be able to report the running QEMU version
exactly. Could also be used to version guard against features as an
alternative to the query-proxmox-support QMP command.

Signed-off-by: Fiona Ebner <f.ebner@proxmox.com>
2022-10-10 11:26:47 +02:00
Fabian Ebner
eba403aafc d/rules: adapt to changed opensbi riscv filenames in 7.0.0
Signed-off-by: Fabian Ebner <f.ebner@proxmox.com>
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
2022-06-29 12:29:28 +02:00
Fabian Ebner
b2685aee04 d/rules: drop outdated configure flags
See QEMU commits 9e8be4c546ce8469ca9702715bf8f198d604b685 and
a5730b8bd3675f484ed0eacea052452048eeb35d for more information.

Signed-off-by: Fabian Ebner <f.ebner@proxmox.com>
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
2022-06-29 12:29:25 +02:00
Thomas Lamprecht
3aa5b7598d enable zstd support
plan to use that for multifd migration, among other things

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2022-02-24 07:51:19 +01:00
Thomas Lamprecht
13d3e10aa6 compile in virgl support
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2022-02-24 07:51:19 +01:00
Thomas Lamprecht
fe0542bed9 d/rules: disable libssh by default
was always disabled in our clean builds, this now also avoids
auto-enabling it on "dirty" build hosts

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2022-02-18 14:21:53 +01:00
Stefan Reiter
403f23a0c3 enable io-uring support in QEMU builds
Signed-off-by: Stefan Reiter <s.reiter@proxmox.com>
2021-06-21 09:56:06 +02:00
Stefan Reiter
eb96e850ac debian: ignore submodule checks in QEMU build
...we do those manually, and the build dir is not a git repo.

Signed-off-by: Stefan Reiter <s.reiter@proxmox.com>
2021-05-28 11:29:44 +02:00
Thomas Lamprecht
6503e6e08d machine list: save as JSON
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2021-03-05 16:21:30 +01:00
Stefan Reiter
a6ede89808 add static supported machines file
Same rationale as the CPU flags file, avoids calling QEMU binary just to
query machine types.

Signed-off-by: Stefan Reiter <s.reiter@proxmox.com>
2021-03-05 15:20:14 +01:00
Thomas Lamprecht
448136958e d/rules: build virtiofsd
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2021-02-24 19:02:07 +01:00
Stefan Reiter
817b7667e8 Update to QEMU 5.2
Lots of patches touched and some slight changes to the build process
since QEMU switched to meson as their build system. Functionality-wise
very little rebasing required.

New patches introduced:
* pve/0058: to fix VMA backups and clean up some code in general with
  new 5.2 features now available to us (namely coroutine-enabled QMP).
* extra/0002: don't build man pages for guest agent when disabled
* extra/0003: fix live-migration with hugepages
* 0017 and 0018 are adjusted to fix snapshot abort and improve
  snap performance a bit

Signed-off-by: Stefan Reiter <s.reiter@proxmox.com>
2021-02-12 10:20:01 +01:00
Stefan Reiter
3d785eabbe disable jemalloc
jemalloc does not play nice with our Rust library (proxmox-backup-qemu),
specifically it never releases memory allocated from Rust to the OS.
This leads to a problem with larger caches (e.g. for the PBS block driver).

It appears to be related to this GitHub issue:
https://github.com/jemalloc/jemalloc/issues/1398

The background_thread solution seems weirdly hacky, so let's disable
jemalloc entirely for now.

Signed-off-by: Stefan Reiter <s.reiter@proxmox.com>
2020-12-15 14:43:34 +01:00
Thomas Lamprecht
83faa3fe30 import QEMU 5.0.0-rc2 and rebase patches
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2020-04-08 15:36:32 +02:00
Thomas Lamprecht
6402d96100 update submodule and patches for 4.2.0
The long overdue nice rebase+cleanup was done by Dietmar

Originally-by: Dietmar Maurer <dietmar@proxmox.com>
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2020-03-11 07:26:21 +01:00
Thomas Lamprecht
376d9ce806 Write recognized CPUID flags into static file
located at /usr/share/kvm/recognized-CPUID-flags-x86_64

It's a simple one flag per line list of all flags the build of QEMU
can understand for x86_64 CPUs.

It will be used in qemu-server for the custom CPU model feature.

For now, only x86_64 is implemented, since aarch64 doesn't print any flags when
called this way.

Co-developed-by: Stefan Reiter <s.reiter@proxmox.com>
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2019-10-17 13:39:21 +02:00
Fabian Grünbichler
f3c1e32615 fix #2269: build: adapt to glusterfs changes
build-depend on Buster's re-introduced libglusterfs-dev, and depend on
either libglusterfs0 / libgfFOO (Debian repos) or glusterfs-common
(upstream community repos), until the latter gets fixed upstream.

Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
2019-08-06 12:48:20 +02:00
Thomas Lamprecht
1024d89400 fix qemu PKGVERSION
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2019-07-02 13:32:06 +02:00
Thomas Lamprecht
8dfe6145c8 buildsys: ensure docs (man pages) are build
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2019-06-25 11:39:54 +02:00
Thomas Lamprecht
b70222791a debian/rules: disable building with SDL integration
This was added once by accident, we do not really need it for Proxmox
VE, it could bring some value for testing but here one can build qemu
oneself too.

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2019-06-25 11:39:54 +02:00
Thomas Lamprecht
42dfcf977c d/rules: enable curl support
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2019-06-14 13:34:49 +02:00
Thomas Lamprecht
ec302df911 d/rules: disable libxml2 support
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2019-06-14 13:34:49 +02:00
Thomas Lamprecht
73e12bd731 d/rules: ensure QEMU gets compiled with seccomp on
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2019-06-14 11:41:17 +02:00
Thomas Lamprecht
964a487a03 d/rules: split and sort configure flags
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2019-06-14 11:41:13 +02:00
Thomas Lamprecht
7df330a978 add lintian overrides for shipped strange BLOBs
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2019-05-22 17:59:27 +02:00
Thomas Lamprecht
edf1ab9a03 disable capstone support for now
would either need another submodule or a extra dependency, for now
disable.

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2019-05-22 17:59:27 +02:00
Dietmar Maurer
583378ed06 build and include qemu-system-aarch64
Signed-off-by: Dietmar Maurer <dietmar@proxmox.com>
2019-04-19 09:53:44 +02:00
Fabian Grünbichler
8e326f3032 build: use 3.0 source format
instead of manually including and calling quilt. resulting binary debs
are identical.

Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
2018-03-14 14:18:17 +01:00
Thomas Lamprecht
8fefb8827a buildsys: remove new PPC specific files
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2018-03-01 10:26:44 +01:00
Geert Stappers
426b89f032 debian/rules: don't disable Flat Device Tree
I don't know why fdt, Flat Device Tree, is disabled,
but that disabling blocks building e.g. qemu-system-aarch64.
It stops the build and yields this:

 ERROR: fdt disabled but some requested targets require it.
        You can turn off fdt only if you also disable all the system
        emulation targets which need it
        (by specifying a cut down --target-list).

Signed-off-by: Geert Stappers <stappers@stappers.it>
2018-03-01 08:13:41 +01:00
Emmanuel Kasper
b090f37a6b Provides a qemu-system-x86 virtual package
This allows adding additional debian packages on pve hosts
which depends on a qemu binary being installed.

The following install paths were tested:

 * install of proxmox-ve on debian systems with standard package
 set:  works as expected

 * install of proxmox-ve on debian having the debian qemu package
 installed: refused by the package manager as expected, until
 qemu, qemu-system-x86, libspice-server1 are deinstalled

 * manual install of qemu-system-x86 after proxmox-ve
 is installed: refused by the package manager as expected, until
 libspice-server1 is installed. If libspice-server1 is installed
 then proxmox-ve is deinstalled.

 * install of packages depending on qemu-system-x86
 having proxmox-ve installed: thoses packages are installed as
 expected, no conflict

Acked-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
2017-10-16 14:05:22 +02:00
Emmanuel Kasper
2c2626ddc3 Bump dephelper compatibility level to 10
The debian package content was found to be the same
with diffoscope. No functional change.

Acked-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
2017-10-16 14:05:22 +02:00
Emmanuel Kasper
fd202a5abe Install userspace utilities and UEFI roms via dh_install
Acked-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
2017-10-16 14:05:22 +02:00
Emmanuel Kasper
68ba098a84 Remove deprecated dh_clean -k
Acked-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
2017-10-16 14:05:22 +02:00
Emmanuel Kasper
a21f577853 Disable building the qemu-guest-agent (binary + docs)
This fixes a conflict when installing the qemu-guest-agent debian
package, where our pve-qemu-kvm and the debian package both
tried to install the usr/share/man/man8/qemu-ga.8.gz file
2017-04-11 12:57:17 +02:00