diff options
author | 2024-07-20 04:11:58 -0700 | |
---|---|---|
committer | 2024-07-20 04:12:22 -0700 | |
commit | b6bee48d7cf20a8a04b7ac7d0fb16a4c1f90c860 (patch) | |
tree | 3e4054271394aaa083f6ae8039c7c1005c51a063 /app-emulation | |
parent | media-video/obs-vkcapture: drop 1.4.9 (diff) | |
download | guru-b6bee48d7cf20a8a04b7ac7d0fb16a4c1f90c860.tar.gz guru-b6bee48d7cf20a8a04b7ac7d0fb16a4c1f90c860.tar.bz2 guru-b6bee48d7cf20a8a04b7ac7d0fb16a4c1f90c860.zip |
app-emulation/cloud-utils: new package, add 0.33
Signed-off-by: Artemis Everfree <artemis@artemis.sh>
Diffstat (limited to 'app-emulation')
-rw-r--r-- | app-emulation/cloud-utils/Manifest | 1 | ||||
-rw-r--r-- | app-emulation/cloud-utils/cloud-utils-0.33.ebuild | 96 | ||||
-rw-r--r-- | app-emulation/cloud-utils/files/use-mkisofs.patch | 27 | ||||
-rw-r--r-- | app-emulation/cloud-utils/metadata.xml | 15 |
4 files changed, 139 insertions, 0 deletions
diff --git a/app-emulation/cloud-utils/Manifest b/app-emulation/cloud-utils/Manifest new file mode 100644 index 000000000..4cf123666 --- /dev/null +++ b/app-emulation/cloud-utils/Manifest @@ -0,0 +1 @@ +DIST cloud-utils-0.33.tar.gz 58817 BLAKE2B 92c42844a7c1f826d43c9a715e56d05c77d7b37c721079165ffb008205e412327e39ecba5d2755c84e2d80e4ee752ef95ce099da25625010327f957e419195d7 SHA512 1e58e085bde295d4adf8ff219a7f22382fadff798f5398f3e2a62cb0926c740babba76ea6326f6042b46dbdeb12c15d1e080fb9890b10482e31c3acb64014c95 diff --git a/app-emulation/cloud-utils/cloud-utils-0.33.ebuild b/app-emulation/cloud-utils/cloud-utils-0.33.ebuild new file mode 100644 index 000000000..513b05864 --- /dev/null +++ b/app-emulation/cloud-utils/cloud-utils-0.33.ebuild @@ -0,0 +1,96 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +PYTHON_COMPAT=( python3_{8..13} ) +inherit python-single-r1 + +DESCRIPTION="Useful set of utilities for interacting with a cloud." +HOMEPAGE="https://github.com/canonical/cloud-utils" +SRC_URI="https://github.com/canonical/cloud-utils/archive/refs/tags/${PV}.tar.gz -> ${P}.tar.gz" + +LICENSE="GPL-3" +SLOT="0" +KEYWORDS="~amd64" + +# image-utils vs guest-utils is a distinction that does not actually exist +# upstream, but is rather one that arch linux makes. alpine goes even more +# fine-grained, creating a single package for each individual utility. I ain't +# maintaining all that, but I do think the distinction arch makes is worthwhile. +# +# The difference is this: is the tool something you would want to use within a +# cloud VM, or use outside of a cloud VM to manipulate your VM's disk image? +# This is useful, because the image manipulation scripts need qemu-img and +# cdrtools around, which you might not want to install onto a VM just to run +# something like `ec2metadata` or `growpart` +IUSE="+guest-utils +image-utils" + +REQUIRED_USE=" + ${PYTHON_REQUIRED_USE} + || ( guest-utils image-utils ) +" + +# cloud-utils also provides its own growpart, which is I think different from +# sys-fs/growpart. +RDEPEND=" + ${PYTHON_DEPS} + guest-utils? ( + !sys-fs/growpart + ) + image-utils? ( + app-cdr/cdrtools + app-emulation/qemu + app-misc/ca-certificates + net-misc/wget + sys-apps/util-linux + sys-fs/dosfstools + sys-fs/e2fsprogs + sys-fs/mtools + ) +" + +PATCHES=( + "${FILESDIR}"/use-mkisofs.patch +) + +src_install() { + # This package really is just a pile of scripts, with a simple Makefile that + # installs them. We can implement the USE flags most easily by ignoring the + # Makefile and installing the files ourselves. + + local wanted_bin=() + local wanted_man=() + + if use 'guest-utils'; then + wanted_bin+=( + bin/ec2metadata + bin/growpart + bin/vcs-run + ) + wanted_man+=( + man/growpart.1 + ) + fi + + if use 'image-utils'; then + wanted_bin+=( + bin/cloud-localds + bin/mount-image-callback + bin/resize-part-image + bin/write-mime-multipart + ) + wanted_man+=( + man/cloud-localds.1 + man/resize-part-image.1 + man/write-mime-multipart.1 + ) + fi + + local bindir="${D}/usr/bin" + local mandir="${D}/usr/share/man/man1" + + mkdir -p "${bindir}" "${mandir}" || die + install "${wanted_bin[@]}" "${bindir}" || die + install "${wanted_man[@]}" "${mandir}" --mode=0644 || die +} diff --git a/app-emulation/cloud-utils/files/use-mkisofs.patch b/app-emulation/cloud-utils/files/use-mkisofs.patch new file mode 100644 index 000000000..9308a1cdb --- /dev/null +++ b/app-emulation/cloud-utils/files/use-mkisofs.patch @@ -0,0 +1,27 @@ +diff --git a/bin/cloud-localds b/bin/cloud-localds +index a9ddc74..50bc46e 100755 +--- a/bin/cloud-localds ++++ b/bin/cloud-localds +@@ -146,8 +146,8 @@ case "$filesystem" in + fail "missing 'mcopy'. Required for --filesystem=vfat." + ;; + iso9660) +- has_cmd genisoimage || +- fail "missing 'genisoimage'. Required for --filesystem=iso9660." ++ has_cmd mkisofs || ++ fail "missing 'mkisofs'. Required for --filesystem=iso9660." + ;; + *) fail "unknown filesystem $filesystem";; + esac +@@ -232,9 +232,9 @@ case "$filesystem" in + fail "failed to create tarball with $path" + ;; + iso9660) +- genisoimage -output "$img" -volid cidata \ ++ mkisofs -output "$img" -volid cidata \ + -joliet -rock "${files[@]}" > "$TEMP_D/err" 2>&1 || +- { cat "$TEMP_D/err" 1>&2; fail "failed to genisoimage"; } ++ { cat "$TEMP_D/err" 1>&2; fail "failed to mkisofs"; } + ;; + vfat) + truncate -s 128K "$img" || fail "failed truncate image" diff --git a/app-emulation/cloud-utils/metadata.xml b/app-emulation/cloud-utils/metadata.xml new file mode 100644 index 000000000..b189c910f --- /dev/null +++ b/app-emulation/cloud-utils/metadata.xml @@ -0,0 +1,15 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer type="person"> + <email>artemis@artemis.sh</email> + <name>Artemis Everfree</name> + </maintainer> + <upstream> + <remote-id type="github">canonical/cloud-utils</remote-id> + </upstream> + <use> + <flag name="guest-utils">Installs utilities useful within a guest VM</flag> + <flag name="image-utils">Installs utilities useful for manipulating guest images from outside a guest VM</flag> + </use> +</pkgmetadata> |