Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package ghc-aeson for openSUSE:Factory 
checked in at 2026-06-10 15:57:35
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/ghc-aeson (Old)
 and      /work/SRC/openSUSE:Factory/.ghc-aeson.new.2375 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "ghc-aeson"

Wed Jun 10 15:57:35 2026 rev:50 rq:1358326 version:2.2.5.0

Changes:
--------
--- /work/SRC/openSUSE:Factory/ghc-aeson/ghc-aeson.changes      2025-07-02 
12:08:39.348598028 +0200
+++ /work/SRC/openSUSE:Factory/.ghc-aeson.new.2375/ghc-aeson.changes    
2026-06-10 15:57:58.012686675 +0200
@@ -1,0 +2,12 @@
+Tue May 12 15:10:27 UTC 2026 - Peter Simons <[email protected]>
+
+- Update aeson to version 2.2.5.0.
+  ### 2.2.5.0
+
+  * Support `semialign-1.4`
+
+  ### 2.2.4.0
+
+  * Check for control characters in text literals everywhere
+
+-------------------------------------------------------------------

Old:
----
  aeson-2.2.3.0.tar.gz
  aeson.cabal

New:
----
  aeson-2.2.5.0.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ ghc-aeson.spec ++++++
--- /var/tmp/diff_new_pack.y10iEt/_old  2026-06-10 15:57:59.212736404 +0200
+++ /var/tmp/diff_new_pack.y10iEt/_new  2026-06-10 15:57:59.212736404 +0200
@@ -1,7 +1,7 @@
 #
 # spec file for package ghc-aeson
 #
-# Copyright (c) 2025 SUSE LLC
+# Copyright (c) 2026 SUSE LLC
 #
 # All modifications and additions to the file contributed by third parties
 # remain the property of their copyright owners, unless otherwise agreed
@@ -20,13 +20,12 @@
 %global pkgver %{pkg_name}-%{version}
 %bcond_with tests
 Name:           ghc-%{pkg_name}
-Version:        2.2.3.0
+Version:        2.2.5.0
 Release:        0
 Summary:        Fast JSON parsing and encoding
 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/4.cabal#/%{pkg_name}.cabal
 BuildRequires:  ghc-Cabal-devel
 BuildRequires:  ghc-OneTuple-devel
 BuildRequires:  ghc-OneTuple-prof
@@ -48,8 +47,6 @@
 BuildRequires:  ghc-dlist-prof
 BuildRequires:  ghc-exceptions-devel
 BuildRequires:  ghc-exceptions-prof
-BuildRequires:  ghc-generically-devel
-BuildRequires:  ghc-generically-prof
 BuildRequires:  ghc-hashable-devel
 BuildRequires:  ghc-hashable-prof
 BuildRequires:  ghc-indexed-traversable-devel
@@ -111,6 +108,8 @@
 BuildRequires:  ghc-filepath-prof
 BuildRequires:  ghc-generic-deriving-devel
 BuildRequires:  ghc-generic-deriving-prof
+BuildRequires:  ghc-generically-devel
+BuildRequires:  ghc-generically-prof
 BuildRequires:  ghc-quickcheck-instances-devel
 BuildRequires:  ghc-quickcheck-instances-prof
 BuildRequires:  ghc-tasty-devel
@@ -159,7 +158,6 @@
 
 %prep
 %autosetup -n %{pkg_name}-%{version}
-cp -p %{SOURCE1} %{pkg_name}.cabal
 
 %build
 %ghc_lib_build

