summaryrefslogtreecommitdiff
path: root/app-emulation/openstack-guest-agents-unix
diff options
context:
space:
mode:
authorV3n3RiX <venerix@redcorelinux.org>2017-10-09 18:53:29 +0100
committerV3n3RiX <venerix@redcorelinux.org>2017-10-09 18:53:29 +0100
commit4f2d7949f03e1c198bc888f2d05f421d35c57e21 (patch)
treeba5f07bf3f9d22d82e54a462313f5d244036c768 /app-emulation/openstack-guest-agents-unix
reinit the tree, so we can have metadata
Diffstat (limited to 'app-emulation/openstack-guest-agents-unix')
-rw-r--r--app-emulation/openstack-guest-agents-unix/Manifest15
-rw-r--r--app-emulation/openstack-guest-agents-unix/files/0513f013625b6a652d7dcb663eb396b9b5bb924e.patch60
-rw-r--r--app-emulation/openstack-guest-agents-unix/files/4453b4773688eef6c60736d9cf07100716308a5e.patch57
-rw-r--r--app-emulation/openstack-guest-agents-unix/files/openstack-guest-agents-unix-1.39.0-python2.patch15
-rw-r--r--app-emulation/openstack-guest-agents-unix/files/patches-1.39.0-20140621.patch323
-rw-r--r--app-emulation/openstack-guest-agents-unix/metadata.xml13
-rw-r--r--app-emulation/openstack-guest-agents-unix/openstack-guest-agents-unix-1.39.0-r1.ebuild39
-rw-r--r--app-emulation/openstack-guest-agents-unix/openstack-guest-agents-unix-1.39.0-r2.ebuild44
-rw-r--r--app-emulation/openstack-guest-agents-unix/openstack-guest-agents-unix-1.39.0.ebuild31
-rw-r--r--app-emulation/openstack-guest-agents-unix/openstack-guest-agents-unix-1.39.1.ebuild65
-rw-r--r--app-emulation/openstack-guest-agents-unix/openstack-guest-agents-unix-1.39.1_p20170227.ebuild73
11 files changed, 735 insertions, 0 deletions
diff --git a/app-emulation/openstack-guest-agents-unix/Manifest b/app-emulation/openstack-guest-agents-unix/Manifest
new file mode 100644
index 000000000000..703b2bbdfd7a
--- /dev/null
+++ b/app-emulation/openstack-guest-agents-unix/Manifest
@@ -0,0 +1,15 @@
+AUX 0513f013625b6a652d7dcb663eb396b9b5bb924e.patch 2829 SHA256 48d790fadd287a8709e785a8f417fce109a2a3cb6f3932732f5cfaee3dc882f3 SHA512 4394b16194411c8b5d7c258681a9bfde8d384fffb0c254e2d3a5cd85ecf58af369c7d286d40dcf9b215c96b7ec29ec49f7a9640b3c525f9c718c8aabc428d211 WHIRLPOOL 1b40cca159310ae745b4b82e6e00022c912f750d927542ffa0706ccce2de2f92f692df3185f97d1a64c2a6b88c903583fe04c81923dbae9c7697bd3b7510db96
+AUX 4453b4773688eef6c60736d9cf07100716308a5e.patch 2604 SHA256 616fe5b7ec45de5be328ea0064bc994d6950662b49c9b03d06afe5c07bd4d8cf SHA512 2841a9529649cdc1631bb95f52c8bd5ef440258d81ff07f77cf97c70bb1e554883a59116f806f05b5f4a7035a7ca2fa0abab9df4d0159ae202069894731a758b WHIRLPOOL 0b49c56c884d7c3089b7cc890b784fb8763888802a1098b34ef68766dfb33bd63d1c0cb7c79825e48ff1b9dbedba2bf49284285c82c639fb686c664eae89d14f
+AUX openstack-guest-agents-unix-1.39.0-python2.patch 882 SHA256 dc57ff4800f9992e55478a2e7f21d7ee341582d68e3003f38b4771de8548a8d7 SHA512 573dc02f578894c0df8f4c7ff9f4064ea94a2e17c35bef689dfe348f8611302cdc1a6a2126188cc2c4383e1a484e3acea180365ee555a5bdfac749c857828380 WHIRLPOOL b6c2e6c2e8992960754a5009984c971fe67f40fdae41a8c44b88b6d9fd8743729bf209dc266218d4108229638f94f8ee4198208021f62c1fa0aa9ed70659764e
+AUX patches-1.39.0-20140621.patch 13058 SHA256 f3b86a3909dc37c75852b3a753fd02bfb889c0abf0010ccaee38e2dec292c722 SHA512 562aaae73acfd92a7af5d1cb7dfed52c07a1b94ce1b1bb645002515344aeba6c0737eeb4db120986495c8f6558ebf68d9cbe3862da2f0fe14d4266d0470fe185 WHIRLPOOL cfd8de3f5ecf9d0218e2ec52ad2ca20aa8d41d5dc9ef703363716522693846180215b61499325b453c1a77ce7c2860d956831d82bef289dce10dbe1bb168bf6c
+DIST openstack-guest-agents-unix-1.39.0.tar.gz 75013 SHA256 eaa22564c8da46c2c1c08e6c0ccd2507e181ffac66fa89f1d9ac2323a2a77d97 SHA512 4f7c4c1f2bc2c8ebda25dc8c0fa79c39e8e5a83040ff103f8c583d9142e71c6527d23e430da983e3a8c9add508298c31ec13a7e56d1db3b5338736dd470fec80 WHIRLPOOL 8e91593dcf6e1f0a8281a9a19946aa67c6e57acfcd5dd5739cddc9b0db0ea0952552f592f598a156140f5c8834fd47f9e20fddddec0f7648bcc40ebce0127d63
+DIST openstack-guest-agents-unix-1.39.1.tar.gz 75458 SHA256 dab0bafb2a632040b0e76ac277fee5714dc8eb9cb9781e80f64a94aaa6bd06a2 SHA512 b1e88bb3492018375e7b2275829e2698d82d75c975a396ab7409c9b88f7787145b0da87c81a089aa8914fae30e996654b589bc1675bba769b661d7d1deb9590d WHIRLPOOL 5ba6cf326b78ea5141611b59d9d2b21b9c6a54f4ed9b358a6751ac135a77eac0c20a0b8ce7e078557158bc6a0192e13fed44c75bb9e7794eded1f4777b24b072
+DIST openstack-guest-agents-unix-1.39.1_p20170227.zip 143082 SHA256 2c6baa1467f79363c260a694cfe46d895bdebd99d56b3b1267f010365ef162b8 SHA512 f4ef4ca4d844109ef741126eee7c313734f5faefcf68926294c83411384eb7461c779070ed0bfcc35ffba56ef47e2677bf4b990dccd9007aa6b82551346dca8f WHIRLPOOL 08a19eefcea016cb38e6beaaed6801c076caf7e5c99d38d5a089b44c20907fbddc15930fc45d3d63cd1f6e8c8ab91e6d54c5c236ec6da60fb7ec3638c8b737f3
+EBUILD openstack-guest-agents-unix-1.39.0-r1.ebuild 939 SHA256 fd158b76d0a38bb6c2ed88e3f05430e78f709a820979407695e211d064972f98 SHA512 df63509a304e16fbd222e3b6234be09fe04771f04a85e83d0638bf11ae1c22a79955e719f50917ecb367aff928226692e298e1c6b8bbfadaf461c9a18a39ad18 WHIRLPOOL 33edaeba63d62eee9d3ec135280b0fca448b5a19d3955a24b2a5ab59311281ce9e61ea7e5a1d42bb097a3a256e356e7bdf1b1651251022e88212bfbae79b8955
+EBUILD openstack-guest-agents-unix-1.39.0-r2.ebuild 1175 SHA256 68fccd1768c9bc9a2c7a6523b0fd719019a4e38c7f5dcfd461841cf0af0ac896 SHA512 45fe477835854f74c4739ff58180ac12e59c76f20636d11e8a22fc27e13e897a76840f2ac847a3144808b4fa923d95696aafead0d069acc36132cd114c80f380 WHIRLPOOL 31de8716455d41b8b24469fb1a900100867c49e454967e80bfcc40ea94070989a9ae926248d3e6fc6db55752e0724220006a9f09dadf07e6f909f68a8406a614
+EBUILD openstack-guest-agents-unix-1.39.0.ebuild 610 SHA256 a9e5c76c4bf896813ce6e239dc1c1dc7c3a7254b976526b3b1c211e6601e412a SHA512 513e7e710b81cd33f3dec761baeb9c769b042014bc7a05275cb400cfef591e1dc71055cc3ebab195cb009be907645b0b00c317f15e0b1a944fda4cb76c0e393f WHIRLPOOL a81880b0ac3bbae4d456e9b6e491edef5170462a462c5bb6aea25b86703e06b023f573fd7e30a379a6a208f5b976076c3f614b64e1ddf87c9b59e6b596336f30
+EBUILD openstack-guest-agents-unix-1.39.1.ebuild 1461 SHA256 05149a5ef3b3fd157f2d0ebd0c56bea29024d32d35695492d444f3e028bd3114 SHA512 fc3b5a8fa6a1c4728dbf4114274ed8a02dabd4dd93b7a407a25a3ae0acc3a22adf86051022d1ed4ed9fcc6f1f4a618e9d1acc3472a4d0807979e41062ba7b09a WHIRLPOOL 5698eb92341fcbd918ed66f192d68c399127da76aa75e6cd7a376bd2c56bb53213041a19ea7f7546a59b0e3ca2cc68433598adfb4073b699ad3f279134dfffdf
+EBUILD openstack-guest-agents-unix-1.39.1_p20170227.ebuild 1674 SHA256 3175feb1bbd39925fd9292610b16c0372c6774be2a14b6092c76be16f6ab07c2 SHA512 d23db9a2d138b5227087b3aff4bf96710bacc8cd320b51582ec1d13a90e9ee141e8ae2e7077d3230eb4877cf5b4b5b4599831936ff5cceec313866a9cabb06f1 WHIRLPOOL 5bace284e97cc25d6a032485eae9faf7392b02382cf0e55a88496606202605bf17e8c8db4e46035c03e00fdd4f08d0c0f7bef196688f03ac5ba7e5075dd953a7
+MISC ChangeLog 3063 SHA256 60c61f59fd61eb7e2da9f89372406b3e1fe5ad2ae8c339cc22a78e22465e8589 SHA512 61e8dd96e3c6042b2957b75ccd6aa3604d7256b79eff2a830206f64e62084c275617e6a2d9982300bc52b3b0326bea39aff1b2641182318e7034c0892bcb89e2 WHIRLPOOL 9b41ad4467c98b2ee60e0cd91e07a937c2b090d67868cc24df94d5297f1d51d88087f88387175c0d8fa10e78f4c29f4cea3b8533ec6a93cece926e90809c3e19
+MISC ChangeLog-2015 1852 SHA256 23a55bb32aba89af976bf3fad94781d54f8c46efbf2aca027771139d0fcd1f2f SHA512 8e7780c28e928940163f6443e4e1d2a09baa9f22fb6a7cf58ff62376151e1331bbc8433ec73c5d6945c636b1730d999df54a57cbce68b9e36924454d62110cb9 WHIRLPOOL edfc0977a0b3ba34c25ed27441259ac21dc20300eda2325bb3c76d6f01806196af1e95c745a7baf0e67c3a4f421e83351e1557d2027821bc340b56fc8bd3b9b6
+MISC metadata.xml 413 SHA256 ec3dd15d35bbb0afeb7ab6a36d0f4c4210e25b2befa511e616cb76cc8f90c715 SHA512 4e09cd1fdf62f13baab8ce310de16c3c03fe9c0bb239dd8b96c8830ebba467843c21a46478494f7329e25f2b4eee9c1921093764b50e87f05a4137f78af44f0b WHIRLPOOL 7a4b5735a6df413dbd8f0f46e0c66d4c5ab2aace93c29928a62d5b75bab6383af70e799a560893ba2a983cb893f6e09b51cbeae85bda042207ba7ae23c594593
diff --git a/app-emulation/openstack-guest-agents-unix/files/0513f013625b6a652d7dcb663eb396b9b5bb924e.patch b/app-emulation/openstack-guest-agents-unix/files/0513f013625b6a652d7dcb663eb396b9b5bb924e.patch
new file mode 100644
index 000000000000..bf95287a86f9
--- /dev/null
+++ b/app-emulation/openstack-guest-agents-unix/files/0513f013625b6a652d7dcb663eb396b9b5bb924e.patch
@@ -0,0 +1,60 @@
+From 84e1a32ee2b8d0607f2868365aa46aaea58f014c Mon Sep 17 00:00:00 2001
+From: Nate House <nathan.house@rackspace.com>
+Date: Mon, 20 Oct 2014 18:50:52 -0500
+Subject: [PATCH] Updated regexp to work with config headers added sometime ago
+
+---
+ tests/test_resetnetwork_interfaces.py | 26 +++++++++++---------------
+ 1 file changed, 11 insertions(+), 15 deletions(-)
+
+diff --git a/tests/test_resetnetwork_interfaces.py b/tests/test_resetnetwork_interfaces.py
+index dc8e7e7..b12b84c 100644
+--- a/tests/test_resetnetwork_interfaces.py
++++ b/tests/test_resetnetwork_interfaces.py
+@@ -344,17 +344,13 @@ def test_gentoo_legacy_ipv4(self):
+
+ generated = outfiles['net'].rstrip()
+ # (todo: naterh) Update tests to mock for both ifconfig/iproute2
+- pattern = ('modules=\( "ifconfig|iproute2" \)\n*' +
++ # (todo: naterh) Remove excessive unused kwargs
++ pattern = ('.*?modules="(ifconfig|iproute2)"\n*' +
+ '# Label public\n*' +
+ 'config_eth0=\(\s*"192.0.2.42 netmask 255.255.255.0"\s*\)\n*' +
+ 'routes_eth0=\(\s*"default via 192.0.2.1"\s*\)\n*' +
+- 'dns_servers_eth0=\(\s*"192.0.2.2"\s*\)').format(
+- ip=interface['ipv4'][0][0],
+- netmask=interface['ipv4'][0][1],
+- gateway=interface['gateway4'],
+- dns=interface['dns'][0]
+- )
+- expected_regex = re.compile(pattern, re.MULTILINE)
++ 'dns_servers_eth0=\(\s*"192.0.2.2"\s*\)')
++ expected_regex = re.compile(pattern, re.DOTALL)
+
+ self.assertRegexpMatches(generated, expected_regex)
+
+@@ -373,17 +369,17 @@ def test_gentoo_legacy_ipv6(self):
+
+ # (todo: naterh) Update tests to mock for both ifconfig/iproute2
+ generated = outfiles['net'].rstrip()
+- pattern = ('modules=\( "ifconfig|iproute2" \)\n*' +
++ pattern = ('.*?modules="(ifconfig|iproute2)"\n*' +
+ '# Label public\n*' +
+ 'config_eth0=\(\s*"{ip}/{netmask_len}"\s*\)\n*' +
+ 'routes_eth0=\(\s*"default via {gateway}"\s*\)\n*' +
+ 'dns_servers_eth0=\(\s*"{dns}"\s*\)').format(
+- ip=interface['ipv6'][0][0],
+- netmask_len=interface['ipv6'][0][1],
+- gateway=interface['gateway6'],
+- dns=interface['dns'][0]
+- )
+- expected_regex = re.compile(pattern, re.MULTILINE)
++ ip=interface['ipv6'][0][0],
++ netmask_len=interface['ipv6'][0][1],
++ gateway=interface['gateway6'],
++ dns=interface['dns'][0]
++ )
++ expected_regex = re.compile(pattern, re.DOTALL)
+
+ self.assertRegexpMatches(generated, expected_regex)
+
diff --git a/app-emulation/openstack-guest-agents-unix/files/4453b4773688eef6c60736d9cf07100716308a5e.patch b/app-emulation/openstack-guest-agents-unix/files/4453b4773688eef6c60736d9cf07100716308a5e.patch
new file mode 100644
index 000000000000..ea506845ed36
--- /dev/null
+++ b/app-emulation/openstack-guest-agents-unix/files/4453b4773688eef6c60736d9cf07100716308a5e.patch
@@ -0,0 +1,57 @@
+From 4453b4773688eef6c60736d9cf07100716308a5e Mon Sep 17 00:00:00 2001
+From: Nate House <nathan.house@rackspace.com>
+Date: Sun, 19 Oct 2014 15:49:35 -0500
+Subject: [PATCH] Updated tests to check for either ifconfig/iproute2
+
+---
+ tests/test_resetnetwork_interfaces.py | 13 ++++++++-----
+ 1 file changed, 8 insertions(+), 5 deletions(-)
+
+diff --git a/tests/test_resetnetwork_interfaces.py b/tests/test_resetnetwork_interfaces.py
+index f2b73bf..dc8e7e7 100644
+--- a/tests/test_resetnetwork_interfaces.py
++++ b/tests/test_resetnetwork_interfaces.py
+@@ -343,8 +343,8 @@ def test_gentoo_legacy_ipv4(self):
+ self.assertTrue('net' in outfiles)
+
+ generated = outfiles['net'].rstrip()
+-
+- pattern = ('modules=\( "ifconfig" \)\n*' +
++ # (todo: naterh) Update tests to mock for both ifconfig/iproute2
++ pattern = ('modules=\( "ifconfig|iproute2" \)\n*' +
+ '# Label public\n*' +
+ 'config_eth0=\(\s*"192.0.2.42 netmask 255.255.255.0"\s*\)\n*' +
+ 'routes_eth0=\(\s*"default via 192.0.2.1"\s*\)\n*' +
+@@ -371,8 +371,9 @@ def test_gentoo_legacy_ipv6(self):
+
+ self.assertTrue('net' in outfiles)
+
++ # (todo: naterh) Update tests to mock for both ifconfig/iproute2
+ generated = outfiles['net'].rstrip()
+- pattern = ('modules=\( "ifconfig" \)\n*' +
++ pattern = ('modules=\( "ifconfig|iproute2" \)\n*' +
+ '# Label public\n*' +
+ 'config_eth0=\(\s*"{ip}/{netmask_len}"\s*\)\n*' +
+ 'routes_eth0=\(\s*"default via {gateway}"\s*\)\n*' +
+@@ -399,8 +400,9 @@ def test_gentoo_openrc_ipv4(self):
+
+ self.assertTrue('net' in outfiles)
+
++ # (todo: naterh) Update tests to mock for both ifconfig/iproute2
+ generated = outfiles['net'].rstrip()
+- pattern = ('modules="ifconfig"\n*' +
++ pattern = ('modules="ifconfig|iproute2"\n*' +
+ '# Label public\n*' +
+ 'config_eth0="\s*{ip}/{netmask_len}\s*"\n*' +
+ 'routes_eth0="\s*default via {gateway}\s*"\n*' +
+@@ -429,8 +431,9 @@ def test_gentoo_openrc_ipv6(self):
+
+ self.assertTrue('net' in outfiles)
+
++ # (todo: naterh) Update tests to mock for both ifconfig/iproute2
+ generated = outfiles['net'].rstrip()
+- pattern = ('modules="ifconfig"\n*' +
++ pattern = ('modules="ifconfig|iproute2"\n*' +
+ '# Label public\n*' +
+ 'config_eth0="\s*{ip}/{netmask_len}\s*"\n*' +
+ 'routes_eth0="\s*default via {gateway}\s*"\n*' +
diff --git a/app-emulation/openstack-guest-agents-unix/files/openstack-guest-agents-unix-1.39.0-python2.patch b/app-emulation/openstack-guest-agents-unix/files/openstack-guest-agents-unix-1.39.0-python2.patch
new file mode 100644
index 000000000000..0010e9ea5eae
--- /dev/null
+++ b/app-emulation/openstack-guest-agents-unix/files/openstack-guest-agents-unix-1.39.0-python2.patch
@@ -0,0 +1,15 @@
+diff -Nuar openstack-guest-agents-unix-1.39.0.orig/scripts/gentoo/nova-agent.in openstack-guest-agents-unix-1.39.0/scripts/gentoo/nova-agent.in
+--- openstack-guest-agents-unix-1.39.0.orig/scripts/gentoo/nova-agent.in 2013-12-31 02:02:57.000000000 -0800
++++ openstack-guest-agents-unix-1.39.0/scripts/gentoo/nova-agent.in 2014-06-21 17:20:01.527148493 -0700
+@@ -35,8 +35,9 @@
+ NOVA_PYTHONPATH="${reallibdir}/${NOVA_PYTHONPATH}"
+ NOVA_PYTHONPATH="${NOVA_PYTHONPATH}:${NOVA_PYTHONPATH}/site-packages"
+
+-if [ `which python > /dev/null 2>&1 ; echo $?` -eq 0 ]; then
+- PYTHONPATH="$(python -c 'import sys; print ":".join(sys.path)')"
++PYTHON=python2
++if [ `which $PYTHON > /dev/null 2>&1 ; echo $?` -eq 0 ]; then
++ PYTHONPATH="$($PYTHON -c 'import sys; print ":".join(sys.path)')"
+ fi
+ export PYTHONPATH="$NOVA_PYTHONPATH:$PYTHONPATH"
+ export PYTHONHOME="$NOVA_PYTHONPATH:$PYTHONPATH"
diff --git a/app-emulation/openstack-guest-agents-unix/files/patches-1.39.0-20140621.patch b/app-emulation/openstack-guest-agents-unix/files/patches-1.39.0-20140621.patch
new file mode 100644
index 000000000000..c275982fa94b
--- /dev/null
+++ b/app-emulation/openstack-guest-agents-unix/files/patches-1.39.0-20140621.patch
@@ -0,0 +1,323 @@
+commit fc8c9fe076e321ff98cc6717abbb21ee57808c52
+Merge: eaaae09 1ecec49
+Author: teran-mckinney <teran.mckinney@rackspace.com>
+Date: Wed Apr 30 15:33:43 2014 +0000
+
+ Merge pull request #43 from gtmanfred/master
+
+ sbindir changes to exec_prefix
+
+commit eaaae09c27a33998374a8d63702c75b04ab3e5c2
+Merge: 773e431 1505a5a
+Author: teran-mckinney <teran.mckinney@rackspace.com>
+Date: Tue Apr 29 18:21:27 2014 +0000
+
+ Merge pull request #45 from leader716/master
+
+ Added addditional logic to deterine if the hardware address for and inte...
+
+commit 1505a5a8e180910c3307bf04ccfc4eed09c0f40a
+Author: John Ward <john.ward@rackspace.com>
+Date: Tue Apr 29 14:28:34 2014 +0000
+
+ Added addditional logic to deterine if the hardware address for and interface is 0x0 if so go to the next interface.
+ I put this into place to handle tun adapters that have a hardware address of 0x0 which was causing the agent to
+ segfault when it encounterd this type of adapter.
+
+commit 1ecec499d5bea73980a8aec992b394339acc83c7
+Author: Daniel Wallace <danielwallace@gtmanfred.com>
+Date: Fri Apr 25 20:38:35 2014 -0500
+
+ sbindir changes to exec_prefix
+
+ Systemd requires a full path for the start of the command, and there
+ isn't one that isn't a nice way to change this.
+
+commit 773e431997a6612cbda9f11ec9d57f5685a29eea
+Merge: 1ca2056 12c0294
+Author: teran-mckinney <teran.mckinney@rackspace.com>
+Date: Fri Apr 25 18:41:56 2014 +0000
+
+ Merge pull request #39 from Camisa/master
+
+ nova-agent should replace the Slice or Image ID rather than append
+
+commit 1ca2056a455f8075ed951f0a82b92820c0b33b54
+Merge: 1b05c75 f9a365e
+Author: teran-mckinney <teran.mckinney@rackspace.com>
+Date: Fri Apr 25 18:40:29 2014 +0000
+
+ Merge pull request #42 from gtmanfred/master
+
+ Do not add static routes that are the default route, if a default gateway already exists.
+
+ Courtesy of gtmanfred. Thank you!
+
+commit f9a365e7a9543d407ca9d75164688faa0ff53528
+Author: Daniel Wallace <danielwallace@gtmanfred.com>
+Date: Fri Apr 25 10:54:29 2014 -0500
+
+ remove extra and from debian network.py
+
+commit 387d4e77695598a07be9e4593c5b236b81a1aeea
+Author: Daniel Wallace <danielwallace@gtmanfred.com>
+Date: Fri Apr 25 09:31:15 2014 -0500
+
+ Do not add static routes that are the default route
+
+commit 1b05c75530c8b4cbf5347e84815e275ee0bbacd4
+Author: teran-mckinney <teran.mckinney@rackspace.com>
+Date: Thu Feb 13 19:26:36 2014 +0000
+
+ Fix nova-agent not starting on some systems
+
+ data/host existing could cause a fault on xs_handle.mkdir(self.request_path) if request_path (data/host) already existed. Wrap it in a try/except clause to ignore the fault as if the directory already exists, there's no reason to throw an exception while trying to create it.
+
+ Workaround without this patch is to xenstore-rm data/host from affected VMs, or to do it from dom0 with the full path.
+
+commit 12c02941ef02dc6645e6d4700e8a028decbf0c19
+Author: Christopher J. Camisa <cjc@operator.host>
+Date: Thu Jan 30 03:11:51 2014 -0600
+
+ nova-agent should replace the Slice or Image ID rather than append
+
+commit ce388bf600136736fdb790edef58a57aad8adfc1
+Author: AbhishekKr <abhikumar163@gmail.com>
+Date: Tue Jan 21 17:22:23 2014 +0530
+
+ shebang fixed for installer.sh and bintar script; gitignore updated
+
+commit 91fe7d0262fe8ad685a287df291b504250b1184c
+Author: AbhishekKr <abhikumar163@gmail.com>
+Date: Fri Jan 3 16:51:54 2014 +0530
+
+ FreeBSD changed ports, so bintar creation script need to
+diff --git a/.gitignore b/.gitignore
+index ae1ae1b..6bdeda8 100644
+--- a/.gitignore
++++ b/.gitignore
+@@ -55,3 +55,4 @@ unix/scripts/generic/nova-agent
+ unix/scripts/gentoo/nova-agent
+ unix/scripts/freebsd/nova-agent
+ .idea/*
++**/.venv
+diff --git a/commands/arch/network.py b/commands/arch/network.py
+index 1d698ca..2bc0aff 100644
+--- a/commands/arch/network.py
++++ b/commands/arch/network.py
+@@ -373,6 +373,11 @@ def _update_rc_conf_legacy(infile, interfaces):
+ ifaces.append((ifname.replace(':', '_'), ' '.join(line)))
+
+ for i, route in enumerate(interface['routes']):
++ if route['network'] == '0.0.0.0' and \
++ route['netmask'] == '0.0.0.0' and \
++ route['gateway'] == gateway4:
++ continue
++
+ line = "-net %(network)s netmask %(netmask)s gw %(gateway)s" % \
+ route
+
+@@ -499,7 +504,10 @@ def _get_file_data_netctl(ifname, interface):
+ print >>outfile, 'Gateway6=%s' % gateway6
+
+ routes = ['%(network)s/%(netmask)s via %(gateway)s' % route
+- for route in interface['routes']]
++ for route in interface['routes'] if not
++ route['network'] == '0.0.0.0' and not
++ route['netmask'] == '0.0.0.0' and not
++ route['gateway'] == gateway4]
+
+ if routes:
+ print >>outfile, 'Routes=(\'%s\')' % '\' \''.join(routes)
+@@ -552,7 +560,10 @@ def _get_file_data_netcfg(ifname, interface):
+ print >>outfile, 'GATEWAY6="%s"' % gateway6
+
+ routes = ['"%(network)s/%(netmask)s via %(gateway)s"' % route
+- for route in interface['routes']]
++ for route in interface['routes'] if not
++ route['network'] == '0.0.0.0' and not
++ route['netmask'] == '0.0.0.0' and not
++ route['gateway'] == gateway4]
+
+ if routes:
+ print >>outfile, 'ROUTES=(%s)' % ' '.join(routes)
+diff --git a/commands/debian/network.py b/commands/debian/network.py
+index d91d602..3b82d97 100644
+--- a/commands/debian/network.py
++++ b/commands/debian/network.py
+@@ -234,6 +234,11 @@ def _get_file_data(interfaces):
+ ifname_suffix_num += 1
+
+ for route in interface['routes']:
++ if route['network'] == '0.0.0.0' \
++ and route['netmask'] == '0.0.0.0'\
++ and 'gateway4' in interface \
++ and route['gateway'] == interface['gateway4']:
++ continue
+ file_data += " post-up route add -net %(network)s " \
+ "netmask %(netmask)s gw %(gateway)s || true\n" % route
+ file_data += " pre-down route del -net %(network)s " \
+diff --git a/commands/freebsd/network.py b/commands/freebsd/network.py
+index 2d5d7f1..87e5e9e 100644
+--- a/commands/freebsd/network.py
++++ b/commands/freebsd/network.py
+@@ -211,6 +211,10 @@ def _create_rcconf_file(infile, interfaces, hostname):
+ ifname_suffix_num += 1
+
+ for route in interface['routes']:
++ if route['network'] == '0.0.0.0' and \
++ route['netmask'] == '0.0.0.0' and \
++ route['gateway'] == gateway4:
++ continue
+ if ':' in route['network']:
+ # ipv6
+ fmt = '-net %(network)s/%(netmask)s %(gateway)s'
+diff --git a/commands/gentoo/network.py b/commands/gentoo/network.py
+index f3ceff5..f3e5251 100644
+--- a/commands/gentoo/network.py
++++ b/commands/gentoo/network.py
+@@ -199,7 +199,11 @@ def _confd_net_file(interfaces):
+ lines.extend([ " {0}/{1} via {2}".format(route['network'],
+ commands.network.NETMASK_TO_PREFIXLEN[route['netmask']],
+ route['gateway']
+- ) for route in interface['routes'] ])
++ ) for route in interface['routes'] if not
++ route['network'] == '0.0.0.0' and not
++ route['netmask'] == '0.0.0.0' and
++ 'gateway4' in interface and not
++ route['gateway'] == interface['gateway4']])
+ if 'gateway4' in interface and interface['gateway4']:
+ lines.append(" default via {0}".format(interface['gateway4']))
+ if 'gateway6' in interface and interface['gateway6']:
+@@ -247,7 +251,11 @@ def _confd_net_file_legacy(interfaces):
+ lines.append("routes_{0}=(".format(name))
+ lines.extend([ " \"{0} netmask {1} gw {2}\"".format(
+ route['network'], route['netmask'], route['gateway']
+- ) for route in interface['routes'] ])
++ ) for route in interface['routes'] if not
++ route['network'] == '0.0.0.0' and not
++ route['netmask'] == '0.0.0.0' and
++ 'gateway4' in interface and not
++ route['gateway'] == interface['gateway4'] ])
+ if 'gateway4' in interface and interface['gateway4']:
+ lines.append(" \"default via {0}\"".format(interface['gateway4']))
+ if 'gateway6' in interface and interface['gateway6']:
+diff --git a/commands/redhat/network.py b/commands/redhat/network.py
+index a85ed6b..e853fbd 100644
+--- a/commands/redhat/network.py
++++ b/commands/redhat/network.py
+@@ -202,6 +202,11 @@ def _get_file_data(ifname_prefix, interface):
+
+ route_data = ''
+ for i, route in enumerate(interface['routes']):
++ if route['network'] == '0.0.0.0' and \
++ route['netmask'] == '0.0.0.0' and \
++ 'gateway4' in interface and \
++ route['gateway'] == interface['gateway4']:
++ continue
+ route_data += "ADDRESS%d=%s\n" % (i, route['network'])
+ route_data += "NETMASK%d=%s\n" % (i, route['netmask'])
+ route_data += "GATEWAY%d=%s\n" % (i, route['gateway'])
+diff --git a/commands/suse/network.py b/commands/suse/network.py
+index 2947974..baad7b2 100644
+--- a/commands/suse/network.py
++++ b/commands/suse/network.py
+@@ -191,6 +191,10 @@ def _get_file_data(ifname, interface):
+
+ route_data = ''
+ for route in interface['routes']:
++ if route['network'] == '0.0.0.0' and \
++ route['netmask'] == '0.0.0.0' and \
++ route['gateway'] == gateway4:
++ continue
+ network = route['network']
+ netmask = route['netmask']
+ gateway = route['gateway']
+diff --git a/lib/agentlib.c b/lib/agentlib.c
+index ccba6e3..cced430 100644
+--- a/lib/agentlib.c
++++ b/lib/agentlib.c
+@@ -73,7 +73,10 @@ static PyObject *_agentlib_get_interfaces(PyObject *self, PyObject *args)
+ goto next;
+
+ #if defined(__linux__)
+- if (ifa->ifa_addr->sa_family != PF_PACKET)
++ if (ifa->ifa_addr == NULL)
++ goto next;
++
++ if (ifa->ifa_addr->sa_family != PF_PACKET)
+ goto next;
+
+ struct sockaddr_ll *sll = (struct sockaddr_ll *)ifa->ifa_addr;
+diff --git a/plugins/xscomm.py b/plugins/xscomm.py
+index e3faa2e..9b8a33b 100644
+--- a/plugins/xscomm.py
++++ b/plugins/xscomm.py
+@@ -41,7 +41,11 @@ class XSComm(object):
+ XENSTORE_RESPONSE_PATH)
+
+ self.xs_handle = pyxenstore.Handle()
+- self.xs_handle.mkdir(self.request_path)
++ try:
++ self.xs_handle.mkdir(self.request_path)
++ except:
++ pass
++
+ self.requests = []
+
+ def _check_handle(self):
+diff --git a/scripts/gentoo/nova-agent.in b/scripts/gentoo/nova-agent.in
+index a043394..7f2687e 100755
+--- a/scripts/gentoo/nova-agent.in
++++ b/scripts/gentoo/nova-agent.in
+@@ -59,7 +59,7 @@ start() {
+ /usr/bin/xenstore write data/host/system-init '{"name":"resetnetwork","value":""}'
+ /usr/bin/xenstore watch -n 1 data/guest/system-init >/dev/null
+ [ "$(/usr/bin/xenstore read data/guest/system-init | wc -l)" -gt "0" ] || eend 1
+- echo "UUID=\"$(/usr/bin/xenstore read name)\"" >> /etc/conf.d/nova-agent
++ echo "UUID=\"$(/usr/bin/xenstore read name)\"" > /etc/conf.d/nova-agent
+ fi
+
+ eend $RET
+diff --git a/scripts/installer.sh.in b/scripts/installer.sh.in
+index 8ef793d..3fbf352 100755
+--- a/scripts/installer.sh.in
++++ b/scripts/installer.sh.in
+@@ -1,4 +1,4 @@
+-#!/bin/bash
++#!/usr/bin/env bash
+
+ # vim: tabstop=4 shiftwidth=4 softtabstop=4
+ #
+diff --git a/scripts/systemd/nova-agent.service.in b/scripts/systemd/nova-agent.service.in
+index 9d8a4a7..b73ebbe 100644
+--- a/scripts/systemd/nova-agent.service.in
++++ b/scripts/systemd/nova-agent.service.in
+@@ -4,7 +4,7 @@ Description=nova-agent service
+ [Service]
+ Environment=LD_LIBRARY_PATH=@prefix@/share/@PACKAGE@/@PACKAGE_VERSION@/lib
+ EnvironmentFile=-/etc/nova-agent.env
+-ExecStart=@sbindir@/nova-agent -n -l info @prefix@/share/@PACKAGE@/nova-agent.py
++ExecStart=@prefix@/sbin/nova-agent -n -l info @prefix@/share/@PACKAGE@/nova-agent.py
+
+
+ [Install]
+diff --git a/tools/nova-agent-builder.sh b/tools/nova-agent-builder.sh
+index 1823639..fcaa7c7 100755
+--- a/tools/nova-agent-builder.sh
++++ b/tools/nova-agent-builder.sh
+@@ -1,4 +1,4 @@
+-#!/bin/bash
++#!/usr/bin/env bash
+ ##### NOVA AGENT BUILDER
+ ##### how_to:$ sh nova-agent-builder.sh help
+ ##### W.I.P. works fine for most of cases,
+@@ -202,7 +202,7 @@ install_pre_requisite_freebsd(){
+ export INSTALL_D=""
+ uname -a
+
+- pkg_add -r git autogen automake wget bash
++ pkg_add -r git autogen automake wget bash libtool
+ pkg_add -r py27-unittest2 py27-cryptkit py27-pycrypto py27-mox
+
+ # re-install xen-tool :: required for pyxenstore install
diff --git a/app-emulation/openstack-guest-agents-unix/metadata.xml b/app-emulation/openstack-guest-agents-unix/metadata.xml
new file mode 100644
index 000000000000..314a2ed030a4
--- /dev/null
+++ b/app-emulation/openstack-guest-agents-unix/metadata.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person">
+ <email>robbat2@gentoo.org</email>
+ </maintainer>
+ <maintainer type="person">
+ <email>alunduil@gentoo.org</email>
+ </maintainer>
+ <upstream>
+ <remote-id type="github">rackerlabs/openstack-guest-agents-unix</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/app-emulation/openstack-guest-agents-unix/openstack-guest-agents-unix-1.39.0-r1.ebuild b/app-emulation/openstack-guest-agents-unix/openstack-guest-agents-unix-1.39.0-r1.ebuild
new file mode 100644
index 000000000000..ef90ea71bc02
--- /dev/null
+++ b/app-emulation/openstack-guest-agents-unix/openstack-guest-agents-unix-1.39.0-r1.ebuild
@@ -0,0 +1,39 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 ) # does not work with py3 yet
+
+inherit autotools eutils vcs-snapshot python-single-r1
+
+DESCRIPTION="Openstack Unix Guest Agent"
+HOMEPAGE="https://github.com/rackerlabs/openstack-guest-agents-unix"
+SRC_URI="https://github.com/rackerlabs/${PN}/tarball/v${PV} -> ${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64"
+IUSE=""
+REQUIRED_USE="${PYTHON_REQUIRED_USE}"
+
+RDEPEND="dev-util/patchelf
+ dev-python/pycrypto[${PYTHON_USEDEP}]
+ dev-python/pyxenstore[${PYTHON_USEDEP}]
+ ${PYTHON_DEPS}"
+DEPEND="${RDEPEND}"
+
+pkg_setup() {
+ python-single-r1_pkg_setup
+}
+
+src_prepare() {
+ epatch \
+ "${FILESDIR}"/patches-1.39.0-20140621.patch \
+ "${FILESDIR}"/openstack-guest-agents-unix-1.39.0-python2.patch
+ eautoreconf
+}
+
+src_install() {
+ emake DESTDIR="${D}" install
+ doinitd scripts/gentoo/nova-agent
+}
diff --git a/app-emulation/openstack-guest-agents-unix/openstack-guest-agents-unix-1.39.0-r2.ebuild b/app-emulation/openstack-guest-agents-unix/openstack-guest-agents-unix-1.39.0-r2.ebuild
new file mode 100644
index 000000000000..d3efb5aa64c5
--- /dev/null
+++ b/app-emulation/openstack-guest-agents-unix/openstack-guest-agents-unix-1.39.0-r2.ebuild
@@ -0,0 +1,44 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 ) # does not work with py3 yet
+
+inherit autotools eutils vcs-snapshot python-single-r1
+
+DESCRIPTION="Openstack Unix Guest Agent"
+HOMEPAGE="https://github.com/rackerlabs/openstack-guest-agents-unix"
+SRC_URI="https://github.com/rackerlabs/${PN}/tarball/v${PV} -> ${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64"
+IUSE=""
+REQUIRED_USE="${PYTHON_REQUIRED_USE}"
+
+RDEPEND="dev-util/patchelf
+ dev-python/pycrypto[${PYTHON_USEDEP}]
+ dev-python/pyxenstore[${PYTHON_USEDEP}]
+ ${PYTHON_DEPS}"
+DEPEND="${RDEPEND}"
+
+pkg_setup() {
+ python-single-r1_pkg_setup
+}
+
+src_prepare() {
+ epatch \
+ "${FILESDIR}"/patches-1.39.0-20140621.patch \
+ "${FILESDIR}"/openstack-guest-agents-unix-1.39.0-python2.patch
+ # Ignore the deps of install-exec-local
+ sed -i -e '/^install-exec-local:/s,:.*,:,g' Makefile.am
+ # bashism fix
+ sed -r -i -e '/^export ([A-Z_]+)/{ s,^export ,,g; s,^([A-Z0-9_]+)(.*),\1\2; export \1,g; }' scripts/gentoo/nova-agent.in
+
+ eautoreconf
+}
+
+src_install() {
+ emake DESTDIR="${D}" install
+ doinitd scripts/gentoo/nova-agent
+}
diff --git a/app-emulation/openstack-guest-agents-unix/openstack-guest-agents-unix-1.39.0.ebuild b/app-emulation/openstack-guest-agents-unix/openstack-guest-agents-unix-1.39.0.ebuild
new file mode 100644
index 000000000000..46959c8c3844
--- /dev/null
+++ b/app-emulation/openstack-guest-agents-unix/openstack-guest-agents-unix-1.39.0.ebuild
@@ -0,0 +1,31 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=5
+
+inherit autotools eutils vcs-snapshot
+
+DESCRIPTION="Openstack Unix Guest Agent"
+HOMEPAGE="https://github.com/rackerlabs/openstack-guest-agents-unix"
+SRC_URI="https://github.com/rackerlabs/${PN}/tarball/v${PV} -> ${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64"
+IUSE=""
+
+DEPEND="
+ dev-util/patchelf
+ dev-python/pycrypto
+ dev-python/pyxenstore
+ "
+RDEPEND="${DEPEND}"
+
+src_prepare() {
+ eautoreconf
+}
+
+src_install() {
+ emake DESTDIR="${D}" install
+ doinitd scripts/gentoo/nova-agent
+}
diff --git a/app-emulation/openstack-guest-agents-unix/openstack-guest-agents-unix-1.39.1.ebuild b/app-emulation/openstack-guest-agents-unix/openstack-guest-agents-unix-1.39.1.ebuild
new file mode 100644
index 000000000000..0da3fbbb7ff5
--- /dev/null
+++ b/app-emulation/openstack-guest-agents-unix/openstack-guest-agents-unix-1.39.1.ebuild
@@ -0,0 +1,65 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit autotools eutils python-single-r1 vcs-snapshot
+
+DESCRIPTION="Openstack Unix Guest Agent"
+HOMEPAGE="https://github.com/rackerlabs/openstack-guest-agents-unix"
+SRC_URI="https://github.com/rackerlabs/${PN}/tarball/${PV} -> ${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64"
+IUSE="test"
+REQUIRED_USE="${PYTHON_REQUIRED_USE}"
+
+CDEPEND="
+ dev-python/pycrypto[${PYTHON_USEDEP}]
+ dev-python/pyxenstore[${PYTHON_USEDEP}]
+ dev-util/patchelf
+ ${PYTHON_DEPS}
+"
+DEPEND="
+ ${CDEPEND}
+ test? (
+ dev-python/mox[${PYTHON_USEDEP}]
+ dev-python/unittest2[${PYTHON_USEDEP}]
+ )
+"
+RDEPEND="${CDEPEND}"
+
+pkg_setup() {
+ python-single-r1_pkg_setup
+}
+
+src_prepare() {
+ epatch \
+ "${FILESDIR}"/4453b4773688eef6c60736d9cf07100716308a5e.patch \
+ "${FILESDIR}"/0513f013625b6a652d7dcb663eb396b9b5bb924e.patch
+
+ # Note: https://github.com/rackerlabs/openstack-guest-agents-unix/issues/52
+ ebegin 'patching tests/test_injectfile.py'
+ sed \
+ -e '97,127 d' \
+ -i tests/test_injectfile.py
+ STATUS=$?
+ eend ${STATUS}
+ [[ ${STATUS} -gt 0 ]] && die
+
+ eautoreconf
+}
+
+src_install() {
+ emake DESTDIR="${D}" install
+
+ doinitd scripts/gentoo/nova-agent
+}
+
+pkg_postinst() {
+ elog "If you would like to utilize openstack-guest-agents-unix, add 'nova-agent' to"
+ elog "your 'default' runlevel:"
+ elog " rc-update add nova-agent default"
+}
diff --git a/app-emulation/openstack-guest-agents-unix/openstack-guest-agents-unix-1.39.1_p20170227.ebuild b/app-emulation/openstack-guest-agents-unix/openstack-guest-agents-unix-1.39.1_p20170227.ebuild
new file mode 100644
index 000000000000..55c5697d99b9
--- /dev/null
+++ b/app-emulation/openstack-guest-agents-unix/openstack-guest-agents-unix-1.39.1_p20170227.ebuild
@@ -0,0 +1,73 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+PYTHON_COMPAT=( python2_7 )
+
+inherit eutils autotools linux-info python-single-r1
+
+COMMIT="c9a4f15b8c8f2349601d3073cc95e30d3b91af13"
+
+DESCRIPTION="Unix Guest Agent for OpenStack"
+HOMEPAGE="https://wiki.openstack.org/wiki/GuestAgent"
+SRC_URI="https://github.com/rackerlabs/${PN}/archive/${COMMIT}.zip -> ${P}.zip"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="test"
+REQUIRED_USE="${PYTHON_REQUIRED_USE}"
+RESTRICT="mirror strip"
+
+DEPEND="
+ app-emulation/xe-guest-utilities[-xenstore]
+ dev-util/patchelf
+ dev-python/pycrypto[${PYTHON_USEDEP}]
+ test? ( dev-python/mox[${PYTHON_USEDEP}] )
+ test? ( dev-python/unittest2[${PYTHON_USEDEP}] )
+ ${PYTHON_DEPS}
+"
+RDEPEND="
+ app-emulation/xe-guest-utilities
+ dev-python/pyxenstore[${PYTHON_USEDEP}]
+ dev-python/pycrypto[${PYTHON_USEDEP}]
+ ${PYTHON_DEPS}
+"
+S=${WORKDIR}/${PN}-${COMMIT}
+
+# Required for Emergency Console
+CONFIG_CHECK="~KEYBOARD_ATKBD"
+
+pkg_setup()
+{
+ python-single-r1_pkg_setup
+}
+
+src_prepare()
+{
+ # Note: https://github.com/rackerlabs/openstack-guest-agents-unix/issues/52
+ ebegin 'patching tests/test_injectfile.py'
+ sed -e '97,127 d' -i tests/test_injectfile.py
+ STATUS=$?
+ eend ${STATUS}
+ [[ ${STATUS} -gt 0 ]] && die
+
+ eapply_user
+ eautoreconf
+}
+
+src_install()
+{
+ emake DESTDIR="${D}" install || die
+ doinitd scripts/gentoo/nova-agent
+}
+
+pkg_postinst()
+{
+ if [ "$(rc-config list default | grep nova-agent)" = "" ] ; then
+ elog "To start nova-agent automatically by default"
+ elog "you should add it to the default runlevel :"
+ elog "\`rc-update add nova-agent default\`"
+ elog
+ fi
+}