Skip to content
This repository was archived by the owner on Feb 6, 2024. It is now read-only.

Commit 44c334a

Browse files
authored
Merge pull request #1076 from deckgo/nm-update-nixpkgs
infra: drop static-haskell-nix and update nixpkgs
2 parents ed2906f + 3f4cbb4 commit 44c334a

File tree

15 files changed

+265
-211
lines changed

15 files changed

+265
-211
lines changed

infra/default.nix

Lines changed: 16 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,11 @@
1-
with { pkgs = import ./nix {}; };
1+
let
2+
pkgs = import ./nix {};
3+
napalm = import pkgs.sources.napalm { inherit pkgs;} ;
4+
in
25

36
rec
4-
{ function = # TODO: rename to handler
7+
{
8+
function = # TODO: rename to handler
59
pkgs.runCommand "build-lambda" {}
610
''
711
cp ${./main.js} main.js
@@ -59,9 +63,10 @@ rec
5963
${pkgs.zip}/bin/zip -r $out/function.zip main.js main_hs
6064
'';
6165

66+
67+
deckdeckgo-starter-dist-foo = napalm.buildPackage pkgs.sources.deckdeckgo-starter {};
68+
6269
deckdeckgo-starter-dist =
63-
with
64-
{ napalm = import pkgs.sources.napalm { inherit pkgs;} ; };
6570
pkgs.runCommand "deckdeckgo-starter" { buildInputs = [ pkgs.nodejs pkgs.zip ]; }
6671
''
6772
cp -r ${napalm.buildPackage pkgs.sources.deckdeckgo-starter {}}/* .
@@ -75,9 +80,9 @@ rec
7580
popd
7681
'';
7782

78-
devshell = if ! pkgs.lib.inNixShell then null else
79-
with
80-
{ pkg = pkgs.haskellPackages.developPackage { root = ./handler; } ; };
83+
84+
devshell =
85+
let pkg = handler.env; in
8186
pkg.overrideAttrs(attr: {
8287
buildInputs = with pkgs;
8388
[ terraform awscli postgresql moreutils minio ];
@@ -166,11 +171,12 @@ rec
166171
'';
167172
});
168173

169-
handler = pkgs.haskellPackages.deckdeckgo-handler;
174+
handler = pkgs.staticHaskellPackages.deckdeckgo-handler;
175+
firebase-login = pkgs.staticHaskellPackages.firebase-login;
170176

171-
unsplashProxy = pkgs.haskellPackages.unsplash-proxy;
177+
unsplashProxy = pkgs.staticHaskellPackages.unsplash-proxy;
172178

173-
googleKeyUpdater = pkgs.haskellPackages.google-key-updater;
179+
googleKeyUpdater = pkgs.staticHaskellPackages.google-key-updater;
174180

175181
publicKey = builtins.readFile ./public.cer;
176182

infra/firebase-login/default.nix

Lines changed: 18 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,18 @@
1-
# TODO: port tests
2-
# TODO: fix sources
3-
# TODO: drop nix/packages
4-
with { pkgs = import ./nix {}; };
5-
pkgs.callPackage ./nix/packages.nix {}
1+
{ mkDerivation, aeson, base, bytestring, hpack, http-client
2+
, http-client-tls, http-conduit, jose, lens, mtl, network-uri, pem
3+
, servant, servant-client-core, servant-server, servant-swagger
4+
, stdenv, text, unordered-containers, wai, word8, x509
5+
}:
6+
mkDerivation {
7+
pname = "firebase-login";
8+
version = "0.0.0";
9+
src = ./.;
10+
libraryHaskellDepends = [
11+
aeson base bytestring http-client http-client-tls http-conduit jose
12+
lens mtl network-uri pem servant servant-client-core servant-server
13+
servant-swagger text unordered-containers wai word8 x509
14+
];
15+
libraryToolDepends = [ hpack ];
16+
prePatch = "hpack";
17+
license = stdenv.lib.licenses.mit;
18+
}

infra/firebase-login/nix/default.nix

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,6 @@
22
with
33
{ overlay = _: pkgs: rec
44
{ inherit (import sources.niv {}) niv;
5-
haskellPackages = pkgs.haskellPackages.override
6-
{ overrides = _: super:
7-
{ jose = super.callCabal2nix "jose" sources.hs-jose {}; };
8-
};
95

106
packages = import ./packages.nix
117
{ inherit (pkgs) haskell lib ;

infra/firebase-login/nix/packages.nix

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
}:
88
rec
99
{ firebase-login-sdist = haskell.lib.sdistTarball firebase-login;
10-
firebase-login = haskellPackages.callCabal2nix "firebase-login" firebase-login-source {};
10+
firebase-login = haskellPackages.callPackage ../../firebase-login {};
1111
firebase-login-source = lib.sourceByRegex ../.
1212
[ "^package.yaml$"
1313
"^src.*"

infra/firebase-login/shell.nix

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
1-
with { pkgs = import ./nix {}; };
2-
pkgs.haskellPackages.developPackage
3-
{ root = ./.;
4-
modifier = drv: drv // { buildInputs = drv.buildInputs ++ [ pkgs.cabal-install ]; } ;
5-
}
1+
with { pkgs = import ../nix {}; };
2+
3+
pkgs.haskellPackages.firebase-login.env.overrideAttrs(oldAttrs: {
4+
nativeBuildInputs = oldAttrs.nativeBuildInputs or [] ++ [ pkgs.cabal-install ];
5+
})

infra/firebase-login/src/Servant/Auth/Firebase.hs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ import qualified Network.Wai as Wai
3535
import qualified Servant as Servant
3636
import qualified Servant.Client.Core as Servant
3737
import qualified Servant.Client.Core as Servant.Client
38-
import qualified Servant.Server.Internal.RoutingApplication as Servant
38+
import qualified Servant.Server.Internal as Servant
3939

4040
data Protected
4141

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
{ mkDerivation, aeson, amazonka, amazonka-core, amazonka-s3, base
2+
, bytestring, hpack, http-client, http-client-tls, http-conduit
3+
, http-types, servant, servant-client, servant-server, stdenv, text
4+
, unliftio, wai, wai-cors, wai-lambda, warp, pkgsMusl
5+
}:
6+
mkDerivation {
7+
pname = "google-key-updater";
8+
version = "0.0.0";
9+
src = ./.;
10+
isLibrary = false;
11+
isExecutable = true;
12+
libraryToolDepends = [ hpack ];
13+
executableHaskellDepends = [
14+
aeson amazonka amazonka-core amazonka-s3 base bytestring
15+
http-client http-client-tls http-conduit http-types servant
16+
servant-client servant-server text unliftio wai wai-cors wai-lambda
17+
warp
18+
];
19+
prePatch = "hpack";
20+
license = stdenv.lib.licenses.agpl3;
21+
configureFlags = [
22+
"--ghc-option=-optl=-static"
23+
"--extra-lib-dirs=${pkgsMusl.gmp6.override { withStatic = true; }}/lib"
24+
"--extra-lib-dirs=${pkgsMusl.zlib.static}/lib"
25+
"--extra-lib-dirs=${pkgsMusl.libffi.overrideAttrs (old: { dontDisableStatic = true; })}/lib"
26+
];
27+
}

infra/handler/app/Test.hs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -328,7 +328,7 @@ testServer = withServer $ \port -> do
328328

329329
runClientM (usersPost' b someUserInfo) clientEnv >>= \case
330330
-- TODO: test that user is returned here, even on 409
331-
Left (FailureResponse resp) ->
331+
Left (FailureResponse _ resp) ->
332332
if HTTP.statusCode (responseStatusCode resp) == 409 then pure () else
333333
error $ "Got unexpected response: " <> show resp
334334
Left e -> error $ "Expected 409, got error: " <> show e

infra/handler/default.nix

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
{ mkDerivation, aeson, amazonka, amazonka-cloudfront, amazonka-core
2+
, amazonka-s3, amazonka-sqs, base, bytestring, cases, conduit
3+
, conduit-extra, contravariant, cryptonite, directory, filepath
4+
, firebase-login, hasql, hpack, http-client, http-client-tls
5+
, http-types, lens, memory, mime-types, mtl, port-utils, pureMD5
6+
, random, resourcet, servant, servant-client, servant-server
7+
, servant-swagger, servant-swagger-ui, stdenv, swagger2, tagsoup
8+
, tasty, tasty-hunit, temporary, text, time, unliftio
9+
, unordered-containers, wai, wai-cors, wai-lambda, warp
10+
, zip-archive, pkgsMusl
11+
}:
12+
mkDerivation {
13+
pname = "deckdeckgo-handler";
14+
version = "0.0.0";
15+
src = ./.;
16+
isLibrary = true;
17+
isExecutable = true;
18+
enableLibraryProfiling = false;
19+
enableExecutableProfiling = false;
20+
enableSharedExecutables = false;
21+
enableSharedLibraries = false;
22+
libraryHaskellDepends = [
23+
aeson amazonka amazonka-cloudfront amazonka-core amazonka-s3
24+
amazonka-sqs base bytestring cases conduit conduit-extra
25+
contravariant cryptonite directory filepath firebase-login hasql
26+
http-client http-types lens memory mime-types mtl pureMD5 random
27+
resourcet servant servant-server servant-swagger servant-swagger-ui
28+
swagger2 tagsoup temporary text time unliftio unordered-containers
29+
wai wai-cors wai-lambda zip-archive
30+
];
31+
libraryToolDepends = [ hpack ];
32+
executableHaskellDepends = [
33+
aeson amazonka amazonka-cloudfront amazonka-core amazonka-s3
34+
amazonka-sqs base bytestring cases conduit conduit-extra
35+
contravariant cryptonite directory filepath firebase-login hasql
36+
http-client http-client-tls http-types lens memory mime-types mtl
37+
port-utils pureMD5 random resourcet servant servant-client
38+
servant-server servant-swagger servant-swagger-ui swagger2 tagsoup
39+
tasty tasty-hunit temporary text time unliftio unordered-containers
40+
wai wai-cors wai-lambda warp zip-archive
41+
];
42+
prePatch = "hpack";
43+
license = stdenv.lib.licenses.agpl3;
44+
configureFlags = [
45+
"--ghc-option=-optl=-static"
46+
"--extra-lib-dirs=${pkgsMusl.gmp6.override { withStatic = true; }}/lib"
47+
"--extra-lib-dirs=${pkgsMusl.zlib.static}/lib"
48+
"--extra-lib-dirs=${pkgsMusl.libffi.overrideAttrs (old: { dontDisableStatic = true; })}/lib"
49+
];
50+
}

infra/handler/package.yaml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,10 @@ dependencies:
4848

4949
ghc-options:
5050
- -Wall
51+
- -optl
52+
- -Wl,--start-group
53+
- -lssl
54+
- -lcrypto
5155

5256
library:
5357
source-dirs: src

0 commit comments

Comments
 (0)