summaryrefslogtreecommitdiff
path: root/app-emulation/ganeti-htools
diff options
context:
space:
mode:
authorV3n3RiX <venerix@redcorelinux.org>2018-07-14 21:03:06 +0100
committerV3n3RiX <venerix@redcorelinux.org>2018-07-14 21:03:06 +0100
commit8376ef56580626e9c0f796d5b85b53a0a1c7d5f5 (patch)
tree7681bbd4e8b05407772df40a4bf04cbbc8afc3fa /app-emulation/ganeti-htools
parent30a9caf154332f12ca60756e1b75d2f0e3e1822d (diff)
gentoo resync : 14.07.2018
Diffstat (limited to 'app-emulation/ganeti-htools')
-rw-r--r--app-emulation/ganeti-htools/Manifest7
-rw-r--r--app-emulation/ganeti-htools/files/ganeti-htools-0.2.8-use-QC-1.patch14
-rw-r--r--app-emulation/ganeti-htools/files/ganeti-htools-0.3.1-base-4.patch171
-rw-r--r--app-emulation/ganeti-htools/files/ganeti-htools-0.3.1-containers.patch9
-rw-r--r--app-emulation/ganeti-htools/files/ganeti-htools-0.3.1-ghc-7.10.patch29
-rw-r--r--app-emulation/ganeti-htools/ganeti-htools-0.3.1.ebuild50
-rw-r--r--app-emulation/ganeti-htools/metadata.xml27
7 files changed, 307 insertions, 0 deletions
diff --git a/app-emulation/ganeti-htools/Manifest b/app-emulation/ganeti-htools/Manifest
new file mode 100644
index 000000000000..05ad62a3e747
--- /dev/null
+++ b/app-emulation/ganeti-htools/Manifest
@@ -0,0 +1,7 @@
+AUX ganeti-htools-0.2.8-use-QC-1.patch 526 BLAKE2B 928c7668b3d59a9b059725a44a2ebcd98d2f67b76594998f6e86bd948a7f9f03b0cf92823ea81b575b6dc46fd13d26efe4d02c66585a98784feb29afd9971608 SHA512 5f14ef6f045a8bb381203b6d9bc68e995992649b910658df210c4db427b8faa76bf48afc2df0513ee26d072011c8b85abaf6d77b3b6a71ff9bd1154d355a0c47
+AUX ganeti-htools-0.3.1-base-4.patch 4511 BLAKE2B 5a4d89a1820a8a4d8b9579e9b53755b631a57b91a94e1f702da9c122dcee1e32aba7f7080d3e82be762336c557d7a2340755337504f65eae3ff0d825667a2d51 SHA512 e0ec8a7bcd15e047f3d61640f8fab946560e035776f455019fc825809a19ca24a06a265c08e9e469c613a5ad7014ec910a080ce36b674d08f439ec9ce5caad14
+AUX ganeti-htools-0.3.1-containers.patch 363 BLAKE2B 2d0e1c3ee562a89d385e8e567299e5af13bd9c42e9c66f23042e40ad7aba4068928e609cdafb811af058c1be5f4baa8ecf8bb529150b2a24b7e9b678b885ab5c SHA512 4e0e552db9cb9e79be71b55b2d50c4d740074ea57d425e7d4e6ea5dbb136da175f6551131b97e36a0106554c49b337626b667a353c4056750e0150a28d7d2784
+AUX ganeti-htools-0.3.1-ghc-7.10.patch 772 BLAKE2B d6d6d0978272236eca4479c24c80c3e2641a53dc04bec0d75ea38cb027406fe084df46609141e0711d32c5b611739171dac2a16a588ade29936488dde2c9435b SHA512 c1ea60f053e528b465a916b9045e580bd364df7c9bbe6b67041339dc3dd983347c8b9d590249649ec1ed236d566de924dee41a37884329b9b059d53858dc44d4
+DIST ganeti-htools-0.3.1.tar.gz 300261 BLAKE2B b7eb1a94ff4a5026955a9b8c7331dc6b529ff9eb688ae4cafe1822b93d3705bff4f9c5006bd674cd03ecb2bf41d0e32142d039b485e08a797240e8f51f553c2a SHA512 76acc476dc5b3add808db41b7aad4be6ee4b62d31e81eaefa17fbf010daa817bcc920b4e290727ebeddebbe6015017b19d2b7643dbc6d529f158b9746b7a4b43
+EBUILD ganeti-htools-0.3.1.ebuild 1227 BLAKE2B 1cd454248b76d7efcbf5f1175187cf31573b5960c0a07cf291c86a649e18155b52c3bab3758760a68dcd0bf74d061f701abdc824598551bb0891ceddf9c87eb7 SHA512 509b06a1953db536a3a5ce40e373f79758be505d5b136d095260a020e82e776f6c190140753df1b2188ebf32abf49311683d3474d1a4772404f724380e71f92d
+MISC metadata.xml 1091 BLAKE2B e1177d26ac85678879e3e7e0ab956e08d3b56a28c78654b6ae8c8810fab1eb1e6a03f8ec37798bf2ee6c1078ec6319b47c0d367a3cf7782bafea420c9d45de38 SHA512 1cf1ae0572dedb5d9969f631edb0484ffa29246abbf3da158060ae752db9bf90390e391b24976eaf6c5d99d6a7127d8f52d7b49fb9a703b1dc7075c770ff136e
diff --git a/app-emulation/ganeti-htools/files/ganeti-htools-0.2.8-use-QC-1.patch b/app-emulation/ganeti-htools/files/ganeti-htools-0.2.8-use-QC-1.patch
new file mode 100644
index 000000000000..fd7943fe7057
--- /dev/null
+++ b/app-emulation/ganeti-htools/files/ganeti-htools-0.2.8-use-QC-1.patch
@@ -0,0 +1,14 @@
+diff --git a/Makefile b/Makefile
+index 5e189fc..bfdf175 100644
+--- a/Makefile
++++ b/Makefile
+@@ -20,7 +20,8 @@ $(HALLPROGS): %: %.hs Ganeti/HTools/Version.hs $(HSRCS) Makefile
+
+ test live-test: HEXTRA=-fhpc -Wwarn -fno-warn-missing-signatures \
+ -fno-warn-monomorphism-restriction -fno-warn-orphans \
+- -fno-warn-missing-methods -fno-warn-unused-imports
++ -fno-warn-missing-methods -fno-warn-unused-imports \
++ -package $(shell ghc-pkg list | sed -n '/ QuickCheck-1./p')
+
+ $(DOCS) : %.html : %
+ rst2html -v --strict $< $@
diff --git a/app-emulation/ganeti-htools/files/ganeti-htools-0.3.1-base-4.patch b/app-emulation/ganeti-htools/files/ganeti-htools-0.3.1-base-4.patch
new file mode 100644
index 000000000000..aa0d973a9e40
--- /dev/null
+++ b/app-emulation/ganeti-htools/files/ganeti-htools-0.3.1-base-4.patch
@@ -0,0 +1,171 @@
+diff --git a/Ganeti/HTools/CLI.hs b/Ganeti/HTools/CLI.hs
+index b000a00..d9177c6 100644
+--- a/Ganeti/HTools/CLI.hs
++++ b/Ganeti/HTools/CLI.hs
+@@ -74,11 +74,11 @@ module Ganeti.HTools.CLI
+
+ import Data.Maybe (fromMaybe)
+ import qualified Data.Version
+-import Monad
++import Control.Monad
+ import System.Console.GetOpt
+ import System.IO
+ import System.Info
+-import System
++import System.Exit
+ import Text.Printf (printf)
+
+ import qualified Ganeti.HTools.Version as Version(version)
+diff --git a/Ganeti/HTools/ExtLoader.hs b/Ganeti/HTools/ExtLoader.hs
+index 0412c1b..17b8449 100644
+--- a/Ganeti/HTools/ExtLoader.hs
++++ b/Ganeti/HTools/ExtLoader.hs
+@@ -36,10 +36,11 @@ module Ganeti.HTools.ExtLoader
+ ) where
+
+ import Data.Maybe (isJust, fromJust)
+-import Monad
++import Control.Monad
++import qualified Control.Exception as E
+ import System.FilePath
+ import System.IO
+-import System
++import System.Exit
+ import Text.Printf (printf, hPrintf)
+
+ import qualified Ganeti.HTools.Luxi as Luxi
+@@ -56,8 +57,8 @@ import Ganeti.HTools.CLI
+ import Ganeti.HTools.Utils (sepSplit, tryRead)
+
+ -- | Error beautifier
+-wrapIO :: IO (Result a) -> IO (Result a)
+-wrapIO = flip catch (return . Bad . show)
++wrapIO :: (Show a) => IO (Result a) -> IO (Result a)
++wrapIO = flip (E.catch :: IO a -> (E.IOException -> IO a) -> IO a) (return . Bad . show )
+
+ parseUtilisation :: String -> Result (String, DynUtil)
+ parseUtilisation line =
+diff --git a/hail.hs b/hail.hs
+index 541e1a9..68f4488 100644
+--- a/hail.hs
++++ b/hail.hs
+@@ -27,10 +27,10 @@ module Main (main) where
+
+ import Data.List
+ import Data.Maybe (isJust, fromJust)
+-import Monad
+-import System (exitWith, ExitCode(..))
++import Control.Monad
++import System.Environment
++import System.Exit
+ import System.IO
+-import qualified System
+
+ import qualified Ganeti.HTools.Cluster as Cluster
+
+@@ -99,7 +99,7 @@ readRequest opts args = do
+ -- | Main function.
+ main :: IO ()
+ main = do
+- cmd_args <- System.getArgs
++ cmd_args <- getArgs
+ (opts, args) <- parseOpts cmd_args "hail" options
+
+ let shownodes = optShowNodes opts
+diff --git a/hbal.hs b/hbal.hs
+index 46cccf8..0254008 100644
+--- a/hbal.hs
++++ b/hbal.hs
+@@ -30,12 +30,12 @@ import Control.Exception (bracket)
+ import Data.List
+ import Data.Maybe (isJust, isNothing, fromJust)
+ import Data.IORef
+-import Monad
+-import System (exitWith, ExitCode(..))
++import Control.Monad
+ import System.IO
++import System.Exit
+ import System.Posix.Process
+ import System.Posix.Signals
+-import qualified System
++import System.Environment
+
+ import Text.Printf (printf, hPrintf)
+
+@@ -223,7 +223,7 @@ runJobSet master fin_nl il cmd_jobs = do
+ -- | Main function.
+ main :: IO ()
+ main = do
+- cmd_args <- System.getArgs
++ cmd_args <- getArgs
+ (opts, args) <- parseOpts cmd_args "hbal" options
+
+ unless (null args) $ do
+diff --git a/hscan.hs b/hscan.hs
+index c14846f..d613f83 100644
+--- a/hscan.hs
++++ b/hscan.hs
+@@ -28,11 +28,11 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+ module Main (main) where
+
+ import Data.Maybe (isJust, fromJust, fromMaybe)
+-import Monad
+-import System (exitWith, ExitCode(..))
++import Control.Monad
++import System.Environment
++import System.Exit
+ import System.IO
+ import System.FilePath
+-import qualified System
+
+ import Text.Printf (printf)
+
+@@ -135,7 +135,7 @@ writeDataInner nlen name opts cdata fixdata = do
+ -- | Main function.
+ main :: IO ()
+ main = do
+- cmd_args <- System.getArgs
++ cmd_args <- getArgs
+ (opts, clusters) <- parseOpts cmd_args "hscan" options
+ let local = "LOCAL"
+
+diff --git a/hspace.hs b/hspace.hs
+index 57d0302..f207c67 100644
+--- a/hspace.hs
++++ b/hspace.hs
+@@ -29,10 +29,10 @@ import Data.Char (toUpper, isAlphaNum)
+ import Data.List
+ import Data.Maybe (isJust, fromJust)
+ import Data.Ord (comparing)
+-import Monad
+-import System (exitWith, ExitCode(..))
++import Control.Monad
++import System.Exit
++import System.Environment
+ import System.IO
+-import qualified System
+
+ import Text.Printf (printf, hPrintf)
+
+@@ -207,7 +207,7 @@ printAllocationMap verbose msg nl ixes =
+ -- | Main function.
+ main :: IO ()
+ main = do
+- cmd_args <- System.getArgs
++ cmd_args <- getArgs
+ (opts, args) <- parseOpts cmd_args "hspace" options
+
+ unless (null args) $ do
+diff --git a/test.hs b/test.hs
+index 12aa50d..81838eb 100644
+--- a/test.hs
++++ b/test.hs
+@@ -29,7 +29,7 @@ import Data.IORef
+ import Test.QuickCheck.Batch
+ import System.IO
+ import System.Exit
+-import System (getArgs)
++import System.Environment (getArgs)
+
+ import Ganeti.HTools.QC
+
diff --git a/app-emulation/ganeti-htools/files/ganeti-htools-0.3.1-containers.patch b/app-emulation/ganeti-htools/files/ganeti-htools-0.3.1-containers.patch
new file mode 100644
index 000000000000..2305aa5c6547
--- /dev/null
+++ b/app-emulation/ganeti-htools/files/ganeti-htools-0.3.1-containers.patch
@@ -0,0 +1,9 @@
+diff --git a/Ganeti/HTools/QC.hs b/Ganeti/HTools/QC.hs
+index 534a7b1..6f99a96 100644
+--- a/Ganeti/HTools/QC.hs
++++ b/Ganeti/HTools/QC.hs
+@@ -753,3 +753,3 @@ prop_ClusterAllocBalance node =
+ let nl = makeSmallCluster node count
+- (hnode, nl') = IntMap.deleteFindMax nl
++ ((_k, hnode), nl') = IntMap.deleteFindMax nl
+ il = Container.empty
diff --git a/app-emulation/ganeti-htools/files/ganeti-htools-0.3.1-ghc-7.10.patch b/app-emulation/ganeti-htools/files/ganeti-htools-0.3.1-ghc-7.10.patch
new file mode 100644
index 000000000000..51c39fe5fce5
--- /dev/null
+++ b/app-emulation/ganeti-htools/files/ganeti-htools-0.3.1-ghc-7.10.patch
@@ -0,0 +1,29 @@
+diff --git a/Ganeti/HTools/Types.hs b/Ganeti/HTools/Types.hs
+index 104bf64..8146870 100644
+--- a/Ganeti/HTools/Types.hs
++++ b/Ganeti/HTools/Types.hs
+@@ -65,2 +65,4 @@ import qualified Data.Map as M
+ import qualified Text.JSON as JSON
++import Control.Applicative
++import Control.Monad
+
+@@ -221,2 +223,9 @@ data Result a
+
++instance Functor Result where
++ fmap = liftM
++
++instance Applicative Result where
++ pure = return
++ (<*>) = ap -- defined in Control.Monad
++
+ instance Monad Result where
+@@ -252,2 +261,9 @@ data OpResult a = OpFail FailMode -- ^ Failed operation
+
++instance Functor OpResult where
++ fmap = liftM
++
++instance Applicative OpResult where
++ pure = return
++ (<*>) = ap -- defined in Control.Monad
++
+ instance Monad OpResult where
diff --git a/app-emulation/ganeti-htools/ganeti-htools-0.3.1.ebuild b/app-emulation/ganeti-htools/ganeti-htools-0.3.1.ebuild
new file mode 100644
index 000000000000..7068c10267c8
--- /dev/null
+++ b/app-emulation/ganeti-htools/ganeti-htools-0.3.1.ebuild
@@ -0,0 +1,50 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="2"
+
+inherit eutils multilib
+
+DESCRIPTION="Cluster tools for fixing common allocation problems on Ganeti 2.0
+clusters"
+HOMEPAGE="http://www.ganeti.org/"
+SRC_URI="https://ganeti.googlecode.com/files/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="amd64 x86"
+IUSE="doc test"
+
+DEPEND="dev-lang/ghc
+ dev-haskell/json
+ dev-haskell/curl
+ dev-haskell/network
+ dev-haskell/parallel"
+RDEPEND="${DEPEND}
+ !<app-emulation/ganeti-2.4"
+DEPEND+=" test? ( dev-haskell/quickcheck:1 )"
+
+src_prepare() {
+ # htools does not currently compile cleanly with ghc-6.12+, so remove this
+ # for now
+ sed -i -e "s:-Werror ::" Makefile
+ # Workaround to skip pandoc
+ sed -i -e "s:) man:):" Makefile
+ epatch "${FILESDIR}"/${PN}-0.2.8-use-QC-1.patch #316629
+ epatch "${FILESDIR}"/${PN}-0.3.1-base-4.patch #424299
+ epatch "${FILESDIR}"/${PN}-0.3.1-ghc-7.10.patch
+ epatch "${FILESDIR}"/${PN}-0.3.1-containers.patch
+}
+
+src_compile() {
+ emake -j1 || die "emake failed"
+}
+
+src_install() {
+ dosbin hspace hscan hbal
+ exeinto /usr/$(get_libdir)/ganeti/iallocators
+ doexe hail
+ doman man/*.1
+ dodoc README NEWS AUTHORS
+ use doc && dohtml -r apidoc/*
+}
diff --git a/app-emulation/ganeti-htools/metadata.xml b/app-emulation/ganeti-htools/metadata.xml
new file mode 100644
index 000000000000..56690a9ca1ec
--- /dev/null
+++ b/app-emulation/ganeti-htools/metadata.xml
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="project">
+ <email>virtualization@gentoo.org</email>
+ <name>Gentoo Virtualization Project</name>
+ </maintainer>
+ <maintainer type="project">
+ <email>haskell@gentoo.org</email>
+ <name>Gentoo Haskell</name>
+ </maintainer>
+ <longdescription lang="en">
+ These are some simple cluster tools for fixing common allocation
+ problems on Ganeti 2.0 clusters.
+
+ Note that these tools are most useful for bigger cluster sizes
+ (e.g. more than five or ten machines); at lower sizes, the computations
+ they do can also be done manually.
+
+ Most of the tools revolve around the concept of keeping the cluster N+1
+ compliant: this means that in case of failure of any node, the instances
+ affected can be failed over (via ``gnt-node failover`` or ``gnt-instance
+ failover``) to their secondary node, and there is enough memory reserved
+ for this operation without needing to shutdown other instances or
+ rebalance the cluster.
+ </longdescription>
+</pkgmetadata>