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 - [email protected]
+
+- 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:


Reply via email to