diff --git a/qemu-4.2-vitastor.patch b/qemu-4.2-vitastor.patch new file mode 100644 index 000000000..b09f7b6ac --- /dev/null +++ b/qemu-4.2-vitastor.patch @@ -0,0 +1,84 @@ +Index: qemu/qapi/block-core.json +=================================================================== +--- qemu.orig/qapi/block-core.json 2020-11-07 22:57:38.932613674 +0000 ++++ qemu.orig/qapi/block-core.json 2020-11-07 22:59:49.890722862 +0000 +@@ -2907,7 +2907,7 @@ + 'nbd', 'nfs', 'null-aio', 'null-co', 'nvme', 'parallels', 'qcow', + 'qcow2', 'qed', 'quorum', 'raw', 'rbd', + { 'name': 'replication', 'if': 'defined(CONFIG_REPLICATION)' }, +- 'sheepdog', ++ 'sheepdog', 'vitastor', + 'ssh', 'throttle', 'vdi', 'vhdx', 'vmdk', 'vpc', 'vvfat', 'vxhs' ] } + + ## +@@ -3725,6 +3725,24 @@ + '*tag': 'str' } } + + ## ++# @BlockdevOptionsVitastor: ++# ++# Driver specific block device options for vitastor ++# ++# @inode: Inode number ++# @pool: Pool ID ++# @size: Desired image size in bytes ++# @etcd_host: etcd connection address ++# @etcd_prefix: etcd key/value prefix ++## ++{ 'struct': 'BlockdevOptionsVitastor', ++ 'data': { 'inode': 'uint64', ++ 'pool': 'uint64', ++ 'size': 'uint64', ++ 'etcd_host': 'str', ++ '*etcd_prefix': 'str' } } ++ ++## + # @ReplicationMode: + # + # An enumeration of replication modes. +@@ -4084,6 +4102,7 @@ + 'replication': { 'type': 'BlockdevOptionsReplication', + 'if': 'defined(CONFIG_REPLICATION)' }, + 'sheepdog': 'BlockdevOptionsSheepdog', ++ 'vitastor': 'BlockdevOptionsVitastor', + 'ssh': 'BlockdevOptionsSsh', + 'throttle': 'BlockdevOptionsThrottle', + 'vdi': 'BlockdevOptionsGenericFormat', +@@ -4461,6 +4480,17 @@ + '*cluster-size' : 'size' } } + + ## ++# @BlockdevCreateOptionsVitastor: ++# ++# Driver specific image creation options for Vitastor. ++# ++# @size: Size of the virtual disk in bytes ++## ++{ 'struct': 'BlockdevCreateOptionsVitastor', ++ 'data': { 'location': 'BlockdevOptionsVitastor', ++ 'size': 'size' } } ++ ++## + # @BlockdevVmdkSubformat: + # + # Subformat options for VMDK images +@@ -4722,6 +4752,7 @@ + 'qed': 'BlockdevCreateOptionsQed', + 'rbd': 'BlockdevCreateOptionsRbd', + 'sheepdog': 'BlockdevCreateOptionsSheepdog', ++ 'vitastor': 'BlockdevCreateOptionsVitastor', + 'ssh': 'BlockdevCreateOptionsSsh', + 'vdi': 'BlockdevCreateOptionsVdi', + 'vhdx': 'BlockdevCreateOptionsVhdx', +Index: qemu/scripts/modules/module_block.py +=================================================================== +--- qemu.orig/scripts/modules/module_block.py 2020-11-07 22:57:38.936613739 +0000 ++++ qemu/scripts/modules/module_block.py 2020-11-07 22:59:49.890722862 +0000 +@@ -86,6 +86,7 @@ def print_bottom(fheader): + output_file = sys.argv[1] + with open(output_file, 'w') as fheader: + print_top(fheader) ++ add_module(fheader, "vitastor", "vitastor", "vitastor") + + for filename in sys.argv[2:]: + if os.path.isfile(filename): diff --git a/rpm/qemu-kvm.spec.patch b/rpm/qemu-kvm.spec.patch new file mode 100644 index 000000000..cf134e5d9 --- /dev/null +++ b/rpm/qemu-kvm.spec.patch @@ -0,0 +1,20 @@ +--- qemu-kvm.spec 2020-11-07 22:48:46.312124920 +0000 ++++ qemu-kvm.spec 2020-11-07 23:04:06.246772766 +0000 +@@ -67,7 +67,7 @@ Obsoletes: %1-rhev + Summary: QEMU is a machine emulator and virtualizer + Name: qemu-kvm + Version: 4.2.0 +-Release: 29%{?dist}.6 ++Release: 29.vitastor%{?dist}.6 + # Epoch because we pushed a qemu-1.0 package. AIUI this can't ever be dropped + Epoch: 15 + License: GPLv2 and GPLv2+ and CC-BY +@@ -825,6 +825,8 @@ Patch331: kvm-Drop-bogus-IPv6-messages.p + Patch333: kvm-virtiofsd-Whitelist-fchmod.patch + # For bz#1883869 - virtiofsd core dump in KATA Container [rhel-8.2.1.z] + Patch334: kvm-virtiofsd-avoid-proc-self-fd-tempdir.patch ++# Vitastor ++Patch335: qemu-4.2-vitastor.patch + + BuildRequires: wget + BuildRequires: rpm-build