I'm not sure whether this will have the desired effect in all
  cases; however, it works for me. I've long desired a
  `--global` installation for cabal and this seems to at least
  get the bootstrap right.

--
Jason Dusek

I've taken this code, added to it and integrated it into cabal-install 0.7
And then tested it with this setup:

   Debian GNU/Linux squeeze (testing)
   GHC 6.10.3
   Cabal 1.7.2
   cabal-install 0.7

darcs patch attached with the changes below. Thanks Jason!


- Dino Morelli


-----
Sat Jun 13 11:09:58 EDT 2009  Dino Morelli <[email protected]>
  * Now supporting explicit --user or --global switches in bootstrap.sh with 
usage feedback for bad args
  This change was adapted from work submitted to the cabal-devel mailing list 
by Jason Dusek.
    {
    hunk ./bootstrap.sh 21
    +SCOPE_OF_INSTALLATION="--user"
    +
    +
    +for arg in $*
    +do
    +  case "${arg}" in
    +    "--user")
    +      SCOPE_OF_INSTALLATION=${arg}
    +      shift;;
    +    "--global")
    +      SCOPE_OF_INSTALLATION=${arg}
    +      PREFIX="/usr/local"
    +      shift;;
    +    *)
    +      echo "Unknown argument or option, quitting: ${arg}"
    +      echo "usage: bootstrap.sh [OPTION]"
    +      echo
    +      echo "options:"
    +      echo "   --user    Install for the local user (default)"
    +      echo "   --global  Install systemwide"
    +      exit;;
    +  esac
    +done
    hunk ./bootstrap.sh 164
    -  ./Setup configure --user "--prefix=${PREFIX}" \
    +  ./Setup configure ${SCOPE_OF_INSTALLATION} "--prefix=${PREFIX}" \
    }
-----

--
Dino Morelli  email: [email protected]  web: http://ui3.info/d/  irc: dino-
pubkey: http://ui3.info/d/dino-4AA4F02D-pub.gpg
Sat Jun 13 11:09:58 EDT 2009  Dino Morelli <[email protected]>
  * Now supporting explicit --user or --global switches in bootstrap.sh with 
usage feedback for bad args
  This change was adapted from work submitted to the cabal-devel mailing list 
by Jason Dusek.

New patches:

[Now supporting explicit --user or --global switches in bootstrap.sh with usage 
feedback for bad args
Dino Morelli <[email protected]>**20090613150958
 Ignore-this: 490a4fcdd5bc1940d6f32d71b0a042a5
 This change was adapted from work submitted to the cabal-devel mailing list by 
Jason Dusek.
] {
hunk ./bootstrap.sh 21
 CURL=${CURL:-curl}
 TAR=${TAR:-tar}
 GUNZIP=${GUNZIP:-gunzip}
+SCOPE_OF_INSTALLATION="--user"
+
+
+for arg in $*
+do
+  case "${arg}" in
+    "--user")
+      SCOPE_OF_INSTALLATION=${arg}
+      shift;;
+    "--global")
+      SCOPE_OF_INSTALLATION=${arg}
+      PREFIX="/usr/local"
+      shift;;
+    *)
+      echo "Unknown argument or option, quitting: ${arg}"
+      echo "usage: bootstrap.sh [OPTION]"
+      echo
+      echo "options:"
+      echo "   --user    Install for the local user (default)"
+      echo "   --global  Install systemwide"
+      exit;;
+  esac
+done
 
 
 # Versions of the packages to install.
hunk ./bootstrap.sh 164
     || die "Compiling the Setup script failed"
   [ -x Setup ] || die "The Setup script does not exist or cannot be run"
 
-  ./Setup configure --user "--prefix=${PREFIX}" \
+  ./Setup configure ${SCOPE_OF_INSTALLATION} "--prefix=${PREFIX}" \
     --with-compiler=${GHC} --with-hc-pkg=${GHC_PKG} \
     ${EXTRA_CONFIGURE_OPTS} ${VERBOSE} \
     || die "Configuring the ${PKG} package failed"
}

Context:

[Fix sdist
Duncan Coutts <[email protected]>**20090605023441
 Fix handling of base dir in tar file creation.
] 
[Fix use of deprecated version constructors
Duncan Coutts <[email protected]>**20090604180500] 
[Only report preferred new versions of cabal-install are available
Duncan Coutts <[email protected]>**20090604175726
 That is, use the "preferred-versions" mechanism when deciding
 whether there is a new version available. This would allow us to
 upload a new version without everyone immediately being told to
 get it and try it out.
] 
[Make cabal upload/check print out the error messages reported by the server
Duncan Coutts <[email protected]>**20090604124836
 The code to do it was already there but we were checking for the
 mime type text/plain using just (==) when in fact the server reports  
   text/plain; charset="ISO-8859-1"
 so we have to parse the field a bit better (still a bit of a hack).
] 
[Require latest Cabal lib version
Duncan Coutts <[email protected]>**20090603102312] 
[Improve formatting of cabal check output
Duncan Coutts <[email protected]>**20090603102254] 
[Only apply preferences to base if its version is unbounded above
Duncan Coutts <[email protected]>**20090603101623
 Fixes ticket #485. This means that for constraints like:
     build-depends: base >= 3 && < 5
 we will pick version 4. However we will continue to apply the
 version 3 preference for things like:
     build-depends: base >= 3
 Where there is no upper bound on the version. Note that we now
 also ignore preferences for base given on the command line.
 We should implement #483 to split prefs from shims.
] 
[Improve the parse error message for package name/deps
Duncan Coutts <[email protected]>**20090321154623
 Make it clear that it's the specification of the package name that
 is at fault rather than the package to which the name refers.
] 
[Debian in their wisdom decided to build network against parsec 3.
Duncan Coutts <[email protected]>**20090308142925
 So checking for parsec 2 fails. We don't strictly need parsec, it's
 just a dependency of network, so remove the check.
] 
[Simplify version ranges before printing in error messages
Duncan Coutts <[email protected]>**20090531191346
 Part of ticket #369
] 
[Use new top handler, should get better error messages
Duncan Coutts <[email protected]>**20090531190318] 
[Fix uses of deprecated stuff
Duncan Coutts <[email protected]>**20090531190239] 
[New development branch, version 0.7
Duncan Coutts <[email protected]>**20090531184336
 Update to development version of Cabal
] 
[Solaris 9 /bin/sh doesn't like the ! syntax in bootstrap.sh
Duncan Coutts <[email protected]>**20090318091730] 
[Clarify the instructions in the README and bootstrap.sh
Duncan Coutts <[email protected]>**20090315125407
 Addresses the complaint in ticket #523.
] 
[Select Configuration file via env var CABAL_CONFIG.
Paolo Losi <[email protected]>**20090223005251
 Ignore-this: 26e5ded85cb69cb3a19cd57680a8a362
] 
[Update tar code based on new tar package
Duncan Coutts <[email protected]>**20090301174949] 
[Actually does compile with unix-1.0 that comes with ghc-6.6
Duncan Coutts <[email protected]>**20090221154605
 ghc-6.6.1 came with unix-2.1
] 
[TAG 0.6.2
Duncan Coutts <[email protected]>**20090219130720] 
Patch bundle hash:
9f8b08855ef7521bb1560cba7a557fb89870df9c
_______________________________________________
cabal-devel mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/cabal-devel

Reply via email to