Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package ghc-conduit-extra for 
openSUSE:Factory checked in at 2025-07-02 12:08:46
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/ghc-conduit-extra (Old)
 and      /work/SRC/openSUSE:Factory/.ghc-conduit-extra.new.7067 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "ghc-conduit-extra"

Wed Jul  2 12:08:46 2025 rev:31 rq:1289418 version:1.3.8

Changes:
--------
--- /work/SRC/openSUSE:Factory/ghc-conduit-extra/ghc-conduit-extra.changes      
2025-01-28 16:41:16.515291674 +0100
+++ 
/work/SRC/openSUSE:Factory/.ghc-conduit-extra.new.7067/ghc-conduit-extra.changes
    2025-07-02 12:09:33.754872956 +0200
@@ -1,0 +2,14 @@
+Mon Jun 30 23:22:55 UTC 2025 - Peter Simons <[email protected]>
+
+- Update conduit-extra to version 1.3.8 revision 1.
+  Upstream has revised the Cabal build instructions on Hackage.
+
+-------------------------------------------------------------------
+Thu Jun 26 05:55:19 UTC 2025 - Peter Simons <[email protected]>
+
+- Update conduit-extra to version 1.3.8.
+  ## 1.3.8
+
+  * Gracefully handle when a subprocess started using 
`Data.Conduit.Process.sourceProcessWithStreams` closes its stdin. Fixes 
[#523](https://github.com/snoyberg/conduit/issues/523)
+
+-------------------------------------------------------------------

Old:
----
  conduit-extra-1.3.7.tar.gz

New:
----
  conduit-extra-1.3.8.tar.gz
  conduit-extra.cabal

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

Other differences:
------------------
++++++ ghc-conduit-extra.spec ++++++
--- /var/tmp/diff_new_pack.7axFL2/_old  2025-07-02 12:09:35.078929188 +0200
+++ /var/tmp/diff_new_pack.7axFL2/_new  2025-07-02 12:09:35.082929357 +0200
@@ -20,12 +20,13 @@
 %global pkgver %{pkg_name}-%{version}
 %bcond_with tests
 Name:           ghc-%{pkg_name}
-Version:        1.3.7
+Version:        1.3.8
 Release:        0
 Summary:        Batteries included conduit: adapters for common libraries
 License:        MIT
 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/1.cabal#/%{pkg_name}.cabal
 BuildRequires:  ghc-Cabal-devel
 BuildRequires:  ghc-async-devel
 BuildRequires:  ghc-async-prof
@@ -109,6 +110,7 @@
 
 %prep
 %autosetup -n %{pkg_name}-%{version}
+cp -p %{SOURCE1} %{pkg_name}.cabal
 
 %build
 %ghc_lib_build

++++++ conduit-extra-1.3.7.tar.gz -> conduit-extra-1.3.8.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/conduit-extra-1.3.7/ChangeLog.md 
new/conduit-extra-1.3.8/ChangeLog.md
--- old/conduit-extra-1.3.7/ChangeLog.md        2025-01-20 09:43:09.000000000 
+0100
+++ new/conduit-extra-1.3.8/ChangeLog.md        2025-06-26 07:53:43.000000000 
+0200
@@ -1,5 +1,9 @@
 # ChangeLog for conduit-extra
 
+## 1.3.8
+
+* Gracefully handle when a subprocess started using 
`Data.Conduit.Process.sourceProcessWithStreams` closes its stdin. Fixes 
[#523](https://github.com/snoyberg/conduit/issues/523)
+
 ## 1.3.7
 
 * Allow Data.Conduit.Network.Unix on Windows 
[#518](https://github.com/snoyberg/conduit/pull/518)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/conduit-extra-1.3.7/Data/Conduit/Process.hs 
new/conduit-extra-1.3.8/Data/Conduit/Process.hs
--- old/conduit-extra-1.3.7/Data/Conduit/Process.hs     2024-08-26 
09:54:02.000000000 +0200
+++ new/conduit-extra-1.3.8/Data/Conduit/Process.hs     2025-06-26 
07:53:43.000000000 +0200
@@ -39,7 +39,8 @@
 import Data.ByteString (ByteString)
 import Data.ByteString.Builder (Builder)
 import Control.Concurrent.Async (runConcurrently, Concurrently(..))
-import Control.Exception (onException, throwIO, finally, bracket)
+import Control.Exception (onException, throwIO, finally, bracket, catch)
+import System.IO.Error (ioeGetErrorType, isResourceVanishedErrorType)
 #if (__GLASGOW_HASKELL__ < 710)
 import Control.Applicative ((<$>), (<*>))
 #endif
@@ -143,16 +144,24 @@
      , (sourceStdout, closeStdout)
      , (sourceStderr, closeStderr)
      , sph) <- streamingProcess cp
+    let safeSinkStdin = sinkStdin `catchC` ignoreStdinClosed
+        safeCloseStdin = closeStdin `catch` ignoreStdinClosed
     (_, resStdout, resStderr) <-
       runConcurrently (
         (,,)
-        <$> Concurrently ((unliftIO u $ runConduit $ producerStdin .| 
sinkStdin) `finally` closeStdin)
+        <$> Concurrently ((unliftIO u $ runConduit $ producerStdin .| 
safeSinkStdin) `finally` safeCloseStdin)
         <*> Concurrently (unliftIO u $ runConduit $ sourceStdout .| 
consumerStdout)
         <*> Concurrently (unliftIO u $ runConduit $ sourceStderr .| 
consumerStderr))
       `finally` (closeStdout >> closeStderr)
       `onException` terminateStreamingProcess sph
     ec <- waitForStreamingProcess sph
     return (ec, resStdout, resStderr)
+  where
+    ignoreStdinClosed :: forall m. (MonadIO m) => IOError -> m ()
+    ignoreStdinClosed e =
+      if isResourceVanishedErrorType (ioeGetErrorType e)
+        then pure ()
+        else liftIO (throwIO e)
 
 -- | Like @sourceProcessWithStreams@ but providing the command to be run as
 -- a @String@.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/conduit-extra-1.3.7/conduit-extra.cabal 
new/conduit-extra-1.3.8/conduit-extra.cabal
--- old/conduit-extra-1.3.7/conduit-extra.cabal 2025-01-20 09:43:09.000000000 
+0100
+++ new/conduit-extra-1.3.8/conduit-extra.cabal 2025-06-26 07:53:43.000000000 
+0200
@@ -1,6 +1,6 @@
 Cabal-version:       >=1.10
 Name:                conduit-extra
-Version:             1.3.7
+Version:             1.3.8
 Synopsis:            Batteries included conduit: adapters for common libraries.
 Description:
     The conduit package itself maintains relative small dependencies. The 
purpose of this package is to collect commonly used utility functions wrapping 
other library dependencies, without depending on heavier-weight dependencies. 
The basic idea is that this package should only depend on haskell-platform 
packages and conduit.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/conduit-extra-1.3.7/test/Data/Conduit/ProcessSpec.hs 
new/conduit-extra-1.3.8/test/Data/Conduit/ProcessSpec.hs
--- old/conduit-extra-1.3.7/test/Data/Conduit/ProcessSpec.hs    2024-08-26 
09:54:02.000000000 +0200
+++ new/conduit-extra-1.3.8/test/Data/Conduit/ProcessSpec.hs    2025-06-26 
07:53:43.000000000 +0200
@@ -5,6 +5,7 @@
 import Test.Hspec
 import Test.Hspec.QuickCheck (prop)
 import Data.Conduit
+import qualified Data.Conduit.Combinators as CC
 import qualified Data.Conduit.List as CL
 import Data.Conduit.Process
 import Control.Concurrent.Async (concurrently)
@@ -77,6 +78,14 @@
                              CL.consume -- stdout
                              CL.consume -- stderr
                 `shouldReturn` (ExitSuccess, [mystr], [])
+    it "gracefully handles closed stdin" $ do
+        let blob = L.iterate (+1) 0
+            blobHead = L.toStrict $ L.take 10000 blob
+        sourceCmdWithStreams "head -c 10000"
+                             (CC.sourceLazy blob)
+                             (L.toStrict <$> CC.sinkLazy) -- stdout
+                             CL.consume -- stderr
+                `shouldReturn` (ExitSuccess, blobHead, [])
 #endif
     it "blocking vs non-blocking" $ do
         (ClosedStream, ClosedStream, ClosedStream, cph) <- streamingProcess 
(shell "sleep 1")

++++++ conduit-extra.cabal ++++++
Cabal-version:       >=1.10
Name:                conduit-extra
Version:             1.3.8
x-revision: 1
Synopsis:            Batteries included conduit: adapters for common libraries.
Description:
    The conduit package itself maintains relative small dependencies. The 
purpose of this package is to collect commonly used utility functions wrapping 
other library dependencies, without depending on heavier-weight dependencies. 
The basic idea is that this package should only depend on haskell-platform 
packages and conduit.
License:             MIT
License-file:        LICENSE
Author:              Michael Snoyman
Maintainer:          [email protected]
Category:            Data, Conduit
Build-type:          Simple
Homepage:            http://github.com/snoyberg/conduit
extra-source-files:
    test/random
    test/filesystem/*.txt
    test/filesystem/bin/*.txt
    ChangeLog.md
    README.md

Library
  default-language:    Haskell2010
  Exposed-modules:     Data.Conduit.Attoparsec
                       Data.Conduit.Binary
                       Data.Conduit.ByteString.Builder
                       Data.Conduit.Filesystem
                       Data.Conduit.Foldl
                       Data.Conduit.Lazy
                       Data.Conduit.Network
                       Data.Conduit.Network.UDP
                       Data.Conduit.Network.Unix
                       Data.Conduit.Process
                       Data.Conduit.Process.Typed
                       Data.Conduit.Text
                       Data.Conduit.Zlib

  if arch(x86_64) || arch(i386)
      -- These architectures are able to perform unaligned memory accesses
      cpp-options: -DALLOW_UNALIGNED_ACCESS

  Build-depends:       base                     >= 4.14         && < 5
                     , conduit                  >= 1.3          && < 1.4

                     , bytestring               >= 0.10.2
                     , text
                     , transformers

                     , async
                     , attoparsec               >= 0.10
                     , directory
                     , filepath
                     , network                  >= 2.3
                     , primitive                >= 0.5
                     , process
                     , resourcet                >= 1.1
                     , stm
                     , streaming-commons        >= 0.2.3.0
                     , unliftio-core
                     , typed-process            >= 0.2.6

  ghc-options:     -Wall

test-suite test
    hs-source-dirs: test
    default-language: Haskell2010
    main-is: Spec.hs
    type: exitcode-stdio-1.0
    ghc-options:   -threaded
    cpp-options:   -DTEST
    build-depends:   conduit
                   , conduit-extra
                   , base
                   , hspec >= 1.3

                   , async
                   , attoparsec
                   , bytestring
                   , exceptions
                   , process
                   , resourcet
                   , QuickCheck
                   , stm
                   , streaming-commons
                   , text
                   , transformers
                   , transformers-base
                   , directory
                   , filepath
    build-tool-depends: hspec-discover:hspec-discover
    ghc-options:     -Wall
    if os(windows)
        cpp-options: -DWINDOWS
    other-modules:   Data.Conduit.AttoparsecSpec
                     Data.Conduit.BinarySpec
                     Data.Conduit.ByteString.BuilderSpec
                     Data.Conduit.ExtraSpec
                     Data.Conduit.FilesystemSpec
                     Data.Conduit.LazySpec
                     Data.Conduit.NetworkSpec
                     Data.Conduit.ProcessSpec
                     Data.Conduit.Process.TypedSpec
                     Data.Conduit.TextSpec
                     Data.Conduit.ZlibSpec

benchmark blaze
    default-language: Haskell2010
    type:           exitcode-stdio-1.0
    hs-source-dirs: bench
    build-depends:  base
                  , conduit
                  , conduit-extra
                  , gauge
                  , bytestring
                  , transformers
    main-is:        blaze.hs
    ghc-options:    -Wall -O2 -rtsopts

source-repository head
  type:     git
  location: git://github.com/snoyberg/conduit.git

Reply via email to