Re: [Haskell-cafe] Re: Unable to install packages

2010-11-30 Thread Ketil Malde

Thanks for the clarification, the SICP article was something I feel I
should have known, but did not.

It seems to me that while there are *three* ways to install stuff: apt-get
install, cabal install --global, and cabal install --user, there are
just *two* ways things get installed, globally and user(ly?).

The obvious solution would be to have three package.confs as well, say
system (/var/lib), global (/usr/lib?), and user (~/.ghc).
Is there a fundamental limitation of GHC or something that makes it
impossible to work with three package configuration files?  Or would
this not solve anything after all?  

-k

Albert Y. C. Lai tre...@vex.net writes:

 On 10-11-29 03:15 PM, Albert Y. C. Lai wrote:
 cabal install --global binary
 apt-get install libghc6-binary-dev

 They are the same version (at the time of writing, and assume Ubuntu
 10.10) and they will fight for the unique throne of binary-0.5.0.2 in
 the metadata.

 Oh bother, Debian/Ubuntu's packages are even more treacherous. They
 circumvent the uniqueness checks of ghc-pkg register. They just
 smuggle records into /var/lib/ghc-6.12.1/package.conf.d and call
 ghc-pkg recache. This procedure allows both binary-0.5.0.2 instances
 to be recorded, both as global. Ironically, ghc-pkg check does not see
 a problem.

 But this is more corruption, not less:

 cabal install --global maccatcher
 (this brings in binary)
 apt-get install libghc6-agda-dev
 (this brings in libghc6-binary-dev)

 The same problem remains. When you finally try to use binary, GHC
 still picks one instance only. Depend on luck, one of maccatcher and
 agda is hosed.
 ___
 Haskell-Cafe mailing list
 Haskell-Cafe@haskell.org
 http://www.haskell.org/mailman/listinfo/haskell-cafe

-- 
If I haven't seen further, it is by standing in the footprints of giants
___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] Re: Unable to install packages

2010-11-29 Thread Albert Y. C. Lai

On 10-11-28 09:55 AM, Ketil Malde wrote:

Joachim Breitnerm...@joachim-breitner.de  writes:


I would not recommend using --global on Debian/Ubuntu-systems, as it
might interfere with packages installed by Debian.


But 'cabal install --global' installs in /usr/local/, does it not?
And official packages (i.e. debs) put stuff in /usr, so these would be
separate.


Metadata is more important than data.

In the case of Debian/Ubuntu's GHC, both 'cabal install --global' and 
'apt-get install' records in /var/lib/ghc-6.12.3/package.conf.d


If you cabal install one version and apt-get another version, sure, they 
are two different records in the metadata, no immediate problem.


But how about

  cabal install --global binary
  apt-get install libghc6-binary-dev

They are the same version (at the time of writing, and assume Ubuntu 
10.10) and they will fight for the unique throne of binary-0.5.0.2 in 
the metadata.


The immediate problem: they likely have different ABI hashes because 
they're built differently. Suppose you


  cabal install --global binary
  (suppose it becomes binary-0.5.0.2-300339c66a688207241e4643a9e17721)
  cabal install --global I-depend-on-binary
  apt-get install libghc6-binary-dev
  (this is binary-0.5.0.2-32d59ff8fdfc79aa888e82997612374d in Ubuntu 
10.10 i386 32-bit)


Now I-depend-on-binary is hosed. It was built against 
binary-0.5.0.2-300339c66a688207241e4643a9e17721 but that's usurped.


OK, who would knowingly usurp his/her own binary-0.5.0.2? Of course no 
one knowingly does. But everyone does it unknowingly:


  cabal install --global maccatcher
  (this brings in binary)
  apt-get install libghc6-agda-dev
  (this brings in libghc6-binary-dev)

Now maccatcher is hosed.

See also my http://www.vex.net/~trebla/haskell/sicp.xhtml

P.S. Deleting --global mitigates this problem but causes some other 
problem. I will describe it in my article in the future.

___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] Re: Unable to install packages

2010-11-29 Thread Albert Y. C. Lai

On 10-11-29 03:15 PM, Albert Y. C. Lai wrote:

cabal install --global binary
apt-get install libghc6-binary-dev

They are the same version (at the time of writing, and assume Ubuntu
10.10) and they will fight for the unique throne of binary-0.5.0.2 in
the metadata.


Oh bother, Debian/Ubuntu's packages are even more treacherous. They 
circumvent the uniqueness checks of ghc-pkg register. They just smuggle 
records into /var/lib/ghc-6.12.1/package.conf.d and call ghc-pkg 
recache. This procedure allows both binary-0.5.0.2 instances to be 
recorded, both as global. Ironically, ghc-pkg check does not see a problem.


