packages feed

rtnetlink-0.2.0.0: rtnetlink.cabal

name:               rtnetlink
version:            0.2.0.0
synopsis:           Manipulate network devices, addresses, and routes on Linux
description:        A high-level, extensible, pure-Haskell interface to the
                    ROUTE_NETLINK subsystem of netlink for manipulating
                    network devices on Linux.

                    RTNetlink provides the RTNL monad to simplify sending
                    and receiving messages, pre-built types for manipulating
                    devices and addresses, and typeclasses for creating your
                    own messages, based on linux\/netlink.h,
                    linux\/rtnetlink.h, et al.
license:            BSD3
license-file:       LICENSE
author:             Ben Hamlin
maintainer:         Ben Hamlin <protob3n@gmail.com>
copyright:          Formaltech Inc.
category:           Network, System
build-type:         Simple
extra-source-files: ChangeLog.md
cabal-version:      >=1.10
homepage:           https://github.com/protoben/rtnetlink.hs

flag examples
    description:    Build example programs
    default:        False

test-suite rtnetlink-tests
    default-language:   Haskell2010
    type:               exitcode-stdio-1.0
    hs-source-dirs:     tests
    main-is:            Main.hs
    build-depends:
        base             >=4.7  && <5,
        bytestring       >=0.10 && <0.11,
        exceptions       >=0.8  && <0.11,
        hspec            >=2.4  && <3,
        socket           >=0.8  && <0.9,
        unix             >=2.7  && <2.8,
        linux-namespaces >=0.1 && <0.2,
        rtnetlink

executable rtnl-link
    if flag(examples)
        build-depends:
            base        >=4.7  && <5,
            bytestring  >=0.10 && <0.11,
            split       >=0.2  && <0.3,
            rtnetlink
    else
        buildable:      False
    main-is:            examples/rtnl-link/Main.hs
    default-language:   Haskell2010

executable rtnl-address
    if flag(examples)
        build-depends:
            base        >=4.7  && <5,
            socket      >=0.8  && <0.9,
            split       >=0.2  && <0.3,
            rtnetlink
    else
        buildable:      False
    main-is:            examples/rtnl-address/Main.hs
    default-language:   Haskell2010

library
    exposed-modules:
        System.Linux.RTNetlink,
        System.Linux.RTNetlink.Address,
        System.Linux.RTNetlink.Link,
        System.Linux.RTNetlink.Message,
        System.Linux.RTNetlink.Packet,
        System.Socket.Family.Netlink,
        System.Socket.Protocol.RTNetlink
    other-modules:
        System.Linux.RTNetlink.Util
    other-extensions:
        CPP,
        FlexibleContexts,
        FlexibleInstances,
        ForeignFunctionInterface,
        GeneralizedNewtypeDeriving,
        MultiParamTypeClasses,
        OverloadedStrings,
        RecordWildCards,
        TypeFamilies
    build-depends:
        base            >=4.7  && <5,
        bits-bytestring >=0.1  && <0.2,
        bytestring      >=0.10 && <0.11,
        cereal          >=0.5  && <0.6,
        exceptions      >=0.8  && <0.11,
        pretty-hex      >=1.0  && <1.1,
        random          >=1.1  && <1.2,
        socket          >=0.8  && <0.9,
        transformers    >=0.4  && <0.6,
        unix            >=2.7  && <2.8
    default-language:   Haskell2010
    hs-source-dirs:     src
    build-tools:        hsc2hs

source-repository head
    type:           git
    location:       https://gitlab.com/formaltech/rtnetlink-hs