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