Hello community, here is the log from the commit of package ghc-iproute for openSUSE:Factory checked in at 2016-01-08 15:22:53 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/ghc-iproute (Old) and /work/SRC/openSUSE:Factory/.ghc-iproute.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "ghc-iproute" Changes: -------- --- /work/SRC/openSUSE:Factory/ghc-iproute/ghc-iproute.changes 2015-09-17 09:18:52.000000000 +0200 +++ /work/SRC/openSUSE:Factory/.ghc-iproute.new/ghc-iproute.changes 2016-01-08 15:22:54.000000000 +0100 @@ -1,0 +2,10 @@ +Tue Dec 15 15:21:55 UTC 2015 - mimi...@gmail.com + +- update to 1.7.0 + +------------------------------------------------------------------- +Sat Sep 12 12:45:33 UTC 2015 - mimi...@gmail.com + +- update to 1.6.0 + +------------------------------------------------------------------- Old: ---- iproute-1.5.0.tar.gz New: ---- iproute-1.7.0.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ ghc-iproute.spec ++++++ --- /var/tmp/diff_new_pack.Pb5Rk9/_old 2016-01-08 15:22:55.000000000 +0100 +++ /var/tmp/diff_new_pack.Pb5Rk9/_new 2016-01-08 15:22:55.000000000 +0100 @@ -20,7 +20,7 @@ %bcond_with tests Name: ghc-iproute -Version: 1.5.0 +Version: 1.7.0 Release: 0 Summary: IP Routing Table Group: System/Libraries ++++++ iproute-1.5.0.tar.gz -> iproute-1.7.0.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/iproute-1.5.0/Data/IP/Addr.hs new/iproute-1.7.0/Data/IP/Addr.hs --- old/iproute-1.5.0/Data/IP/Addr.hs 2015-07-06 05:25:25.000000000 +0200 +++ new/iproute-1.7.0/Data/IP/Addr.hs 2015-09-14 09:15:28.000000000 +0200 @@ -1,20 +1,21 @@ -{-# LANGUAGE CPP #-} +{-# LANGUAGE DeriveDataTypeable #-} +{-# LANGUAGE DeriveGeneric #-} module Data.IP.Addr where import Control.Monad import Data.Bits import Data.Char +import Data.Data (Data) import Data.List (foldl', intersperse) import Data.String +import Data.Typeable (Typeable) import Data.Word import Network.Socket import Numeric (showHex, showInt) import System.ByteOrder import Text.Appar.String import GHC.Enum (succError,predError) -#ifdef GENERICS import GHC.Generics -#endif ---------------------------------------------------------------- @@ -30,9 +31,7 @@ data IP = IPv4 { ipv4 :: IPv4 } | IPv6 { ipv6 :: IPv6 } -#ifdef GENERICS - deriving (Generic) -#endif + deriving (Data,Generic,Typeable) {-| Equality over IP addresses. Correctly compare IPv4 and IPv4-embedded-in-IPv6 addresses. @@ -85,11 +84,7 @@ 192.0.2.1 -} newtype IPv4 = IP4 IPv4Addr -#ifdef GENERICS - deriving (Eq, Ord, Bounded, Generic) -#else - deriving (Eq, Ord, Bounded) -#endif + deriving (Eq, Ord, Bounded, Data, Generic, Typeable) {-| The abstract data type to express an IPv6 address. @@ -111,11 +106,7 @@ ::1 -} newtype IPv6 = IP6 IPv6Addr -#ifdef GENERICS - deriving (Eq, Ord, Bounded, Generic) -#else - deriving (Eq, Ord, Bounded) -#endif + deriving (Eq, Ord, Bounded, Data, Generic, Typeable) ---------------------------------------------------------------- @@ -168,6 +159,34 @@ enumFromThen ip ip' = fmap integerToIP6 [ip6ToInteger ip, ip6ToInteger ip' ..] enumFromThenTo ip inc fin = fmap integerToIP6 [ip6ToInteger ip, ip6ToInteger inc .. ip6ToInteger fin] +instance Enum IP where + fromEnum (IPv4 ip) = fromEnum ip + fromEnum (IPv6 ip) = fromEnum ip + + -- Because Int cannot hold an IPv6 anyway + toEnum = IPv4 . toEnum + + succ (IPv4 ip) = IPv4 $ succ ip + succ (IPv6 ip) = IPv6 $ succ ip + + pred (IPv4 ip) = IPv4 $ pred ip + pred (IPv6 ip) = IPv6 $ pred ip + + enumFrom (IPv4 ip) = fmap IPv4 $ enumFrom ip + enumFrom (IPv6 ip) = fmap IPv6 $ enumFrom ip + + enumFromTo (IPv4 ip) (IPv4 ip') = fmap IPv4 $ enumFromTo ip ip' + enumFromTo (IPv6 ip) (IPv6 ip') = fmap IPv6 $ enumFromTo ip ip' + enumFromTo _ _ = error "enumFromTo: Incompatible IP families" + + enumFromThen (IPv4 ip) (IPv4 ip') = fmap IPv4 $ enumFromThen ip ip' + enumFromThen (IPv6 ip) (IPv6 ip') = fmap IPv6 $ enumFromThen ip ip' + enumFromThen _ _ = error "enumFromThen: Incompatible IP families" + + enumFromThenTo (IPv4 ip) (IPv4 inc) (IPv4 fin) = fmap IPv4 $ enumFromThenTo ip inc fin + enumFromThenTo (IPv6 ip) (IPv6 inc) (IPv6 fin) = fmap IPv6 $ enumFromThenTo ip inc fin + enumFromThenTo _ _ _ = error "enumFromThenTo: Incompatible IP families" + ip6ToInteger :: IPv6 -> Integer ip6ToInteger (IP6 (a,b,c,d)) = let a' = word32ToInteger a `shift` 96 b' = word32ToInteger b `shift` 64 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/iproute-1.5.0/Data/IP/Range.hs new/iproute-1.7.0/Data/IP/Range.hs --- old/iproute-1.5.0/Data/IP/Range.hs 2015-07-06 05:25:25.000000000 +0200 +++ new/iproute-1.7.0/Data/IP/Range.hs 2015-09-14 09:15:28.000000000 +0200 @@ -1,16 +1,17 @@ -{-# LANGUAGE FlexibleInstances #-} -{-# LANGUAGE CPP #-} +{-# LANGUAGE DeriveDataTypeable #-} +{-# LANGUAGE DeriveGeneric #-} +{-# LANGUAGE FlexibleInstances #-} module Data.IP.Range where import Control.Monad import Data.Bits +import Data.Data (Data) import Data.IP.Addr import Data.IP.Mask import Data.String +import Data.Typeable (Typeable) import Text.Appar.String -#ifdef GENERICS import GHC.Generics -#endif ---------------------------------------------------------------- @@ -27,11 +28,7 @@ data IPRange = IPv4Range { ipv4range :: AddrRange IPv4 } | IPv6Range { ipv6range :: AddrRange IPv6 } -#ifdef GENERICS - deriving (Eq, Generic) -#else - deriving (Eq) -#endif + deriving (Eq, Ord, Data, Generic, Typeable) ---------------------------------------------------------------- -- @@ -60,11 +57,7 @@ -- |The 'mlen' function returns a mask length from 'AddrRange'. , mlen :: {-# UNPACK #-} !Int } -#ifdef GENERICS - deriving (Eq, Ord, Generic) -#else - deriving (Eq, Ord) -#endif + deriving (Eq, Ord, Data, Generic, Typeable) ---------------------------------------------------------------- -- diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/iproute-1.5.0/iproute.cabal new/iproute-1.7.0/iproute.cabal --- old/iproute-1.5.0/iproute.cabal 2015-07-06 05:25:25.000000000 +0200 +++ new/iproute-1.7.0/iproute.cabal 2015-09-14 09:15:28.000000000 +0200 @@ -1,5 +1,5 @@ Name: iproute -Version: 1.5.0 +Version: 1.7.0 Author: Kazu Yamamoto <k...@iij.ad.jp> Maintainer: Kazu Yamamoto <k...@iij.ad.jp> License: BSD3 @@ -26,26 +26,19 @@ Data.IP.Op Data.IP.Range Data.IP.RouteTable.Internal - Build-Depends: base >= 4 && < 5 + Build-Depends: base >= 4.6 && < 5 , appar , byteorder , containers , network - - if impl(ghc >= 7.2.1) - cpp-options: -DGENERICS - default-extensions: DeriveGeneric - if impl(ghc >= 7.2.1) && impl(ghc < 7.6.1) - build-depends: ghc-prim >= 0.2 - Test-Suite doctest Type: exitcode-stdio-1.0 Default-Language: Haskell2010 HS-Source-Dirs: test Ghc-Options: -threaded -Wall Main-Is: doctests.hs - Build-Depends: base + Build-Depends: base >= 4.6 && < 5 , doctest >= 0.9.3 Test-Suite spec @@ -56,7 +49,7 @@ Main-Is: Spec.hs Other-Modules: RouteTableSpec , IPSpec - Build-Depends: base + Build-Depends: base >= 4.6 && < 5 , hspec , QuickCheck , appar