[GHC] #15794: shell.nix depends on build artifacts
GHC
ghc-devs at haskell.org
Tue Oct 23 19:15:53 UTC 2018
#15794: shell.nix depends on build artifacts
-------------------------------------+-------------------------------------
Reporter: int-index | Owner: (none)
Type: bug | Status: new
Priority: normal | Milestone:
Component: Build System | Version: 8.6.1
(Hadrian) |
Keywords: | Operating System: Linux
Architecture: | Type of failure: Building GHC
Unknown/Multiple | failed
Test Case: | Blocked By:
Blocking: | Related Tickets:
Differential Rev(s): | Wiki Page:
-------------------------------------+-------------------------------------
Filed Mar 19, 2018, as https://github.com/snowleopard/hadrian/issues/532
**Steps to reproduce:**
1. `git clone --recursive git://git.haskell.org/ghc.git`
2. `cd ghc/hadrian`
3. `nix-shell --pure`
**Expected result:** Successful build.
**Actual result:**
{{{
hadrian(master)$ nix-shell --pure
these derivations will be built:
/nix/store/lmpgkvswlkcgpcjdilbyh202vm8a5i5r-directory-1.3.1.5.drv
/nix/store/rcg0mmq0bincjfjnzbabc8fq7307bylq-process-1.6.3.0.drv
/nix/store/15alkpni823gkfp63c79962v032wxvjs-extra-1.6.4.drv
/nix/store/1b54g6nv8rw0kq3i5xjpcbhy88jvdnbr-xml-1.3.14.drv
/nix/store/89salv051l8yr2y2k52pzkqraw9lfib9-test-framework-0.8.1.1.drv
/nix/store/iqq0xsvgf3hf551b3jj0x3lg661c5y4f-test-framework-
hunit-0.3.0.2.drv
/nix/store/cy7ynm7r9jb41kxb1gxbwdprhvl03ivk-parsec-3.1.13.0.drv
/nix/store/rgnsvxfvmbhrkniy0c86v65jgvx8nsan-test-framework-
quickcheck2-0.3.0.4.drv
/nix/store/fyrj002axd2skdz370hi13fq6prjh5cz-network-uri-2.6.1.0.drv
/nix/store/7qcfy5gy9sjcz7cijqghgj3cilm2pzps-HTTP-4000.3.8.drv
/nix/store/gk0w3grh2hz008sp6ksy669zvl6pyznb-js-flot-0.8.3.drv
/nix/store/h39chz7m8zvawlrzfjsz496vl2rbp921-hashable-1.2.6.1.drv
/nix/store/zpv0xi25jq6p5kkpvbc11sq73dxi2g0a-unordered-
containers-0.2.8.0.drv
/nix/store/i7p5c3mv9p20z7kb2mrdlpx0fwmyz3f5-shake-0.16.2.drv
/nix/store/pzfcvib6sbsaascsc7djzcfqzlw847gc-Cabal-2.3.0.0.drv
/nix/store/j5w4i42pgfy03s7fjsj4dfkis26c3nnp-happy-1.19.8.drv
/nix/store/pl2dxjvbqs36rh80q5i09zdhbh6hjl2r-alex-3.2.3.drv
/nix/store/dck8p81zlij9qksglaw8hkp11msrm426-hadrian-0.1.0.0.drv
building '/nix/store/lmpgkvswlkcgpcjdilbyh202vm8a5i5r-
directory-1.3.1.5.drv'...
building '/nix/store/1b54g6nv8rw0kq3i5xjpcbhy88jvdnbr-xml-1.3.14.drv'...
setupCompilerEnvironmentPhase
Build with /nix/store/d57p5gzyld7b3y4irzv70bfa3d8xxwgx-ghc-8.2.2.
setupCompilerEnvironmentPhase
Build with /nix/store/d57p5gzyld7b3y4irzv70bfa3d8xxwgx-ghc-8.2.2.
unpacking sources
unpacking source archive /nix/store/khjm3agcb1y91925r78h3chaq56w9fi7
-6wsbrbb60dzbfqf62c6sskwcijc3arjj-directory
unpacking sources
unpacking source archive
/nix/store/dnx7hpl7wz81r3av4l09pqqhdqi4qpg6-xml-1.3.14.tar.gz
source root is xml-1.3.14
source root is 6wsbrbb60dzbfqf62c6sskwcijc3arjj-directory
setting SOURCE_DATE_EPOCH to timestamp 1424727750 of file
xml-1.3.14/xml.cabal
patching sources
patching sources
compileBuildDriverPhase
compileBuildDriverPhase
setupCompileFlags: -package-db=/tmp/nix-build-
xml-1.3.14.drv-0/package.conf.d -j1 -threaded
setupCompileFlags: -package-db=/tmp/nix-build-
directory-1.3.1.5.drv-0/package.conf.d -j1 -threaded
[1 of 1] Compiling Main ( Setup.hs, /tmp/nix-build-
directory-1.3.1.5.drv-0/Main.o )
[1 of 1] Compiling Main ( Setup.hs, /tmp/nix-build-
xml-1.3.14.drv-0/Main.o )
Linking Setup ...
Linking Setup ...
configuring
configureFlags: --verbose --prefix=/nix/store
/v3yazy78gy6kkpvrcn3schm8lc8y5dgl-xml-1.3.14
--libdir=$prefix/lib/$compiler --libsubdir=$pkgid --docdir=/nix/store
/zdzgar7mwysym9dbai87fann20pbw75n-xml-1.3.14-doc/share/doc --with-gcc=gcc
--package-db=/tmp/nix-build-xml-1.3.14.drv-0/package.conf.d --ghc-
option=-optl=-Wl,-rpath=/nix/store/v3yazy78gy6kkpvrcn3schm8lc8y5dgl-
xml-1.3.14/lib/ghc-8.2.2/xml-1.3.14 --ghc-option=-j1 --disable-split-objs
--disable-library-profiling --disable-profiling --enable-shared --disable-
coverage --enable-library-vanilla --enable-executable-dynamic --enable-
tests --ghc-option=-split-sections
configuring
configureFlags: --verbose --prefix=/nix/store
/59r1c7sfgph9j2xxsc1k3j6dwkm32ybk-directory-1.3.1.5
--libdir=$prefix/lib/$compiler --libsubdir=$pkgid --docdir=/nix/store
/w0gkzrf5q6ng40vzyvdl5m8pvw9v9dxy-directory-1.3.1.5-doc/share/doc --with-
gcc=gcc --package-db=/tmp/nix-build-directory-1.3.1.5.drv-0/package.conf.d
--ghc-option=-optl=-Wl,-rpath=/nix/store/59r1c7sfgph9j2xxsc1k3j6dwkm32ybk-
directory-1.3.1.5/lib/ghc-8.2.2/directory-1.3.1.5 --ghc-option=-j1
--disable-split-objs --disable-library-profiling --disable-profiling
--enable-shared --disable-coverage --enable-library-vanilla --enable-
executable-dynamic --enable-tests --ghc-option=-split-sections
Configuring directory-1.3.1.5...
Warning: The 'build-type' is 'Configure' but there is no 'configure'
script.
You probably need to run 'autoreconf -i' to generate it.
Configuring xml-1.3.14...
Dependency base >=3 && <5: using base-4.10.1.0
Dependency bytestring -any: using bytestring-0.10.8.2
Dependency text -any: using text-1.2.3.0
Dependency base >=4.5 && <4.12: using base-4.10.1.0
Dependency directory -any: using directory-1.3.1.5
Dependency filepath >=1.3 && <1.5: using filepath-1.4.2
Dependency time >=1.4 && <1.9: using time-1.8.0.2
Dependency unix >=2.5.1 && <2.8: using unix-2.7.2.2
Source component graph:
component lib
component test:test dependency lib
Configured component graph:
component directory-1.3.1.5-EFdDcGoPsV2JQnFPz1QOGK
include base-4.10.1.0
include time-1.8.0.2
include filepath-1.4.2-DyDAQ5oOwBVDvLxMoNLDxx
include unix-2.7.2.2
component directory-1.3.1.5-8aJ3UecsjNUIxs4bq1vU8T-test
include base-4.10.1.0
include directory-1.3.1.5-EFdDcGoPsV2JQnFPz1QOGK
include filepath-1.4.2-DyDAQ5oOwBVDvLxMoNLDxx
include time-1.8.0.2
include unix-2.7.2.2
Linked component graph:
unit directory-1.3.1.5-EFdDcGoPsV2JQnFPz1QOGK
include base-4.10.1.0
include time-1.8.0.2
include filepath-1.4.2-DyDAQ5oOwBVDvLxMoNLDxx
include unix-2.7.2.2
System.Directory=directory-1.3.1.5-EFdDcGoPsV2JQnFPz1QOGK:System.Directory,System.Directory.Internal=directory-1.3.1.5-EFdDcGoPsV2JQnFPz1QOGK:System.Directory.Internal,System.Directory.Internal.Prelude=directory-1.3.1.5-EFdDcGoPsV2JQnFPz1QOGK:System.Directory.Internal.Prelude
unit directory-1.3.1.5-8aJ3UecsjNUIxs4bq1vU8T-test
include base-4.10.1.0
include directory-1.3.1.5-EFdDcGoPsV2JQnFPz1QOGK
include filepath-1.4.2-DyDAQ5oOwBVDvLxMoNLDxx
include time-1.8.0.2
include unix-2.7.2.2
Ready component graph:
definite directory-1.3.1.5-EFdDcGoPsV2JQnFPz1QOGK
depends base-4.10.1.0
depends time-1.8.0.2
depends filepath-1.4.2-DyDAQ5oOwBVDvLxMoNLDxx
depends unix-2.7.2.2
definite directory-1.3.1.5-8aJ3UecsjNUIxs4bq1vU8T-test
depends base-4.10.1.0
depends directory-1.3.1.5-EFdDcGoPsV2JQnFPz1QOGK
depends filepath-1.4.2-DyDAQ5oOwBVDvLxMoNLDxx
depends time-1.8.0.2
depends unix-2.7.2.2
Using Cabal-2.0.1.0 compiled by ghc-8.2
Using compiler: ghc-8.2.2
Using install prefix:
/nix/store/59r1c7sfgph9j2xxsc1k3j6dwkm32ybk-directory-1.3.1.5
Executables installed in:
/nix/store/59r1c7sfgph9j2xxsc1k3j6dwkm32ybk-directory-1.3.1.5/bin
Libraries installed in:
/nix/store/59r1c7sfgph9j2xxsc1k3j6dwkm32ybk-
directory-1.3.1.5/lib/ghc-8.2.2/directory-1.3.1.5
Dynamic Libraries installed in:
/nix/store/59r1c7sfgph9j2xxsc1k3j6dwkm32ybk-
directory-1.3.1.5/lib/ghc-8.2.2/x86_64-linux-ghc-8.2.2
Private executables installed in:
/nix/store/59r1c7sfgph9j2xxsc1k3j6dwkm32ybk-
directory-1.3.1.5/libexec/x86_64-linux-ghc-8.2.2/directory-1.3.1.5
Data files installed in:
/nix/store/59r1c7sfgph9j2xxsc1k3j6dwkm32ybk-directory-1.3.1.5/share/x86_64
-linux-ghc-8.2.2/directory-1.3.1.5
Documentation installed in:
/nix/store/w0gkzrf5q6ng40vzyvdl5m8pvw9v9dxy-
directory-1.3.1.5-doc/share/doc
Configuration files installed in:
/nix/store/59r1c7sfgph9j2xxsc1k3j6dwkm32ybk-directory-1.3.1.5/etc
No alex found
Using ar found on system at:
/nix/store/aplvnhqdm6s9wj9r0jh46r46wvh65j86-binutils-2.28.1/bin/ar
No c2hs found
No cpphs found
No doctest found
Using gcc version 6.4.0 given by user at:
/nix/store/wriy1xis74fybcg3m1jnq5bd5myxvhm6-gcc-wrapper-6.4.0/bin/gcc
Using ghc version 8.2.2 found on system at:
/nix/store/d57p5gzyld7b3y4irzv70bfa3d8xxwgx-ghc-8.2.2/bin/ghc
Using ghc-pkg version 8.2.2 found on system at:
/nix/store/d57p5gzyld7b3y4irzv70bfa3d8xxwgx-ghc-8.2.2/bin/ghc-pkg
No ghcjs found
No ghcjs-pkg found
No greencard found
Using haddock version 2.18.1 found on system at:
/nix/store/d57p5gzyld7b3y4irzv70bfa3d8xxwgx-ghc-8.2.2/bin/haddock
No happy found
Using haskell-suite found on system at: haskell-suite-dummy-location
Using haskell-suite-pkg found on system at: haskell-suite-pkg-dummy-
location
No hmake found
Using hpc version 0.67 found on system at:
/nix/store/d57p5gzyld7b3y4irzv70bfa3d8xxwgx-ghc-8.2.2/bin/hpc
Using hsc2hs version 0.68.2 found on system at:
/nix/store/d57p5gzyld7b3y4irzv70bfa3d8xxwgx-ghc-8.2.2/bin/hsc2hs
Using hscolour version 1.24 found on system at:
/nix/store/yf0bs1q9ph388jms8xlgcd5vh99amjm4-hscolour-1.24.2/bin/HsColour
No jhc found
Using ld found on system at:
/nix/store/wriy1xis74fybcg3m1jnq5bd5myxvhm6-gcc-wrapper-6.4.0/bin/ld
No lhc found
No lhc-pkg found
No pkg-config found
Using runghc version 8.2.2 found on system at:
/nix/store/d57p5gzyld7b3y4irzv70bfa3d8xxwgx-ghc-8.2.2/bin/runghc
Using strip version 2.28 found on system at:
/nix/store/aplvnhqdm6s9wj9r0jh46r46wvh65j86-binutils-2.28.1/bin/strip
Using tar found on system at:
/nix/store/vvq16kzwgx9yhkf0fwwms5xzgg0rwdpl-gnutar-1.29/bin/tar
No uhc found
Setup: configure script not found.
builder for '/nix/store/lmpgkvswlkcgpcjdilbyh202vm8a5i5r-
directory-1.3.1.5.drv' failed with exit code 1
cannot build derivation
'/nix/store/dck8p81zlij9qksglaw8hkp11msrm426-hadrian-0.1.0.0.drv': 1
dependencies couldn't be built
error: build of
'/nix/store/dck8p81zlij9qksglaw8hkp11msrm426-hadrian-0.1.0.0.drv' failed
}}}
Notice that the build fails for a library shipped with GHC. In `shell.nix`
it's included as `localPackage`.
**Workaround**
First, we need to run `configurePhase` of the default Nix derivation for
GHC HEAD:
1. `cd ghc`
2. `nix-shell '<nixpkgs>' -A haskell.compiler.ghcHEAD`
3. `configurePhase`
4. `exit`
Now we can `cd` into `ghc/hadrian` and proceed normally, the build won't
fail.
The issue is that this step shouldn't be required, we must have a self-
contained `shell.nix`.
--
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/15794>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler
More information about the ghc-tickets
mailing list