GithubHelp home page GithubHelp logo

Comments (5)

snoyberg avatar snoyberg commented on June 23, 2024

I don't believe check requires a specific version of the cabal-install binary, it should work with 0.14 as well as 1.16. Do you see something to imply otherwise?

As far as the error message, it's actually implying the correct thing. The requirement is that the library version it be built against be greater than 1.16. There were certain sandboxing bugs in the 1.14 version of the library that cause problems for Stackage in certain use cases (such as shared libraries), which is why we have the requirement for 1.16. Technically, the means we require cabal-install 1.16 as well, but that's not the main purpose of the check.

from stackage.

nomeata avatar nomeata commented on June 23, 2024

I am quite certain that the version of the cabal binary is checked in build and matters also for check, as shown by the following session:

> cabal clean
cleaning...
> cabal configure
Resolving dependencies...
Configuring stackage-0.1.0.0...
> ghc-pkg latest Cabal
Cabal-1.16.0
> ghc --version
The Glorious Glasgow Haskell Compilation System, version 7.6.1.20121207
> cabal --version
cabal-install version 0.14.0
using version 1.14.0 of the Cabal library 
> cabal build
Building stackage-0.1.0.0...
Preprocessing library stackage-0.1.0.0...
[ 1 of 15] Compiling Stackage.Types   ( Stackage/Types.hs, dist/build/Stackage/Types.o )
[ 2 of 15] Compiling Stackage.Util    ( Stackage/Util.hs, dist/build/Stackage/Util.o )
[ 3 of 15] Compiling Stackage.Init    ( Stackage/Init.hs, dist/build/Stackage/Init.o )
[ 4 of 15] Compiling Stackage.Config  ( Stackage/Config.hs, dist/build/Stackage/Config.o )
[ 5 of 15] Compiling Stackage.LoadDatabase ( Stackage/LoadDatabase.hs, dist/build/Stackage/LoadDatabase.o )
[ 6 of 15] Compiling Stackage.HaskellPlatform ( Stackage/HaskellPlatform.hs, dist/build/Stackage/HaskellPlatform.o )
[ 7 of 15] Compiling Stackage.Tarballs ( Stackage/Tarballs.hs, dist/build/Stackage/Tarballs.o )
[ 8 of 15] Compiling Stackage.Test    ( Stackage/Test.hs, dist/build/Stackage/Test.o )
[ 9 of 15] Compiling Stackage.BuildPlan ( Stackage/BuildPlan.hs, dist/build/Stackage/BuildPlan.o )
[10 of 15] Compiling Stackage.NarrowDatabase ( Stackage/NarrowDatabase.hs, dist/build/Stackage/NarrowDatabase.o )
[11 of 15] Compiling Stackage.InstallInfo ( Stackage/InstallInfo.hs, dist/build/Stackage/InstallInfo.o )
[12 of 15] Compiling Stackage.CheckPlan ( Stackage/CheckPlan.hs, dist/build/Stackage/CheckPlan.o )
[13 of 15] Compiling Stackage.Select  ( Stackage/Select.hs, dist/build/Stackage/Select.o )
[14 of 15] Compiling Stackage.CheckCabalVersion ( Stackage/CheckCabalVersion.hs, dist/build/Stackage/CheckCabalVersion.o )
[15 of 15] Compiling Stackage.Build   ( Stackage/Build.hs, dist/build/Stackage/Build.o )
[ 1 of 15] Compiling Stackage.Types   ( Stackage/Types.hs, dist/build/Stackage/Types.p_o )
[ 2 of 15] Compiling Stackage.Util    ( Stackage/Util.hs, dist/build/Stackage/Util.p_o )
[ 3 of 15] Compiling Stackage.Init    ( Stackage/Init.hs, dist/build/Stackage/Init.p_o )
[ 4 of 15] Compiling Stackage.Config  ( Stackage/Config.hs, dist/build/Stackage/Config.p_o )
[ 5 of 15] Compiling Stackage.LoadDatabase ( Stackage/LoadDatabase.hs, dist/build/Stackage/LoadDatabase.p_o )
[ 6 of 15] Compiling Stackage.HaskellPlatform ( Stackage/HaskellPlatform.hs, dist/build/Stackage/HaskellPlatform.p_o )
[ 7 of 15] Compiling Stackage.Tarballs ( Stackage/Tarballs.hs, dist/build/Stackage/Tarballs.p_o )
[ 8 of 15] Compiling Stackage.Test    ( Stackage/Test.hs, dist/build/Stackage/Test.p_o )
[ 9 of 15] Compiling Stackage.BuildPlan ( Stackage/BuildPlan.hs, dist/build/Stackage/BuildPlan.p_o )
[10 of 15] Compiling Stackage.NarrowDatabase ( Stackage/NarrowDatabase.hs, dist/build/Stackage/NarrowDatabase.p_o )
[11 of 15] Compiling Stackage.InstallInfo ( Stackage/InstallInfo.hs, dist/build/Stackage/InstallInfo.p_o )
[12 of 15] Compiling Stackage.CheckPlan ( Stackage/CheckPlan.hs, dist/build/Stackage/CheckPlan.p_o )
[13 of 15] Compiling Stackage.Select  ( Stackage/Select.hs, dist/build/Stackage/Select.p_o )
[14 of 15] Compiling Stackage.CheckCabalVersion ( Stackage/CheckCabalVersion.hs, dist/build/Stackage/CheckCabalVersion.p_o )
[15 of 15] Compiling Stackage.Build   ( Stackage/Build.hs, dist/build/Stackage/Build.p_o )
Registering stackage-0.1.0.0...
Preprocessing executable 'stackage' for stackage-0.1.0.0...

