Hi Amy,

I checked out the current Git version of "creatur":

 | [simons@work:/tmp]$ git clone https://github.com/mhwombat/creatur && cd 
creatur
 | Cloning into 'creatur'...
 | remote: Counting objects: 613, done.
 | remote: Total 613 (delta 0), reused 0 (delta 0), pack-reused 613
 | Receiving objects: 100% (613/613), 124.39 KiB | 0 bytes/s, done.
 | Resolving deltas: 100% (318/318), done.
 | Checking connectivity... done.

Generated build instructions for it:

 | [simons@work:/tmp/creatur]$ cabal2nix . >creatur.nix

But then the build failed:

 | [simons@work:/tmp/creatur]$ nix-shell -p "haskellPackages.callPackage 
./creatur.nix {}"
 | these derivations will be built:
 |   /nix/store/klakl5g7klccmblvrh1c7pg98l81rplb-haskell-creatur-5.9.5.drv
 | building path(s) 
‘/nix/store/w7hxpkv7fahnk7qcpj22yb5p7605aaja-haskell-creatur-5.9.5’
 | setupCompilerEnvironmentPhase
 | Build with /nix/store/bc84hdk730zcdm1c9s5yf2ahpvm51lzp-ghc-7.10.1.
 | unpacking sources
 | unpacking source archive /nix/store/j67hsfyra2qjrpmilgw9hx3cnxpilg7f-creatur
 | source root is creatur
 | patching sources
 | compileBuildDriverPhase
 | setupCompileFlags: 
-package-db=/tmp/nix-build-haskell-creatur-5.9.5.drv-0/package.conf.d -j8 
-threaded
 | [1 of 1] Compiling Main             ( Setup.hs, 
/tmp/nix-build-haskell-creatur-5.9.5.drv-0/Main.o )
 | Linking Setup ...
 | configuring
 | configureFlags: --verbose 
--prefix=/nix/store/w7hxpkv7fahnk7qcpj22yb5p7605aaja-haskell-creatur-5.9.5 
--libdir=$prefix/lib/$compiler --libsubdir=$pkgid --with-gcc=gcc 
--package-db=/tmp/nix-build-haskell-creatur-5.9.5.drv-0/package.conf.d 
--ghc-option=-optl=-Wl,-rpath=/nix/store/w7hxpkv7fahnk7qcpj22yb5p7605aaja-haskell-creatur-5.9.5/lib/ghc-7.10.1/creatur-5.9.5
 --ghc-option=-j8 --enable-split-objs --disable-library-profiling 
--enable-shared --enable-library-vanilla --enable-executable-dynamic 
--enable-tests
 | Configuring creatur-5.9.5...
 | Setup: At least the following dependencies are missing:
 | MonadRandom ==0.3.*, zlib ==0.5.*
 | builder for 
‘/nix/store/klakl5g7klccmblvrh1c7pg98l81rplb-haskell-creatur-5.9.5.drv’ failed 
with exit code 1
 | error: build of 
‘/nix/store/klakl5g7klccmblvrh1c7pg98l81rplb-haskell-creatur-5.9.5.drv’ failed
 | /run/current-system/sw/bin/nix-shell: failed to build all dependencies

Now, clearly those libraries exist in Nixpkgs and they are passed to the
build, so why aren't they found? The reason is that the versions of
these libraries that we have don't fit into the version constraints:

 | [nix-shell:/tmp/creatur]$ nix-env -qa -A haskellPackages.zlib
 | haskell-zlib-0.6.1.1
 |
 | [nix-shell:/tmp/creatur]$ nix-env -qa -A haskellPackages.MonadRandom 
haskellPackages.zlib
 | haskell-MonadRandom-0.4

At this point, the proper way to go forward is to open an upstream
ticket and to ask them to update their software:

  https://github.com/mhwombat/creatur/issues/1

Meanwhile, we can try whether the build works if we just disregard the
version constraints:

 | [simons@work:/tmp/creatur]$ cabal2nix --jailbreak . >creatur.nix

Et voilà:

 | [simons@work:/tmp/creatur]$ nix-shell -p "haskellPackages.callPackage 
./creatur.nix {}"
 | [...]
 | Linking dist/build/creatur-tests/creatur-tests ...
 | running tests
 | Running 1 test suites...
 | Test suite creatur-tests: RUNNING...
 | Test suite creatur-tests: PASS
 | Test suite logged to: dist/test/creatur-5.9.5-creatur-tests.log
 | 1 of 1 test suites (1 of 1 test cases) passed.
 | Installing library in
 | 
/nix/store/898b6wh83grjvrisgfai2znaxapw5zf3-haskell-creatur-5.9.5/lib/ghc-7.10.1/creatur-5.9.5
 | Creating package registration file:
 | 
/nix/store/898b6wh83grjvrisgfai2znaxapw5zf3-haskell-creatur-5.9.5/lib/ghc-7.10.1/package.conf.d/creatur-5.9.5.conf
 | post-installation fixup
 | patching ELF executables and libraries in 
/nix/store/898b6wh83grjvrisgfai2znaxapw5zf3-haskell-creatur-5.9.5
 | 
/nix/store/898b6wh83grjvrisgfai2znaxapw5zf3-haskell-creatur-5.9.5/lib/ghc-7.10.1/creatur-5.9.5/libHScreatur-5.9.5-7s9QWp2Pef3B7eaMXWrnUX-ghc7.10.1.so
 | gzipping man pages in 
/nix/store/898b6wh83grjvrisgfai2znaxapw5zf3-haskell-creatur-5.9.5
 | stripping (with flags -S) in 
/nix/store/898b6wh83grjvrisgfai2znaxapw5zf3-haskell-creatur-5.9.5/lib
 | [...]
 |
 | [nix-shell:/tmp/creatur]$

The build works fine with the new library versions.

More information about this subject is available at:

  http://lists.science.uu.nl/pipermail/nix-dev/2015-January/015608.html

Best regards,
Peter

_______________________________________________
nix-dev mailing list
[email protected]
http://lists.science.uu.nl/mailman/listinfo/nix-dev

Reply via email to