
There seems to be an assumption amongst the community that a user's home directory is the most useful place for cabal to install to by default. A few people have challenged that. I wanted to find out which one most people do actually prefer, so please go and vote on this poll. http://noordering.wordpress.com/2009/04/21/cabals-default-install-location/ It's no more than a straw poll, I don't know how protected it is against ballot stuffing, but I'm pretty confident that Haskellers are trustworthy enough not to play with it that way. I'll tell you all the result next week. Bob

On Tue, 2009-04-21 at 09:20 +0200, Thomas Davie wrote:
There seems to be an assumption amongst the community that a user's home directory is the most useful place for cabal to install to by default. A few people have challenged that. I wanted to find out which one most people do actually prefer, so please go and vote on this poll.
http://noordering.wordpress.com/2009/04/21/cabals-default-install-location/
It's no more than a straw poll, I don't know how protected it is against ballot stuffing, but I'm pretty confident that Haskellers are trustworthy enough not to play with it that way.
I'll tell you all the result next week.
Thanks. If you don't mind could you also post the result in a ticket in the Cabal/Hackage trac: http://hackage.haskell.org/trac/hackage/ I don't promise that we'll respect the outcome of the vote but it could be an interesting data point and more feedback is better than less. Concrete suggestions for how to improve the behaviour are also welcome. I mean more than just "the default should be global", what do we do when we've got a dozen packages to install, should the user have to build them all with sudo or should we build as user and install as root, prompting with sudo each time? For user installs our problem is that ~/.cabal/bin is not on the $PATH but it's not clear if we can symlink into ~/bin by default. So yes, concrete suggestions for the user interaction behaviour would be great. Duncan

Thomas Davie
There seems to be an assumption amongst the community that a user's home directory is the most useful place for cabal to install to by default. A few people have challenged that. I wanted to find out which one most people do actually prefer, so please go and vote on this poll.
http://noordering.wordpress.com/2009/04/21/cabals-default-install-location/
It's no more than a straw poll, I don't know how protected it is against ballot stuffing, but I'm pretty confident that Haskellers are trustworthy enough not to play with it that way.
I'll tell you all the result next week.
alias cabal='cabal --global' -- (c) this sig last receiving data processing entity. Inspect headers for copyright history. All rights reserved. Copying, hiring, renting, performance and/or quoting of this signature prohibited.

$ cat .cabal/config ... root-cmd: sudo ... user-install: False ... On 21 Apr 2009, at 14:41, Achim Schneider wrote:
Thomas Davie
wrote: There seems to be an assumption amongst the community that a user's home directory is the most useful place for cabal to install to by default. A few people have challenged that. I wanted to find out which one most people do actually prefer, so please go and vote on this poll.
http://noordering.wordpress.com/2009/04/21/cabals-default-install-location/
It's no more than a straw poll, I don't know how protected it is against ballot stuffing, but I'm pretty confident that Haskellers are trustworthy enough not to play with it that way.
I'll tell you all the result next week.
alias cabal='cabal --global'
-- (c) this sig last receiving data processing entity. Inspect headers for copyright history. All rights reserved. Copying, hiring, renting, performance and/or quoting of this signature prohibited.
_______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe

Achim Schneider
Thomas Davie
wrote: There seems to be an assumption amongst the community that a user's home directory is the most useful place for cabal to install to by default. A few people have challenged that. I wanted to find out which one most people do actually prefer, so please go and vote on this poll.
http://noordering.wordpress.com/2009/04/21/cabals-default-install-location/
It's no more than a straw poll, I don't know how protected it is against ballot stuffing, but I'm pretty confident that Haskellers are trustworthy enough not to play with it that way.
I'll tell you all the result next week.
alias cabal='cabal --global'
It's a trouble to distro maintainer, and relatively insecure for regular root user. -- c/* __o/* <\ * (__ */\ <

The default should at least be consistent among cabal install, runghc Setup.hs, installing GHC, Gtk2Hs, and so on. If GHC is installed in /home/myusername/local, what does cabal install --global ?

On Wed, 2009-04-22 at 11:33 +0200, david48 wrote:
The default should at least be consistent among cabal install, runghc Setup.hs, installing GHC, Gtk2Hs, and so on.
If GHC is installed in /home/myusername/local,
Where you choose to install ghc is not related.
what does cabal install --global ?
Global always means /usr/local by default, unless you change it in the cabal config file. By default ghc, gtk2hs also install globally in /usr/local (unless you specify a --prefix.) This tradition of global and /usr/local for ./configure scripts is ok, but for a convenient package manager it's not necessarily ideal. Duncan

On Wed, Apr 22, 2009 at 12:06 PM, Duncan Coutts wrote: On Wed, 2009-04-22 at 11:33 +0200, david48 wrote: The default should at least be consistent among cabal install, runghc
Setup.hs, installing GHC, Gtk2Hs, and so on. If GHC is installed in /home/myusername/local, Where you choose to install ghc is not related. What about the package list ?
In other words, why would I need a separate user and global package list if
ghc is installed in my home directory ?
David

On Wed, 2009-04-22 at 12:26 +0200, david48 wrote:
On Wed, Apr 22, 2009 at 12:06 PM, Duncan Coutts
wrote: On Wed, 2009-04-22 at 11:33 +0200, david48 wrote: > > The default should at least be consistent among cabal install, runghc > Setup.hs, installing GHC, Gtk2Hs, and so on. > > If GHC is installed in /home/myusername/local, Where you choose to install ghc is not related.
What about the package list ? In other words, why would I need a separate user and global package list if ghc is installed in my home directory ?
Sure, you don't strictly need two in that case. Duncan

Am Mittwoch 22 April 2009 12:06:37 schrieb Duncan Coutts:
On Wed, 2009-04-22 at 11:33 +0200, david48 wrote:
The default should at least be consistent among cabal install, runghc Setup.hs, installing GHC, Gtk2Hs, and so on.
If GHC is installed in /home/myusername/local,
Where you choose to install ghc is not related.
what does cabal install --global ?
Global always means /usr/local by default, unless you change it in the cabal config file.
By default ghc, gtk2hs also install globally in /usr/local (unless you specify a --prefix.)
But when I install a binary, it always ends up in /usr/lib and /usr/bin, not in /usr/local. How come? Fortunately, once I've got the first binary, it's source installs from then on :)
This tradition of global and /usr/local for ./configure scripts is ok, but for a convenient package manager it's not necessarily ideal.
Duncan

On Wed, 2009-04-22 at 11:33 +0200, david48 wrote:
The default should at least be consistent among cabal install, runghc Setup.hs, installing GHC, Gtk2Hs, and so on.
If GHC is installed in /home/myusername/local,
Where you choose to install ghc is not related.
what does cabal install --global ?
Global always means /usr/local by default, unless you change it in the cabal config file.
By default ghc, gtk2hs also install globally in /usr/local (unless you specify a --prefix.)
This tradition of global and /usr/local for ./configure scripts is ok, but for a convenient package manager it's not necessarily ideal.
Ubuntu/Debian policy seems to be installation into /var/lib/cabal . So it's clear that the whole hierarchy is managed by single tool cabal. Drawback is
On Wed, Apr 22, 2009 at 2:06 PM, Duncan Coutts

