Blame cabal-install-sdist-file-permissions.patch
|
|
308e2aa |
--- cabal-install-2.4.1.0/Distribution/Client/CmdSdist.hs.orig 1970-01-01 07:30:00.000000000 +0730
|
|
|
308e2aa |
+++ cabal-install-2.4.1.0/Distribution/Client/CmdSdist.hs 2020-04-14 13:08:58.730089942 +0800
|
|
|
308e2aa |
@@ -84,7 +84,8 @@
|
|
|
308e2aa |
import qualified Data.Set as Set
|
|
|
308e2aa |
import System.Directory
|
|
|
308e2aa |
( getCurrentDirectory, setCurrentDirectory
|
|
|
308e2aa |
- , createDirectoryIfMissing, makeAbsolute )
|
|
|
308e2aa |
+ , createDirectoryIfMissing, makeAbsolute
|
|
|
308e2aa |
+ , getPermissions, executable )
|
|
|
308e2aa |
import System.FilePath
|
|
|
308e2aa |
( (), (<.>), makeRelative, normalise, takeDirectory )
|
|
|
308e2aa |
|
|
|
308e2aa |
@@ -269,10 +270,11 @@
|
|
|
308e2aa |
Right path -> tell [Tar.directoryEntry path]
|
|
|
308e2aa |
|
|
|
308e2aa |
forM_ files $ \(perm, file) -> do
|
|
|
308e2aa |
+ realPerm <- liftIO $ getPermissions file
|
|
|
308e2aa |
let fileDir = takeDirectory (prefix file)
|
|
|
308e2aa |
perm' = case perm of
|
|
|
308e2aa |
- Exec -> Tar.executableFilePermissions
|
|
|
308e2aa |
- NoExec -> Tar.ordinaryFilePermissions
|
|
|
308e2aa |
+ Exec | executable realPerm -> Tar.executableFilePermissions
|
|
|
308e2aa |
+ _ -> Tar.ordinaryFilePermissions
|
|
|
308e2aa |
needsEntry <- gets (Set.notMember fileDir)
|
|
|
308e2aa |
|
|
|
308e2aa |
when needsEntry $ do
|