ANNOUNCE: GHC version 6.10.1 - MacOS installer
Jason Dagit
dagit at codersbase.com
Fri Nov 21 08:09:06 EST 2008
On Wed, Nov 19, 2008 at 1:28 AM, Manuel M T Chakravarty
<chak at cse.unsw.edu.au> wrote:
> Jason Dagit:
>
> On Wed, Nov 5, 2008 at 5:36 PM, Manuel M T Chakravarty
> <chak at cse.unsw.edu.au> wrote:
>>
>> Ian Lynagh:
>>>
>>> On Tue, Nov 04, 2008 at 09:02:12PM -0500, Brandon S. Allbery KF8NH wrote:
>>>>
>>>> On 2008 Nov 4, at 20:26, Jason Dagit wrote:
>>>>>
>>>>> On Tue, Nov 4, 2008 at 4:26 PM, Manuel M T Chakravarty
>>>>> <chak at cse.unsw.edu.au> wrote:
>>>>>>
>>>>>> Are you sure it does deinstall the 6.8 compiler?
>>>>>>
>>>>>> After installing 6.10, there should be a 608/ and a 610/
>>>>>> directory. This
>>>>>> certainly happens on my Mac and I am not aware of an option to
>>>>>> change that
>>>>>> behaviour.
>>>>
>>>> I expect if you used the OSX installer then /Library/Receipts is
>>>> screwing you (it wipes the old files listed in the .bom file). Try
>>>> finding and removing the receipt directory and bom file before
>>>> installing.
>>>
>>> The only file I can see that looks relevant is
>>> /Library/Receipts/boms/org.haskell.glasgowHaskellCompiler.ghc.pkg.bom
>>>
>>> Wouldn't removing it make uninstall impossible?
>>>
>>> In fact, if you did manage to get 2 versions installed, how would
>>> /Library/Frameworks/GHC.framework/Tools/Uninstaller
>>> know which version to uninstall? Wouldn't it only know how to uninstall
>>> the version it came with? I'd suggest that the overlapping file
>>> "Uninstaller" could be why the older version gets removed, but that
>>> wouldn't explain why Manuel can install both at once.
>>
>> A current limitation of the MacOS package system is that it does not
>> support uninstalling of packages; cf
>>
>>
>> http://developer.apple.com/documentation/DeveloperTools/Conceptual/SoftwareDistribution/Managed_Installs/chapter_5_section_7.html#//apple_ref/doc/uid/10000145i-CH6-DontLinkElementID_29
>>
>> This is not a big drama on MacOS, as MacOS encourages the distribution of
>> software packages as "bundles":
>>
>>
>> http://developer.apple.com/documentation/CoreFoundation/Conceptual/CFBundles/CFBundles.html
>>
>> This essentially means that instead of sprinkling files all over the file
>> system (as is common in other OSes), MacOS applications and frameworks
>> (Mac-speak for libraries) are kept in a single directory. Uninstalling then
>> means doing an rm -rf on that directory.
>>
>> Unfortunately, some applications (including GHC and Apple's Xcode IDE)
>> can't be entirely contained in a single directory. In the case of GHC, we
>> want symlinks in /usr/bin. The established way of uninstalling such
>> applications is by supplying an Uninstaller script, just as I did for GHC.
>> (Apple does the same for Xcode.)
>>
>> The purpose of the Uninstaller script is too completely remove
>> GHC.framework from a machine - not just to remove one version. In fact, if
>> more than one version of GHC is installed, the Uninstaller will refuse to
>> run and require the manual removal of all versions, but the current (easily
>> achieved by a "rm -rf
>> /Library/Frameworks/GHC.framework/Versions/<version>"). The main feature of
>> the Uninstaller script is to get rid of all symlinks pointing into
>> GHC.framework. The framework itself is just deleted by a "rm -rf" as
>> expected. (It also removes the above mentioned receipt file.)
>>
>> So, to directly answer the above questions:
>> * The package manger (which uses the receipts) can't uninstall and the
>> uninstaller script doesn't need the receipt. So, even after deleteing the
>> receibt, you can still uninstall.
>> * The Uninstaller can uninstall any version (at least as long as no
>> symlinks are put into new directories outside of the bundle that the
>> Uninstaller doesn't know about).
>
> Is there an update on this thread? I would still like to have my cake and
> eat it too, meaning ghc 6.8.3 and ghc 6.10.1. As far as I know the
> installer hasn't been updated and if I try again I will lose my copy of
> 6.8.3.
>
> Sorry, but for the moment, my (rather limited knowledge) of the
> MacOS packaging system is exhausted, and currently I don't have the time to
> search the web or experiment to try to learn more. It would be helpful to
> have the input of somebody who has more experience with MacOS packages.
> Manuel
Okay. That's fine, the OSX installer system sounds odd. I don't want
to fight with it myself. I just want to upgrade ghc and I was getting
pressure to do so and I tried the .tar.bz version, but I had some
annoying experiences that I can share.
So, the page here:
http://www.haskell.org/ghc/download_ghc_6_10_1.html#macosxintel
Has only this as installation instructions:
This is a binary distribution for Mac OS X 10.5 (Leopard), prepared by
Christian Maeder. It needs libedit.2.dylib, libncurses.5.dylib and
libgmp.3.dylib under /opt/local/lib/.
I had no idea how to do the install or how to satisfy the
requirements. By pestering others I learned that you install
libraries into /opt/local using MacPorts. The next challenge was
learning what to do with the .tar.bz file once it was downloaded. I
found an INSTALL file inside the tarball with some instructions
thankfully. I wish the download page said something about this. It
was quite a mystery. I only looked in the tarball because I was
frustrated. I don't like downloading and untarring things if i don't
know what to expect inside them.
But, I still think I did something wrong because the first thing I
tried to build with 6.10 complained that -lgmp was not found. I have
checked, it's installed and I saw the ./configure script for the 6.10
installation find it.
Quite baffling.
I guess I'm stuck on 6.8.3 for a while longer.
Jason
More information about the Glasgow-haskell-users
mailing list