Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package ghc-hackage-security for
openSUSE:Factory checked in at 2023-12-28 23:03:29
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/ghc-hackage-security (Old)
and /work/SRC/openSUSE:Factory/.ghc-hackage-security.new.28375 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "ghc-hackage-security"
Thu Dec 28 23:03:29 2023 rev:34 rq:1135330 version:0.6.2.4
Changes:
--------
---
/work/SRC/openSUSE:Factory/ghc-hackage-security/ghc-hackage-security.changes
2023-10-18 21:26:06.985584432 +0200
+++
/work/SRC/openSUSE:Factory/.ghc-hackage-security.new.28375/ghc-hackage-security.changes
2023-12-28 23:05:04.870375696 +0100
@@ -1,0 +2,12 @@
+Wed Dec 20 13:48:30 UTC 2023 - Peter Simons <[email protected]>
+
+- Update hackage-security to version 0.6.2.4.
+ 0.6.2.4
+ -------
+
+ * Allow `tar-0.6`
+ * Drop support for GHC < 7.8 in favor of `PatternSynonyms`
+ * Drop flags `base48`, `mtl21`, `old-directory` and support for GHC 7.8,
`mtl < 2.2` and `directory < 1.2`
+ * Tested with GHC 7.10 - 9.8
+
+-------------------------------------------------------------------
Old:
----
hackage-security-0.6.2.3.tar.gz
hackage-security.cabal
New:
----
hackage-security-0.6.2.4.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ ghc-hackage-security.spec ++++++
--- /var/tmp/diff_new_pack.YTyILT/_old 2023-12-28 23:05:05.378394262 +0100
+++ /var/tmp/diff_new_pack.YTyILT/_new 2023-12-28 23:05:05.382394409 +0100
@@ -20,13 +20,12 @@
%global pkgver %{pkg_name}-%{version}
%bcond_with tests
Name: ghc-%{pkg_name}
-Version: 0.6.2.3
+Version: 0.6.2.4
Release: 0
Summary: Hackage security library
License: BSD-3-Clause
URL: https://hackage.haskell.org/package/%{pkg_name}
Source0:
https://hackage.haskell.org/package/%{pkg_name}-%{version}/%{pkg_name}-%{version}.tar.gz
-Source1:
https://hackage.haskell.org/package/%{pkg_name}-%{version}/revision/8.cabal#/%{pkg_name}.cabal
BuildRequires: ghc-Cabal-devel
BuildRequires: ghc-Cabal-prof
BuildRequires: ghc-Cabal-syntax-devel
@@ -140,7 +139,6 @@
%prep
%autosetup -n %{pkg_name}-%{version}
-cp -p %{SOURCE1} %{pkg_name}.cabal
%build
%ghc_lib_build
++++++ hackage-security-0.6.2.3.tar.gz -> hackage-security-0.6.2.4.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/hackage-security-0.6.2.3/ChangeLog.md
new/hackage-security-0.6.2.4/ChangeLog.md
--- old/hackage-security-0.6.2.3/ChangeLog.md 2001-09-09 03:46:40.000000000
+0200
+++ new/hackage-security-0.6.2.4/ChangeLog.md 2001-09-09 03:46:40.000000000
+0200
@@ -1,5 +1,13 @@
See also http://pvp.haskell.org/faq
+0.6.2.4
+-------
+
+* Allow `tar-0.6`
+* Drop support for GHC < 7.8 in favor of `PatternSynonyms`
+* Drop flags `base48`, `mtl21`, `old-directory` and support for GHC 7.8, `mtl
< 2.2` and `directory < 1.2`
+* Tested with GHC 7.10 - 9.8
+
0.6.2.3
-------
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/hackage-security-0.6.2.3/hackage-security.cabal
new/hackage-security-0.6.2.4/hackage-security.cabal
--- old/hackage-security-0.6.2.3/hackage-security.cabal 2001-09-09
03:46:40.000000000 +0200
+++ new/hackage-security-0.6.2.4/hackage-security.cabal 2001-09-09
03:46:40.000000000 +0200
@@ -1,6 +1,6 @@
cabal-version: 1.12
name: hackage-security
-version: 0.6.2.3
+version: 0.6.2.4
synopsis: Hackage security library
description: The hackage security library provides both server and
@@ -31,9 +31,18 @@
build-type: Simple
tested-with:
- GHC==9.4.1, GHC==9.2.4, GHC==9.0.2,
- GHC==8.10.7, GHC==8.8.4, GHC==8.6.5, GHC==8.4.4, GHC==8.2.2, GHC==8.0.2,
- GHC==7.10.3, GHC==7.8.4, GHC==7.6.3, GHC==7.4.2
+ GHC == 9.8.1
+ GHC == 9.6.3
+ GHC == 9.4.8
+ GHC == 9.2.8
+ GHC == 9.0.2
+ GHC == 8.10.7
+ GHC == 8.8.4
+ GHC == 8.6.5
+ GHC == 8.4.4
+ GHC == 8.2.2
+ GHC == 8.0.2
+ GHC == 7.10.3
extra-source-files:
ChangeLog.md
@@ -42,10 +51,6 @@
type: git
location: https://github.com/haskell/hackage-security.git
-flag base48
- description: Are we using @base@ 4.8 or later?
- manual: False
-
flag use-network-uri
description: Are we using @network-uri@?
manual: False
@@ -55,16 +60,6 @@
manual: False
default: False
-flag old-directory
- description: Use @directory@ < 1.2 and @old-time@
- manual: False
- default: False
-
-flag mtl21
- description: Use @mtl@ < 2.2 and @mtl-compat@
- manual: False
- default: False
-
flag lukko
description: Use @lukko@ for file-locking, otherwise use @GHC.IO.Handle.Lock@
manual: True
@@ -117,36 +112,28 @@
Hackage.Security.Util.TypedEmbedded
MyPrelude
-- We support ghc 7.4 (bundled with Cabal 1.14) and up
- build-depends: base >= 4.5 && < 4.18,
+ build-depends: base >= 4.8 && < 4.20,
+ -- PatternSynonyms are only available since GHC 7.8
(base 4.7)
base16-bytestring >= 0.1.1 && < 1.1,
base64-bytestring >= 1.0 && < 1.3,
- bytestring >= 0.9 && < 0.12,
- containers >= 0.4 && < 0.7,
+ bytestring >= 0.9 && < 0.13,
+ containers >= 0.4 && < 0.8,
+ cryptohash-sha256 >= 0.11 && < 0.12,
+ directory >= 1.2 && < 1.4,
ed25519 >= 0.0 && < 0.1,
filepath >= 1.2 && < 1.5,
+ mtl >= 2.2 && < 2.4,
parsec >= 3.1 && < 3.2,
pretty >= 1.0 && < 1.2,
- cryptohash-sha256 >= 0.11 && < 0.12,
-- 0.4.2 introduces TarIndex, 0.4.4 introduces more
-- functionality, 0.5.0 changes type of serialise
- tar >= 0.5 && < 0.6,
- template-haskell >= 2.7 && < 2.20,
+ tar >= 0.5 && < 0.7,
+ template-haskell >= 2.7 && < 2.22,
time >= 1.2 && < 1.13,
transformers >= 0.3 && < 0.7,
zlib >= 0.5 && < 0.7,
-- whatever versions are bundled with ghc:
ghc-prim
- if flag(old-directory)
- build-depends: directory >= 1.1.0.2 && < 1.2,
- old-time >= 1 && < 1.2
- else
- build-depends: directory >= 1.2 && < 1.4
-
- if flag(mtl21)
- build-depends: mtl >= 2.1 && < 2.2,
- mtl-compat >= 0.2 && < 0.3
- else
- build-depends: mtl >= 2.2 && < 2.4
if flag(lukko)
build-depends: lukko >= 0.1 && < 0.2
@@ -154,7 +141,7 @@
build-depends: base >= 4.10
if flag(Cabal-syntax) && impl(ghc >= 8.2)
- build-depends: Cabal-syntax >= 3.7 && < 3.10
+ build-depends: Cabal-syntax >= 3.7 && < 3.12
else
build-depends: Cabal >= 1.14 && < 1.26
|| >= 2.0 && < 2.6
@@ -175,6 +162,7 @@
NamedFieldPuns
NoImplicitPrelude
NoMonomorphismRestriction
+ PatternSynonyms
RankNTypes
RecordWildCards
ScopedTypeVariables
@@ -183,10 +171,14 @@
TypeFamilies
TypeOperators
ViewPatterns
- other-extensions: BangPatterns
+ other-extensions:
+ AllowAmbiguousTypes
+ BangPatterns
CPP
OverlappingInstances
PackageImports
+ RoleAnnotations
+ StaticPointers
UndecidableInstances
-- use the new stage1/cross-compile-friendly DeriveLift extension for GHC
8.0+
@@ -197,11 +189,6 @@
ghc-options: -Wall
- if flag(base48)
- build-depends: base >= 4.8
- else
- build-depends: base < 4.8, old-locale == 1.0.*
-
-- The URI type got split out off the network package after version 2.5, and
-- moved to a separate network-uri package. Since we don't need the rest of
-- network here, it would suffice to rely only on network-uri:
@@ -241,13 +228,6 @@
else
build-depends: network >= 2.5 && < 2.6
- if impl(ghc >= 7.8)
- other-extensions: RoleAnnotations
-
- if impl(ghc >= 7.10)
- other-extensions: AllowAmbiguousTypes
- StaticPointers
-
test-suite TestSuite
type: exitcode-stdio-1.0
main-is: TestSuite.hs
@@ -271,8 +251,8 @@
zlib
if flag(Cabal-syntax) && impl(ghc >= 8.2)
- build-depends: Cabal >= 3.7 && < 3.10,
- Cabal-syntax >= 3.7 && < 3.10
+ build-depends: Cabal >= 3.7 && < 3.12,
+ Cabal-syntax >= 3.7 && < 3.12
else
build-depends: Cabal >= 1.14 && < 1.26
|| >= 2.0 && < 2.6
@@ -280,11 +260,11 @@
Cabal-syntax < 3.7
-- dependencies exclusive to test-suite
- build-depends: tasty >= 1.2 && < 1.5,
+ build-depends: tasty >= 1.2 && < 1.6,
tasty-hunit == 0.10.*,
tasty-quickcheck == 0.10.*,
QuickCheck >= 2.11 && <2.15,
- aeson == 1.4.* || == 1.5.* || == 2.0.* || ==
2.1.*,
+ aeson >= 1.4 && < 1.6 || >= 2.0 && < 2.3,
vector >= 0.12 && <0.14,
unordered-containers >=0.2.8.0 && <0.3,
temporary >= 1.2 && < 1.4
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/hackage-security-0.6.2.3/src/Hackage/Security/Client/Repository/Cache.hs
new/hackage-security-0.6.2.4/src/Hackage/Security/Client/Repository/Cache.hs
---
old/hackage-security-0.6.2.3/src/Hackage/Security/Client/Repository/Cache.hs
2001-09-09 03:46:40.000000000 +0200
+++
new/hackage-security-0.6.2.4/src/Hackage/Security/Client/Repository/Cache.hs
2001-09-09 03:46:40.000000000 +0200
@@ -20,7 +20,7 @@
import Control.Monad
import Control.Monad.IO.Class
import Data.Maybe
-import Codec.Archive.Tar (Entries(..))
+import Codec.Archive.Tar (Entries, pattern Done, pattern Fail, pattern Next)
import Codec.Archive.Tar.Index (TarIndex, IndexBuilder, TarEntryOffset)
import qualified Codec.Archive.Tar as Tar
import qualified Codec.Archive.Tar.Index as TarIndex
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/hackage-security-0.6.2.3/src/Hackage/Security/Trusted/TCB.hs
new/hackage-security-0.6.2.4/src/Hackage/Security/Trusted/TCB.hs
--- old/hackage-security-0.6.2.3/src/Hackage/Security/Trusted/TCB.hs
2001-09-09 03:46:40.000000000 +0200
+++ new/hackage-security-0.6.2.4/src/Hackage/Security/Trusted/TCB.hs
2001-09-09 03:46:40.000000000 +0200
@@ -167,7 +167,10 @@
-- | Errors thrown during role validation
data VerificationError =
-- | Not enough signatures signed with the appropriate keys
- VerificationErrorSignatures TargetPath
+ VerificationErrorSignatures TargetPath -- what were we verifying?
+ Integer -- threshold
+ [KeyId] -- trusted keys
+ [KeyId] -- found signing keys
-- | The file is expired
| VerificationErrorExpired TargetPath
@@ -218,9 +221,16 @@
instance Exception RootUpdated
#endif
+indentedLines :: [String] -> String
+indentedLines = unlines . map (" " ++)
+
instance Pretty VerificationError where
- pretty (VerificationErrorSignatures file) =
- pretty file ++ " does not have enough signatures signed with the
appropriate keys"
+ pretty (VerificationErrorSignatures file threshold trusted sigs) =
+ pretty file ++ " does not have enough signatures signed with the
appropriate keys\n"
+ ++ "Expected at least " ++ show threshold ++ " signatures from:\n"
+ ++ indentedLines (map keyIdString trusted)
+ ++ "Found signatures from:\n"
+ ++ indentedLines (map keyIdString sigs)
pretty (VerificationErrorExpired file) =
pretty file ++ " is expired"
pretty (VerificationErrorVersion file) =
@@ -235,7 +245,7 @@
"Could not deserialize " ++ pretty file ++ ": " ++ pretty err
pretty (VerificationErrorLoop es) =
"Verification loop. Errors in order:\n"
- ++ unlines (map ((" " ++) . either pretty pretty) es)
+ ++ indentedLines (map (either pretty pretty) es)
instance Pretty RootUpdated where
pretty RootUpdated = "Root information updated"
@@ -291,8 +301,9 @@
-- was invalid we would already have thrown an error constructing Signed.
-- (Similarly, if two signatures were made by the same key, the FromJSON
-- instance for Signatures would have thrown an error.)
- unless (length (filter isRoleSpecKey sigs) >= fromIntegral threshold) $
- throwError $ VerificationErrorSignatures targetPath
+ let nSigs = length (filter isRoleSpecKey sigs)
+ unless (nSigs >= fromIntegral threshold) $
+ throwError $ VerificationErrorSignatures targetPath (fromIntegral
threshold) trustedKeys signingKeys
-- Everything is A-OK!
return $ SignaturesVerified signed
@@ -300,6 +311,10 @@
isRoleSpecKey :: Signature -> Bool
isRoleSpecKey Signature{..} = signatureKey `elem` roleSpecKeys
+ trustedKeys, signingKeys :: [KeyId]
+ trustedKeys = map someKeyId roleSpecKeys
+ signingKeys = map (someKeyId . signatureKey) sigs
+
-- | Variation on 'verifyRole' that uses key IDs rather than keys
--
-- This is used during the bootstrap process.
@@ -314,9 +329,12 @@
(KeyThreshold threshold)
targetPath
Signed{signatures = Signatures sigs, ..} =
- if length (filter isTrustedKey sigs) >= fromIntegral threshold
+ if length (filter isTrustedKey signingKeys) >= fromIntegral threshold
then Right $ SignaturesVerified signed
- else Left $ VerificationErrorSignatures targetPath
+ else Left $ VerificationErrorSignatures targetPath (fromIntegral
threshold) fingerprints signingKeys
where
- isTrustedKey :: Signature -> Bool
- isTrustedKey Signature{..} = someKeyId signatureKey `elem` fingerprints
+ signingKeys :: [KeyId]
+ signingKeys = map (someKeyId . signatureKey) sigs
+
+ isTrustedKey :: KeyId -> Bool
+ isTrustedKey key = key `elem` fingerprints