- roms: Build ipxe with NO_WERROR=1 (bsc#1227960)
- Update to version 9.0.2: Full list of backports here: https://lore.kernel.org/qemu-devel/1718081053.366429.1238758.nullmailer@tls.msk.ru/ A selection of them is reported here too: hw/nvme: fix number of PIDs for FDP RUH update sphinx/qapidoc: Fix to generate doc for explicit, unboxed arguments char-stdio: Restore blocking mode of stdout on exit virtio: remove virtio_tswap16s() call in vring_packed_event_read() virtio-pci: Fix the failure process in kvm_virtio_pci_vector_use_one() tcg/optimize: Fix TCG_COND_TST* simplification of setcond2 block: Parse filenames only when explicitly requested iotests/270: Don't store data-file with json: prefix in image iotests/244: Don't store data-file with protocol in image qcow2: Don't open data_file with BDRV_O_NO_IO tests: add testing of parameter=3D1 for SMP topology (bsc#1228169) hw/core: allow parameter=3D1 for SMP topology on any machine ... OBS-URL: https://build.opensuse.org/package/show/Virtualization/qemu?expand=0&rev=851
This commit is contained in:
commit
3014c841a2
23
.gitattributes
vendored
Normal file
23
.gitattributes
vendored
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
## Default LFS
|
||||||
|
*.7z filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.bsp filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.bz2 filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.gem filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.gz filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.jar filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.lz filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.lzma filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.obscpio filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.oxt filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.pdf filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.png filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.rpm filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.tbz filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.tbz2 filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.tgz filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.ttf filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.txz filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.whl filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.xz filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.zip filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.zst filter=lfs diff=lfs merge=lfs -text
|
1
.gitignore
vendored
Normal file
1
.gitignore
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
.osc
|
202
README.PACKAGING
Normal file
202
README.PACKAGING
Normal file
@ -0,0 +1,202 @@
|
|||||||
|
# PACKAGING WORKFLOW(S)
|
||||||
|
|
||||||
|
The qemu package follows a special maintenance workflow in order to support
|
||||||
|
git based patching, including of submodules. Please use it in order to have
|
||||||
|
changes you make be acceptable to the package maintainers.
|
||||||
|
|
||||||
|
All the development happens at https://github.com/openSUSE/qemu. The relevant
|
||||||
|
branch is `factory`.
|
||||||
|
|
||||||
|
Any change to the package should be submitted in the form of a Pull Request
|
||||||
|
against such repository and branch.
|
||||||
|
|
||||||
|
The reminder of this document provides more details, explanations and examples
|
||||||
|
for both contributors and maintainers.
|
||||||
|
|
||||||
|
|
||||||
|
# FOR CONTRIBUTORS
|
||||||
|
|
||||||
|
## BACKPORTING AN UPSTREAM PATCH
|
||||||
|
|
||||||
|
For submitting a backport of an upstream patch, proceed as follows (a local
|
||||||
|
copy of the repository is of course necessary).
|
||||||
|
|
||||||
|
Identify the hash of the commit that needs backporting and do:
|
||||||
|
|
||||||
|
git cherry-pick -esx <commit_hash>
|
||||||
|
|
||||||
|
This way, the changelog will already contain the reference to the upstream
|
||||||
|
commit itself, and the appropriate "Signed-off-by:" tag.
|
||||||
|
|
||||||
|
If the backport is related to Bugzilla (or Jira, and/or CVEs, etc) entry, add a
|
||||||
|
reference to that, such as:
|
||||||
|
|
||||||
|
Resolves: bsc#123456
|
||||||
|
|
||||||
|
Or:
|
||||||
|
|
||||||
|
References: jsc#PED-1234
|
||||||
|
|
||||||
|
Or:
|
||||||
|
|
||||||
|
Resolves: bsc#7891011 (CVE-1234-5678)
|
||||||
|
|
||||||
|
Add it between the "(cherry picked from commit ...)" line and the "Signed-off-by:"
|
||||||
|
line that follows it.
|
||||||
|
|
||||||
|
An example of the end result, where Dario Faggioli (<dfaggioli@suse.com>) is
|
||||||
|
backporting upstream commit abe2c4bdb65e8dd in order to fix bug 1209546 from
|
||||||
|
bugzilla.opensuse.org is:
|
||||||
|
|
||||||
|
test-vmstate: fix bad GTree usage, use-after-free
|
||||||
|
|
||||||
|
According to g_tree_foreach() documentation:
|
||||||
|
"The tree may not be modified while iterating over it (you can't
|
||||||
|
add/remove items)."
|
||||||
|
|
||||||
|
[...]
|
||||||
|
|
||||||
|
Get rid of the node removal within the tree traversal. Also
|
||||||
|
check the trees have the same number of nodes before the actual
|
||||||
|
diff.
|
||||||
|
|
||||||
|
Fixes: 9a85e4b8f6 ("migration: Support gtree migration")
|
||||||
|
Resolves: https://gitlab.com/qemu-project/qemu/-/issues/1518
|
||||||
|
Signed-off-by: Marc-Andr303251 Lureau <marcandre.lureau@redhat.com>
|
||||||
|
Signed-off-by: Eric Auger <eric.auger@redhat.com>
|
||||||
|
Reported-by: Richard W.M. Jones <rjones@redhat.com>
|
||||||
|
Tested-by: Richard W.M. Jones <rjones@redhat.com>
|
||||||
|
Reviewed-by: Richard W.M. Jones <rjones@redhat.com>
|
||||||
|
Reviewed-by: Daniel P. Berrang303251 <berrange@redhat.com>
|
||||||
|
Reviewed-by: Juan Quintela <quintela@redhat.com>
|
||||||
|
Signed-off-by: Juan Quintela <quintela@redhat.com>
|
||||||
|
(cherry picked from commit abe2c4bdb65e8dd9cb2f01c355baa394bf49a8af)
|
||||||
|
Resolves: bsc#1209546
|
||||||
|
Signed-off-by: Dario Faggioli <dfaggioli@suse.com>
|
||||||
|
|
||||||
|
Of course, all conflicts and issues should be resolved, before committing the
|
||||||
|
result/completing the cherry-picking.
|
||||||
|
|
||||||
|
At this point, the PR should be opened. As soon as that happens, some checks
|
||||||
|
will be run automatically and the maintainers of the QEMU package will review
|
||||||
|
and, eventually, merge or reject it.
|
||||||
|
|
||||||
|
PRs containing multiple commits are allowed. They are actually encouraged, if
|
||||||
|
the patches being backported are related and/or dependant among each others. It
|
||||||
|
must, however, always be the case that each upstream commit is cherry-picked
|
||||||
|
individually.
|
||||||
|
|
||||||
|
Note that there is no need to change any 'qemu.changes' file. That will, in
|
||||||
|
fact be handled by the package maintainers (and such RPM changelog entries will
|
||||||
|
be automatically generated out of the git commit messages).
|
||||||
|
|
||||||
|
## ADDING A PATCH NOT COMING FROM UPSTREAM
|
||||||
|
|
||||||
|
Downstream patches, i.e., patches that are not backports of upstream commits,
|
||||||
|
should be avoided as much as possible. The (largely!) recommended approach is
|
||||||
|
to submit the patch upstream and then, once it is accepted and committed,
|
||||||
|
backport it.
|
||||||
|
|
||||||
|
If that is not possible (for whatever reason), a pull request with a downstream
|
||||||
|
only patch can be opened. The procedure is almost identical to the one described
|
||||||
|
above for upstream backports. The main differences are:
|
||||||
|
|
||||||
|
1) Downstream only patch cannot be cherry-picked from upstream commits, of
|
||||||
|
course. Therefore, the PR will consist of the commit(s) that introduces the
|
||||||
|
patch.
|
||||||
|
|
||||||
|
2) There will be no "(cherry picked from commit ...") line in the changelog
|
||||||
|
of a downstream only patch. On the other hand, the "Resolves:" or
|
||||||
|
"Reference:" tag, that link the patch to the issue it's trying to solve,
|
||||||
|
must be there, and the same is true for the "Signed-off-by:" tag
|
||||||
|
indicating who is proposing adding it.
|
||||||
|
|
||||||
|
3) It is required that the subject of the commit starts with the [openSUSE] tag.
|
||||||
|
|
||||||
|
An example of a downstream only commit is:
|
||||||
|
|
||||||
|
[openSUSE] pc: q35: Bump max_cpus to 1024
|
||||||
|
|
||||||
|
And use the new limit for machine version 7.1 too.
|
||||||
|
Keep the old limit of 288 for machine versions 7.0 and earlier.
|
||||||
|
|
||||||
|
Signed-off-by: Dario Faggioli <dfaggioli@suse.com>
|
||||||
|
References: bsc#1202282, jsc#PED-2592
|
||||||
|
Signed-off-by: Dario Faggioli <dfaggioli@suse.com>
|
||||||
|
|
||||||
|
## CHANGING THE PACKAGING FILES
|
||||||
|
|
||||||
|
Files that are necessary for building the RPM (like the spec file) or that
|
||||||
|
are part of the RPM and will be copied in the appropriate places in the
|
||||||
|
filesystem when it is installed are also part of the git repository. In fact,
|
||||||
|
they can be found in the `rpm/` directory.
|
||||||
|
|
||||||
|
Any addition, removal or change of and on any of those file should just be done
|
||||||
|
as a regular commit, and a pull request including such commit(s) should be
|
||||||
|
opened.
|
||||||
|
|
||||||
|
Commits to packaging files should be prefixed with both the [openSUSE] tag and
|
||||||
|
an [RPM] tag. An example can be this one:
|
||||||
|
|
||||||
|
[openSUSE][RPM] Add downstream packaging files
|
||||||
|
|
||||||
|
Stash the "packaging files" in the QEMU repository, in the rpm/
|
||||||
|
directory. During package build, they will be pulled out from there
|
||||||
|
and used as appropriate.
|
||||||
|
|
||||||
|
Signed-off-by: Dario Faggioli <dfaggioli@suse.com>
|
||||||
|
|
||||||
|
## ADDING A PATCH IN A SUBMODULE
|
||||||
|
|
||||||
|
For including a backport, or in general adding a patch, to a submodule, the
|
||||||
|
downstream git repository for the submodule must be checkedout at the location
|
||||||
|
where the submodule resides, in the main QEMU git repository.
|
||||||
|
|
||||||
|
For example, for including a downstream patch in the ipxe submodule, a local
|
||||||
|
copy of the repository https://github.com/openSUSE/qemu-ipxe.git is necessary.
|
||||||
|
After checking out the `factory` branch, add the patch there (cherry-picking
|
||||||
|
it from upstream, if it is a backport, and respecting all the tagging rules
|
||||||
|
explained in the previous sections).
|
||||||
|
|
||||||
|
At this point:
|
||||||
|
- the branch must be pushed;
|
||||||
|
- in the main (qemu) repository, a commit must be added and pushed, for making
|
||||||
|
sure that the new patch is picked up.
|
||||||
|
|
||||||
|
Basically, the commit in the main repository is how the information that a
|
||||||
|
submodule as a new head is recorded.
|
||||||
|
|
||||||
|
The changelog of such commit shall include a reference to the subjects of all
|
||||||
|
the new commits in the various submodules. Unfortinately, there is not yet a
|
||||||
|
good way of achieving this automatically.
|
||||||
|
|
||||||
|
As last step, a pull request should be opened, as usual.
|
||||||
|
|
||||||
|
## REMOVING PATCHES
|
||||||
|
|
||||||
|
If a patch, or, in general, a commit, that is already part of the repository
|
||||||
|
must be removed, this must be done without rewriting the git history, i.e., with
|
||||||
|
a revert (and then a pull request with the revert should be opened).
|
||||||
|
|
||||||
|
|
||||||
|
# FOR MAINTAINERS
|
||||||
|
|
||||||
|
## REVIEWING AND ACCEPTING PRs
|
||||||
|
|
||||||
|
TODO
|
||||||
|
|
||||||
|
## COMMITTING CHANGES INTO FACTORY
|
||||||
|
|
||||||
|
TODO
|
||||||
|
|
||||||
|
## UPDATING THE BASE QEMU VERSION
|
||||||
|
|
||||||
|
TODO
|
||||||
|
|
||||||
|
|
||||||
|
# MANUAL AND AUTOMATED CHECKS
|
||||||
|
|
||||||
|
TODO
|
||||||
|
|
||||||
|
|
||||||
|
|
75
_constraints
Normal file
75
_constraints
Normal file
@ -0,0 +1,75 @@
|
|||||||
|
<constraints>
|
||||||
|
<!-- All builds are fine with 10GB disk -->
|
||||||
|
<overwrite>
|
||||||
|
<conditions>
|
||||||
|
<package>qemu</package>
|
||||||
|
<package>qemu:qemu-linux-user</package>
|
||||||
|
</conditions>
|
||||||
|
<hardware>
|
||||||
|
<disk>
|
||||||
|
<size unit="G">12</size>
|
||||||
|
</disk>
|
||||||
|
</hardware>
|
||||||
|
</overwrite>
|
||||||
|
<!-- To build qemu, s390x needs more than the default memory -->
|
||||||
|
<overwrite>
|
||||||
|
<conditions>
|
||||||
|
<arch>s390x</arch>
|
||||||
|
<package>qemu</package>
|
||||||
|
</conditions>
|
||||||
|
<hardware>
|
||||||
|
<memory>
|
||||||
|
<size unit="M">1200</size>
|
||||||
|
</memory>
|
||||||
|
</hardware>
|
||||||
|
</overwrite>
|
||||||
|
<!-- And this is the case for (some of the) other arch-es as well -->
|
||||||
|
<overwrite>
|
||||||
|
<conditions>
|
||||||
|
<arch>i586</arch>
|
||||||
|
<arch>x86_64</arch>
|
||||||
|
<arch>ppc64le</arch>
|
||||||
|
<package>qemu</package>
|
||||||
|
</conditions>
|
||||||
|
<hardware>
|
||||||
|
<memory>
|
||||||
|
<size unit="M">4400</size>
|
||||||
|
</memory>
|
||||||
|
</hardware>
|
||||||
|
</overwrite>
|
||||||
|
<!-- And for some reason ppc64 needs even more -->
|
||||||
|
<overwrite>
|
||||||
|
<conditions>
|
||||||
|
<arch>ppc64</arch>
|
||||||
|
<package>qemu</package>
|
||||||
|
</conditions>
|
||||||
|
<hardware>
|
||||||
|
<memory>
|
||||||
|
<size unit="M">4800</size>
|
||||||
|
</memory>
|
||||||
|
</hardware>
|
||||||
|
</overwrite>
|
||||||
|
<!-- To build qemu in a reasonable amount of time, aarch64 and x86_64 needs as much parallelism as we can get -->
|
||||||
|
<overwrite>
|
||||||
|
<conditions>
|
||||||
|
<arch>aarch64</arch>
|
||||||
|
<arch>x86_64</arch>
|
||||||
|
<package>qemu</package>
|
||||||
|
</conditions>
|
||||||
|
<hardware>
|
||||||
|
<processors>8</processors>
|
||||||
|
</hardware>
|
||||||
|
</overwrite>
|
||||||
|
<!-- To test qemu-linux-user, armv7l needs more than the default memory -->
|
||||||
|
<overwrite>
|
||||||
|
<conditions>
|
||||||
|
<arch>armv7l</arch>
|
||||||
|
<package>qemu:qemu-linux-user</package>
|
||||||
|
</conditions>
|
||||||
|
<hardware>
|
||||||
|
<memory>
|
||||||
|
<size unit="M">8192</size>
|
||||||
|
</memory>
|
||||||
|
</hardware>
|
||||||
|
</overwrite>
|
||||||
|
</constraints>
|
3
_multibuild
Normal file
3
_multibuild
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
<multibuild>
|
||||||
|
<package>qemu-linux-user</package>
|
||||||
|
</multibuild>
|
22
_service
Normal file
22
_service
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
<services>
|
||||||
|
<service name="obs_scm" mode="manual">
|
||||||
|
<param name="scm">git</param>
|
||||||
|
<param name="url">https://github.com/opensuse/qemu.git</param>
|
||||||
|
<param name="revision">factory</param>
|
||||||
|
<param name="versionformat">@PARENT_TAG@</param>
|
||||||
|
<param name="versionrewrite-pattern">[v]?([^-+a-z]+)(.*)</param>
|
||||||
|
<param name="versionrewrite-replacement">\1</param>
|
||||||
|
<param name="changesgenerate">enable</param>
|
||||||
|
<param name="extract">rpm/common.inc</param>
|
||||||
|
<param name="extract">rpm/qemu.spec</param>
|
||||||
|
<param name="extract">rpm/qemu-linux-user.spec</param>
|
||||||
|
<param name="extract">rpm/README.PACKAGING</param>
|
||||||
|
<param name="extract">rpm/qemu-rpmlintrc</param>
|
||||||
|
</service>
|
||||||
|
<service name="set_version" mode="manual"/>
|
||||||
|
<service name="tar" mode="buildtime"/>
|
||||||
|
<service name="recompress" mode="buildtime">
|
||||||
|
<param name="file">*.tar</param>
|
||||||
|
<param name="compression">xz</param>
|
||||||
|
</service>
|
||||||
|
</services>
|
4
_servicedata
Normal file
4
_servicedata
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
<servicedata>
|
||||||
|
<service name="tar_scm">
|
||||||
|
<param name="url">https://github.com/opensuse/qemu.git</param>
|
||||||
|
<param name="changesrevision">ea9bb967774f7604ae9a726c4ffb3dee401565d6</param></service></servicedata>
|
102
common.inc
Normal file
102
common.inc
Normal file
@ -0,0 +1,102 @@
|
|||||||
|
%define _buildshell /bin/bash
|
||||||
|
|
||||||
|
%define sbver 1.16.3_3_gc13ff2cd
|
||||||
|
|
||||||
|
%define srcdir %{_builddir}/%buildsubdir
|
||||||
|
%define blddir %srcdir/build
|
||||||
|
|
||||||
|
%define build_x86_firmware 0
|
||||||
|
%define build_ppc_firmware 0
|
||||||
|
%define build_opensbi_firmware 0
|
||||||
|
%define kvm_available 0
|
||||||
|
%define legacy_qemu_kvm 0
|
||||||
|
%define force_fit_virtio_pxe_rom 1
|
||||||
|
|
||||||
|
%define with_xen 0%{!?_without_xen:1}
|
||||||
|
|
||||||
|
%if "%{?distribution}" == ""
|
||||||
|
%define distro private-build
|
||||||
|
%else
|
||||||
|
%define distro %{distribution}
|
||||||
|
%endif
|
||||||
|
|
||||||
|
# Items to exclude in ALP-based products
|
||||||
|
%if 0%{?suse_version} == 1600
|
||||||
|
%define with_xen 0
|
||||||
|
%endif
|
||||||
|
|
||||||
|
%bcond_with system_membarrier
|
||||||
|
%bcond_with malloc_trim
|
||||||
|
|
||||||
|
%bcond_with chkqtests
|
||||||
|
|
||||||
|
%if 0%{?suse_version} > 1600
|
||||||
|
# canokey is an openSUSE thing, not a SLE one
|
||||||
|
%ifarch x86_64
|
||||||
|
%bcond_without canokey
|
||||||
|
%else
|
||||||
|
%bcond_with canokey
|
||||||
|
%endif
|
||||||
|
%endif
|
||||||
|
|
||||||
|
%if 0%{?suse_version} > 1600
|
||||||
|
# XDP seems not to be there in SLE...
|
||||||
|
%bcond_without xdp
|
||||||
|
%else
|
||||||
|
%bcond_with xdp
|
||||||
|
%endif
|
||||||
|
|
||||||
|
# Make it possible to build without spice (for SLE/Leap Micro)
|
||||||
|
%bcond_without spice
|
||||||
|
|
||||||
|
# We do not have the stuff needed to compile rutabaga support.
|
||||||
|
# If/when we want to do it, we can check how it's done here:
|
||||||
|
# https://src.fedoraproject.org/rpms/qemu/c/deeb9357cb751df21c566fd8408936cfb034d43b?branch=rawhide
|
||||||
|
%define has_rutabaga_gfx 0
|
||||||
|
|
||||||
|
%define has_virtiofsd 1
|
||||||
|
# Upstream virtiofsd does not even build on 32 bit systems
|
||||||
|
%ifarch %ix86 %arm
|
||||||
|
%define has_virtiofsd 0
|
||||||
|
%endif
|
||||||
|
|
||||||
|
# non-x86 archs still seem to have some issues with Link Time Optimization
|
||||||
|
%ifnarch %ix86 x86_64
|
||||||
|
%define _lto_cflags %{nil}
|
||||||
|
%endif
|
||||||
|
|
||||||
|
%ifarch aarch64
|
||||||
|
%define qemu_arch aarch64
|
||||||
|
%endif
|
||||||
|
%ifarch %arm
|
||||||
|
%define qemu_arch arm
|
||||||
|
%endif
|
||||||
|
%ifarch %ix86
|
||||||
|
%define qemu_arch i386
|
||||||
|
%endif
|
||||||
|
%ifarch ppc64
|
||||||
|
%define qemu_arch ppc64
|
||||||
|
%endif
|
||||||
|
%ifarch ppc
|
||||||
|
%define qemu_arch ppc
|
||||||
|
%endif
|
||||||
|
%ifarch ppc64le
|
||||||
|
%define qemu_arch ppc64le
|
||||||
|
%endif
|
||||||
|
%ifarch riscv64
|
||||||
|
%define qemu_arch riscv64
|
||||||
|
%endif
|
||||||
|
%ifarch s390x
|
||||||
|
%define qemu_arch s390x
|
||||||
|
%endif
|
||||||
|
%ifarch x86_64
|
||||||
|
%define qemu_arch x86_64
|
||||||
|
%endif
|
||||||
|
|
||||||
|
%define generic_qemu_description \
|
||||||
|
QEMU provides full machine emulation and cross architecture usage. It closely\
|
||||||
|
integrates with KVM and Xen virtualization, allowing for excellent performance.\
|
||||||
|
Many options are available for defining the emulated environment, including\
|
||||||
|
traditional devices, direct host device access, and interfaces specific to\
|
||||||
|
virtualization.
|
||||||
|
|
3
qemu-9.0.1.obscpio
Normal file
3
qemu-9.0.1.obscpio
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
version https://git-lfs.github.com/spec/v1
|
||||||
|
oid sha256:5ad9bf73fdbbc64be07a3521aaff41991bf8dadaa54b1e3c97ddff3d108b1b32
|
||||||
|
size 849582607
|
3
qemu-9.0.2.obscpio
Normal file
3
qemu-9.0.2.obscpio
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
version https://git-lfs.github.com/spec/v1
|
||||||
|
oid sha256:8bfd08f5713385ffaf0317840731ba6c6cf1b2eb0c7bee55ea356b735ef097d8
|
||||||
|
size 849585167
|
352
qemu-linux-user.spec
Normal file
352
qemu-linux-user.spec
Normal file
@ -0,0 +1,352 @@
|
|||||||
|
#
|
||||||
|
# spec file for package qemu-linux-user
|
||||||
|
#
|
||||||
|
# Copyright (c) 2024 SUSE LLC
|
||||||
|
#
|
||||||
|
# All modifications and additions to the file contributed by third parties
|
||||||
|
# remain the property of their copyright owners, unless otherwise agreed
|
||||||
|
# upon. The license for this file, and modifications and additions to the
|
||||||
|
# file, is the same license as for the pristine package itself (unless the
|
||||||
|
# license for the pristine package is not an Open Source License, in which
|
||||||
|
# case the license is the MIT License). An "Open Source License" is a
|
||||||
|
# license that conforms to the Open Source Definition (Version 1.9)
|
||||||
|
# published by the Open Source Initiative.
|
||||||
|
|
||||||
|
# Please submit bugfixes or comments via https://bugs.opensuse.org/
|
||||||
|
#
|
||||||
|
|
||||||
|
|
||||||
|
%include %{_sourcedir}/common.inc
|
||||||
|
|
||||||
|
%ifarch %ix86 x86_64 s390x
|
||||||
|
%define legacy_qemu_kvm 1
|
||||||
|
%endif
|
||||||
|
|
||||||
|
Name: qemu-linux-user
|
||||||
|
URL: https://www.qemu.org/
|
||||||
|
Summary: CPU emulator for user space
|
||||||
|
License: BSD-2-Clause AND BSD-3-Clause AND GPL-2.0-only AND GPL-2.0-or-later AND LGPL-2.1-or-later AND MIT
|
||||||
|
Group: System/Emulators/PC
|
||||||
|
Version: 9.0.2
|
||||||
|
Release: 0
|
||||||
|
Source0: qemu-%{version}.tar.xz
|
||||||
|
Source1: common.inc
|
||||||
|
Source200: qemu-rpmlintrc
|
||||||
|
Source303: README.PACKAGING
|
||||||
|
Source1000: qemu-rpmlintrc
|
||||||
|
BuildRoot: %{_tmppath}/%{name}-%{version}-build
|
||||||
|
BuildRequires: bison
|
||||||
|
BuildRequires: glib2-devel-static >= 2.56
|
||||||
|
BuildRequires: glibc-devel-static
|
||||||
|
BuildRequires: (pcre-devel-static if glib2-devel-static < 2.73 else pcre2-devel-static)
|
||||||
|
# passing filelist check for /usr/lib/binfmt.d
|
||||||
|
BuildRequires: systemd
|
||||||
|
BuildRequires: zlib-devel-static
|
||||||
|
# we must not install the qemu-linux-user package when under QEMU build
|
||||||
|
%if 0%{?qemu_user_space_build:1}
|
||||||
|
#!BuildIgnore: post-build-checks
|
||||||
|
%endif
|
||||||
|
BuildRequires: discount
|
||||||
|
BuildRequires: fdupes
|
||||||
|
BuildRequires: flex
|
||||||
|
BuildRequires: gcc-c++
|
||||||
|
BuildRequires: meson
|
||||||
|
BuildRequires: ninja >= 1.7
|
||||||
|
%if 0%{?suse_version} >= 1600
|
||||||
|
BuildRequires: python3-Sphinx
|
||||||
|
BuildRequires: python3-base >= 3.8
|
||||||
|
%else
|
||||||
|
BuildRequires: python311-Sphinx
|
||||||
|
BuildRequires: python311-base
|
||||||
|
%endif
|
||||||
|
|
||||||
|
%description
|
||||||
|
QEMU provides CPU emulation along with other related capabilities. This package
|
||||||
|
provides programs to run user space binaries and libraries meant for another
|
||||||
|
architecture. The syscall interface is intercepted and execution below the
|
||||||
|
syscall layer occurs on the native hardware and operating system.
|
||||||
|
|
||||||
|
%files
|
||||||
|
%doc README.rst VERSION
|
||||||
|
%license COPYING COPYING.LIB LICENSE
|
||||||
|
%_bindir/qemu-aarch64
|
||||||
|
%_bindir/qemu-aarch64_be
|
||||||
|
%_bindir/qemu-alpha
|
||||||
|
%_bindir/qemu-arm
|
||||||
|
%_bindir/qemu-armeb
|
||||||
|
%_bindir/qemu-cris
|
||||||
|
%_bindir/qemu-hexagon
|
||||||
|
%_bindir/qemu-hppa
|
||||||
|
%_bindir/qemu-i386
|
||||||
|
%_bindir/qemu-loongarch64
|
||||||
|
%_bindir/qemu-m68k
|
||||||
|
%_bindir/qemu-microblaze
|
||||||
|
%_bindir/qemu-microblazeel
|
||||||
|
%_bindir/qemu-mips
|
||||||
|
%_bindir/qemu-mips64
|
||||||
|
%_bindir/qemu-mips64el
|
||||||
|
%_bindir/qemu-mipsel
|
||||||
|
%_bindir/qemu-mipsn32
|
||||||
|
%_bindir/qemu-mipsn32el
|
||||||
|
%_bindir/qemu-nios2
|
||||||
|
%_bindir/qemu-or1k
|
||||||
|
%_bindir/qemu-ppc
|
||||||
|
%_bindir/qemu-ppc64
|
||||||
|
%_bindir/qemu-ppc64le
|
||||||
|
%_bindir/qemu-riscv32
|
||||||
|
%_bindir/qemu-riscv64
|
||||||
|
%_bindir/qemu-s390x
|
||||||
|
%_bindir/qemu-sh4
|
||||||
|
%_bindir/qemu-sh4eb
|
||||||
|
%_bindir/qemu-sparc
|
||||||
|
%_bindir/qemu-sparc32plus
|
||||||
|
%_bindir/qemu-sparc64
|
||||||
|
%_bindir/qemu-x86_64
|
||||||
|
%_bindir/qemu-xtensa
|
||||||
|
%_bindir/qemu-xtensaeb
|
||||||
|
%_sbindir/qemu-binfmt-conf.sh
|
||||||
|
%_prefix/lib/binfmt.d/qemu-*.conf
|
||||||
|
|
||||||
|
%prep
|
||||||
|
%autosetup -n qemu-%{version} -p1
|
||||||
|
|
||||||
|
# We have the meson subprojects there, but as submodules (because OBS
|
||||||
|
# SCM bridge can handle the latter, but not the former) so we need to
|
||||||
|
# apply the layering of the packagefiles manually
|
||||||
|
meson subprojects packagefiles --apply berkeley-testfloat-3
|
||||||
|
meson subprojects packagefiles --apply berkeley-softfloat-3
|
||||||
|
|
||||||
|
%build
|
||||||
|
|
||||||
|
%define rpmfilesdir %{_builddir}/qemu-%{version}/rpm
|
||||||
|
|
||||||
|
%if %{legacy_qemu_kvm}
|
||||||
|
# FIXME: Why are we copying the s390 specific one?
|
||||||
|
cp %{rpmfilesdir}/supported.s390.txt docs/supported.rst
|
||||||
|
sed -i '/^\ \ \ about\/index.*/i \ \ \ supported.rst' docs/index.rst
|
||||||
|
%endif
|
||||||
|
|
||||||
|
find . -iname ".git" -exec rm -rf {} +
|
||||||
|
|
||||||
|
mkdir -p %blddir
|
||||||
|
cd %blddir
|
||||||
|
|
||||||
|
# We define a few general and common options and then we disable
|
||||||
|
# pretty much everything. Afterwards, there is a section for each
|
||||||
|
# of the flavors where we explicitly enable all the feature we want
|
||||||
|
# for them.
|
||||||
|
|
||||||
|
# TODO: Check whether we want to enable the followings:
|
||||||
|
# * avx512f
|
||||||
|
# * debug-info
|
||||||
|
# * fuse
|
||||||
|
# * malloc-trim
|
||||||
|
# * multiprocess
|
||||||
|
# * qom-cast-debug
|
||||||
|
# * trace-backends=dtrace
|
||||||
|
#
|
||||||
|
# Fedora has avx2 enabled for ix86, while we can't (I tried). Guess it's
|
||||||
|
# because, for them, ix86 == i686 (while for us it's i586).
|
||||||
|
|
||||||
|
# Let's try to stick to _FORTIFY_SOURCE=2 for now
|
||||||
|
EXTRA_CFLAGS="$(echo %{optflags} | sed -E 's/-[A-Z]?_FORTIFY_SOURCE[=]?[0-9]*//g') -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -Wno-error"
|
||||||
|
|
||||||
|
%srcdir/configure \
|
||||||
|
%if 0%{?suse_version} >= 1600
|
||||||
|
--python=%_bindir/python3 \
|
||||||
|
%else
|
||||||
|
--python=%_bindir/python3.11 \
|
||||||
|
%endif
|
||||||
|
--docdir=%_docdir \
|
||||||
|
--datadir=%_datadir \
|
||||||
|
--extra-cflags="${EXTRA_CFLAGS}" \
|
||||||
|
--firmwarepath=%_datadir/%name \
|
||||||
|
--libdir=%_libdir \
|
||||||
|
--libexecdir=%_libexecdir \
|
||||||
|
--localstatedir=%_localstatedir \
|
||||||
|
--prefix=%_prefix \
|
||||||
|
--sysconfdir=%_sysconfdir \
|
||||||
|
--with-pkgversion="%(echo '%{distro}' | sed 's/ (.*)//')" \
|
||||||
|
--disable-af-xdp \
|
||||||
|
--disable-alsa \
|
||||||
|
--disable-attr \
|
||||||
|
--disable-auth-pam \
|
||||||
|
--disable-avx2 \
|
||||||
|
--disable-avx512f \
|
||||||
|
--disable-block-drv-whitelist-in-tools \
|
||||||
|
--disable-bochs \
|
||||||
|
--disable-bpf \
|
||||||
|
--disable-brlapi \
|
||||||
|
--disable-bsd-user \
|
||||||
|
--disable-bzip2 \
|
||||||
|
--disable-cap-ng \
|
||||||
|
--disable-capstone \
|
||||||
|
--disable-cfi \
|
||||||
|
--disable-cfi-debug \
|
||||||
|
--disable-cloop \
|
||||||
|
--disable-cocoa \
|
||||||
|
--disable-coreaudio \
|
||||||
|
--disable-coroutine-pool \
|
||||||
|
--disable-crypto-afalg \
|
||||||
|
--disable-curl \
|
||||||
|
--disable-curses \
|
||||||
|
--disable-dbus-display \
|
||||||
|
--disable-debug-info \
|
||||||
|
--disable-debug-mutex \
|
||||||
|
--disable-debug-tcg \
|
||||||
|
--disable-dmg \
|
||||||
|
--disable-docs \
|
||||||
|
--disable-download \
|
||||||
|
--disable-dsound \
|
||||||
|
--disable-fdt \
|
||||||
|
--disable-fuse \
|
||||||
|
--disable-fuse-lseek \
|
||||||
|
--disable-gcrypt \
|
||||||
|
--disable-gettext \
|
||||||
|
--disable-gio \
|
||||||
|
--disable-glusterfs \
|
||||||
|
--disable-gnutls \
|
||||||
|
--disable-gtk \
|
||||||
|
--disable-guest-agent \
|
||||||
|
--disable-guest-agent-msi \
|
||||||
|
--disable-hv-balloon \
|
||||||
|
--disable-hvf \
|
||||||
|
--disable-iconv \
|
||||||
|
--disable-jack \
|
||||||
|
--disable-kvm \
|
||||||
|
--disable-l2tpv3 \
|
||||||
|
--disable-libdaxctl \
|
||||||
|
--disable-libiscsi \
|
||||||
|
--disable-libkeyutils \
|
||||||
|
--disable-libnfs \
|
||||||
|
--disable-libpmem \
|
||||||
|
--disable-libssh \
|
||||||
|
--disable-libudev \
|
||||||
|
--disable-libusb \
|
||||||
|
--disable-linux-aio \
|
||||||
|
--disable-linux-io-uring \
|
||||||
|
--disable-linux-user \
|
||||||
|
--disable-live-block-migration \
|
||||||
|
--disable-lto \
|
||||||
|
--disable-lzfse \
|
||||||
|
--disable-lzo \
|
||||||
|
--disable-malloc-trim \
|
||||||
|
--disable-membarrier \
|
||||||
|
--disable-module-upgrades \
|
||||||
|
--disable-modules \
|
||||||
|
--disable-mpath \
|
||||||
|
--disable-multiprocess \
|
||||||
|
--disable-netmap \
|
||||||
|
--disable-nettle \
|
||||||
|
--disable-numa \
|
||||||
|
--disable-nvmm \
|
||||||
|
--disable-opengl \
|
||||||
|
--disable-oss \
|
||||||
|
--disable-pa \
|
||||||
|
--disable-parallels \
|
||||||
|
--disable-pie \
|
||||||
|
--disable-pipewire \
|
||||||
|
--disable-pixman \
|
||||||
|
--disable-plugins \
|
||||||
|
--disable-png \
|
||||||
|
--disable-pvrdma \
|
||||||
|
--disable-qcow1 \
|
||||||
|
--disable-qed \
|
||||||
|
--disable-qom-cast-debug \
|
||||||
|
--disable-rbd \
|
||||||
|
--disable-rdma \
|
||||||
|
--disable-relocatable \
|
||||||
|
--disable-replication \
|
||||||
|
--disable-rng-none \
|
||||||
|
--disable-rutabaga-gfx \
|
||||||
|
--disable-safe-stack \
|
||||||
|
--disable-sanitizers \
|
||||||
|
--disable-sdl \
|
||||||
|
--disable-sdl-image \
|
||||||
|
--disable-seccomp \
|
||||||
|
--disable-selinux \
|
||||||
|
--disable-slirp \
|
||||||
|
--disable-slirp-smbd \
|
||||||
|
--disable-smartcard \
|
||||||
|
--disable-snappy \
|
||||||
|
--disable-sparse \
|
||||||
|
--disable-spice \
|
||||||
|
--disable-spice-protocol \
|
||||||
|
--disable-strip \
|
||||||
|
--disable-system \
|
||||||
|
--disable-tcg \
|
||||||
|
--disable-tcg-interpreter \
|
||||||
|
--disable-tools \
|
||||||
|
--disable-tpm \
|
||||||
|
--disable-u2f \
|
||||||
|
--disable-usb-redir \
|
||||||
|
--disable-user \
|
||||||
|
--disable-vde \
|
||||||
|
--disable-vdi \
|
||||||
|
--disable-vhost-crypto \
|
||||||
|
--disable-vhost-kernel \
|
||||||
|
--disable-vhost-net \
|
||||||
|
--disable-vhost-user \
|
||||||
|
--disable-vhost-user-blk-server \
|
||||||
|
--disable-vhost-vdpa \
|
||||||
|
--disable-virglrenderer \
|
||||||
|
--disable-virtfs \
|
||||||
|
--disable-vnc \
|
||||||
|
--disable-vnc-jpeg \
|
||||||
|
--disable-vnc-sasl \
|
||||||
|
--disable-vte \
|
||||||
|
--disable-vvfat \
|
||||||
|
--disable-werror \
|
||||||
|
--disable-whpx \
|
||||||
|
--disable-xen \
|
||||||
|
--disable-xen-pci-passthrough \
|
||||||
|
--disable-xkbcommon \
|
||||||
|
--disable-zstd \
|
||||||
|
--without-default-devices \
|
||||||
|
%if %{with system_membarrier}
|
||||||
|
--enable-membarrier \
|
||||||
|
%endif
|
||||||
|
%if %{with malloc_trim}
|
||||||
|
--enable-malloc-trim \
|
||||||
|
%endif
|
||||||
|
%if "%{_lto_cflags}" != "%{nil}"
|
||||||
|
--enable-lto \
|
||||||
|
%endif
|
||||||
|
--disable-install-blobs \
|
||||||
|
--enable-attr \
|
||||||
|
--enable-coroutine-pool \
|
||||||
|
--enable-linux-user \
|
||||||
|
--enable-selinux \
|
||||||
|
--enable-tcg \
|
||||||
|
--static
|
||||||
|
|
||||||
|
echo "=== Content of config-host.mak: ==="
|
||||||
|
cat config-host.mak
|
||||||
|
echo "=== ==="
|
||||||
|
|
||||||
|
%make_build
|
||||||
|
|
||||||
|
%install
|
||||||
|
cd %blddir
|
||||||
|
|
||||||
|
%make_build install DESTDIR=%{buildroot}
|
||||||
|
|
||||||
|
rm -rf %{buildroot}%_datadir/qemu/keymaps
|
||||||
|
unlink %{buildroot}%_datadir/qemu/trace-events-all
|
||||||
|
install -d -m 755 %{buildroot}%_sbindir
|
||||||
|
install -m 755 scripts/qemu-binfmt-conf.sh %{buildroot}%_sbindir
|
||||||
|
install -d -m 755 %{buildroot}%{_prefix}/lib/binfmt.d/
|
||||||
|
scripts/qemu-binfmt-conf.sh --systemd ALL --persistent yes --preserve-argv0 yes --exportdir %{buildroot}%{_prefix}/lib/binfmt.d/
|
||||||
|
|
||||||
|
%fdupes -s %{buildroot}
|
||||||
|
|
||||||
|
%check
|
||||||
|
cd %blddir
|
||||||
|
|
||||||
|
%ifarch aarch64 %ix86 ppc ppc64 ppc64le riscv64 s390x x86_64
|
||||||
|
./qemu-%{qemu_arch} %_bindir/ls > /dev/null
|
||||||
|
%endif
|
||||||
|
|
||||||
|
%make_build check-softfloat
|
||||||
|
|
||||||
|
%changelog
|
7
qemu-rpmlintrc
Normal file
7
qemu-rpmlintrc
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
# This line is mandatory to access the configuration functions
|
||||||
|
from Config import *
|
||||||
|
|
||||||
|
addFilter("arch-dependent-file-in-usr-share")
|
||||||
|
addFilter("obsolete-not-provided")
|
||||||
|
addFilter("summary-not-capitalized")
|
||||||
|
addFilter("executable-stack")
|
9396
qemu.changes
Normal file
9396
qemu.changes
Normal file
File diff suppressed because it is too large
Load Diff
4
qemu.obsinfo
Normal file
4
qemu.obsinfo
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
name: qemu
|
||||||
|
version: 9.0.2
|
||||||
|
mtime: 1721812369
|
||||||
|
commit: ea9bb967774f7604ae9a726c4ffb3dee401565d6
|
Loading…
Reference in New Issue
Block a user