Hey! I updated and re-patched Virt Manager. I attached the updated
PKGBUILD and patches.
--
Iván Ávalos
XMPP: [email protected]
Website: https://avalos.me/
diff --git a/virtManager/oslist.py b/virtManager/oslist.py
index 43d1d27..bd4281e 100644
--- a/virtManager/oslist.py
+++ b/virtManager/oslist.py
@@ -58,6 +58,11 @@ class vmmOSList(vmmGObjectUI):
os_list_model = Gtk.ListStore(object, str)
all_os = virtinst.OSDB.list_os(sortkey="label")
+ all_os = [os for os in all_os if os.name in [ 'generic' , \
+ 'parabola' , \
+ 'pureos' , \
+ 'trisquel8' , \
+ 'trisquel9' ] ]
# Always put the generic entries at the end of the list
all_os = list(sorted(all_os, key=_always_show))
diff --git a/virtinst/install/urldetect.py b/virtinst/install/urldetect.py
index e303163..50df0af 100644
--- a/virtinst/install/urldetect.py
+++ b/virtinst/install/urldetect.py
@@ -298,422 +298,6 @@ class _DistroTree(object):
return self.cache.libosinfo_treeobj
-class _FedoraDistro(_DistroTree):
- PRETTY_NAME = "Fedora"
- matching_distros = ["fedora"]
-
- @classmethod
- def is_valid(cls, cache):
- famregex = ".*Fedora.*"
- return cache.treeinfo_family_regex(famregex)
-
- def _detect_version(self):
- latest_variant = "fedora-unknown"
-
- verstr = self.cache.treeinfo_version
- if not verstr: # pragma: no cover
- log.debug("No treeinfo version? Assume latest_variant=%s",
- latest_variant)
- return latest_variant
-
- # rawhide trees changed to use version=Rawhide in Apr 2016
- if verstr in ["development", "rawhide", "Rawhide"]:
- log.debug("treeinfo version=%s, using latest_variant=%s",
- verstr, latest_variant)
- return latest_variant
-
- # treeinfo version is just an integer
- variant = "fedora" + verstr
- if OSDB.lookup_os(variant):
- return variant
-
- log.debug(
- "variant=%s from treeinfo version=%s not found, "
- "using latest_variant=%s", variant, verstr, latest_variant)
- return latest_variant
-
-
-class _RHELDistro(_DistroTree):
- PRETTY_NAME = "Red Hat Enterprise Linux"
- matching_distros = ["rhel"]
- _variant_prefix = "rhel"
-
- @classmethod
- def is_valid(cls, cache):
- # Matches:
- # Red Hat Enterprise Linux
- # RHEL Atomic Host
- famregex = ".*(Red Hat Enterprise Linux|RHEL).*"
- if cache.treeinfo_family_regex(famregex):
- return True
-
- def _detect_version(self):
- if not self.cache.treeinfo_version: # pragma: no cover
- log.debug("No treeinfo version? Not setting an os_variant")
- return
-
- version, update = self.cache.split_version()
-
- # start with example base=rhel7, then walk backwards
- # through the OS list to find the latest os name that matches
- # this way we handle rhel7.6 from treeinfo when osdict only
- # knows about rhel7.5
- base = self._variant_prefix + str(version)
- while update >= 0:
- tryvar = base + ".%s" % update
- if OSDB.lookup_os(tryvar):
- return tryvar
- update -= 1
-
-
-class _CentOSDistro(_RHELDistro):
- PRETTY_NAME = "CentOS"
- matching_distros = ["centos"]
- _variant_prefix = "centos"
-
- @classmethod
- def is_valid(cls, cache):
- if cache.treeinfo_family_regex(".*CentOS.*"):
- return True
- if cache.treeinfo_family_regex(".*Scientific.*"):
- return True
-
-
-
-class _SuseDistro(_RHELDistro):
- PRETTY_NAME = None
- _suse_regex = []
- matching_distros = []
- _variant_prefix = NotImplementedError
- famregex = NotImplementedError
-
- @classmethod
- def is_valid(cls, cache):
- if cache.treeinfo_family_regex(cls.famregex):
- return True
-
- if not cache.checked_for_suse_content:
- cache.checked_for_suse_content = True
- content_str = cache.acquire_file_content("content")
- if content_str is None:
- return False
-
- try:
- cache.suse_content = _SUSEContent(content_str)
- except Exception as e: # pragma: no cover
- log.debug("Error parsing SUSE content file: %s", str(e))
- return False
-
- if not cache.suse_content:
- return False
- for regex in cls._suse_regex:
- if re.match(regex, cache.suse_content.product_name or ""):
- return True
- return False
-
- def _set_manual_kernel_paths(self):
- # We only reach here if no treeinfo was matched
- tree_arch = self.cache.suse_content.tree_arch
-
- if re.match(r'i[4-9]86', tree_arch):
- tree_arch = 'i386'
-
- oldkern = "linux"
- oldinit = "initrd"
- if tree_arch == "x86_64":
- oldkern += "64"
- oldinit += "64"
-
- if self.type == "xen":
- # Matches Opensuse > 10.2 and sles 10
- self._kernel_paths.append(
- ("boot/%s/vmlinuz-xen" % tree_arch,
- "boot/%s/initrd-xen" % tree_arch))
-
- if str(self._os_variant).startswith(("sles11", "sled11")):
- if tree_arch == "s390x":
- self._kernel_paths.append(
- ("boot/s390x/vmrdr.ikr", "boot/s390x/initrd"))
- if tree_arch == "ppc64":
- self._kernel_paths.append(
- ("suseboot/linux64", "suseboot/initrd64"))
-
- # Tested with SLES 12 for ppc64le, all s390x
- self._kernel_paths.append(
- ("boot/%s/linux" % tree_arch,
- "boot/%s/initrd" % tree_arch))
- # Tested with Opensuse 10.0
- self._kernel_paths.append(
- ("boot/loader/%s" % oldkern,
- "boot/loader/%s" % oldinit))
- # Tested with Opensuse >= 10.2, 11, and sles 10
- self._kernel_paths.append(
- ("boot/%s/loader/linux" % tree_arch,
- "boot/%s/loader/initrd" % tree_arch))
-
- def _detect_osdict_from_suse_content(self):
- if not self.cache.suse_content:
- return # pragma: no cover
-
- distro_version = self.cache.suse_content.product_version
- if not distro_version:
- return # pragma: no cover
-
- version = distro_version.split('.', 1)[0].strip()
-
- if str(self._variant_prefix).startswith(("sles", "sled")):
- sp_version = ""
- if len(distro_version.split('.', 1)) == 2:
- sp_version = 'sp' + distro_version.split('.', 1)[1].strip()
-
- return self._variant_prefix + version + sp_version
-
- return self._variant_prefix + distro_version
-
- def _detect_osdict_from_url(self):
- root = "opensuse"
- oses = [n for n in OSDB.list_os() if n.name.startswith(root)]
-
- for osobj in oses:
- codename = osobj.name[len(root):]
- if re.search("/%s/" % codename, self.uri):
- return osobj.name
-
- def _detect_from_treeinfo(self):
- if not self.cache.treeinfo_name:
- return
- if re.search("openSUSE Tumbleweed", self.cache.treeinfo_name):
- return "opensusetumbleweed"
-
- version, update = self.cache.split_version()
- base = self._variant_prefix + str(version)
- while update >= 0:
- tryvar = base
- # SLE doesn't use '.0' for initial releases in
- # osinfo-db (sles11, sles12, etc)
- if update > 0 or not base.startswith('sle'):
- tryvar += ".%s" % update
- if OSDB.lookup_os(tryvar):
- return tryvar
- update -= 1
-
- def _detect_version(self):
- var = self._detect_from_treeinfo()
- if not var:
- var = self._detect_osdict_from_url()
- if not var:
- var = self._detect_osdict_from_suse_content()
- return var
-
-
-class _SLESDistro(_SuseDistro):
- PRETTY_NAME = "SLES"
- matching_distros = ["sles"]
- _variant_prefix = "sles"
- _suse_regex = [".*SUSE Linux Enterprise Server*", ".*SUSE SLES*"]
- famregex = ".*SUSE Linux Enterprise.*"
-
-
-class _SLEDDistro(_SuseDistro):
- PRETTY_NAME = "SLED"
- matching_distros = ["sled"]
- _variant_prefix = "sled"
- _suse_regex = [".*SUSE Linux Enterprise Desktop*"]
- famregex = ".*SUSE Linux Enterprise.*"
-
-
-class _OpensuseDistro(_SuseDistro):
- PRETTY_NAME = "openSUSE"
- matching_distros = ["opensuse"]
- _variant_prefix = "opensuse"
- _suse_regex = [".*openSUSE.*"]
- famregex = ".*openSUSE.*"
-
-
-class _DebianDistro(_DistroTree):
- # ex. http://ftp.egr.msu.edu/debian/dists/sarge/main/installer-i386/
- # daily builds: https://d-i.debian.org/daily-images/amd64/
- PRETTY_NAME = "Debian"
- matching_distros = ["debian"]
- _debname = "debian"
-
- @classmethod
- def is_valid(cls, cache):
- def check_manifest(mfile):
- is_ubuntu = cls._debname == "ubuntu"
- if cache.content_regex(mfile, ".*[Uu]buntu.*"):
- return is_ubuntu
- return cache.content_regex(mfile, ".*[Dd]ebian.*")
-
- media_type = None
- if check_manifest("current/images/MANIFEST"):
- media_type = "url"
- elif check_manifest("current/legacy-images/MANIFEST"):
- media_type = "legacy_url"
- elif check_manifest("daily/MANIFEST"):
- media_type = "daily"
- elif cache.content_regex(".disk/info",
- "%s.*" % cls._debname.capitalize()):
- # There's two cases here:
- # 1) Direct access ISO, attached as CDROM afterwards. We
- # use one set of kernels in that case which seem to
- # assume the prescence of CDROM media
- # 2) ISO mounted and exported over URL. We use a different
- # set of kernels that expect to boot from the network
- if cache.fetcher_is_iso():
- media_type = "disk"
- else:
- media_type = "mounted_iso_url"
-
- if media_type:
- cache.debian_media_type = media_type
- return bool(media_type)
-
-
- def _set_manual_kernel_paths(self):
- if self.cache.debian_media_type == "disk":
- self._set_installcd_paths()
- else:
- self._set_url_paths()
-
-
- def _find_treearch(self):
- for pattern in [r"^.*/installer-(\w+)/?$",
- r"^.*/daily-images/(\w+)/?$"]:
- arch = re.findall(pattern, self.uri)
- if not arch:
- continue
- log.debug("Found pattern=%s treearch=%s in uri",
- pattern, arch[0])
- return arch[0]
-
- # Check for standard arch strings which will be
- # in the URI name for --location $ISO mounts
- for arch in ["i386", "amd64", "x86_64", "arm64"]:
- if arch in self.uri:
- log.debug("Found treearch=%s in uri", arch)
- if arch == "x86_64":
- arch = "amd64" # pragma: no cover
- return arch
-
- # Otherwise default to i386
- arch = "i386"
- log.debug("No treearch found in uri, defaulting to arch=%s", arch)
- return arch
-
- def _set_url_paths(self):
- url_prefix = "current/images"
- if self.cache.debian_media_type == "daily":
- url_prefix = "daily"
- elif self.cache.debian_media_type == "mounted_iso_url":
- url_prefix = "install"
- elif self.cache.debian_media_type == "legacy_url":
- url_prefix = "current/legacy-images"
-
- tree_arch = self._find_treearch()
- hvmroot = "%s/netboot/%s-installer/%s/" % (url_prefix,
- self._debname, tree_arch)
- initrd_basename = "initrd.gz"
- kernel_basename = "linux"
- if tree_arch in ["ppc64el"]:
- kernel_basename = "vmlinux"
-
- if tree_arch == "s390x":
- hvmroot = "%s/generic/" % url_prefix
- kernel_basename = "kernel.%s" % self._debname
- initrd_basename = "initrd.%s" % self._debname
-
-
- if self.type == "xen":
- xenroot = "%s/netboot/xen/" % url_prefix
- self._kernel_paths.append(
- (xenroot + "vmlinuz", xenroot + "initrd.gz"))
- self._kernel_paths.append(
- (hvmroot + kernel_basename, hvmroot + initrd_basename))
-
- def _set_installcd_paths(self):
- if self._debname == "ubuntu":
- if not self.arch == "s390x":
- kpair = ("install/vmlinuz", "install/initrd.gz")
- else:
- kpair = ("boot/kernel.ubuntu", "boot/initrd.ubuntu")
- elif self.arch == "x86_64":
- kpair = ("install.amd/vmlinuz", "install.amd/initrd.gz")
- elif self.arch == "i686":
- kpair = ("install.386/vmlinuz", "install.386/initrd.gz")
- elif self.arch == "aarch64":
- kpair = ("install.a64/vmlinuz", "install.a64/initrd.gz")
- elif self.arch == "ppc64le":
- kpair = ("install/vmlinux", "install/initrd.gz")
- elif self.arch == "s390x":
- kpair = ("boot/linux_vm", "boot/root.bin")
- else:
- kpair = ("install/vmlinuz", "install/initrd.gz")
- self._kernel_paths += [kpair]
- return True
-
- def _detect_version(self):
- oses = [n for n in OSDB.list_os() if n.name.startswith(self._debname)]
-
- if self.cache.debian_media_type == "daily":
- log.debug("Appears to be debian 'daily' URL, using latest "
- "debiantesting")
- return "debiantesting"
-
- for osobj in oses:
- if osobj.codename:
- # Ubuntu codenames look like 'Warty Warthog'
- codename = osobj.codename.split()[0].lower()
- else:
- if " " not in osobj.label:
- continue # pragma: no cover
- # Debian labels look like 'Debian Sarge'
- codename = osobj.label.split()[1].lower()
-
- if ("/%s/" % codename) in self.uri:
- log.debug("Found codename=%s in the URL string", codename)
- return osobj.name
-
-
-class _UbuntuDistro(_DebianDistro):
- # https://archive.ubuntu.com/ubuntu/dists/natty/main/installer-amd64/
- PRETTY_NAME = "Ubuntu"
- matching_distros = ["ubuntu"]
- _debname = "ubuntu"
-
-
-class _MageiaDistro(_DistroTree):
- # https://distro.ibiblio.org/mageia/distrib/cauldron/x86_64/
- PRETTY_NAME = "Mageia"
- matching_distros = ["mageia"]
-
- @classmethod
- def is_valid(cls, cache):
- if not cache.mageia_version:
- content = cache.acquire_file_content("VERSION")
- if not content:
- return False
-
- m = re.match(r"^Mageia (\d+) .*", content)
- if not m:
- return False # pragma: no cover
-
- cache.mageia_version = m.group(1)
-
- return bool(cache.mageia_version)
-
- def _set_manual_kernel_paths(self):
- self._kernel_paths += [
- ("isolinux/%s/vmlinuz" % self.arch,
- "isolinux/%s/all.rdz" % self.arch)]
-
- def _detect_version(self):
- # version is just an integer
- variant = "mageia" + self.cache.mageia_version
- if OSDB.lookup_os(variant):
- return variant
-
-
class _GenericTreeinfoDistro(_DistroTree):
"""
Generic catchall class for .treeinfo using distros
diff --git a/man/virt-install.rst b/man/virt-install.rst
index 3a6e8dc..078f859 100644
--- a/man/virt-install.rst
+++ b/man/virt-install.rst
@@ -647,17 +647,11 @@ DIRECTORY
Some distro specific url samples:
-Fedora/Red Hat Based
- https://download.fedoraproject.org/pub/fedora/linux/releases/29/Server/x86_64/os
+Parabola GNU/Linux-libre
+ https://redirector.parabola.nu/iso/parabola-2021.08.11/parabola-2021.08.11-dual.iso
-Debian
- https://debian.osuosl.org/debian/dists/stable/main/installer-amd64/
-
-Ubuntu
- https://us.archive.ubuntu.com/ubuntu/dists/wily/main/installer-amd64/
-
-Suse
- https://download.opensuse.org/pub/opensuse/distribution/leap/42.3/repo/oss/
+Trisquel
+ https://mirror.fsf.org/trisquel-images/trisquel_10.0.1_amd64.iso
Additionally, --location can take 'kernel' and 'initrd' sub options. These paths
relative to the specified location URL/ISO that allow selecting specific files
@@ -722,11 +716,11 @@ command has multiple subarguments, similar to --disk and friends. This
option is strictly for VM install operations, essentially configuring the
first boot.
-The simplest usage to ex: install fedora29 is:
+The simplest usage to ex: install parabola is:
.. code-block::
- --install fedora29
+ --install parabola
And virt-install will fetch a --location URL from libosinfo, and populate
defaults from there.
@@ -735,7 +729,7 @@ Available suboptions:
``os=``
This is os install option described above. The explicit way to specify that
- would be ``--install os=fedora29`` . os= is the default option if none is
+ would be ``--install os=parabola`` . os= is the default option if none is
specified
``kernel=``, ``initrd=``
@@ -804,19 +798,11 @@ device will be added.
Perform an unattended install using libosinfo's install script support.
This is essentially a database of auto install scripts for various
-distros: Red Hat kickstarts, Debian installer scripting, Windows
-unattended installs, and potentially others. The simplest invocation
-is to combine it with --install like:
-
-.. code-block::
-
- --install fedora29 --unattended
-
-A Windows install will look like
+distros. The simplest invocation is to combine it with --install.
.. code-block::
- --cdrom /path/to/my/windows.iso --unattended
+ --install parabola --unattended
Sub options are:
@@ -847,9 +833,6 @@ Sub options are:
Note that only the first line of the file will be considered, including
any whitespace characters and excluding new-line.
-``product-key=``
- Set a Windows product key
-
``--cloud-init``
@@ -1005,14 +988,14 @@ For most cases, an OS must be specified or detected from the install
media so performance critical features like virtio can be enabled.
The simplest usage is ``--os-variant OSNAME`` or ``--osinfo OSNAME``,
-for example ``--osinfo fedora32``. The supported suboptions are:
+for example ``--osinfo parabola``. The supported suboptions are:
``name=``, ``short-id=``
- The OS name/short-id from libosinfo. Examples: ``fedora32``, ``win10``
+ The OS name/short-id from libosinfo. Examples: ``parabola``
``id=``
- The full URL style libosinfo ID. For example, ``name=win10`` is
- the same as ``id=http://microsoft.com/win/10``
+ The full URL style libosinfo ID. For example, ``name=parabola`` is
+ the same as ``id=https://parabola.nu/parabola/rolling``
``detect=on|off``
Whether virt-install should attempt OS detection from the specified
@@ -1061,7 +1044,7 @@ STORAGE OPTIONS
``--disk``
^^^^^^^^^^
-**Syntax:** ``--disk`` OPTIONS
+````Syntax:** ``--disk`` OPTIONS
Specifies media to use as storage for the guest, with various options. The
general format of a disk string is
@@ -1190,7 +1173,7 @@ Some example device configuration suboptions:
"stop", "ignore", or "enospace"
``serial``
- Serial number of the emulated disk device. This is used in linux guests
+ Serial number of the emulated disk device. This is used in GNU/Linux guests
to set /dev/disk/by-id symlinks. An example serial number might be:
WD-WMAP9A966149
@@ -1218,7 +1201,7 @@ invocation is:
--filesystem /source/on/host,/target/point/in/guest
-Which will work for recent QEMU and linux guest OS or LXC containers. For
+Which will work for recent QEMU and GNU/Linux guest OS or LXC containers. For
QEMU, the target point is just a mounting hint in sysfs, so will not be
automatically mounted.
@@ -2125,66 +2108,22 @@ The debugging information is also stored in
EXAMPLES
========
-The simplest invocation to interactively install a Fedora 29 KVM VM
+The simplest invocation to interactively install a Parabola KVM VM
with recommended defaults. virt-viewer(1) will be launched to
graphically interact with the VM install
.. code-block::
- # sudo virt-install --install fedora29
+ # sudo virt-install --install parabola
Similar, but use libosinfo's unattended install support, which will
-perform the fedora29 install automatically without user intervention:
+perform the parabola install automatically without user intervention:
.. code-block::
- # sudo virt-install --install fedora29 --unattended
-
-
-
-Install a Windows 10 VM, using 40GiB storage in the default location
-and 4096MiB of ram, and ensure we are connecting to the system libvirtd
-instance:
-
-.. code-block::
-
- # virt-install \
- --connect qemu:///system \
- --name my-win10-vm \
- --memory 4096 \
- --disk size=40 \
- --osinfo win10 \
- --cdrom /path/to/my/win10.iso
-
-
-
-Install a CentOS 7 KVM from a URL, with recommended device defaults and
-default required storage, but specifically request VNC graphics instead
-of the default SPICE, and request 8 virtual CPUs and 8192 MiB of memory:
-
-.. code-block::
-
- # virt-install \
- --connect qemu:///system \
- --memory 8192 \
- --vcpus 8 \
- --graphics vnc \
- --osinfo centos7.0 \
- --location http://mirror.centos.org/centos-7/7/os/x86_64/
-
-
-
-Create a VM around an existing debian9 disk image:
-
-.. code-block::
-
- # virt-install \
- --import \
- --memory 512 \
- --disk /home/user/VMs/my-debian9.img \
- --osinfo debian9
+ # sudo virt-install --install parabola --unattended
diff --git a/man/virt-xml.rst b/man/virt-xml.rst
index ddd586b..102743a 100644
--- a/man/virt-xml.rst
+++ b/man/virt-xml.rst
@@ -182,7 +182,7 @@ GUEST OS OPTIONS
``--os-variant``, ``--osinfo`` OS_VARIANT
Optimize the guest configuration for a specific operating system (ex.
- 'fedora29', 'rhel7', 'win10'). While not required, specifying this
+ 'parabola', 'trisquel'). While not required, specifying this
options is HIGHLY RECOMMENDED, as it can greatly increase performance
by specifying virtio among other guest tweaks.
@@ -312,32 +312,32 @@ Change the <description> of domain 'EXAMPLE':
# virt-xml EXAMPLE --edit --boot menu=on
-Clear the previous <cpu> definition of domain 'winxp', change it to 'host-model', but interactively confirm the diff before saving:
+Clear the previous <cpu> definition of domain 'parabola', change it to 'host-model', but interactively confirm the diff before saving:
.. code-block::
- # virt-xml winxp --edit --cpu host-model,clearxml=yes --confirm
+ # virt-xml parabola --edit --cpu host-model,clearxml=yes --confirm
-Change the second sound card to model=ich6 on 'fedora19', but only output the diff:
+Change the second sound card to model=ich6 on 'parabola', but only output the diff:
.. code-block::
- # virt-xml fedora19 --edit 2 --sound model=ich6 --print-diff
+ # virt-xml parabola --edit 2 --sound model=ich6 --print-diff
-Update the every graphics device password to 'foo' of the running VM 'rhel6':
+Update the every graphics device password to 'foo' of the running VM 'parabola':
.. code-block::
- # virt-xml rhel6 --edit all --graphics password=foo --update
+ # virt-xml parabola --edit all --graphics password=foo --update
Remove the disk path from disk device hdc:
.. code-block::
- # virt-xml rhel6 --edit target=hdc --disk path=
+ # virt-xml parabola --edit target=hdc --disk path=
Change all disk devices of type 'disk' to use cache=none, using XML from stdin, printing the new XML to stdout.
@@ -351,37 +351,37 @@ Change disk 'hda' IO to native and use startup policy as 'optional'.
.. code-block::
- # virt-xml fedora20 --edit target=hda \
+ # virt-xml parabola --edit target=hda \
--disk io=native,startup_policy=optional
-Change all host devices to use driver_name=vfio for VM 'fedora20' on the remote connection
+Change all host devices to use driver_name=vfio for VM 'parabola' on the remote connection
.. code-block::
# virt-xml --connect qemu+ssh://remotehost/system \
- fedora20 --edit all --hostdev driver_name=vfio
+ parabola --edit all --hostdev driver_name=vfio
-Hotplug host USB device 001.003 to running domain 'fedora19':
+Hotplug host USB device 001.003 to running domain 'parabola':
.. code-block::
- # virt-xml fedora19 --update --add-device --hostdev 001.003
+ # virt-xml parabola --update --add-device --hostdev 001.003
-Add a spicevmc channel to the domain 'winxp', that will be available after the next VM shutdown.
+Add a spicevmc channel to the domain 'parabola', that will be available after the next VM shutdown.
.. code-block::
- # virt-xml winxp --add-device --channel spicevmc
+ # virt-xml parabola --add-device --channel spicevmc
-Create a 10G qcow2 disk image and attach it to 'fedora18' for the next VM startup:
+Create a 10G qcow2 disk image and attach it to 'parabola' for the next VM startup:
.. code-block::
- # virt-xml fedora18 --add-device \
+ # virt-xml parabola --add-device \
--disk /var/lib/libvirt/images/newimage.qcow2,format=qcow2,size=10
@@ -390,22 +390,22 @@ for the guest OS by providing information about it on the command line:
.. code-block::
- # virt-xml fedora18 --osinfo fedora18 --add-device \
+ # virt-xml parabola --osinfo parabola --add-device \
--disk /var/lib/libvirt/images/newimage.qcow2,format=qcow2,size=10
-Hotunplug the disk vdb from the running domain 'rhel7':
+Hotunplug the disk vdb from the running domain 'parabola':
.. code-block::
- # virt-xml rhel7 --update --remove-device --disk target=vdb
+ # virt-xml parabola --update --remove-device --disk target=vdb
-Remove all graphics devices from the VM 'rhel7' after the next shutdown:
+Remove all graphics devices from the VM 'parabola' after the next shutdown:
.. code-block::
- # virt-xml rhel7 --remove-device --graphics all
+ # virt-xml parabola --remove-device --graphics all
Generate XML for a virtio console device and print it to stdout:
# Maintainer (arch): Christian Rebischke <[email protected]>
# Contributor: Sergej Pupykin <[email protected]>
# Contributor: Daniel Micay <[email protected]>
# Contributor: Jonathan Wiersma <archaur at jonw dot org>
# Maintainer: Omar Vega Ramos <[email protected]>
# Contributor: André Silva <[email protected]>
# Contributor: grizzlyuser <[email protected]>
# Contributor: bill-auger <[email protected]>
# parabola changes and rationale
# - replace documentation usage examples with FSDG-fit operating systems
# - remove explicit support for non-FSDG-fit operating systems
pkgbase=virt-manager
pkgname=(virt-install virt-manager)
pkgver=4.1.0
pkgrel=1
pkgrel+=.parabola1
arch=('any')
url="https://virt-manager.org/"
license=('GPL')
makedepends=('python-docutils')
checkdepends=('python-pytest' 'libosinfo' 'libvirt-python' 'python-gobject'
'python-requests' 'cpio' 'cdrtools')
source=("https://virt-manager.org/download/sources/virt-manager/virt-manager-$pkgver.tar.gz")
source+=('libre.patch' 'libre-docs.patch')
b2sums=('1b4203be81bd7b82251225d691a4d9068f268e610f049bcadb96de5b539e964ca0b001f22f06ddd8266b58b079f60046f6d11942a1e4eadbc43f0607c46bbddd')
b2sums+=('a0a26b7fbf3576f67453d171e1667ab3ba56163290185e95a85ae183494fc8f39965ac67eebd6c973ecb40314eb7c8f06bd7d017482732a63034c4fb0613f068'
'319bb66d43e461a63668ae369412eba4bca3d9bc12a99d1d8ad846ac7388312413cc999cae7c0222c7a9c668517541aa3ce09204a9b77fd57cb85dc16188af7a')
prepare() {
cd ${pkgbase}-${pkgver}
patch -p1 -i ../libre.patch
patch -p1 -i ../libre-docs.patch
}
build() {
cd ${pkgbase}-${pkgver}
python setup.py configure --default-hvs qemu,lxc
python setup.py build
}
package_virt-install() {
pkgdesc="Command line tool for creating new KVM , Xen, or LXC container
guests using the libvirt hypervisor"
pkgdesc+=", without non-FSDG OS definitions"
depends=('libosinfo' 'libvirt-python' 'python-gobject' 'python-requests'
'cpio' 'libisoburn')
cd ${pkgbase}-${pkgver}
python setup.py --no-update-icon-cache --no-compile-schemas install --root
"${pkgdir}"
python -m compileall "${pkgdir}"/usr/share/virt-manager
python -O -m compileall "${pkgdir}"/usr/share/virt-manager
# Split virt-manager
[[ -d "${srcdir}"/virt-manager ]] && rm -r "${srcdir}"/virt-manager/
mkdir -p "${srcdir}"/split/usr/{bin,share/{man/man1,virt-manager}}
mv "${pkgdir}"/usr/bin/virt-manager "${srcdir}"/split/usr/bin/
mv "${pkgdir}"/usr/share/{applications,glib-2.0,icons,metainfo}
"${srcdir}"/split/usr/share/
mv "${pkgdir}"/usr/share/man/man1/virt-manager.1
"${srcdir}"/split/usr/share/man/man1/
mv "${pkgdir}"/usr/share/virt-manager/{icons,ui,virtManager}
"${srcdir}"/split/usr/share/virt-manager/
}
package_virt-manager() {
pkgdesc="Desktop user interface for managing virtual machines"
depends=("virt-install=$pkgver" 'gtk-vnc' 'libvirt-glib' 'spice-gtk' 'vte3'
'python-cairo' 'gtksourceview4')
mv -v split/* "${pkgdir}/"
}
_______________________________________________
Dev mailing list
[email protected]
https://lists.parabola.nu/mailman/listinfo/dev