Hello community,
here is the log from the commit of package ghc-zip-archive for openSUSE:Factory
checked in at 2019-04-28 20:14:02
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/ghc-zip-archive (Old)
and /work/SRC/openSUSE:Factory/.ghc-zip-archive.new.5536 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "ghc-zip-archive"
Sun Apr 28 20:14:02 2019 rev:14 rq:698565 version:0.4.1
Changes:
--------
--- /work/SRC/openSUSE:Factory/ghc-zip-archive/ghc-zip-archive.changes
2018-12-10 12:29:51.914435394 +0100
+++
/work/SRC/openSUSE:Factory/.ghc-zip-archive.new.5536/ghc-zip-archive.changes
2019-04-28 20:14:05.958394394 +0200
@@ -1,0 +2,14 @@
+Wed Apr 24 02:02:17 UTC 2019 - [email protected]
+
+- Update zip-archive to version 0.4.1.
+ zip-archive 0.4.1
+
+ * writEntry behavior change: Improve raising of UnsafePath error (#55).
+ Previously we raised this error spuriously when archives were unpacked
+ outside the working directory. Now we raise it if eRelativePath contains
+ ".." as a path component, or eRelativePath path is an absolute path and
+ there is no separate destination directory. (Note that `/foo/bar` is
fine
+ as a path as long as a destination directory, e.g. `/usr/local`, is
+ specified.)
+
+-------------------------------------------------------------------
Old:
----
zip-archive-0.4.tar.gz
New:
----
zip-archive-0.4.1.tar.gz
zip-archive.cabal
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ ghc-zip-archive.spec ++++++
--- /var/tmp/diff_new_pack.dyKPzk/_old 2019-04-28 20:14:07.886393197 +0200
+++ /var/tmp/diff_new_pack.dyKPzk/_new 2019-04-28 20:14:07.886393197 +0200
@@ -1,7 +1,7 @@
#
# spec file for package ghc-zip-archive
#
-# 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,13 +19,14 @@
%global pkg_name zip-archive
%bcond_with tests
Name: ghc-%{pkg_name}
-Version: 0.4
+Version: 0.4.1
Release: 0
Summary: Library for creating and modifying zip archives
License: BSD-3-Clause
Group: Development/Libraries/Haskell
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-array-devel
BuildRequires: ghc-binary-devel
@@ -82,6 +83,7 @@
%prep
%setup -q -n %{pkg_name}-%{version}
+cp -p %{SOURCE1} %{pkg_name}.cabal
%build
%ghc_lib_build
++++++ zip-archive-0.4.tar.gz -> zip-archive-0.4.1.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/zip-archive-0.4/changelog
new/zip-archive-0.4.1/changelog
--- old/zip-archive-0.4/changelog 2018-12-04 01:24:06.000000000 +0100
+++ new/zip-archive-0.4.1/changelog 2019-04-23 08:10:30.000000000 +0200
@@ -1,3 +1,13 @@
+zip-archive 0.4.1
+
+ * writEntry behavior change: Improve raising of UnsafePath error (#55).
+ Previously we raised this error spuriously when archives were unpacked
+ outside the working directory. Now we raise it if eRelativePath contains
+ ".." as a path component, or eRelativePath path is an absolute path and
+ there is no separate destination directory. (Note that `/foo/bar` is fine
+ as a path as long as a destination directory, e.g. `/usr/local`, is
+ specified.)
+
zip-archive 0.4
* Implement read-only support for PKWARE encryption (Sergii Rudchenko).
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/zip-archive-0.4/src/Codec/Archive/Zip.hs
new/zip-archive-0.4.1/src/Codec/Archive/Zip.hs
--- old/zip-archive-0.4/src/Codec/Archive/Zip.hs 2018-12-04
01:24:06.000000000 +0100
+++ new/zip-archive-0.4.1/src/Codec/Archive/Zip.hs 2019-04-23
08:10:30.000000000 +0200
@@ -77,15 +77,14 @@
import Data.Binary
import Data.Binary.Get
import Data.Binary.Put
-import Data.List (nub, find, intercalate, isPrefixOf, isInfixOf)
+import Data.List (nub, find, intercalate)
import Data.Data (Data)
import Data.Typeable (Typeable)
import Text.Printf
import System.FilePath
import System.Directory
(doesDirectoryExist, getDirectoryContents,
- createDirectoryIfMissing, getModificationTime, getCurrentDirectory,
- makeAbsolute)
+ createDirectoryIfMissing, getModificationTime)
import Control.Monad ( when, unless, zipWithM_ )
import qualified Control.Exception as E
import System.IO ( stderr, hPutStrLn )
@@ -350,14 +349,16 @@
writeEntry opts entry = do
when (isEncryptedEntry entry) $
E.throwIO $ CannotWriteEncryptedEntry (eRelativePath entry)
- let path = case [d | OptDestination d <- opts] of
- (x:_) -> x </> eRelativePath entry
- _ -> eRelativePath entry
- absPath <- makeAbsolute path
- curDir <- getCurrentDirectory
- let isUnsafePath = ".." `isInfixOf` absPath ||
- not (curDir `isPrefixOf` absPath)
- when isUnsafePath $ E.throwIO $ UnsafePath path
+ let relpath = eRelativePath entry
+ let isUnsafePath = ".." `elem` splitDirectories relpath
+ when isUnsafePath $
+ E.throwIO $ UnsafePath relpath
+ path <- case [d | OptDestination d <- opts] of
+ (x:_) -> return (x </> relpath)
+ _ | isAbsolute relpath
+ -> E.throwIO $ UnsafePath relpath
+ | otherwise
+ -> return relpath
-- create directories if needed
let dir = takeDirectory path
exists <- doesDirectoryExist dir
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/zip-archive-0.4/zip-archive.cabal
new/zip-archive-0.4.1/zip-archive.cabal
--- old/zip-archive-0.4/zip-archive.cabal 2018-12-04 01:24:06.000000000
+0100
+++ new/zip-archive-0.4.1/zip-archive.cabal 2019-04-23 08:10:30.000000000
+0200
@@ -1,5 +1,5 @@
Name: zip-archive
-Version: 0.4
+Version: 0.4.1
Cabal-Version: 2.0
Build-type: Simple
Synopsis: Library for creating and modifying zip archives.
++++++ zip-archive.cabal ++++++
Name: zip-archive
Version: 0.4.1
x-revision: 1
Cabal-Version: 2.0
Build-type: Simple
Synopsis: Library for creating and modifying zip archives.
Description:
The zip-archive library provides functions for creating, modifying, and
extracting files from zip archives. The zip archive format is
documented in <http://www.pkware.com/documents/casestudies/APPNOTE.TXT>.
.
Certain simplifying assumptions are made about the zip archives: in
particular, there is no support for strong encryption, zip files that
span multiple disks, ZIP64, OS-specific file attributes, or compression
methods other than Deflate. However, the library should be able to read
the most common zip archives, and the archives it produces should be
readable by all standard unzip programs.
.
Archives are built and extracted in memory, so manipulating large zip
files will consume a lot of memory. If you work with large zip files or
need features not supported by this library, a better choice may be
<http://hackage.haskell.org/package/zip zip>, which uses a
memory-efficient streaming approach. However, zip can only read and
write archives inside instances of MonadIO, so zip-archive is a better
choice if you want to manipulate zip archives in "pure" contexts.
.
As an example of the use of the library, a standalone zip archiver and
extracter is provided in the source distribution.
Category: Codec
Tested-with: GHC == 7.8.2, GHC == 7.10.3, GHC == 8.0.2,
GHC == 8.2.2, GHC == 8.4.3, GHC == 8.6.1
License: BSD3
License-file: LICENSE
Homepage: http://github.com/jgm/zip-archive
Author: John MacFarlane
Maintainer: [email protected]
Extra-Source-Files: changelog
README.markdown
tests/test4.zip
tests/test4/a.txt
tests/test4/b.bin
"tests/test4/c/with spaces.txt"
tests/zip_with_symlinks.zip
tests/zip_with_password.zip
tests/zip_with_evil_path.zip
Source-repository head
type: git
location: git://github.com/jgm/zip-archive.git
flag executable
Description: Build the Zip executable.
Default: False
Library
Build-depends: base >= 4.5 && < 5,
pretty,
containers,
binary >= 0.6,
zlib,
filepath,
bytestring >= 0.10.0,
array,
mtl,
text >= 0.11,
digest >= 0.0.0.1,
directory >= 1.2.0,
time
Exposed-modules: Codec.Archive.Zip
Default-Language: Haskell98
Hs-Source-Dirs: src
Ghc-Options: -Wall
if os(windows)
cpp-options: -D_WINDOWS
else
Build-depends: unix
Executable zip-archive
if flag(executable)
Buildable: True
else
Buildable: False
Main-is: Main.hs
Hs-Source-Dirs: .
Build-Depends: base >= 4.2 && < 5,
directory >= 1.1,
bytestring >= 0.9.0,
zip-archive
Other-Modules: Paths_zip_archive
Autogen-Modules: Paths_zip_archive
Ghc-Options: -Wall
Default-Language: Haskell98
Test-Suite test-zip-archive
Type: exitcode-stdio-1.0
Main-Is: test-zip-archive.hs
Hs-Source-Dirs: tests
Build-Depends: base >= 4.2 && < 5,
directory >= 1.3, bytestring >= 0.9.0, process, time,
HUnit, zip-archive, temporary, filepath
Default-Language: Haskell98
Ghc-Options: -Wall
if os(windows)
cpp-options: -D_WINDOWS
else
Build-depends: unix
build-tools: unzip