I am writing my first Haskell program, a web application based on the Yesod framework.
I compiled the code using cabal configure && cabal build. When I try to run the executable, I get the following error:
-bash: dist/build/MyApp/MyApp: Operation not permitted
I installed the 64-bit Haskell platform (2012.2.0.0) on OS X Mountain Lion. I had originally installed the 32-bit version, but got the same error, so I uninstalled it and tried the 64-bit version.
The application compiles and links with no errors or warnings.
I even tried the fix described in http://reviews.cnet.com/8301-13727_7-57374676-263/workarounds-for-quarantine-bug-in-os-x-lion/, but it made no difference.
UPDATE: The plot thickens. The source tree is actually on an encrypted sparse bundle (all of my source code is). When I copy the tree to my home directory, it compiles and runs.
The mount command does not show the noexec option:
/dev/disk2s9 on /Volumes/Personal (hfs, local, nodev, nosuid, journaled, noowners, quarantine, mounted by grk)
I’m not sure about the quarantine option, but I suspect it comes from Symantec Endpoint Protection (required by my employer). I’ll try disabling it for the sparse bundle.
I found the answer at the sister site apple.stackexchange.com: https://apple.stackexchange.com/questions/64456/mount-is-adding-a-quarantine-flag-causing-bin-bash-bad-interpreter-operatio
The sparse bundle is actually marked with the quarantine flag. I unmounted the volume and removed the quarantine with the following command:
then remounted. Problem solved.