From: "Doug Goldstein" <cardoe@gentoo.org>
To: gentoo-commits@lists.gentoo.org
Subject: [gentoo-commits] repo/gentoo:master commit in: app-emulation/libvirt/files/, app-emulation/libvirt/
Date: Mon, 14 Mar 2016 21:20:38 +0000 (UTC) [thread overview]
Message-ID: <1457990352.8d5b9e4b342a1a8b1e750373c882260a4fd34a9d.cardoe@gentoo> (raw)
commit: 8d5b9e4b342a1a8b1e750373c882260a4fd34a9d
Author: Doug Goldstein <cardoe <AT> gentoo <DOT> org>
AuthorDate: Mon Mar 14 21:18:34 2016 +0000
Commit: Doug Goldstein <cardoe <AT> gentoo <DOT> org>
CommitDate: Mon Mar 14 21:19:12 2016 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=8d5b9e4b
app-emulation/libvirt: fix libvirt-guests init script
The libvirt-guests script incorrectly 'needed' libvirt instead of 'used'.
Gentoo-Bug: 576750
Package-Manager: portage-2.2.26
Signed-off-by: Doug Goldstein <cardoe <AT> gentoo.org>
app-emulation/libvirt/files/libvirt-guests.init-r2 | 235 +++++++++++++++++++++
...ibvirt-1.3.2.ebuild => libvirt-1.3.1-r1.ebuild} | 4 +-
...ibvirt-1.3.2.ebuild => libvirt-1.3.2-r1.ebuild} | 2 +-
3 files changed, 238 insertions(+), 3 deletions(-)
diff --git a/app-emulation/libvirt/files/libvirt-guests.init-r2 b/app-emulation/libvirt/files/libvirt-guests.init-r2
new file mode 100644
index 0000000..ab2cf3d
--- /dev/null
+++ b/app-emulation/libvirt/files/libvirt-guests.init-r2
@@ -0,0 +1,235 @@
+#!/sbin/runscript
+
+description="Virtual Machine Management (libvirt) Guests"
+
+depend() {
+ use libvirtd
+}
+
+# set the default to QEMU
+[ -z "${LIBVIRT_URIS}" ] && LIBVIRT_URIS="qemu:///system"
+
+# default to suspending the VM via managedsave
+case "${LIBVIRT_SHUTDOWN}" in
+ managedsave|shutdown|destroy) ;;
+ *) LIBVIRT_SHUTDOWN="managedsave" ;;
+esac
+
+# default to 500 seconds
+[ -z ${LIBVIRT_MAXWAIT} ] && LIBVIRT_MAXWAIT=500
+
+gueststatefile="/var/lib/libvirt/libvirt-guests.state"
+netstatefile="/var/lib/libvirt/libvirt-net.state"
+
+do_virsh() {
+ local hvuri=$1
+ shift
+
+ # if unset, default to qemu
+ [ -z ${hvuri} ] && hvuri="qemu:///system"
+ # if only qemu was supplied then correct the value
+ [ "xqemu" = x${hvuri} ] && hvuri="qemu:///system"
+
+ # Silence errors because virsh always throws an error about
+ # not finding the hypervisor version when connecting to libvirtd
+ # lastly strip the blank line at the end
+ LC_ALL=C virsh -c ${hvuri} "$@" 2>/dev/null | head -n -1
+}
+
+libvirtd_dom_list() {
+ # Only work with domains by their UUIDs
+ local hvuri=$1
+ shift
+
+ do_virsh "${hvuri}" list --uuid $@
+}
+
+libvirtd_dom_count() {
+ local hvuri=$1
+ shift
+
+ libvirtd_dom_list "${hvuri}" $@ | wc -l
+}
+
+libvirtd_net_list() {
+ # Only work with networks by their UUIDs
+ local hvuri=$1
+ shift
+
+ do_virsh "${hvuri}" net-list --uuid $@
+}
+
+libvirtd_net_count() {
+ local hvuri=$1
+ shift
+
+ libvirtd_net_list "${hvuri}" $@ | wc -l
+}
+
+libvirtd_dom_stop() {
+ # stops all persistent or transient domains for a given URI
+ # $1 - uri
+ # $2 - persisent/transient
+
+ local uri=$1
+ local persist=$2
+ local shutdown_type=${LIBVIRT_SHUTDOWN}
+ local counter=${LIBVIRT_MAXWAIT}
+ local dom_name=
+ local dom_as=
+ local dom_ids=
+ local uuid=
+ local dom_count=
+
+ [ "${persist}" = "--transient" ] && shutdown_type="shutdown"
+ [ -n "${counter}" ] || counter=500
+
+ einfo " Shutting down domain(s) ..."
+
+ # grab all persistent or transient domains running
+ dom_ids=$(libvirtd_dom_list ${uri} ${persist})
+
+ for uuid in ${dom_ids}; do
+ # Get the name
+ dom_name=$(do_virsh ${uri} domname ${uuid})
+ einfo " ${dom_name}"
+ # Get autostart state
+ dom_as=$(do_virsh ${uri} dominfo ${uuid} | \
+ awk '$1 == "Autostart:" { print $2 }')
+
+ if [ "${persist}" = "--persistent" ]; then
+ # Save our running state only if LIBVIRT_IGNORE_AUTOSTART != yes
+ if [ "x${LIBVIRT_IGNORE_AUTOSTART}" = "xyes" ] && \
+ [ ${dom_as} = "enabled" ]; then
+ :
+ else
+ echo "${uri} ${uuid}" >> ${gueststatefile}
+ fi
+
+ fi
+
+ # Now let's stop it
+ do_virsh "${uri}" ${shutdown_type} ${uuid} > /dev/null
+
+ done
+
+ dom_count="$(libvirtd_dom_count ${uri} ${persist})"
+ while [ ${dom_count} -gt 0 ] && [ ${counter} -gt 0 ] ; do
+ dom_count="$(libvirtd_dom_count ${uri} ${persist})"
+ sleep 1
+ if [ "${shutdown_type}" = "shutdown" ]; then
+ counter=$((${counter} - 1))
+ fi
+ echo -n "."
+ done
+
+ if [ "${shutdown_type}" = "shutdown" ]; then
+ # grab all domains still running
+ dom_ids=$(libvirtd_dom_list ${uri} ${persist})
+ for uuid in ${dom_ids}; do
+ dom_name=$(do_virsh ${uri} domname ${uuid})
+ eerror " ${dom_name} forcibly stopped"
+ do_virsh "${uri}" destroy ${uuid} > /dev/null
+ done
+ fi
+}
+
+libvirtd_net_stop() {
+ # stops all persistent or transient domains for a given URI
+ # $1 - uri
+ # $2 - persisent/transient
+
+ local uri=$1
+ local persist=$2
+ local uuid=
+ local net_name=
+
+ if [ "${LIBVIRT_NET_SHUTDOWN}" != "no" ]; then
+
+ einfo " Shutting down network(s):"
+ for uuid in $(libvirtd_net_list ${uri} ${persist}); do
+ net_name=$(do_virsh ${uri} net-name ${uuid})
+ einfo " ${net_name}"
+
+ if [ "${persist}" = "--persistent" ]; then
+ # Save our running state
+ echo "${uri} ${uuid}" >> ${netstatefile}
+
+ fi
+
+ # Actually stop the network
+ do_virsh qemu net-destroy ${uuid} > /dev/null
+ done
+
+ fi
+}
+
+start() {
+ local uri=
+ local uuid=
+ local name=
+
+ for uri in ${LIBVIRT_URIS}; do
+ do_virsh "${uri}" connect
+ if [ $? -ne 0 ]; then
+ eerror "Failed to connect to '${uri}'. Domains may not start."
+ fi
+ done
+
+ [ ! -e "${netstatefile}" ] && touch "${netstatefile}"
+ [ ! -e "${gueststatefile}" ] && touch "${gueststatefile}"
+
+ # if the user didn't want to start any guests up then respect their wish
+ [ "x${LIBVIRT_START}" = "xno" ] && return 0
+
+ # start networks
+ ebegin "Starting libvirt networks"
+ while read -r uri uuid
+ do
+ # ignore trash
+ [ -z "${uri}" ] || [ -z "${uuid}" ] && continue
+
+ name=$(do_virsh "${uri}" net-name ${uuid})
+ einfo " ${name}"
+ do_virsh "${uri}" net-start ${uuid} > /dev/null
+ done <"${netstatefile}"
+ eend 0
+
+ # start domains
+ ebegin "Starting libvirt domains"
+ while read -r uri uuid
+ do
+ # ignore trash
+ [ -z "${uri}" ] || [ -z "${uuid}" ] && continue
+
+ name=$(do_virsh "${uri}" domname ${uuid})
+ einfo " ${name}"
+ do_virsh "${uri}" start ${uuid} > /dev/null
+ done <"${gueststatefile}"
+ eend 0
+}
+
+stop() {
+ local counter=
+ local dom_name=
+ local net_name=
+ local dom_ids=
+ local uuid=
+ local dom_count=
+
+ rm -f "${gueststatefile}"
+ [ $? -ne 0 ] && eerror "Unable to save domain state"
+ rm -f "${netstatefile}"
+ [ $? -ne 0 ] && eerror "Unable to save net state"
+
+ for uri in ${LIBVIRT_URIS}; do
+ einfo "Stopping libvirt domains and networks for ${uri}"
+
+ libvirtd_dom_stop "${uri}" "--persistent"
+ libvirtd_dom_stop "${uri}" "--transient"
+ libvirtd_net_stop "${uri}" "--persistent"
+ libvirtd_net_stop "${uri}" "--transient"
+
+ einfo "Done stopping domains and networks for ${uri}"
+ done
+}
diff --git a/app-emulation/libvirt/libvirt-1.3.2.ebuild b/app-emulation/libvirt/libvirt-1.3.1-r1.ebuild
similarity index 98%
copy from app-emulation/libvirt/libvirt-1.3.2.ebuild
copy to app-emulation/libvirt/libvirt-1.3.1-r1.ebuild
index c963b6a..04ab3c9 100644
--- a/app-emulation/libvirt/libvirt-1.3.2.ebuild
+++ b/app-emulation/libvirt/libvirt-1.3.1-r1.ebuild
@@ -220,7 +220,7 @@ src_prepare() {
epatch \
"${FILESDIR}"/${PN}-1.3.0-do_not_use_sysconf.patch \
"${FILESDIR}"/${PN}-1.2.16-fix_paths_in_libvirt-guests_sh.patch \
- "${FILESDIR}"/${PN}-1.3.1-fix_paths_for_apparmor.patch \
+ "${FILESDIR}"/${P}-fix_paths_for_apparmor.patch \
"${FILESDIR}"/${PN}-1.2.21-avoid_deprecated_pc_file.patch
[[ -n ${BACKPORTS} ]] &&
@@ -348,7 +348,7 @@ src_install() {
systemd_newtmpfilesd "${FILESDIR}"/libvirtd.tmpfiles.conf libvirtd.conf
newinitd "${S}/libvirtd.init" libvirtd || die
- newinitd "${FILESDIR}/libvirt-guests.init-r1" libvirt-guests || die
+ newinitd "${FILESDIR}/libvirt-guests.init-r2" libvirt-guests || die
newinitd "${FILESDIR}/virtlockd.init-r1" virtlockd || die
newinitd "${FILESDIR}/virtlogd.init-r1" virtlogd || die
diff --git a/app-emulation/libvirt/libvirt-1.3.2.ebuild b/app-emulation/libvirt/libvirt-1.3.2-r1.ebuild
similarity index 99%
rename from app-emulation/libvirt/libvirt-1.3.2.ebuild
rename to app-emulation/libvirt/libvirt-1.3.2-r1.ebuild
index c963b6a..667ff6e 100644
--- a/app-emulation/libvirt/libvirt-1.3.2.ebuild
+++ b/app-emulation/libvirt/libvirt-1.3.2-r1.ebuild
@@ -348,7 +348,7 @@ src_install() {
systemd_newtmpfilesd "${FILESDIR}"/libvirtd.tmpfiles.conf libvirtd.conf
newinitd "${S}/libvirtd.init" libvirtd || die
- newinitd "${FILESDIR}/libvirt-guests.init-r1" libvirt-guests || die
+ newinitd "${FILESDIR}/libvirt-guests.init-r2" libvirt-guests || die
newinitd "${FILESDIR}/virtlockd.init-r1" virtlockd || die
newinitd "${FILESDIR}/virtlogd.init-r1" virtlogd || die
next reply other threads:[~2016-03-14 21:20 UTC|newest]
Thread overview: 57+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-03-14 21:20 Doug Goldstein [this message]
-- strict thread matches above, loose matches on Subject: below --
2024-09-21 22:28 [gentoo-commits] repo/gentoo:master commit in: app-emulation/libvirt/files/, app-emulation/libvirt/ John Helmert III
2024-07-07 7:39 Sam James
2024-05-10 7:54 Joonas Niilola
2023-11-22 11:38 Sam James
2023-10-04 17:46 Matthias Maier
2023-07-12 9:17 Sam James
2023-06-24 1:42 Sam James
2023-06-21 21:48 Matthias Maier
2023-05-10 19:42 Sam James
2023-03-21 19:19 Sam James
2023-03-21 19:19 Sam James
2022-10-28 19:15 Sam James
2022-04-03 4:36 Sam James
2022-03-08 13:18 Sam James
2022-01-25 12:33 Matthias Maier
2022-01-04 16:43 Matthias Maier
2021-12-08 21:14 Matthias Maier
2021-06-10 14:41 Matthias Maier
2021-04-20 14:10 Matthias Maier
2020-12-08 22:56 Sergei Trofimovich
2020-10-07 15:43 Matthias Maier
2020-10-01 23:47 Matthias Maier
2020-09-05 7:54 Joonas Niilola
2020-07-21 18:11 Marek Szuba
2020-04-11 1:54 Matthias Maier
2020-04-05 17:19 Matthias Maier
2019-08-30 16:09 Matthias Maier
2019-08-01 14:28 Matthias Maier
2019-05-09 19:33 William Hubbs
2019-03-17 7:27 Matthias Maier
2019-01-25 16:28 Matthias Maier
2019-01-13 2:18 Matthias Maier
2018-11-04 5:13 Matthias Maier
2018-03-24 2:25 Matthias Maier
2018-03-23 14:06 Matthias Maier
2018-03-14 18:18 Matthias Maier
2018-02-12 22:48 Matthias Maier
2018-01-30 17:55 Matthias Maier
2018-01-30 17:08 Matthias Maier
2018-01-30 17:08 Matthias Maier
2017-12-07 16:08 Matthias Maier
2017-11-15 0:22 Matthias Maier
2017-11-12 19:36 Matthias Maier
2017-10-25 19:48 Matthias Maier
2017-06-03 15:18 Matthias Maier
2017-03-04 21:39 Matthias Maier
2017-03-04 21:27 Matthias Maier
2017-01-22 18:36 Matthias Maier
2017-01-22 16:28 Matthias Maier
2016-07-09 21:01 Matthias Maier
2016-06-30 21:40 Matthias Maier
2016-06-30 16:18 Matthias Maier
2016-02-03 4:15 Matthias Maier
2015-12-26 23:02 Matthias Maier
2015-12-04 6:17 Matthias Maier
2015-10-03 18:16 Matthias Maier
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1457990352.8d5b9e4b342a1a8b1e750373c882260a4fd34a9d.cardoe@gentoo \
--to=cardoe@gentoo.org \
--cc=gentoo-commits@lists.gentoo.org \
--cc=gentoo-dev@lists.gentoo.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox