
#454: file permissions of installed files on windows ----------------------------+----------------------------------------------- Reporter: Toxaris | Owner: Type: defect | Status: new Priority: normal | Milestone: Cabal-1.6 Component: Cabal library | Version: 1.6.0.1 Severity: normal | Resolution: Keywords: | Difficulty: normal Ghcversion: 6.10.1 | Platform: Windows ----------------------------+----------------------------------------------- Changes (by duncan): * summary: file permissions of executable on vista => file permissions of installed files on windows Comment: Unfortunately I'm completely stuck here. I cannot reproduce any of these issues because I've only go access as non-admin to a win2k3 machine. We need to get clear what is really going on and in what environments. The important factors seem to be if the user is using ghc-6.8 or 6.10, Cabal-1.2 or 1.6, XP or Vista and if they're installing as admin or not. Whether they are global installs or not is also relevant. In the email thread above Dominic notes: {{{ When I rebuild the package *without* having cleaned out haskell_packages then I get the access error. I think this is because cabal (copyFile) doesn't want to overwrite a read only file even though the directory permissions should allow it to do so. }}} This should not be the case, but we should confirm it. The copyFile function creates a temporary file in the target directory, copies the data into it, then atomically renames over the target file. That should not fail even if the target file is read only. In my tests that works fine. I think what is clear however is that we should not be copying the original file permissions. We should set them explicitly. However what we should set them to is not clear. For a global install it would be customary to make the files read only while for a per-user install that is not necessary. How do ordinary unix installers manage this? Is it just via the umask? So perhaps all we have to do is set files to be readable (and executable files to be executable). -- Ticket URL: http://hackage.haskell.org/trac/hackage/ticket/454#comment:4 Hackage http://haskell.org/cabal/ Hackage: Cabal and related projects