From 975fc46e0055a9f9b434d594569a18eaa0ef0320 Mon Sep 17 00:00:00 2001
From: Luite Stegeman <stegeman@gmail.com>
Date: Thu, 26 Mar 2015 13:01:21 +0100
Subject: [PATCH] fix ghcjs-pkg version number handling

---
 Cabal/Distribution/Simple/GHCJS.hs           | 18 +++++++++---------
 Cabal/Distribution/Simple/Program/Builtin.hs |  3 ++-
 2 files changed, 11 insertions(+), 10 deletions(-)

diff --git a/Cabal/Distribution/Simple/GHCJS.hs b/Cabal/Distribution/Simple/GHCJS.hs
index b2cfae4439..82784c45de 100644
--- a/Cabal/Distribution/Simple/GHCJS.hs
+++ b/Cabal/Distribution/Simple/GHCJS.hs
@@ -100,20 +100,20 @@ configure verbosity hcPath hcPkgPath conf0 = do
     }
     anyVersion (userMaybeSpecifyPath "ghcjs-pkg" hcPkgPath conf1)
 
-  Just ghcjsPkgGhcVersion <- findGhcjsPkgGhcVersion
-                               verbosity (programPath ghcjsPkgProg)
+  Just ghcjsPkgGhcjsVersion <- findGhcjsPkgGhcjsVersion
+                                  verbosity (programPath ghcjsPkgProg)
 
-  when (ghcjsVersion /= ghcjsPkgVersion) $ die $
+  when (ghcjsVersion /= ghcjsPkgGhcjsVersion) $ die $
        "Version mismatch between ghcjs and ghcjs-pkg: "
     ++ programPath ghcjsProg ++ " is version " ++ display ghcjsVersion ++ " "
-    ++ programPath ghcjsPkgProg ++ " is version " ++ display ghcjsPkgVersion
+    ++ programPath ghcjsPkgProg ++ " is version " ++ display ghcjsPkgGhcjsVersion
 
-  when (ghcjsGhcVersion /= ghcjsPkgGhcVersion) $ die $
+  when (ghcjsGhcVersion /= ghcjsPkgVersion) $ die $
        "Version mismatch between ghcjs and ghcjs-pkg: "
     ++ programPath ghcjsProg
     ++ " was built with GHC version " ++ display ghcjsGhcVersion ++ " "
     ++ programPath ghcjsPkgProg
-    ++ " was built with GHC version " ++ display ghcjsPkgGhcVersion
+    ++ " was built with GHC version " ++ display ghcjsPkgVersion
 
   -- be sure to use our versions of hsc2hs, c2hs, haddock and ghc
   let hsc2hsProgram' =
@@ -869,9 +869,9 @@ findGhcjsGhcVersion :: Verbosity -> FilePath -> IO (Maybe Version)
 findGhcjsGhcVersion verbosity pgm =
   findProgramVersion "--numeric-ghc-version" id verbosity pgm
 
-findGhcjsPkgGhcVersion :: Verbosity -> FilePath -> IO (Maybe Version)
-findGhcjsPkgGhcVersion verbosity pgm =
-  findProgramVersion "--numeric-ghc-version" id verbosity pgm
+findGhcjsPkgGhcjsVersion :: Verbosity -> FilePath -> IO (Maybe Version)
+findGhcjsPkgGhcjsVersion verbosity pgm =
+  findProgramVersion "--numeric-ghcjs-version" id verbosity pgm
 
 -- -----------------------------------------------------------------------------
 -- Registering
diff --git a/Cabal/Distribution/Simple/Program/Builtin.hs b/Cabal/Distribution/Simple/Program/Builtin.hs
index dc10b2b2be..a4e56190dd 100644
--- a/Cabal/Distribution/Simple/Program/Builtin.hs
+++ b/Cabal/Distribution/Simple/Program/Builtin.hs
@@ -144,9 +144,10 @@ ghcjsProgram = (simpleProgram "ghcjs") {
     programFindVersion = findProgramVersion "--numeric-ghcjs-version" id
   }
 
+-- note: version is the version number of the GHC version that ghcjs-pkg was built with
 ghcjsPkgProgram :: Program
 ghcjsPkgProgram = (simpleProgram "ghcjs-pkg") {
-    programFindVersion = findProgramVersion "--ghcjs-version" $ \str ->
+    programFindVersion = findProgramVersion "--version" $ \str ->
       -- Invoking "ghcjs-pkg --version" gives a string like
       -- "GHCJS package manager version 6.4.1"
       case words str of
-- 
GitLab