packages feed

b9-1.0.0: b9.cabal

cabal-version:       2.4
name:                b9
version:             1.0.0

synopsis:            A tool and library for building virtual machine images.

description:         Build virtual machine images for vm-deployments; resize,
                     un-partition, create from scratch or convert disk image
                     files in a variety of formats; assemble and generate all
                     associated files from templates and regular files.


                     VM images can further be modifed through scripts, which are
                     executed in LXC containers into which the vm-images as well
                     as arbitrary directories from the host are mounted.


                     All assembled files can also be accessed by vm build
                     scripts through a special directory mounted in the build
                     container, and/or can be written to directories, ISO- or
                     VFAT-images.


                     The ISO/VFAT images that B9 creates are compatible to
                     'cloud-init's 'NoCloud' data source;


                     B9 is also very well suited for compiling in a
                     containerized environment. For these applications, the
                     images can be marked as 'Transient' to indicate no further
                     interest in the VM-image itself, and B9 will discard them
                     after the build.


                     B9 will never over-write source files, not even large
                     vm-image files - there is no intended way to modify a
                     source vm-image file 'in-place'.


                     B9 operates in random build directories, which are
                     discarded when the build exists.

license:             MIT
license-file:        LICENSE
author:              Sven Heyll <svh@posteo.de>
maintainer:          svh@posteo.de
homepage:            https://github.com/sheyll/b9-vm-image-builder
bug-reports:         https://github.com/sheyll/b9-vm-image-builder/issues
copyright:           2015, 2016, 2017, 2018, 2019 Sven Heyll <svh@posteo.de>
category:            Development
build-type:          Simple
extra-source-files:  README.md
                   , LICENSE
                   , Setup.hs
                   , b9.cabal
                   , .gitignore
                   , prepare_release.sh
                   , stack.yaml
                   , .travis.yml
                   , CONTRIBUTORS
                   , CONTRIBUTING.md
                   , CODE_OF_CONDUCT.md
                   , CHANGELOG.md

common b9Deps
  build-depends:     base >= 4.12 && < 5
                   , bytestring >= 0.10.8
                   , directory >= 1.3
                   , extensible-effects >= 5 && < 6
                   , hspec
                   , hspec-expectations
                   , lens >= 4
                   , text >= 1.2

common b9Extensions
  other-extensions: OverloadedStrings
  default-extensions: ConstraintKinds
                    , CPP
                    , DataKinds
                    , DeriveDataTypeable
                    , DeriveFunctor
                    , DeriveGeneric
                    , ExplicitNamespaces
                    , FlexibleContexts
                    , GADTs
                    , GeneralizedNewtypeDeriving
                    , KindSignatures
                    , MonoLocalBinds
                    , MultiParamTypeClasses
                    , RankNTypes
                    , ScopedTypeVariables
                    , StandaloneDeriving
                    , TemplateHaskell
                    , TupleSections
                    , TypeFamilies
                    , TypeOperators
  default-language:  Haskell2010
  ghc-options:       -Wall
                     -fwarn-unused-binds -fno-warn-unused-do-bind

source-repository head
  type:                 git
  location:             git://github.com/sheyll/b9-vm-image-builder.git

library
  import: b9Extensions, b9Deps
  hs-source-dirs:    src/lib
  exposed-modules:   B9
                   , B9.Artifact
                   , B9.Artifact.Content
                   , B9.Artifact.Content.AST
                   , B9.Artifact.Content.CloudConfigYaml
                   , B9.Artifact.Content.ErlTerms
                   , B9.Artifact.Content.ErlangPropList
                   , B9.Artifact.Content.Readable
                   , B9.Artifact.Content.StringTemplate
                   , B9.Artifact.Content.YamlObject
                   , B9.Artifact.Readable
                   , B9.Artifact.Readable.Interpreter
                   , B9.Artifact.Readable.Source
                   , B9.B9Config
                   , B9.B9Config.Container
                   , B9.B9Config.Docker
                   , B9.B9Config.LibVirtLXC
                   , B9.B9Config.Podman
                   , B9.B9Config.Repository
                   , B9.B9Config.SystemdNspawn
                   , B9.B9Error
                   , B9.B9Exec
                   , B9.B9Logging
                   , B9.B9Monad                  
                   , B9.BuildInfo
                   , B9.Container
                   , B9.DiskImageBuilder
                   , B9.DiskImages
                   , B9.Docker
                   , B9.Environment
                   , B9.ExecEnv
                   , B9.LibVirtLXC
                   , B9.MBR
                   , B9.PartitionTable
                   , B9.Podman
                   , B9.QCUtil
                   , B9.Repository
                   , B9.RepositoryIO
                   , B9.Shake
                   , B9.Shake.Actions
                   , B9.Shake.SharedImageRules
                   , B9.ShellScript
                   , B9.SystemdNspawn
                   , B9.Text
                   , B9.Vm
                   , B9.VmBuilder
                   , Data.ConfigFile.B9Extras
                   , System.IO.B9Extras
  other-modules:   Paths_b9
  autogen-modules: Paths_b9
  build-depends:     ConfigFile >= 1.1.4
                   , QuickCheck >= 2.5
                   , aeson >= 1.0
                   , async >= 2.1
                   , base64-bytestring
                   , bifunctors >= 5.4
                   , binary >= 0.8.3
                   , boxes >= 0.1.4
                   , conduit >= 1.2
                   , conduit-extra >= 1.1
                   , dhall >= 1
                   , exceptions >= 0.10
                   , filepath >= 1.4
                   , free >= 4.12
                   , hashable >= 1.2
                   , monad-control >= 1.0 && < 1.1
                   , mtl >= 2.2
                   , optparse-applicative >= 0.14
                   , parallel >= 3.2
                   , parsec >= 3.1
                   , pretty >= 1.1
                   , pretty-show >= 1.6
                   , process >= 1.4
                   , random >= 1.1
                   , shake >= 0.17.6 && < 0.19
                   , syb >= 0.6
                   , tagged >= 0.8 && < 0.9
                   , template >= 0.2
                   , time >= 1.6
                   , transformers >= 0.5
                   , unordered-containers >= 0.2.8
                   , vector >= 0.11
                   , yaml >= 0.8

executable b9c
  import:           b9Extensions, b9Deps
  main-is:           Main.hs
  other-modules:     Paths_b9
  autogen-modules:   Paths_b9
  build-depends:     b9
                   , extensible-effects >= 5 && < 6
                   , optparse-applicative >= 0.13
  hs-source-dirs:    src/cli
  ghc-options:       -Wall
                     -fwarn-unused-binds -fno-warn-unused-do-bind -threaded

test-suite spec
  import:           b9Extensions, b9Deps
  type:              exitcode-stdio-1.0
  ghc-options:       -Wall -threaded
  hs-source-dirs:    src/tests
  main-is:           Spec.hs
  autogen-modules:   Paths_b9
  other-modules:     B9.Content.ErlTermsSpec
                   , B9.ArtifactGeneratorImplSpec
                   , B9.Content.ErlangPropListSpec
                   , B9.Content.YamlObjectSpec
                   , B9.DiskImagesSpec
                   , B9.EnvironmentSpec
                   , Paths_b9
  build-depends:     QuickCheck >= 2.5
                   , b9
                   , aeson >= 1.0
                   , binary >= 0.8 && < 0.9
                   , hspec
                   , hspec-expectations
                   , unordered-containers >= 0.2
                   , vector >= 0.11
                   , yaml >= 0.8