* gnu/packages/virtualization.scm (qemu): Update to 5.2.0.
[source]: Re-indent and break long lines, to appease 'guix lint'.
[arguments]{disable-unusable-tests}: Adjust for the new Meson build
system. Remove patching for a test workaround that has been resolved in
5.2.0.
{patch-test-shebangs, patch-/bin/sh-references}: Combine into...
{patch-embedded-shebangs}: ... this new phase. Patch the SHELL variable in
the Makefile.
{fix-optionrom-makefile}: New phase.
{install-user-static}: Adjust as the binaries are now symbolic links pointing to their
actual build path.
[native-inputs]: Add ninja.
* gnu/packages/patches/qemu-build-info-manual.patch: Update patch.
Co-authored-by: Maxim Cournoyer <maxim.cournoyer@gmail.com>
Signed-off-by: Maxim Cournoyer <maxim.cournoyer@gmail.com>
The static output is equivalent to what other distributions commonly package
as 'qemu-user-static'.
* gnu/packages/virtualization.scm (qemu)[outputs]: Add a static output.
[phases]{configure}: Configure the main build as an out-of-source build. Move
all configure flags to ...
[configure-flags]: ... here. The options explicitly enabling optional
features are removed; the configure script does a good job at enabling all the
features available based on the inputs present and this allows reusing the
flags in variant packages such as qemu-minimal.
{configure-user-static, build-user-static, install-user-static}: New phases.
{patch-test-shebangs}: New phase, extracted from the configure phase.
[native-inputs]: Add glib-static, pcre:static and zlib:static.
(qemu-minimal)[arguments]: Reuse the configure-flags argument. Rewrite to use
match instead of cond.
* gnu/packages/patches/qemu-CVE-2021-20203.patch: New patch.
* gnu/local.mk (dist_patch_DATA): Register it.
* gnu/packages/virtualization.scm (qemu): Apply it.
* gnu/packages/python-xyz.scm (python-pep517): Inherit from
python-pep517-bootstrap. Remove the inherited common fields.
(python-poetry-core, python-wheel)
(python-toml): Move to ...
* gnu/packages/python-build.scm: ... here, a new module.
(python-pep517-bootstrap): New package.
* gnu/local.mk (GNU_SYSTEM_MODULES): Register the new module.
* gnu/packages/virtualization.scm (qemu): Add a snippet to fix a bug in the
do_ioctl_ifconf() function of qemu to make ioctl(…, SIOCGIFCONF, …) work for
emulated 64 bit architectures.
The sizeof(struct ifreq) is 40 for 64 bit and 32 for 32 bit architectures.
This structure contains a union of other structures, of which struct ifmap
is the biggest for 64 bit architectures. Calling ioctl(…, SIOCGIFCONF, …)
fills a struct sockaddr of that union, and do_ioctl_ifconf() only considered
that struct sockaddr for the size of the union, which has the same size as
struct ifmap on 32 bit architectures. So do_ioctl_ifconf() assumed a wrong
size of 32 for struct ifreq instead of the correct size of 40 on 64 bit
architectures.
The fix makes do_ioctl_ifconf() handle struct ifmap as the biggest part of
the union, treating struct ifreq with the correct size.
This fixes (@ (guix build syscalls) network-interface-names) when used in
emulated 64 bit architectures.
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
* gnu/packages/virtualization.scm (qemu-minimal)[arguments]: Adjust
configure-flags logic to match using string-prefix instead of a full
match when determining qemu targets.
* gnu/packages/virtualization.scm (skopeo)[native-inputs]: Add
go-github-com-go-md2man.
[arguments]<phases>{build-docs}: New phase.
{install}: Update make target to install manpages. Install example
configuration.
This fixes breaks the 'install-license-files' phase added in
6b793fa662 and is generally not good
practice.
Reported by divoplade on #guix.
* gnu/packages/virtualization.scm (runc)[arguments]: Use
'with-directory-excursion' instead of 'chdir' in build phases.
(skopeo)[arguments]: Likewise.
(umoci)[arguments]: Likewise.
* gnu/packages/docker.scm (docker-cli)[arguments]: In 'install' phase,
remove call to 'chdir' and adjust 'install-file' argument accordingly.
* gnu/packages/virtualization.scm (skopeo): Update to 1.2.0.
[source]: Update uri.
[arguments]: Update #:import-path.
<phases>: In the 'build' phase, update make target.
[home-page]: Update to current.
I've built QEMU 5.1.0 tens of times on a 24 logical core machines, and haven't
encountered a failure. Tentatively re-enabling parallel tests.
* gnu/packages/virtualization.scm (qemu)[arguments]: Drop the
\#:parallel-tests? #f argument.
[phases]{configure}: Fix indentation.
This works around <https://issues.guix.info/43048>.
* gnu/packages/virtualization.scm (qemu)[phases]{disable-unusable-tests}: Move
after unpack. Combine the existing substitute patterns on a single usage of
substitute*. Disable the bios-tables-test test in
tests/qtest/Makefile.include.
Fixes <https://bugs.gnu.org/42934>.
Reported by Marius Bakke <marius@gnu.org>.
* gnu/packages/virtualization.scm (ganeti)[arguments]: Add a phase
that tells GHC to use shared libraries.
* gnu/packages/virtualization.scm (virt-manager)[arguments]: Set #:test-target
to "test_ui", replace the 'check phase.
[native-inputs]: Add some inputs required for running tests.