But this is more corruption, not less:


cabal install --global maccatcher
(this brings in binary)
apt-get install libghc6-agda-dev
(this brings in libghc6-binary-dev)


The same problem remains. When you finally try to use binary, GHC still 
picks one instance only. Depend on luck, one of maccatcher and agda is 
hosed.

___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] Re: Unable to install packages

2010-11-28 Thread Joachim Breitner
Hi,

Am Samstag, den 27.11.2010, 21:37 -0800 schrieb Moisei:
 At the Leksah website there are instructions for installing it on
 Ubuntu.
1. sudo apt-get install cabal-install
2. sudo apt-get install libghc6-zlib-dev
3. cabal update
4. sudo cabal install cabal-install --global
5. sudo apt-get install libgtk2.0-dev
6. sudo apt-get install libgtksourceview2.0-dev
7. sudo cabal install alex --global
8. sudo cabal install happy --global
9. sudo cabal install gtk2hs-buildtools --global
   10. sudo apt-get install libglade2-dev
   11. sudo cabal install glade --global
   12. sudo cabal install leksah --global

I would not recommend using --global on Debian/Ubuntu-systems, as it
might interfere with packages installed by Debian. I recommend to not
use --global and install it into your /home (and add ~/.cabal/bin to
your PATH).

And I wonder if they really need the very latest versions of alex and
happy (Debian is one or two minor versions behind) or whether apt-get
install alex happy would suffice...

Greetings,
Joachim
-- 
Joachim nomeata Breitner
  mail: m...@joachim-breitner.de | ICQ# 74513189 | GPG-Key: 4743206C
  JID: nome...@joachim-breitner.de | http://www.joachim-breitner.de/
  Debian Developer: nome...@debian.org


signature.asc
Description: This is a digitally signed message part
___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] Re: Unable to install packages

2010-11-28 Thread Ketil Malde
Joachim Breitner m...@joachim-breitner.de writes:

 I would not recommend using --global on Debian/Ubuntu-systems, as it
 might interfere with packages installed by Debian.

But 'cabal install --global' installs in /usr/local/, does it not?
And official packages (i.e. debs) put stuff in /usr, so these would be
separate.

 And I wonder if they really need the very latest versions of alex and
 happy (Debian is one or two minor versions behind) or whether apt-get
 install alex happy would suffice...

It would be nice if cabal could be aware of OS package managers, and
suggest this as an option - or be configured to just use the OS package
by default, as long as it provides the requried versions.

-k
-- 
If I haven't seen further, it is by standing in the footprints of giants
___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


[Haskell-cafe] Re: Unable to install packages

2010-11-27 Thread Moisei
At the Leksah website there are instructions for installing it on
Ubuntu.
   1. sudo apt-get install cabal-install
   2. sudo apt-get install libghc6-zlib-dev
   3. cabal update
   4. sudo cabal install cabal-install --global
   5. sudo apt-get install libgtk2.0-dev
   6. sudo apt-get install libgtksourceview2.0-dev
   7. sudo cabal install alex --global
   8. sudo cabal install happy --global
   9. sudo cabal install gtk2hs-buildtools --global
  10. sudo apt-get install libglade2-dev
  11. sudo cabal install glade --global
  12. sudo cabal install leksah --global


On Nov 27, 4:50 pm, Joachim Breitner m...@joachim-breitner.de wrote:
 Hi,

 Am Samstag, den 27.11.2010, 19:55 +0100 schrieb Roland Senn:



  Am 27.11.2010 19:36, schrieb Joachim Breitner:
   Hi,
   And there is even a leksah package
   on Debian, and in Ubuntu since natty.

   Greetings,
   Joachim
  I tried:
  sudo apt-get install leksah
  and got:
  Reading package lists... Done
  Building dependency tree
  Reading state information... Done
  E: Unable to locate package leksah

  Has this package an other name?

 no:http://packages.ubuntu.com/search?keywords=leksah
 but maybe you don’t have the universe sources active? Or are not
 actually running Ubuntu natty? I don’t know much about Ubuntu myself,
 sorry.

 Greetings,
 Joachim

 --
 Joachim nomeata Breitner
   mail: m...@joachim-breitner.de | ICQ# 74513189 | GPG-Key: 4743206C
   JID: nome...@joachim-breitner.de |http://www.joachim-breitner.de/
   Debian Developer: nome...@debian.org

  signature.asc
  1KViewDownload

 ___
 Haskell-Cafe mailing list
 haskell-c...@haskell.orghttp://www.haskell.org/mailman/listinfo/haskell-cafe
___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe