- 09 May, 2022 28 commits
-
-
Hans van Kranenburg authored
[git-debrebase pseudomerge: stitch]
-
Hans van Kranenburg authored
[git-debrebase make-patches: export and commit patches]
-
Hans van Kranenburg authored
[The symptoms] When doing a Xen package build for Debian with ccache enabled, we started getting the following error: x86_64-linux-gnu-gcc [...] -o build.o /builds/xen-team/debian-xen/debian/output/source_dir/tools/libs/light/../../../tools/libacpi/build.c ccache: error: Failed to create temporary file for /run/user/0/ccache-tmp/tmp.cpp_stdout.bqxKOP: Permission denied It turns out to be the case that during the install step of tools (the install-tools that happens inside the override_dh_auto_install part of d/rules), the upstream build machinery *again* tries to build this build.c file, while this has already been done earlier during the actual build phase. Since the Debian build process stopped to allow usage of ccache during the install phase of the process, this issue surfaces. [The cause] In tools/libs/light/Makefile, we see the following lines: .PHONY: acpi acpi: $(MAKE) -C $(ACPI_PATH) ACPI_BUILD_DIR=$(CURDIR) DSDT_FILES="$(DSDT_FILES-y)" [...] $(DSDT_FILES-y) build.o build.opic: acpi 'acpi' is defined as phony target. In the last line, we see that build.o depdends on acpi. Also see: "4.6 Phony Targets" https://www.gnu.org/software/make/manual/make.html#Phony-Targets A 'normal' target gives make the possibility to track timestamps of a target file. E.g. compiling foo.c results in foo.o, and as long as foo.c keeps being 'older' than foo.o, make will think "nothing to do here, foo.o is up to date, let's move along". Now, a phony target is some kind of fake target that does not come with this kind of information, and such behaves like a target that is always out-of-date. Hence, with a configuration as seen above, it will try to always unneededly build this build.o and build.opic again. [Discussion] Upstream commit e006b2e3 ("libxl: fix libacpi dependency") which introduced the problem tells us that the purpose of the current configuration is to make sure the libacpi/ dir is built before we attempt to work on build.c in here. The changes in there remove an apparently obsolete line referencing build.o from the libacpi Makefile, which might mean that in the past this build.* stuff was located in that part of the code, and was moved into libs/light later. [The fix] If it is enough to just have an order-only dependency, we can use an order-only prerequisite instead, in this place: $(DSDT_FILES-y): acpi build.o build.opic: | acpi Also see: "4.3 Types of Prerequisites" https://www.gnu.org/software/make/manual/make.html#Prerequisite-Types Now the build machinery will not attempt to unconditionally rebuild build.o during make install. [Suggestions for further work] As can be seen, there's still the $(DSDT_FILES-y) which has the same acpi dependency and which may lead to similar unwanted side effects. However, since none of the files in that list have a corresponding build target in *this* Makefile, it does not trigger the problem for us, and we leave it alone, for now. Suggested-by:Michael Tokarev <mjt@tls.msk.ru> Signed-off-by:
Hans van Kranenburg <hans@knorrie.org> Fixes: e006b2e3 ("libxl: fix libacpi dependency")
-
There's no sense to switch to qemu-xen-traditional device model if that one is not enabled in the first place. This way we'll have a chance later to print a message suggesting to install the missing qemu package if we *actually* need qemu for the device model.
-
The objdump output is fed to grep, so make sure it doesn't change with different user locales and break the grep parsing. This problem was identified while updating xen in Debian and the fix is needed for generating reproducible builds in varying environments. Signed-off-by:
Maximilian Engelhardt <maxi@daemonizer.de> -
Use the solution described in [1] to replace the call to the 'date' command with a version that uses SOURCE_DATE_EPOCH if available. This is needed for reproducible builds. [1] https://reproducible-builds.org/docs/source-date-epoch/ Signed-off-by:
Maximilian Engelhardt <maxi@daemonizer.de>
[Hans van Kranenburg]
Note: this patch is submitted upstream but not committed yet. We
expect that it gets in. Otherwise, we don't wait and already have it
here because I want to have the reproducible build work completed. -
Hans van Kranenburg authored
This is something that hasn't been touched (except for making it Python 3 compatible, which failed) since 2007. Don't build or ship it. -# xenmon File "/usr/sbin/xenmon", line 680 stop_cmd = "/usr/bin/pkill -INT -z global xenbaked" TabError: inconsistent use of tabs and spaces in indentation Signed-off-by:Hans van Kranenburg <hans@knorrie.org>
-
Hans van Kranenburg authored
We have the `xen` alias for xl in Debian, since in the past it was a command that could execute either xl or xm. Now, it always does xl, so, complete the same stuff for it as we have for xl. Signed-off-by:Hans van Kranenburg <hans@knorrie.org> [git-debrebase split: mixed commit: upstream part]
-
If LIBEXEC_LIB is not on the default linker search path, the python fsimage.so module fails to find libfsimage.so. Add the relevant directory to the rpath explicitly. (This situation occurs in the Debian package, where --with-libexec-libdir is used to put each Xen version's libraries and utilities in their own directory, to allow them to be coinstalled.) Signed-off-by:
Ian Jackson <ian.jackson@citrix.com> -
We install libfsimage in a non-standard path for Reasons. (See debian/rules.) This patch was originally part of `tools-pygrub-prefix.diff' (eg commit 51657319 ) and included changes to the Makefile to change the installation arrangements (we do that part in the rules now since that is a lot less prone to conflicts when we update) and to shared library rpath (which is now done in a separate patch). (Commit message rewritten by Ian Jackson.) Signed-off-by:
Ian Jackson <ian.jackson@citrix.com>
squash! pygrub: Set sys.path and rpath -
This is in the upstream script because on non-Debian systems, the default install locations in /usr/local/lib might not be on the linker path, and as a result the hotplug scripts would break. A reason we might need it in Debian is our multiple version coinstallation scheme. However, the hotplug scripts all call the utilities via the wrappers, and the binaries are configured to load from the right place anyway. This setting is an annoyance because it requires libdir, which is an arch-specific path but comes from a file we want to put in xen-utils-common, an arch:all package. So drop this setting. Signed-off-by:
Ian Jackson <ian.jackson@citrix.com> -
Hans van Kranenburg authored
Strip all options that are for stuff we don't ship, which is 1) xenstored as stubdom and 2) the new options for oom score and open file descriptor limit, which would not have any effect, because we're shipping different init scripts... :| It seems useful to give the user the option to revert to xenstored instead of the default oxenstored if they really want. Signed-off-by:
Hans van Kranenburg <hans@knorrie.org> Acked-by:
Ian Jackson <ijackson@chiark.greenend.org.uk> -
Hans van Kranenburg authored
Also see Debian bug #894013. The current attempt at providing anti-spoofing rules results in a situation that does not have any effect. Also note that forwarding bridged traffic to iptables is not enabled by default, and that for openvswitch users it does not make any sense. So, stop cluttering the live iptables ruleset. This functionality seems to be introduced before 2004 and since then it has never got some additional love. It would be nice to have a proper discussion upstream about how Xen could provide some anti mac/ip spoofing in the dom0. It does not seem to be a trivial thing to do, since it requires having quite some knowledge about what the domU is allowed to do or not (e.g. a domU can be a router...). Signed-off-by:Hans van Kranenburg <hans@knorrie.org>
-
This manpage was omitted from docs/man: Provide properly-formatted NAME sections because I was previously building with markdown not installed. Signed-off-by:
Ian Jackson <ian.jackson@citrix.com> -
When building on a 32-bit userland, the user wants to build 32-bit tools and a 64-bit hypervisor. This involves setting XEN_TARGET_ARCH to different values for the tools build and the hypervisor build. So the user must invoke the tools build and the hypervisor build separately. However, although the shim is done by the tools/firmware Makefile, its bitness needs to be the same as the hypervisor, not the same as the tools. When run with XEN_TARGET_ARCH=x86_32, it it skipped, which is wrong. So the user must invoke the shim build separately. This can be done with make -C tools/firmware/xen-dir XEN_TARGET_ARCH=x86_64 However, tools/firmware/xen-dir has no `install' target. The installation of all `firmware' is done in tools/firmware/Makefile. It might be possible to fix this, but it is not trivial. For example, the definitions of INST_DIR and DEBG_DIR would need to be copied, as would an appropriate $(INSTALL_DIR) call. For now, provide an `install-shim' target in tools/firmware/Makefile. This has to be called from `install' of course. We can't make it a dependency of `install' because it might be run before `all' has completed. We could make it depend on a `shim' target but such a target is nearly impossible to write because everything is done by the inflexible subdir-$@ machinery. The overally result of this patch is that existing make invocations work as before. But additionally, the user can say make -C tools/firmware install-shim XEN_TARGET_ARCH=x86_64 to install the shim. The user must have built it already. Unlike the build rune, this install-rune is properly conditional so it is OK to call on ARM. What a mess. Signed-off-by:
Ian Jackson <ijackson@chiark.greenend.org.uk> -
This makes it easier to disable the shim build. (In Debian we need to build the shim separately because it needs different compiler flags). Signed-off-by:
Ian Jackson <ijackson@chiark.greenend.org.uk>
[ Hans: adjust from tools/firmware/Makefile to config/Tools.mk.in to
follow changes that happened in 8845155c
("pvshim: make PV shim build
selectable from configure") ]
Signed-off-by: Hans van Kranenburg <hans@knorrie.org>
-
Signed-off-by:
Ian Jackson <ian.jackson@citrix.com> -
This is going to be used to put libfsimage.so into a path containing the multiarch triplet. Signed-off-by:
Ian Jackson <ian.jackson@citrix.com> -
Hans van Kranenburg authored
\o/
-
Signed-off-by:
Ian Jackson <ian.jackson@citrix.com> -
Patch-Name: tools-pygrub-remove-static-solaris-support Gbp-Pq: Topic misc Gbp-Pq: Name tools-pygrub-remove-static-solaris-support
-
This is not wanted in Debian. COPYING ends up in /usr/share/doc/xen-*copyright. Patch-Name: tools-include-no-COPYING.diff Signed-off-by:
Ian Jackson <ian.jackson@citrix.com> -
Patch-Name: config-prefix.diff Gbp-Pq: Topic prefix-abiname Gbp-Pq: Name config-prefix.diff
-
During hypervisor boot, disable the banner and nicely display the xen version as well as the Maintainer address from debian/control. For this to work the SOURCE_BASE_DIR variable needs to be set by the build system to the top directory, i.e. where the debian folder is. Original patch by Bastian Blank <waldi@debian.org> Modified by Hans van Kranenburg <hans@knorrie.org> Maximilian Engelhardt <maxi@daemonizer.de>
-
These autogenerated files are not useful in Debian; dh_autoreconf will regenerate them. If this patch does not apply when rebasing, you can simply delete the files again. Signed-off-by:
Ian Jackson <ian.jackson@citrix.com> -
dh_autoreconf will provide these back. If this patch does not apply when rebasing, you can simply delete the files again. Signed-off-by:
Ian Jackson <ian.jackson@citrix.com> -
Hans van Kranenburg authored
Signed-off-by:Hans van Kranenburg <hans@knorrie.org>
-
Hans van Kranenburg authored
Qemu version 1:7.0+dfsg-6 fixes adding the --enable-xen-pci-passthrough option for the xen binary. Signed-off-by:Hans van Kranenburg <hans@knorrie.org>
-
- 05 May, 2022 3 commits
-
-
Signed-off-by:Diederik de Haas <didi.debian@cknow.org>
-
The writing style of 'Xen' was inconsistent, so fix that. Signed-off-by:Diederik de Haas <didi.debian@cknow.org>
-
Hans van Kranenburg authored
It is already not needed any more to install a different kernel package (e.g. linux-image-2.6.32-5-xen-amd64), for a long time. Signed-off-by:Hans van Kranenburg <hans@knorrie.org>
-
- 23 Apr, 2022 6 commits
-
-
-
Qemu builds xen-specific package now with xen support, with qemu binary being /usr/libexec/xen-qemu-system-i386. Stop recommending generic qemu-system-x86 with a lot of dependencies, move to much leanier qemu-system-xen build.
-
It makes no sense to create qemu devices and shut them off to/from /dev/null. We were supposed to _not_ create these devices instead of creating them and getting rid of their output. We do not need these devices in the first place.
-
Hans van Kranenburg authored
qemu is only being built with --with-xen on amd64, kthxbye Signed-off-by:Hans van Kranenburg <hans@knorrie.org>
-
Hans van Kranenburg authored
It really does not make sense at all to have this package available for any other arch than that we provide the other packages for. So, do the same thing like was done for xen-utils-common. The Debian Policy Manual, in section 5.6.8. Architecture, tells us: "Specifying a list of architectures or architecture wildcards other than any is for the minority of cases where a program is not portable or is not useful on some architectures." Well, in our case, Xen is not portable to all the other architectures, so this package is not useful on them. Signed-off-by:Hans van Kranenburg <hans@knorrie.org>
-
Hans van Kranenburg authored
Users who only have some libxen* package installed do not have to be presented with scary news items that are relevant only if you have hypervisor and/or tools installed. Besides that, the messages are mostly really package specific. And, there's no strict enforcement (because the user is able to have multiple xen versions installed) to have exact the same version for all xen packages. If you install a newer xen-hypervisor-common, you won't get the init script fixes for example that apt-listchanges would be blaring about. (Closes: #962267) Signed-off-by:Hans van Kranenburg <hans@knorrie.org>
-
- 21 Apr, 2022 3 commits
-
-
Hans van Kranenburg authored
[git-debrebase changelog: new upstream 4.16.1]
-
Hans van Kranenburg authored
[git-debrebase anchor: new upstream 4.16.1, merge]
-
Hans van Kranenburg authored
-