Hello community, here is the log from the commit of package ghc-turtle for openSUSE:Factory checked in at 2019-04-28 20:14:01 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/ghc-turtle (Old) and /work/SRC/openSUSE:Factory/.ghc-turtle.new.5536 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Package is "ghc-turtle" Sun Apr 28 20:14:01 2019 rev:4 rq:698564 version:1.5.14 Changes: -------- --- /work/SRC/openSUSE:Factory/ghc-turtle/ghc-turtle.changes 2018-12-28 12:35:30.287955810 +0100 +++ /work/SRC/openSUSE:Factory/.ghc-turtle.new.5536/ghc-turtle.changes 2019-04-28 20:14:02.106396789 +0200 @@ -1,0 +2,10 @@ +Sat Apr 20 09:17:06 UTC 2019 - psimons@suse.com + +- Update turtle to version 1.5.14. + 1.5.14 + + * Fix `cptree` to copy symlinks instead of descending into them + * See: https://github.com/Gabriel439/Haskell-Turtle-Library/pull/344 + * Build against newer versions of `Win32` package + +------------------------------------------------------------------- Old: ---- turtle-1.5.13.tar.gz New: ---- turtle-1.5.14.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ ghc-turtle.spec ++++++ --- /var/tmp/diff_new_pack.1m5ncw/_old 2019-04-28 20:14:02.918396285 +0200 +++ /var/tmp/diff_new_pack.1m5ncw/_new 2019-04-28 20:14:02.918396285 +0200 @@ -1,7 +1,7 @@ # # spec file for package ghc-turtle # -# Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany. +# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -19,7 +19,7 @@ %global pkg_name turtle %bcond_with tests Name: ghc-%{pkg_name} -Version: 1.5.13 +Version: 1.5.14 Release: 0 Summary: Shell programming, Haskell-style License: BSD-3-Clause ++++++ turtle-1.5.13.tar.gz -> turtle-1.5.14.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/turtle-1.5.13/CHANGELOG.md new/turtle-1.5.14/CHANGELOG.md --- old/turtle-1.5.13/CHANGELOG.md 2018-12-20 17:51:10.000000000 +0100 +++ new/turtle-1.5.14/CHANGELOG.md 2019-04-18 19:54:21.000000000 +0200 @@ -1,3 +1,9 @@ +1.5.14 + +* Fix `cptree` to copy symlinks instead of descending into them + * See: https://github.com/Gabriel439/Haskell-Turtle-Library/pull/344 +* Build against newer versions of `Win32` package + 1.5.13 * Fix `chmod` bug diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/turtle-1.5.13/src/Turtle/Prelude.hs new/turtle-1.5.14/src/Turtle/Prelude.hs --- old/turtle-1.5.13/src/Turtle/Prelude.hs 2018-12-20 17:51:10.000000000 +0100 +++ new/turtle-1.5.14/src/Turtle/Prelude.hs 2019-04-18 19:54:20.000000000 +0200 @@ -130,6 +130,7 @@ #if !defined(mingw32_HOST_OS) , symlink #endif + , isNotSymbolicLink , rm , rmdir , rmtree @@ -1095,20 +1096,46 @@ #endif +{-| Returns `True` if the given `FilePath` is not a symbolic link + + This comes in handy in conjunction with `lsif`: + + > lsif isNotSymbolicLink +-} +isNotSymbolicLink :: MonadIO io => FilePath -> io Bool +isNotSymbolicLink = fmap (not . PosixCompat.isSymbolicLink) . lstat + -- | Copy a directory tree cptree :: MonadIO io => FilePath -> FilePath -> io () cptree oldTree newTree = sh (do - oldPath <- lstree oldTree + oldPath <- lsif isNotSymbolicLink oldTree + -- The `system-filepath` library treats a path like "/tmp" as a file and not -- a directory and fails to strip it as a prefix from `/tmp/foo`. Adding -- `(> "")` to the end of the path makes clear that the path is a -- directory Just suffix <- return (Filesystem.stripPrefix (oldTree > "") oldPath) + let newPath = newTree > suffix + isFile <- testfile oldPath - if isFile - then mktree (Filesystem.directory newPath) >> cp oldPath newPath - else mktree newPath ) + + fileStatus <- lstat oldPath + + if PosixCompat.isSymbolicLink fileStatus + then do + oldTarget <- liftIO (PosixCompat.readSymbolicLink (Filesystem.encodeString oldPath)) + + mktree (Filesystem.directory newPath) + + liftIO (PosixCompat.createSymbolicLink oldTarget (Filesystem.encodeString newPath)) + else if isFile + then do + mktree (Filesystem.directory newPath) + + cp oldPath newPath + else do + mktree newPath ) -- | Remove a file rm :: MonadIO io => FilePath -> io () diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/turtle-1.5.13/turtle.cabal new/turtle-1.5.14/turtle.cabal --- old/turtle-1.5.13/turtle.cabal 2018-12-20 17:51:10.000000000 +0100 +++ new/turtle-1.5.14/turtle.cabal 2019-04-18 19:54:21.000000000 +0200 @@ -1,5 +1,5 @@ Name: turtle -Version: 1.5.13 +Version: 1.5.14 Cabal-Version: >=1.10 Build-Type: Simple License: BSD3 @@ -73,7 +73,7 @@ optional-args >= 1.0 && < 2.0 , unix-compat >= 0.4 && < 0.6 if os(windows) - Build-Depends: Win32 >= 2.2.0.1 && < 2.6 + Build-Depends: Win32 >= 2.2.0.1 && < 2.9 else Build-Depends: unix >= 2.5.1.0 && < 2.8 Exposed-Modules: