Skip to content

Commit 6e2718d

Browse files
committed
Merge remote-tracking branch 'origin/rvl/musl-test' into hkm/fix-build-depends
2 parents 5d03d9e + b58a60c commit 6e2718d

File tree

17 files changed

+73
-45
lines changed

17 files changed

+73
-45
lines changed

docs/dev/tests.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
../../test/README.md

mkdocs.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,4 +42,5 @@ pages:
4242
- 'Removing withPackage wrapper': dev/removing-with-package-wrapper.md
4343
- 'Maintainer Scripts': dev/maintainer-scripts.md
4444
- 'Nixpkgs Pin': dev/nixpkgs-pin.md
45+
- 'Test Suite': dev/tests.md
4546
- 'ChangeLog': changelog.md

nixpkgs/github.json

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
{
22
"url": "https://github.com/NixOS/nixpkgs",
3-
"rev": "538639a55ce915effc543b3e9c6c901f8ea624c1",
4-
"date": "2019-06-07T01:19:18+02:00",
5-
"sha256": "1chkvpwj44xk8j7756sn1cymvzrv1nwryr8p13z1fv28lqjflz4p",
3+
"rev": "fe797e0adefc0ff50867a9898d445aee0d4e8f49",
4+
"sha256": "0ddhhfh87bl165j8jxscyq9bzzvykqz1f1r00nad0g6c7b59rifz",
65
"fetchSubmodules": false
76
}

release.nix

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,11 @@ let
2020
tests = filterAttrs (_: nonEmpty) (mapAttrs (name: removeDisabled) jobs.tests);
2121
};
2222

23+
inherit (systems.examples) musl64;
24+
2325
jobs = {
2426
native = filterTests (mapTestOn (packagePlatforms pkgs));
27+
"${musl64.config}" = filterTests (mapTestOnCross musl64 (packagePlatforms pkgs));
2528
} // {
2629
# On IOHK Hydra, "required" is a special job that updates the
2730
# GitHub CI status.

test/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
### Haskell infrastructure test cases
22

3-
To build the test cases, run from this directory:
3+
To build the test cases, run from the `test` directory:
44

55
nix-build --no-out-link default.nix
66

test/builder-haddock/default.nix

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ in
3939
########################################################################
4040
# test haddock
4141
42-
doc="${toString library.doc}"
42+
doc="${toString library.doc or null}"
4343
docDir="${toString library.haddockDir}"
4444
4545
# exeDoc="$ disabled {toString packages.test-haddock.components.exes.test-haddock.doc}"
@@ -78,4 +78,5 @@ in
7878
'';
7979

8080
meta.platforms = platforms.all;
81+
meta.disabled = stdenv.hostPlatform.isMusl;
8182
} // { inherit packages pkgSet; }

test/cabal-22/default.nix

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ in
2525
2626
printf "checking that executable is dynamically linked to system libraries... " >& 2
2727
'' + optionalString stdenv.isLinux ''
28-
ldd $exe | grep libpthread
28+
ldd $exe | grep libgmp
2929
'' + optionalString stdenv.isDarwin ''
3030
otool -L $exe | grep "libSystem.B"
3131
'' + ''
@@ -37,12 +37,13 @@ in
3737
sofile=$(find "${packages.project.components.library}" | grep -e '\.dylib$')
3838
'' + ''
3939
echo "$sofile"
40+
'' + optionalString (!stdenv.hostPlatform.isMusl) (''
4041
printf "checking that dynamic library is dynamically linked to prim... " >& 2
4142
'' + optionalString stdenv.isLinux ''
4243
ldd $sofile | grep libHSghc-prim
4344
'' + optionalString stdenv.isDarwin ''
4445
otool -L $sofile | grep libHSghc-prim
45-
'' + ''
46+
'') + ''
4647
touch $out
4748
'';
4849

test/cabal-simple/default.nix

Lines changed: 24 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
# Test a package set
2-
{ stdenv, util, mkCabalProjectPkgSet }:
2+
{ stdenv, util, mkCabalProjectPkgSet, gmp6, zlib }:
33

44
with stdenv.lib;
55

@@ -11,6 +11,19 @@ let
1111
# Package has no exposed modules which causes
1212
# haddock: No input file(s)
1313
packages.cabal-simple.doHaddock = false;
14+
15+
# When compiling with musl ghc, build a statically linked
16+
# executable against static libraries.
17+
# Ref: https://vaibhavsagar.com/blog/2018/01/03/static-haskell-nix/
18+
packages.cabal-simple.components.exes.cabal-simple.configureFlags =
19+
optionals stdenv.hostPlatform.isMusl [
20+
"--disable-executable-dynamic"
21+
"--disable-shared"
22+
"--ghc-option=-optl=-pthread"
23+
"--ghc-option=-optl=-static"
24+
"--ghc-option=-optl=-L${gmp6.override { withStatic = true; }}/lib"
25+
# "--ghc-option=-optl=-L${zlib.static}/lib"
26+
];
1427
}
1528
];
1629
};
@@ -30,13 +43,16 @@ in
3043
# fixme: run on target platform when cross-compiled
3144
printf "checking whether executable runs... " >& 2
3245
$exe
33-
34-
printf "checking that executable is dynamically linked to system libraries... " >& 2
35-
'' + optionalString stdenv.isLinux ''
36-
ldd $exe | grep libpthread
37-
'' + optionalString stdenv.isDarwin ''
38-
otool -L $exe |grep .dylib
39-
'' + ''
46+
'' + (if stdenv.hostPlatform.isMusl then ''
47+
printf "checking that executable is statically linked... " >& 2
48+
(ldd $exe 2>&1 || true) | grep -i "not a"
49+
'' else ''
50+
printf "checking that executable is dynamically linked to system libraries... " >& 2
51+
'' + optionalString stdenv.isLinux ''
52+
ldd $exe | grep libpthread
53+
'' + optionalString stdenv.isDarwin ''
54+
otool -L $exe |grep .dylib
55+
'') + ''
4056
4157
printf "Checking that \"all\" component has the programs... " >& 2
4258
all_exe="${packages.cabal-simple.components.all}/bin/cabal-simple"

test/cabal-simple/pkgs.nix

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
packages = {
55
"binary".revision = (((hackage."binary")."0.8.5.1").revisions).default;
66
"ghc-prim".revision = (((hackage."ghc-prim")."0.5.2.0").revisions).default;
7-
"extra".revision = (((hackage."extra")."1.6.15").revisions).default;
7+
"extra".revision = (((hackage."extra")."1.6.17").revisions).default;
88
"stm".revision = (((hackage."stm")."2.4.5.1").revisions).default;
99
"unix".revision = (((hackage."unix")."2.7.2.2").revisions).default;
1010
"rts".revision = (((hackage."rts")."1.0").revisions).default;
@@ -45,11 +45,11 @@
4545
"vector".flags.internalchecks = false;
4646
"vector".flags.wall = false;
4747
"vector".flags.boundschecks = true;
48-
"primitive".revision = (((hackage."primitive")."0.6.4.0").revisions).default;
49-
"time-locale-compat".revision = (((hackage."time-locale-compat")."0.1.1.5").revisions).default;
50-
"time-locale-compat".flags.old-locale = false;
48+
"primitive".revision = (((hackage."primitive")."0.7.0.0").revisions).default;
5149
"safe".revision = (((hackage."safe")."0.3.17").revisions).default;
5250
"base-compat".revision = (((hackage."base-compat")."0.10.5").revisions).default;
51+
"time-compat".revision = (((hackage."time-compat")."1.9.2.2").revisions).default;
52+
"time-compat".flags.old-locale = false;
5353
"ansi-terminal".revision = (((hackage."ansi-terminal")."0.9.1").revisions).default;
5454
"ansi-terminal".flags.example = false;
5555
"tagged".revision = (((hackage."tagged")."0.8.6").revisions).default;
@@ -62,8 +62,8 @@
6262
"bytestring".revision = (((hackage."bytestring")."0.10.8.2").revisions).default;
6363
"ansi-wl-pprint".revision = (((hackage."ansi-wl-pprint")."0.6.9").revisions).default;
6464
"ansi-wl-pprint".flags.example = false;
65-
"StateVar".revision = (((hackage."StateVar")."1.1.1.1").revisions).default;
66-
"contravariant".revision = (((hackage."contravariant")."1.5.1").revisions).default;
65+
"StateVar".revision = (((hackage."StateVar")."1.2").revisions).default;
66+
"contravariant".revision = (((hackage."contravariant")."1.5.2").revisions).default;
6767
"contravariant".flags.semigroups = true;
6868
"contravariant".flags.tagged = true;
6969
"contravariant".flags.statevar = true;
@@ -73,7 +73,7 @@
7373
"base".revision = (((hackage."base")."4.11.1.0").revisions).default;
7474
"time".revision = (((hackage."time")."1.8.0.2").revisions).default;
7575
"transformers".revision = (((hackage."transformers")."0.5.6.2").revisions).default;
76-
"hashable".revision = (((hackage."hashable")."1.2.7.0").revisions).default;
76+
"hashable".revision = (((hackage."hashable")."1.3.0.0").revisions).default;
7777
"hashable".flags.sse2 = true;
7878
"hashable".flags.integer-gmp = true;
7979
"hashable".flags.sse41 = false;
@@ -84,12 +84,13 @@
8484
"filepath".revision = (((hackage."filepath")."1.4.2").revisions).default;
8585
"process".revision = (((hackage."process")."1.6.5.0").revisions).default;
8686
"pretty".revision = (((hackage."pretty")."1.1.3.6").revisions).default;
87-
"aeson".revision = (((hackage."aeson")."1.4.3.0").revisions).default;
87+
"aeson".revision = (((hackage."aeson")."1.4.4.0").revisions).default;
8888
"aeson".flags.cffi = false;
8989
"aeson".flags.fast = false;
9090
"aeson".flags.bytestring-builder = false;
9191
"aeson".flags.developer = false;
9292
"ghc-boot-th".revision = (((hackage."ghc-boot-th")."8.4.4").revisions).default;
93+
"base-orphans".revision = (((hackage."base-orphans")."0.8.1").revisions).default;
9394
"th-abstraction".revision = (((hackage."th-abstraction")."0.3.1.0").revisions).default;
9495
"array".revision = (((hackage."array")."0.5.2.0").revisions).default;
9596
"integer-gmp".revision = (((hackage."integer-gmp")."1.0.2.0").revisions).default;

test/cabal-sublib/default.nix

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ in
3333
3434
printf "checking that executable is dynamically linked to system libraries... " >& 2
3535
'' + optionalString stdenv.isLinux ''
36-
ldd $exe | grep libpthread
36+
ldd $exe | grep libgmp
3737
'' + optionalString stdenv.isDarwin ''
3838
otool -L $exe |grep .dylib
3939
'' + ''

test/cabal-sublib/pkgs.nix

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
packages = {
55
"binary".revision = (((hackage."binary")."0.8.5.1").revisions).default;
66
"ghc-prim".revision = (((hackage."ghc-prim")."0.5.2.0").revisions).default;
7-
"extra".revision = (((hackage."extra")."1.6.15").revisions).default;
7+
"extra".revision = (((hackage."extra")."1.6.17").revisions).default;
88
"stm".revision = (((hackage."stm")."2.4.5.1").revisions).default;
99
"unix".revision = (((hackage."unix")."2.7.2.2").revisions).default;
1010
"rts".revision = (((hackage."rts")."1.0").revisions).default;
@@ -45,11 +45,11 @@
4545
"vector".flags.internalchecks = false;
4646
"vector".flags.wall = false;
4747
"vector".flags.boundschecks = true;
48-
"primitive".revision = (((hackage."primitive")."0.6.4.0").revisions).default;
49-
"time-locale-compat".revision = (((hackage."time-locale-compat")."0.1.1.5").revisions).default;
50-
"time-locale-compat".flags.old-locale = false;
48+
"primitive".revision = (((hackage."primitive")."0.7.0.0").revisions).default;
5149
"safe".revision = (((hackage."safe")."0.3.17").revisions).default;
5250
"base-compat".revision = (((hackage."base-compat")."0.10.5").revisions).default;
51+
"time-compat".revision = (((hackage."time-compat")."1.9.2.2").revisions).default;
52+
"time-compat".flags.old-locale = false;
5353
"ansi-terminal".revision = (((hackage."ansi-terminal")."0.9.1").revisions).default;
5454
"ansi-terminal".flags.example = false;
5555
"tagged".revision = (((hackage."tagged")."0.8.6").revisions).default;
@@ -62,8 +62,8 @@
6262
"bytestring".revision = (((hackage."bytestring")."0.10.8.2").revisions).default;
6363
"ansi-wl-pprint".revision = (((hackage."ansi-wl-pprint")."0.6.9").revisions).default;
6464
"ansi-wl-pprint".flags.example = false;
65-
"StateVar".revision = (((hackage."StateVar")."1.1.1.1").revisions).default;
66-
"contravariant".revision = (((hackage."contravariant")."1.5.1").revisions).default;
65+
"StateVar".revision = (((hackage."StateVar")."1.2").revisions).default;
66+
"contravariant".revision = (((hackage."contravariant")."1.5.2").revisions).default;
6767
"contravariant".flags.semigroups = true;
6868
"contravariant".flags.tagged = true;
6969
"contravariant".flags.statevar = true;
@@ -73,7 +73,7 @@
7373
"base".revision = (((hackage."base")."4.11.1.0").revisions).default;
7474
"time".revision = (((hackage."time")."1.8.0.2").revisions).default;
7575
"transformers".revision = (((hackage."transformers")."0.5.6.2").revisions).default;
76-
"hashable".revision = (((hackage."hashable")."1.2.7.0").revisions).default;
76+
"hashable".revision = (((hackage."hashable")."1.3.0.0").revisions).default;
7777
"hashable".flags.sse2 = true;
7878
"hashable".flags.integer-gmp = true;
7979
"hashable".flags.sse41 = false;
@@ -84,12 +84,13 @@
8484
"filepath".revision = (((hackage."filepath")."1.4.2").revisions).default;
8585
"process".revision = (((hackage."process")."1.6.5.0").revisions).default;
8686
"pretty".revision = (((hackage."pretty")."1.1.3.6").revisions).default;
87-
"aeson".revision = (((hackage."aeson")."1.4.3.0").revisions).default;
87+
"aeson".revision = (((hackage."aeson")."1.4.4.0").revisions).default;
8888
"aeson".flags.cffi = false;
8989
"aeson".flags.fast = false;
9090
"aeson".flags.bytestring-builder = false;
9191
"aeson".flags.developer = false;
9292
"ghc-boot-th".revision = (((hackage."ghc-boot-th")."8.4.4").revisions).default;
93+
"base-orphans".revision = (((hackage."base-orphans")."0.8.1").revisions).default;
9394
"th-abstraction".revision = (((hackage."th-abstraction")."0.3.1.0").revisions).default;
9495
"array".revision = (((hackage."array")."0.5.2.0").revisions).default;
9596
"integer-gmp".revision = (((hackage."integer-gmp")."1.0.2.0").revisions).default;

test/shell-for/default.nix

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,8 @@ in
5050
'';
5151

5252
meta.platforms = platforms.all;
53+
meta.disabled = stdenv.hostPlatform.isMusl;
54+
5355
passthru = {
5456
# Used for debugging with nix repl
5557
inherit pkgSet;

test/shell-for/pkgs.nix

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -39,8 +39,8 @@
3939
"deepseq".revision = (((hackage."deepseq")."1.4.3.0").revisions).default;
4040
"random".revision = (((hackage."random")."1.1").revisions).default;
4141
"optparse-applicative".revision = (((hackage."optparse-applicative")."0.14.3.0").revisions).default;
42-
"network".revision = (((hackage."network")."3.1.0.0").revisions).default;
43-
"async".revision = (((hackage."async")."2.2.1").revisions).default;
42+
"network".revision = (((hackage."network")."3.1.0.1").revisions).default;
43+
"async".revision = (((hackage."async")."2.2.2").revisions).default;
4444
"async".flags.bench = false;
4545
"conduit".revision = (((hackage."conduit")."1.3.1.1").revisions).default;
4646
"semigroups".revision = (((hackage."semigroups")."0.19").revisions).default;
@@ -102,14 +102,14 @@
102102
"reflection".revision = (((hackage."reflection")."2.1.4").revisions).default;
103103
"reflection".flags.slow = false;
104104
"reflection".flags.template-haskell = true;
105-
"streaming-commons".revision = (((hackage."streaming-commons")."0.2.1.0").revisions).default;
105+
"streaming-commons".revision = (((hackage."streaming-commons")."0.2.1.1").revisions).default;
106106
"streaming-commons".flags.use-bytestring-builder = false;
107107
"bytestring".revision = (((hackage."bytestring")."0.10.8.2").revisions).default;
108108
"ansi-wl-pprint".revision = (((hackage."ansi-wl-pprint")."0.6.9").revisions).default;
109109
"ansi-wl-pprint".flags.example = false;
110-
"StateVar".revision = (((hackage."StateVar")."1.1.1.1").revisions).default;
111-
"typed-process".revision = (((hackage."typed-process")."0.2.4.0").revisions).default;
112-
"contravariant".revision = (((hackage."contravariant")."1.5.1").revisions).default;
110+
"StateVar".revision = (((hackage."StateVar")."1.2").revisions).default;
111+
"typed-process".revision = (((hackage."typed-process")."0.2.5.0").revisions).default;
112+
"contravariant".revision = (((hackage."contravariant")."1.5.2").revisions).default;
113113
"contravariant".flags.semigroups = true;
114114
"contravariant".flags.tagged = true;
115115
"contravariant".flags.statevar = true;
@@ -131,7 +131,7 @@
131131
"vector-algorithms".flags.bench = true;
132132
"vector-algorithms".flags.properties = true;
133133
"transformers".revision = (((hackage."transformers")."0.5.6.2").revisions).default;
134-
"hashable".revision = (((hackage."hashable")."1.2.7.0").revisions).default;
134+
"hashable".revision = (((hackage."hashable")."1.3.0.0").revisions).default;
135135
"hashable".flags.sse2 = true;
136136
"hashable".flags.integer-gmp = true;
137137
"hashable".flags.sse41 = false;
@@ -151,7 +151,7 @@
151151
"base-orphans".revision = (((hackage."base-orphans")."0.8.1").revisions).default;
152152
"th-abstraction".revision = (((hackage."th-abstraction")."0.3.1.0").revisions).default;
153153
"array".revision = (((hackage."array")."0.5.2.0").revisions).default;
154-
"conduit-extra".revision = (((hackage."conduit-extra")."1.3.1.1").revisions).default;
154+
"conduit-extra".revision = (((hackage."conduit-extra")."1.3.3").revisions).default;
155155
"integer-gmp".revision = (((hackage."integer-gmp")."1.0.2.0").revisions).default;
156156
};
157157
compiler = {

test/stack-simple/pkgs.nix

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,5 +6,5 @@
66
"process" = (((hackage.process)."1.6.5.0").revisions).default;
77
} // { stack-simple = ./stack-simple.nix; };
88
};
9-
resolver = "lts-13.18";
9+
resolver = "lts-13.26";
1010
}

test/stack-simple/stack.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
#
1818
# resolver: ./custom-snapshot.yaml
1919
# resolver: https://example.com/snapshots/2018-01-01.yaml
20-
resolver: lts-13.18
20+
resolver: lts-13.26
2121

2222
# User packages to be built.
2323
# Various formats can be used as shown in the example below.

test/with-packages/default.nix

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,8 @@ in
7373
'';
7474

7575
meta.platforms = platforms.all;
76+
meta.disabled = stdenv.hostPlatform.isMusl;
77+
7678
passthru = {
7779
# Used for debugging with nix repl
7880
inherit packages pkgSet;

test/with-packages/pkgs.nix

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -81,8 +81,8 @@
8181
"reflection".flags.slow = false;
8282
"reflection".flags.template-haskell = true;
8383
"bytestring".revision = (((hackage."bytestring")."0.10.8.2").revisions).default;
84-
"StateVar".revision = (((hackage."StateVar")."1.1.1.1").revisions).default;
85-
"contravariant".revision = (((hackage."contravariant")."1.5.1").revisions).default;
84+
"StateVar".revision = (((hackage."StateVar")."1.2").revisions).default;
85+
"contravariant".revision = (((hackage."contravariant")."1.5.2").revisions).default;
8686
"contravariant".flags.semigroups = true;
8787
"contravariant".flags.tagged = true;
8888
"contravariant".flags.statevar = true;
@@ -97,7 +97,7 @@
9797
"comonad".flags.containers = true;
9898
"time".revision = (((hackage."time")."1.8.0.2").revisions).default;
9999
"transformers".revision = (((hackage."transformers")."0.5.6.2").revisions).default;
100-
"hashable".revision = (((hackage."hashable")."1.2.7.0").revisions).default;
100+
"hashable".revision = (((hackage."hashable")."1.3.0.0").revisions).default;
101101
"hashable".flags.sse2 = true;
102102
"hashable".flags.integer-gmp = true;
103103
"hashable".flags.sse41 = false;

0 commit comments

Comments
 (0)