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 2026-11-06 19:48:55
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/ghc-hackage-security (Old)
and /work/SRC/openSUSE:Factory/.ghc-hackage-security.new.3759290 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "ghc-hackage-security"
Fri Nov 6 19:48:55 2026 rev:49 rq:1395534 version:0.6.4.0
Changes:
--------
---
/work/SRC/openSUSE:Factory/ghc-hackage-security/ghc-hackage-security.changes
2026-06-28 21:06:47.242586149 +0200
+++
/work/SRC/openSUSE:Factory/.ghc-hackage-security.new.3759290/ghc-hackage-security.changes
2026-11-06 19:55:28.232886182 +0100
@@ -1,0 +2,11 @@
+Mon Aug 3 21:28:45 UTC 2026 - Peter Simons <[email protected]>
+
+- Update hackage-security to version 0.6.4.0.
+ 0.6.4.0
+ -------
+
+ * Make hackageIndexLayout faster
+ * Stop using lukko
+ * Fix bug in unPathNative
+
+-------------------------------------------------------------------
Old:
----
hackage-security-0.6.3.3.tar.gz
New:
----
hackage-security-0.6.4.0.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ ghc-hackage-security.spec ++++++
--- /var/tmp/diff_new_pack.CQ5ZT3/_old 2026-11-06 19:55:29.384934419 +0100
+++ /var/tmp/diff_new_pack.CQ5ZT3/_new 2026-11-06 19:55:29.386934503 +0100
@@ -20,7 +20,7 @@
%global pkgver %{pkg_name}-%{version}
%bcond_with tests
Name: ghc-%{pkg_name}
-Version: 0.6.3.3
+Version: 0.6.4.0
Release: 0
Summary: Hackage security library
License: BSD-3-Clause
++++++ hackage-security-0.6.3.3.tar.gz -> hackage-security-0.6.4.0.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/hackage-security-0.6.3.3/ChangeLog.md
new/hackage-security-0.6.4.0/ChangeLog.md
--- old/hackage-security-0.6.3.3/ChangeLog.md 2001-09-09 03:46:40.000000000
+0200
+++ new/hackage-security-0.6.4.0/ChangeLog.md 2001-09-09 03:46:40.000000000
+0200
@@ -1,5 +1,12 @@
See also http://pvp.haskell.org/faq
+0.6.4.0
+-------
+
+* Make hackageIndexLayout faster
+* Stop using lukko
+* Fix bug in unPathNative
+
0.6.3.3
-------
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/hackage-security-0.6.3.3/hackage-security.cabal
new/hackage-security-0.6.4.0/hackage-security.cabal
--- old/hackage-security-0.6.3.3/hackage-security.cabal 2001-09-09
03:46:40.000000000 +0200
+++ new/hackage-security-0.6.4.0/hackage-security.cabal 2001-09-09
03:46:40.000000000 +0200
@@ -1,6 +1,6 @@
cabal-version: 1.18
name: hackage-security
-version: 0.6.3.3
+version: 0.6.4.0
synopsis: Hackage security library
description: The hackage security library provides both server and
@@ -205,7 +205,7 @@
tasty-hunit == 0.10.*,
tasty-quickcheck >= 0.10 && < 1,
QuickCheck >= 2.11 && < 2.19,
- aeson >= 1.4 && < 1.6 || >= 2.0 &&
< 2.3,
+ aeson >= 1.4 && < 1.6 || >= 2.0 &&
< 2.4,
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.3.3/src/Hackage/Security/TUF/Layout/Index.hs
new/hackage-security-0.6.4.0/src/Hackage/Security/TUF/Layout/Index.hs
--- old/hackage-security-0.6.3.3/src/Hackage/Security/TUF/Layout/Index.hs
2001-09-09 03:46:40.000000000 +0200
+++ new/hackage-security-0.6.4.0/src/Hackage/Security/TUF/Layout/Index.hs
2001-09-09 03:46:40.000000000 +0200
@@ -10,9 +10,12 @@
) where
import Prelude
+import Data.Char (ord)
import Data.Kind (Type)
import Distribution.Package
import Distribution.Text
+import Distribution.Types.Version (mkVersion)
+import System.FilePath.Posix (isPathSeparator)
import Hackage.Security.TUF.Paths
import Hackage.Security.TUF.Signed
@@ -91,17 +94,38 @@
fromFragments :: [String] -> IndexPath
fromFragments = rootPath . joinFragments
+ -- This function is called in a hot loop, take care when modifying it.
+ -- Especially avoid 'splitFragments' / 'splitDirectories' and other
high-level helpers,
+ -- they are very slow.
fromPath :: IndexPath -> Maybe (Some IndexFile)
- fromPath fp = case splitFragments (unrootPath fp) of
- [pkg, version, _file] -> do
- pkgId <- simpleParse (pkg ++ "-" ++ version)
- case takeExtension fp of
- ".cabal" -> return $ Some $ IndexPkgCabal pkgId
- ".json" -> return $ Some $ IndexPkgMetadata pkgId
- _otherwise -> Nothing
- [pkg, "preferred-versions"] ->
- Some . IndexPkgPrefs <$> simpleParse pkg
- _otherwise -> Nothing
+ fromPath fp = case break isPathSeparator (toUnrootedFilePath (unrootPath
fp)) of
+ (pkg, "/preferred-versions") ->
+ return $ Some $ IndexPkgPrefs $ mkPackageName pkg
+ (pkg, rest) -> case break isPathSeparator (drop 1 rest) of
+ (_, []) -> Nothing
+ (version, basename) -> do
+ let pkgName = mkPackageName pkg
+ pkgVersion = mkVersion $ readVersion version
+ pkgId = PackageIdentifier { pkgName, pkgVersion }
+ case reverse basename of
+ -- ".cabal" reversed
+ 'l' : 'a' : 'b' : 'a' : 'c' : '.' : _ ->
+ return $ Some $ IndexPkgCabal pkgId
+ -- ".json" reversed
+ 'n' : 'o' : 's' : 'j' : '.' : _ ->
+ return $ Some $ IndexPkgMetadata pkgId
+ _ -> Nothing
+
+-- Convert "3.12.1.0" to [3,12,1,0].
+-- Copied from hackage-revdeps package.
+readVersion :: String -> [Int]
+readVersion = (\(acc, _mult, rest) -> acc : rest) . foldr go (0, 1, [])
+ where
+ go c (acc, mult, rest)
+ | fromIntegral d < (10 :: Word) = (acc + d * mult, mult * 10, rest)
+ | otherwise = (0, 1, acc : rest)
+ where
+ d = ord c - ord '0'
{-------------------------------------------------------------------------------
Utility