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-06-28 21:06:07
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/ghc-hackage-security (Old)
and /work/SRC/openSUSE:Factory/.ghc-hackage-security.new.11887 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "ghc-hackage-security"
Sun Jun 28 21:06:07 2026 rev:48 rq:1362005 version:0.6.3.3
Changes:
--------
---
/work/SRC/openSUSE:Factory/ghc-hackage-security/ghc-hackage-security.changes
2026-06-10 16:02:14.547317453 +0200
+++
/work/SRC/openSUSE:Factory/.ghc-hackage-security.new.11887/ghc-hackage-security.changes
2026-06-28 21:06:47.242586149 +0200
@@ -1,0 +2,13 @@
+Tue Jun 23 15:23:13 UTC 2026 - Peter Simons <[email protected]>
+
+- Update hackage-security to version 0.6.3.3.
+ 0.6.3.3
+ -------
+
+ * Remove `lukko` package flag. Now we unconditionally use
`GHC.IO.Handle.Lock`
+ instead of the [`lukko`
package](https://hackage.haskell.org/package/lukko).
+ * Allow `Cabal-3.18` and `Cabal-syntax-3.18`.
+ * Allow building against newer releases of other dependencies.
+ * Tested with GHC 8.4 - 9.14.
+
+-------------------------------------------------------------------
Old:
----
hackage-security-0.6.3.2.tar.gz
hackage-security.cabal
New:
----
hackage-security-0.6.3.3.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ ghc-hackage-security.spec ++++++
--- /var/tmp/diff_new_pack.LlHNRG/_old 2026-06-28 21:06:49.086648285 +0200
+++ /var/tmp/diff_new_pack.LlHNRG/_new 2026-06-28 21:06:49.110649094 +0200
@@ -20,13 +20,12 @@
%global pkgver %{pkg_name}-%{version}
%bcond_with tests
Name: ghc-%{pkg_name}
-Version: 0.6.3.2
+Version: 0.6.3.3
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/2.cabal#/%{pkg_name}.cabal
BuildRequires: ghc-Cabal-devel
BuildRequires: ghc-Cabal-prof
BuildRequires: ghc-Cabal-syntax-devel
@@ -138,7 +137,6 @@
%prep
%autosetup -n %{pkg_name}-%{version}
-cp -p %{SOURCE1} %{pkg_name}.cabal
%build
%ghc_lib_build
++++++ hackage-security-0.6.3.2.tar.gz -> hackage-security-0.6.3.3.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/hackage-security-0.6.3.2/ChangeLog.md
new/hackage-security-0.6.3.3/ChangeLog.md
--- old/hackage-security-0.6.3.2/ChangeLog.md 2001-09-09 03:46:40.000000000
+0200
+++ new/hackage-security-0.6.3.3/ChangeLog.md 2001-09-09 03:46:40.000000000
+0200
@@ -1,5 +1,14 @@
See also http://pvp.haskell.org/faq
+0.6.3.3
+-------
+
+* Remove `lukko` package flag. Now we unconditionally use `GHC.IO.Handle.Lock`
+ instead of the [`lukko` package](https://hackage.haskell.org/package/lukko).
+* Allow `Cabal-3.18` and `Cabal-syntax-3.18`.
+* Allow building against newer releases of other dependencies.
+* Tested with GHC 8.4 - 9.14.
+
0.6.3.2
-------
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/hackage-security-0.6.3.2/hackage-security.cabal
new/hackage-security-0.6.3.3/hackage-security.cabal
--- old/hackage-security-0.6.3.2/hackage-security.cabal 2001-09-09
03:46:40.000000000 +0200
+++ new/hackage-security-0.6.3.3/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.2
+version: 0.6.3.3
synopsis: Hackage security library
description: The hackage security library provides both server and
@@ -32,8 +32,8 @@
tested-with:
GHC == 9.14.1
- GHC == 9.12.2
- GHC == 9.10.2
+ GHC == 9.12.4
+ GHC == 9.10.3
GHC == 9.8.4
GHC == 9.6.7
GHC == 9.4.8
@@ -56,11 +56,6 @@
manual: False
default: False
-flag lukko
- description: Use @lukko@ for file-locking, otherwise use @GHC.IO.Handle.Lock@
- manual: False
- default: False
-
library
-- Most functionality is exported through the top-level entry points .Client
-- and .Server; the other exported modules are intended for qualified
imports.
@@ -131,13 +126,8 @@
-- whatever versions are bundled with ghc:
ghc-prim >= 0.5.2 && < 0.14
- if flag(lukko)
- build-depends: lukko >= 0.1 && < 0.2
- else
- build-depends: base >= 4.11
-
if flag(Cabal-syntax)
- build-depends: Cabal-syntax >= 3.7 && < 3.18
+ build-depends: Cabal-syntax >= 3.7 && < 3.20
else
build-depends: Cabal >= 2.2.0.1 && < 2.6
|| >= 3.0 && < 3.7,
@@ -202,8 +192,8 @@
zlib
if flag(Cabal-syntax)
- build-depends: Cabal >= 3.7 && < 3.18,
- Cabal-syntax >= 3.7 && < 3.18
+ build-depends: Cabal >= 3.7 && < 3.20,
+ Cabal-syntax >= 3.7 && < 3.20
else
build-depends: Cabal >= 2.2.0.1 && < 2.6
|| >= 3.0 && < 3.7,
@@ -214,7 +204,7 @@
-- tasty-1.1.0.4 is the version in Stackage LTS 12.26
(GHC 8.4)
tasty-hunit == 0.10.*,
tasty-quickcheck >= 0.10 && < 1,
- QuickCheck >= 2.11 && < 2.17,
+ QuickCheck >= 2.11 && < 2.19,
aeson >= 1.4 && < 1.6 || >= 2.0 &&
< 2.3,
vector >= 0.12 && < 0.14,
unordered-containers >= 0.2.8.0 && < 0.3,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/hackage-security-0.6.3.2/src/Hackage/Security/Util/IO.hs
new/hackage-security-0.6.3.3/src/Hackage/Security/Util/IO.hs
--- old/hackage-security-0.6.3.2/src/Hackage/Security/Util/IO.hs
2001-09-09 03:46:40.000000000 +0200
+++ new/hackage-security-0.6.3.3/src/Hackage/Security/Util/IO.hs
2001-09-09 03:46:40.000000000 +0200
@@ -1,4 +1,3 @@
-{-# LANGUAGE CPP #-}
module Hackage.Security.Util.IO (
-- * Miscelleneous
getFileSize
@@ -18,14 +17,7 @@
import Hackage.Security.Util.Path
-#ifdef MIN_VERSION_lukko
-import Lukko (FD, fileLockingSupported, fdOpen, fdClose, fdLock, fdUnlock,
LockMode(ExclusiveLock))
-#else
-import GHC.IO.Handle.Lock (hLock, LockMode(ExclusiveLock),
FileLockingNotSupported)
-#if MIN_VERSION_base(4,11,0)
-import GHC.IO.Handle.Lock (hUnlock)
-#endif
-#endif
+import GHC.IO.Handle.Lock (hLock, hUnlock, LockMode(ExclusiveLock),
FileLockingNotSupported)
{-------------------------------------------------------------------------------
Miscelleneous
@@ -85,33 +77,6 @@
logger (WithDirLockEventPost lock)
return h
-#ifdef MIN_VERSION_lukko
- takeLock :: IO FD
- takeLock
- | fileLockingSupported = do
- h <- fdOpen lock'
- wrapLog (fdLock h ExclusiveLock `onException` fdClose h)
- return h
- | otherwise = wrapLog takeDirLock
- where
- takeDirLock :: IO FD
- takeDirLock = handle onCreateDirError $ do
- createDirectory lock
- return (undefined :: FD)
-
- onCreateDirError :: IOError -> IO FD
- onCreateDirError ioe
- | isAlreadyExistsError ioe = threadDelay (1*1000*1000) >> takeDirLock
- | otherwise = fail (me++"error creating directory lock: "++show ioe)
-
- releaseLock h
- | fileLockingSupported = do
- fdUnlock h
- fdClose h
- | otherwise =
- removeDirectory lock
-
-#else
takeLock = do
h <- openFile lock' ReadWriteMode
wrapLog $ handle (fallbackToDirLock h) $ do
@@ -142,12 +107,9 @@
(me++"cannot remove lock file before directory lock fallback")
releaseLock (Just h) =
-#if MIN_VERSION_base(4,11,0)
hUnlock h >>
-#endif
hClose h
releaseLock Nothing = removeDirectory lock
-#endif
{-------------------------------------------------------------------------------
Debugging
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/hackage-security-0.6.3.2/src/Hackage/Security/Util/Path.hs
new/hackage-security-0.6.3.3/src/Hackage/Security/Util/Path.hs
--- old/hackage-security-0.6.3.2/src/Hackage/Security/Util/Path.hs
2001-09-09 03:46:40.000000000 +0200
+++ new/hackage-security-0.6.3.3/src/Hackage/Security/Util/Path.hs
2001-09-09 03:46:40.000000000 +0200
@@ -71,6 +71,9 @@
, fromURIPath
, uriPath
, modifyUriPath
+ -- * Internals
+ , mkPathNative
+ , unPathNative
-- * Re-exports
, IOMode(..)
, BufferMode(..)
@@ -118,10 +121,17 @@
deriving (Show, Eq, Ord)
mkPathNative :: FilePath -> Path a
-mkPathNative = Path . FP.Posix.joinPath . FP.Native.splitDirectories
+mkPathNative = Path . canonicalizePathSeparator
unPathNative :: Path a -> FilePath
-unPathNative (Path fp) = FP.Native.joinPath . FP.Posix.splitDirectories $ fp
+unPathNative (Path fp) = fp
+
+canonicalizePathSeparator :: FilePath -> FilePath
+canonicalizePathSeparator = map (replaceSeparator)
+ where
+ replaceSeparator c
+ | FP.Native.isPathSeparator c = '/'
+ | otherwise = c
mkPathPosix :: FilePath -> Path a
mkPathPosix = Path
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/hackage-security-0.6.3.2/tests/TestSuite.hs
new/hackage-security-0.6.3.3/tests/TestSuite.hs
--- old/hackage-security-0.6.3.2/tests/TestSuite.hs 2001-09-09
03:46:40.000000000 +0200
+++ new/hackage-security-0.6.3.3/tests/TestSuite.hs 2001-09-09
03:46:40.000000000 +0200
@@ -9,7 +9,7 @@
import Network.URI ( URI, parseURI )
import Test.Tasty ( defaultMain, testGroup, TestTree )
import Test.Tasty.HUnit ( testCase, (@?=), assertEqual, assertFailure,
Assertion )
-import Test.Tasty.QuickCheck ( testProperty )
+import Test.Tasty.QuickCheck ( testProperty, Property, (===), property )
import System.IO.Temp (withSystemTempDirectory)
import qualified Codec.Archive.Tar.Entry as Tar
import qualified Data.ByteString.Lazy.Char8 as BS
@@ -72,6 +72,9 @@
, testProperty "prop_canonical_pretty" JSON.prop_canonical_pretty
, testProperty "prop_aeson_canonical" JSON.prop_aeson_canonical
]
+ , testGroup "Path" [
+ testProperty "Hackage.Security.Util.Path.mkPathNative"
prop_mkPathNative
+ ]
]
{-------------------------------------------------------------------------------
@@ -547,3 +550,16 @@
mkPackageName :: String -> PackageName
mkPackageName = PackageName
#endif
+
+{-------------------------------------------------------------------------------
+ Path tests
+-------------------------------------------------------------------------------}
+
+-- | Disclaimer: This test uses the vanilla generator for @type 'FilePath' =
String@
+-- and may thus been ineffective in establishing the desired round-trip
property for
+-- 'mkPathNative' and 'unPathNative' with sufficient probability.
+--
+-- Discussion at
<https://github.com/haskell/hackage-security/pull/336#discussion_r2750538855>
+
+prop_mkPathNative :: Property
+prop_mkPathNative = property $ \(fp :: FilePath) -> (mkPathNative .
unPathNative . mkPathNative) fp === mkPathNative fp