tar 0.7.1.0 → 0.7.2.0
raw patch · 5 files changed
+21/−13 lines, 5 filesPVP ok
version bump matches the API change (PVP)
API changes (from Hackage documentation)
Files
- Codec/Archive/Tar/PackAscii.hs +5/−5
- Codec/Archive/Tar/Types.hs +6/−3
- Codec/Archive/Tar/Write.hs +1/−1
- changelog.md +5/−0
- tar.cabal +4/−4
Codec/Archive/Tar/PackAscii.hs view
@@ -10,7 +10,7 @@ , fromPosixString , posixToByteString , byteToPosixString- , packAscii+ , packLatin1 , filePathToOsPath , osPathToFilePath ) where@@ -38,10 +38,10 @@ byteToPosixString :: ByteString -> PosixString byteToPosixString = PS.PosixString . Sh.toShort -packAscii :: HasCallStack => FilePath -> BS.Char8.ByteString-packAscii xs- | all isAscii xs = BS.Char8.pack xs- | otherwise = error $ "packAscii: only ASCII inputs are supported, but got " ++ xs+packLatin1 :: HasCallStack => FilePath -> BS.Char8.ByteString+packLatin1 xs+ | all isLatin1 xs = BS.Char8.pack xs+ | otherwise = error $ "packLatin1: only Latin-1 inputs are supported, but got " ++ xs filePathToOsPath :: FilePath -> OS.OsPath filePathToOsPath = unsafePerformIO . OS.encodeFS
Codec/Archive/Tar/Types.hs view
@@ -218,6 +218,9 @@ } deriving (Eq, Ord, Show) +defaultOwnership :: Ownership+defaultOwnership = Ownership "" "" 0 0+ -- | There have been a number of extensions to the tar file format over the -- years. They all share the basic entry fields and put more meta-data in -- different extended headers.@@ -286,7 +289,7 @@ Directory -> directoryPermissions SymbolicLink _ -> symbolicLinkPermission _ -> ordinaryFilePermissions,- entryOwnership = Ownership "" "" 0 0,+ entryOwnership = defaultOwnership, entryTime = 0, entryFormat = UstarFormat }@@ -323,7 +326,7 @@ entryTarPath = TarPath [PS.pstr|././@LongLink|] mempty, entryContent = OtherEntryType 'L' (LBS.fromStrict $ posixToByteString $ toPosixString tarpath) (fromIntegral $ length tarpath), entryPermissions = ordinaryFilePermissions,- entryOwnership = Ownership "" "" 0 0,+ entryOwnership = defaultOwnership, entryTime = 0, entryFormat = GnuFormat }@@ -340,7 +343,7 @@ entryTarPath = TarPath [PS.pstr|././@LongLink|] mempty, entryContent = OtherEntryType 'K' (LBS.fromStrict $ posixToByteString $ toPosixString $ linkTarget) (fromIntegral $ length linkTarget), entryPermissions = ordinaryFilePermissions,- entryOwnership = Ownership "" "" 0 0,+ entryOwnership = defaultOwnership, entryTime = 0, entryFormat = GnuFormat }
Codec/Archive/Tar/Write.hs view
@@ -204,7 +204,7 @@ putPosixString n s = posixToByteString (PS.take n s) <> BS.replicate (n - PS.length s) 0x00 putString :: FieldWidth -> String -> BS.ByteString-putString n s = BS.take n (packAscii s) <> BS.replicate (n - length s) 0x00+putString n s = BS.take n (packLatin1 s) <> BS.replicate (n - length s) 0x00 {-# SPECIALISE putLarge :: FieldWidth -> Int64 -> BS.ByteString #-} putLarge :: (Bits a, Integral a) => FieldWidth -> a -> BS.ByteString
changelog.md view
@@ -1,3 +1,8 @@+## 0.7.2.0 Bodigrim <andrew.lelechenko@gmail.com> July 2026++ * Allow writing entries with strings containing the entire set of Latin-1 encoding,+ so that at least we can write any entry we can read.+ ## 0.7.1.0 Bodigrim <andrew.lelechenko@gmail.com> April 2026 * Support long file paths and symlinks in PAX format.
tar.cabal view
@@ -1,6 +1,6 @@ cabal-version: 2.2 name: tar-version: 0.7.1.0+version: 0.7.2.0 license: BSD-3-Clause license-file: LICENSE author: Duncan Coutts <duncan@community.haskell.org>@@ -56,10 +56,10 @@ deepseq >= 1.1 && < 1.6, directory >= 1.3.8.0 && < 1.4, directory-ospath-streaming >= 0.2.1 && < 0.4,- file-io < 0.2,+ file-io < 0.3, filepath >= 1.4.100 && < 1.6, os-string >= 2.0 && < 2.1,- time < 1.16,+ time < 1.17, transformers < 0.7, exposed-modules:@@ -140,4 +140,4 @@ bytestring >= 0.10, directory >= 1.2, temporary < 1.4,- tasty-bench >= 0.4 && < 0.5+ tasty-bench >= 0.4 && < 0.6