On Wed, Apr 22, 2009 at 1:28 PM, Victor Nazarov
Ubuntu/Debian policy seems to be installation into /var/lib/cabal . So it's clear that the whole hierarchy is managed by single tool cabal. Drawback is that you should add /var/lib/cabal/bin into your PATH.
(K)Ubuntu is so far back on GHC releases that I never install anything haskell from the repositories :(

Victor Nazarov
This tradition of global and /usr/local for ./configure scripts is ok, but for a convenient package manager it's not necessarily ideal.
Well, the system package manager uses /usr. But for locally compiled software, I don't see any good alternative to /usr/local. It is certainly what I'd expect, based on most other build systems I've used. Also, it's the default location for some non-cabalized packages.
Ubuntu/Debian policy seems to be installation into /var/lib/cabal .
Since when? I have a ton of stuff installed via apt-get, and I don't even have this directory. The policy is that everything from the repositories (i.e. .deb packages) get installed under /usr.
So it's clear that the whole hierarchy is managed by single tool cabal. Drawback is that you should add /var/lib/cabal/bin into your PATH.
Some systems used /opt in more or less this way. -k -- If I haven't seen further, it is by standing in the footprints of giants

On Apr 29, 2009, at 04:29 , Ketil Malde wrote:
Victor Nazarov
writes: Ubuntu/Debian policy seems to be installation into /var/lib/cabal .
Since when? I have a ton of stuff installed via apt-get, and I don't
Context suggests he means global installation via Cabal, not apt-get.
cabal. Drawback is that you should add /var/lib/cabal/bin into your PATH.
Some systems used /opt in more or less this way.
And still do (Solaris, Mac OS X). -- brandon s. allbery [solaris,freebsd,perl,pugs,haskell] allbery@kf8nh.com system administrator [openafs,heimdal,too many hats] allbery@ece.cmu.edu electrical and computer engineering, carnegie mellon university KF8NH

The results in the poll seem to have stabilised now, so I'll tell you what happened... For user installs: 103 For global installs: 52 Others: 9 Interesting Ideas: ------------------------ • Claus made the suggestion that there be no default, instead that cabal asks you which you prefer the first time you run, or directs you to the configuration file. • Many users made the suggestion that cabal should install globally when running as root, and for a user when running as a user, possibly also displaying a prominent message about what's going on. Conclusions: ------------------ Most people do indeed want user installs, but a very much not insignificant population want global installs. Perhaps one of these other suggestions is the way forward? Bob p.s. I personally very much like Claus' idea.

Thanks for all that. Some good suggestions. I've linked the results in the ticket on this issue so someone can re-read all the suggestions in detail when they come to update the behaviour (hopefully for 0.6.4 or something). http://hackage.haskell.org/trac/hackage/ticket/289#comment:17 Duncan On Thu, 2009-04-23 at 09:48 +0200, Thomas Davie wrote:
The results in the poll seem to have stabilised now, so I'll tell you what happened...
For user installs: 103 For global installs: 52 Others: 9
Interesting Ideas: ------------------------ • Claus made the suggestion that there be no default, instead that cabal asks you which you prefer the first time you run, or directs you to the configuration file. • Many users made the suggestion that cabal should install globally when running as root, and for a user when running as a user, possibly also displaying a prominent message about what's going on.
Conclusions: ------------------ Most people do indeed want user installs, but a very much not insignificant population want global installs. Perhaps one of these other suggestions is the way forward?
Bob
p.s. I personally very much like Claus' idea.

Duncan Coutts wrote:
Thanks for all that. Some good suggestions.
I've linked the results in the ticket on this issue so someone can re-read all the suggestions in detail when they come to update the behaviour (hopefully for 0.6.4 or something).
http://hackage.haskell.org/trac/hackage/ticket/289#comment:17
Could you add this[1] link too, because it highlights the problem with user installs[1]. i.e. you either have to have root access to install the dependencies, or install non-haskell dependencies in your home directory. Edward 1. http://haskell.org/pipermail/haskell-cafe/2009-April/060441.html

Edward Middleton
Could you add this[1] link too, because it highlights the problem with user installs[1]. i.e. you either have to have root access to install the dependencies, or install non-haskell dependencies in your home directory.
Edward
1. http://haskell.org/pipermail/haskell-cafe/2009-April/060441.html
I really, really don't think messed up global installs are an issue that cabal should worry about. A messed up OpenGL is more than enough reason to bug your admin, and a missing, say, libXML, is a thing you either have to deal with yourself or find a well-disposed admin. In any case, the cost of installing/fixing the install greatly outweights the --user/--global issue. -- (c) this sig last receiving data processing entity. Inspect headers for copyright history. All rights reserved. Copying, hiring, renting, performance and/or quoting of this signature prohibited.
participants (11)
-
Achim Schneider
-
Brandon S. Allbery KF8NH
-
Daniel Fischer
-
david48
-
Duncan Coutts
-
Edward Middleton
-
Ketil Malde
-
Miguel Mitrofanov
-
Thomas Davie
-
Victor Nazarov
-
Xiao-Yong Jin