++++++ aeson-2.2.3.0.tar.gz -> aeson-2.2.5.0.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/aeson-2.2.3.0/README.markdown 
new/aeson-2.2.5.0/README.markdown
--- old/aeson-2.2.3.0/README.markdown   2001-09-09 03:46:40.000000000 +0200
+++ new/aeson-2.2.5.0/README.markdown   2001-09-09 03:46:40.000000000 +0200
@@ -14,7 +14,7 @@
 
 Master [git repository](http://github.com/haskell/aeson):
 
-* `git clone git://github.com/haskell/aeson.git`
+* `git clone https://github.com/haskell/aeson.git`
 
 See what's changed in recent (and upcoming) releases:
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/aeson-2.2.3.0/aeson.cabal 
new/aeson-2.2.5.0/aeson.cabal
--- old/aeson-2.2.3.0/aeson.cabal       2001-09-09 03:46:40.000000000 +0200
+++ new/aeson-2.2.5.0/aeson.cabal       2001-09-09 03:46:40.000000000 +0200
@@ -1,6 +1,6 @@
 cabal-version:      2.2
 name:               aeson
-version:            2.2.3.0
+version:            2.2.5.0
 license:            BSD-3-Clause
 license-file:       LICENSE
 category:           Text, Web, JSON
@@ -18,9 +18,11 @@
    || ==9.0.2
    || ==9.2.8
    || ==9.4.8
-   || ==9.6.5
-   || ==9.8.2
-   || ==9.10.1
+   || ==9.6.6
+   || ==9.8.4
+   || ==9.10.3
+   || ==9.12.4
+   || ==9.14.1
 
 synopsis:           Fast JSON parsing and encoding
 homepage:           https://github.com/haskell/aeson
@@ -94,19 +96,20 @@
   build-depends:
     , base              >=4.12.0.0 && <5
     , bytestring        >=0.10.8.2 && <0.13
-    , containers        >=0.6.0.1  && <0.8
+    , containers        >=0.6.0.1  && <0.9
     , deepseq           >=1.4.4.0  && <1.6
     , exceptions        >=0.10.4   && <0.11
-    , ghc-prim          >=0.5.0.0  && <0.12
-    , template-haskell  >=2.14.0.0 && <2.23
+    , template-haskell  >=2.14.0.0 && <2.25
     , text              >=1.2.3.0  && <1.3  || >=2.0 && <2.2
-    , time              >=1.8.0.2  && <1.13
+    , time              >=1.8.0.2  && <1.16
 
   -- Compat
   build-depends:
-    , generically  >=0.1   && <0.2
     , time-compat  >=1.9.6 && <1.10
 
+  if !impl(ghc >=9.4)
+    build-depends: generically >=0.1 && <0.2
+
   if !impl(ghc >=9.0)
     build-depends: integer-gmp
 
@@ -115,16 +118,16 @@
     , character-ps          ^>=0.1
     , data-fix              ^>=0.3.2
     , dlist                 ^>=1.0
-    , hashable              ^>=1.4.6.0
+    , hashable              ^>=1.4.6.0  || ^>=1.5.0.0
     , indexed-traversable   ^>=0.1.2
     , integer-conversion    ^>=0.1
     , integer-logarithms    ^>=1.0.3.1
     , network-uri           ^>=2.6.4.1
     , OneTuple              ^>=0.4.1.1
     , primitive             ^>=0.8.0.0  || ^>=0.9.0.0
-    , QuickCheck            ^>=2.14.3 || ^>=2.15
+    , QuickCheck            ^>=2.14.3   || ^>=2.15    || ^>=2.16.0.0 || 
^>=2.17.1.0 || ^>=2.18.0.0
     , scientific            ^>=0.3.7.0
-    , semialign             ^>=1.3
+    , semialign             ^>=1.3      || ^>=1.4
     , strict                ^>=0.5
     , tagged                ^>=0.8.7
     , text-iso8601          ^>=0.1.1
@@ -134,7 +137,7 @@
     , unordered-containers  ^>=0.2.10.0
     , uuid-types            ^>=1.0.5
     , vector                ^>=0.13.0.0
-    , witherable            ^>=0.4.2 || ^>=0.5
+    , witherable            ^>=0.4.2    || ^>=0.5
 
   ghc-options:      -Wall
 
@@ -174,6 +177,7 @@
     Regression.Issue571
     Regression.Issue687
     Regression.Issue967
+    Regression.Issue1138
     RFC8785
     SerializationFormatSpec
     Types
@@ -201,22 +205,19 @@
     , bytestring
     , containers
     , data-fix
-    , deepseq
-    , Diff                  >=0.4    && <0.6
+    , Diff                  >=0.4    && <0.6  || ^>=1.0.2
     , directory
     , dlist
     , filepath
     , generic-deriving      >=1.10   && <1.15
     , generically
-    , ghc-prim              >=0.2
     , hashable
     , indexed-traversable
     , integer-logarithms    >=1      && <1.1
     , network-uri
     , OneTuple
-    , primitive
-    , QuickCheck            >=2.14.2 && <2.16
-    , quickcheck-instances  >=0.3.29 && <0.4
+    , QuickCheck
+    , quickcheck-instances  >=0.3.29 && <0.5
     , scientific
     , strict
     , tagged
@@ -224,7 +225,6 @@
     , tasty-golden
     , tasty-hunit
     , tasty-quickcheck
-    , template-haskell
     , text
     , text-short
     , these
@@ -242,4 +242,4 @@
 
 source-repository head
   type:     git
-  location: git://github.com/haskell/aeson.git
+  location: https://github.com/haskell/aeson.git
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/aeson-2.2.3.0/changelog.md 
new/aeson-2.2.5.0/changelog.md
--- old/aeson-2.2.3.0/changelog.md      2001-09-09 03:46:40.000000000 +0200
+++ new/aeson-2.2.5.0/changelog.md      2001-09-09 03:46:40.000000000 +0200
@@ -1,5 +1,13 @@
 For the latest version of this document, please see 
[https://github.com/haskell/aeson/blob/master/changelog.md](https://github.com/haskell/aeson/blob/master/changelog.md).
 
+### 2.2.5.0
+
+* Support `semialign-1.4`
+
+### 2.2.4.0
+
+* Check for control characters in text literals everywhere
+
 ### 2.2.3.0
 
 * Support `hashable-1.4.6.0`.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/aeson-2.2.3.0/src/Data/Aeson/Decoding/ByteString/Lazy.hs 
new/aeson-2.2.5.0/src/Data/Aeson/Decoding/ByteString/Lazy.hs
--- old/aeson-2.2.3.0/src/Data/Aeson/Decoding/ByteString/Lazy.hs        
2001-09-09 03:46:40.000000000 +0200
+++ new/aeson-2.2.5.0/src/Data/Aeson/Decoding/ByteString/Lazy.hs        
2001-09-09 03:46:40.000000000 +0200
@@ -159,7 +159,9 @@
             Right t -> ok t (lbsDrop (n + 1) bs0)
             Left e  -> err (show e)
         Just (92, bs') -> goSlash (n + 1) bs'
-        Just (_,  bs') -> goEsc (n + 1) bs'
+        Just (w8, bs')
+            | w8 < 0x20  -> errCC
+            | otherwise  -> goEsc (n + 1) bs'
 
     goSlash :: Int -> ByteString -> r
     goSlash !n !bs = case LBS.uncons bs of
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/aeson-2.2.3.0/src/Data/Aeson/Decoding/ByteString.hs 
new/aeson-2.2.5.0/src/Data/Aeson/Decoding/ByteString.hs
--- old/aeson-2.2.3.0/src/Data/Aeson/Decoding/ByteString.hs     2001-09-09 
03:46:40.000000000 +0200
+++ new/aeson-2.2.5.0/src/Data/Aeson/Decoding/ByteString.hs     2001-09-09 
03:46:40.000000000 +0200
@@ -153,7 +153,9 @@
             Right t -> ok t (BS.drop (n + 1) bs0)
             Left e  -> err (show e)
         Just (92, bs') -> goSlash (n + 1) bs'
-        Just (_,  bs') -> goEsc (n + 1) bs'
+        Just (w8, bs')
+            | w8 < 0x20  -> errCC
+            | otherwise  -> goEsc (n + 1) bs'
 
     goSlash :: Int -> ByteString -> r
     goSlash !n !bs = case BS.uncons bs of
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/aeson-2.2.3.0/src/Data/Aeson/Decoding/Text.hs 
new/aeson-2.2.5.0/src/Data/Aeson/Decoding/Text.hs
--- old/aeson-2.2.3.0/src/Data/Aeson/Decoding/Text.hs   2001-09-09 
03:46:40.000000000 +0200
+++ new/aeson-2.2.5.0/src/Data/Aeson/Decoding/Text.hs   2001-09-09 
03:46:40.000000000 +0200
@@ -36,7 +36,7 @@
 #endif
 
 
--- | Lex (and parse) strict 'ByteString' into 'Tokens' stream.
+-- | Lex (and parse) strict 'Text' into 'Tokens' stream.
 --
 -- @since 2.2.1.0
 --
@@ -163,7 +163,9 @@
             Right t -> ok t (unsafeDropPoints (n + 1) bs0)
             Left e  -> err (show e)
         Just (92, bs') -> goSlash (n + 1) bs'
-        Just (_,  bs') -> goEsc (n + 1) bs'
+        Just (w8, bs')
+            | w8 < 0x20  -> errCC
+            | otherwise  -> goEsc (n + 1) bs'
 
     goSlash :: Int -> Text -> r
     goSlash !n !bs = case unconsPoint bs of
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/aeson-2.2.3.0/src/Data/Aeson/KeyMap.hs 
new/aeson-2.2.5.0/src/Data/Aeson/KeyMap.hs
--- old/aeson-2.2.3.0/src/Data/Aeson/KeyMap.hs  2001-09-09 03:46:40.000000000 
+0200
+++ new/aeson-2.2.5.0/src/Data/Aeson/KeyMap.hs  2001-09-09 03:46:40.000000000 
+0200
@@ -690,6 +690,12 @@
 -- semialign
 -------------------------------------------------------------------------------
 
+-- |
+--
+-- @since 2.2.5.0
+instance SA.Unzip KeyMap where
+    unzip = SA.unzipDefault
+
 instance SA.Zip KeyMap where
     zipWith = intersectionWith
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/aeson-2.2.3.0/src/Data/Aeson/TH.hs 
new/aeson-2.2.5.0/src/Data/Aeson/TH.hs
--- old/aeson-2.2.3.0/src/Data/Aeson/TH.hs      2001-09-09 03:46:40.000000000 
+0200
+++ new/aeson-2.2.5.0/src/Data/Aeson/TH.hs      2001-09-09 03:46:40.000000000 
+0200
@@ -945,7 +945,7 @@
                           (appE [|show|] (varE unknownFields)))
                       []
               ]
-      x:xs = [ lookupField argTy
+      (x,xs) = nonEmpty [ lookupField argTy
                `appE` dispatchParseJSON jc conName tvMap argTy
                `appE` litE (stringL $ show tName)
                `appE` litE (stringL $ constructorTagModifier opts $ nameBase 
conName)
@@ -955,6 +955,11 @@
              | (field, argTy) <- zip fields argTys
              ]
 
+-- A hack, as I'm too lazy to changge code to not assume fields are non empty.
+nonEmpty :: [a] -> (a, [a])
+nonEmpty (x:xs) = (x,xs)
+nonEmpty []     = error "unexpected empty list"
+
 getValField :: Name -> String -> [MatchQ] -> Q Exp
 getValField obj valFieldName matches = do
   val <- newName "val"
@@ -1056,12 +1061,12 @@
              -> [Type] -- ^ The argument types of the constructor.
              -> Name -- ^ Name of the type to which the constructor belongs.
              -> Name -- ^ 'Con'structor name.
-             -> Integer -- ^ 'Con'structor arity.
+             -> Integer -- ^ 'Con'structor arity. >= 1
              -> [Q Match]
 parseProduct jc tvMap argTys tName conName numArgs =
     [ do arr <- newName "arr"
          -- List of: "parseJSON (arr `V.unsafeIndex` <IX>)"
-         let x:xs = [ dispatchParseJSON jc conName tvMap argTy
+         let (x,xs) = nonEmpty [ dispatchParseJSON jc conName tvMap argTy
                       `appE`
                       infixApp (varE arr)
                                [|V.unsafeIndex|]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/aeson-2.2.3.0/src/Data/Aeson/Types/ToJSON.hs 
new/aeson-2.2.5.0/src/Data/Aeson/Types/ToJSON.hs
--- old/aeson-2.2.3.0/src/Data/Aeson/Types/ToJSON.hs    2001-09-09 
03:46:40.000000000 +0200
+++ new/aeson-2.2.5.0/src/Data/Aeson/Types/ToJSON.hs    2001-09-09 
03:46:40.000000000 +0200
@@ -371,7 +371,7 @@
     explicitToField f name value = KM.singleton name (f value)
     {-# INLINE explicitToField #-}
 
--- | An optional key-value pair for envoding to a JSON object
+-- | An optional key-value pair for encoding to a JSON object
 --
 -- @since 2.2.0.0
 --
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/aeson-2.2.3.0/src/Data/Aeson.hs 
new/aeson-2.2.5.0/src/Data/Aeson.hs
--- old/aeson-2.2.3.0/src/Data/Aeson.hs 2001-09-09 03:46:40.000000000 +0200
+++ new/aeson-2.2.5.0/src/Data/Aeson.hs 2001-09-09 03:46:40.000000000 +0200
@@ -253,7 +253,7 @@
 
 -- | Like 'decodeFileStrict'' but returns an error message when decoding fails.
 --
--- Since @2.2.0.0@ an alias for 'eitherDecodeFileStrict''.
+-- Since @2.2.0.0@ an alias for 'eitherDecodeFileStrict'.
 eitherDecodeFileStrict' :: (FromJSON a) => FilePath -> IO (Either String a)
 eitherDecodeFileStrict' = eitherDecodeFileStrict
 {-# INLINE eitherDecodeFileStrict' #-}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/aeson-2.2.3.0/tests/Instances.hs 
new/aeson-2.2.5.0/tests/Instances.hs
--- old/aeson-2.2.3.0/tests/Instances.hs        2001-09-09 03:46:40.000000000 
+0200
+++ new/aeson-2.2.5.0/tests/Instances.hs        2001-09-09 03:46:40.000000000 
+0200
@@ -28,6 +28,11 @@
 import Data.Orphans ()
 import Test.QuickCheck.Instances ()
 
+#if !MIN_VERSION_base(4,16,0)
+import Data.Semigroup (Option (..))
+import Data.Tuple.Solo (Solo (..))
+#endif
+
 -- "System" types.
 
 instance Arbitrary DotNetTime where
@@ -157,9 +162,13 @@
 
 #if !MIN_VERSION_base(4,16,0)
 instance Arbitrary OptionField where
-    arbitrary = OptionField <$> arbitrary
+    arbitrary = OptionField . Option <$> arbitrary
 #endif
 
+#if !MIN_VERSION_base(4,16,0) && MIN_VERSION_QuickCheck(2,17,0)
+instance Arbitrary a => Arbitrary (Solo a) where
+    arbitrary = MkSolo <$> arbitrary
+#endif
 
 instance ApproxEq Char where
     (=~) = (==)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/aeson-2.2.3.0/tests/Regression/Issue1138.hs 
new/aeson-2.2.5.0/tests/Regression/Issue1138.hs
--- old/aeson-2.2.3.0/tests/Regression/Issue1138.hs     1970-01-01 
01:00:00.000000000 +0100
+++ new/aeson-2.2.5.0/tests/Regression/Issue1138.hs     2001-09-09 
03:46:40.000000000 +0200
@@ -0,0 +1,23 @@
+{-# LANGUAGE OverloadedStrings #-}
+module Regression.Issue1138 (issue1138) where
+
+import Test.Tasty (TestTree, testGroup)
+import Test.Tasty.HUnit (testCase, assertFailure)
+
+import Data.Aeson
+
+assertDecodeFailure :: Either String Value -> IO ()
+assertDecodeFailure (Right v) = assertFailure $ "Unexpected success: " ++ show 
v
+assertDecodeFailure (Left _)  = return ()
+
+issue1138 :: TestTree
+issue1138 = testGroup "Issue #1138" $ map (testCase "-")
+  [ assertDecodeFailure $ eitherDecode "\"\t\""
+  , assertDecodeFailure $ eitherDecode "\"\\\\\t\""
+
+  , assertDecodeFailure $ eitherDecodeStrict "\"\t\""
+  , assertDecodeFailure $ eitherDecodeStrict "\"\\\\\t\""
+
+  , assertDecodeFailure $ eitherDecodeStrictText "\"\t\""
+  , assertDecodeFailure $ eitherDecodeStrictText "\"\\\\\t\""
+  ]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/aeson-2.2.3.0/tests/UnitTests.hs 
new/aeson-2.2.5.0/tests/UnitTests.hs
--- old/aeson-2.2.3.0/tests/UnitTests.hs        2001-09-09 03:46:40.000000000 
+0200
+++ new/aeson-2.2.5.0/tests/UnitTests.hs        2001-09-09 03:46:40.000000000 
+0200
@@ -64,6 +64,7 @@
 import Regression.Issue571
 import Regression.Issue687
 import Regression.Issue967
+import Regression.Issue1138
 import UnitTests.OmitNothingFieldsNote
 import UnitTests.FromJSONKey
 import UnitTests.Hashable
@@ -568,6 +569,7 @@
   , issue571
   , issue687
   , issue967
+  , issue1138
   , keyMapInsertWithTests
   , omitNothingFieldsNoteTests
   , noThunksTests

Reply via email to