on the commandline: Warning:
    -package-conf is deprecated: Use -package-db instead
[1 of 1] Compiling Main             ( app/stackage.hs, dist/build/stackage/stackage-tmp/Main.o )
Linking dist/build/stackage/stackage ...
> dist/build/stackage/stackage check
Checking build plan
cabal: ghc-pkg: global: openFile: does not exist (No such file or directory)
cabal returned a bad result, exiting
> dist/build/stackage/stackage build
Checking Cabal version
stackage: Unsupported Cabal version: 1.14.0
> sudo apt-get install cabal-install -t experimental
Paketlisten werden gelesen... Fertig
Abhängigkeitsbaum wird aufgebaut.       
Statusinformationen werden eingelesen.... Fertig
Die folgenden Pakete werden aktualisiert (Upgrade):
  cabal-install
1 aktualisiert, 0 neu installiert, 0 zu entfernen und 598 nicht aktualisiert.
Es müssen noch 0 B von 2.017 kB an Archiven heruntergeladen werden.
Nach dieser Operation werden 174 kB Plattenplatz freigegeben.
Lese Changelogs...
(Lese Datenbank ... 307434 Dateien und Verzeichnisse sind derzeit installiert.)
Vorbereitung zum Ersetzen von cabal-install 0.14.0-2 (durch .../cabal-install_1.16.0.2-1_amd64.deb) ...
Ersatz für cabal-install wird entpackt ...
cabal-install (1.16.0.2-1) wird eingerichtet ...
> dist/build/stackage/stackage check
Checking build plan
cabal: Could not resolve dependencies:
trying: crypto-api-0.10.2/installed-0b3...
rejecting: largeword-1.0.4 (conflict: crypto-api =>
largeword==1.0.3/installed-8a7...)
rejecting: largeword-1.0.3/installed-8a7..., 1.0.3, 1.0.2, 1.0.1, 1.0.0
(global constraint requires ==1.0.4)
Resolving dependencies...
cabal returned a bad result, exiting
> dist/build/stackage/stackage build
Checking Cabal version
Wiping out old sandbox folder
Creating new package database
Installing the following build tools: alex-3.0.2 happy-1.18.10
Build tools built
Build failed, please see build.log

from stackage.

snoyberg avatar snoyberg commented on June 23, 2024

Sorry, I wasn't clear. It is checking the cabal binary, but checking which version of the Cabal library it was compiled against. The fact that stackage check fails with an older version of cabal-install is news to me, that looks like an unrelated bug I wasn't aware of. I'll update Stackage to check cabal versions in both cases and give a more meaningful error message.

from stackage.

snoyberg avatar snoyberg commented on June 23, 2024

OK, updates pushed, what do you think?

from stackage.

nomeata avatar nomeata commented on June 23, 2024

Judging from looking at the code I’d say that this is fine.

from stackage.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.