|
17 | 17 | };
|
18 | 18 | };
|
19 | 19 |
|
20 |
| -outputs={self,nixpkgs,nixpkgs-pinned,flake-utils,drpc,pnpm2nix}: |
21 |
| -flake-utils.lib.eachDefaultSystem(system: |
| 20 | +outputs= |
| 21 | +{ |
| 22 | +self, |
| 23 | +nixpkgs, |
| 24 | +nixpkgs-pinned, |
| 25 | +flake-utils, |
| 26 | +drpc, |
| 27 | +pnpm2nix, |
| 28 | +}: |
| 29 | +flake-utils.lib.eachDefaultSystem( |
| 30 | +system: |
22 | 31 | let
|
23 | 32 | pkgs=importnixpkgs{
|
24 | 33 | inheritsystem;
|
|
32 | 41 | inheritsystem;
|
33 | 42 | };
|
34 | 43 |
|
| 44 | +formatter=pkgs.nixfmt-rfc-style; |
| 45 | + |
35 | 46 | nodejs=pkgs.nodejs_20;
|
36 | 47 | pnpm=pkgs.pnpm_9.override{
|
37 |
| -inheritnodejs;# Ensure it points to the above nodejs version |
| 48 | +inheritnodejs;# Ensure it points to the above nodejs version |
38 | 49 | };
|
39 | 50 |
|
40 | 51 | # Check in https://search.nixos.org/packages to find new packages.
|
41 | 52 | # Use `nix --extra-experimental-features nix-command --extra-experimental-features flakes flake update`
|
42 | 53 | # to update the lock file if packages are out-of-date.
|
43 | 54 |
|
44 | 55 | # From https://nixos.wiki/wiki/Google_Cloud_SDK
|
45 |
| -gdk=pkgs.google-cloud-sdk.withExtraComponents([pkgs.google-cloud-sdk.components.gke-gcloud-auth-plugin]); |
| 56 | +gdk=pkgs.google-cloud-sdk.withExtraComponents[ |
| 57 | +pkgs.google-cloud-sdk.components.gke-gcloud-auth-plugin |
| 58 | +]; |
46 | 59 |
|
47 | 60 | proto_gen_go_1_30=pkgs.buildGoModulerec{
|
48 | 61 | name="protoc-gen-go";
|
|
63 | 76 | # The minimal set of packages to build Coder.
|
64 | 77 | devShellPackages=withpkgs;[
|
65 | 78 | # google-chrome is not available on aarch64 linux
|
66 |
| -(lib.optionalDrvAttr(!stdenv.isLinux||!stdenv.isAarch64)google-chrome) |
| 79 | +(lib.optionalDrvAttr(!stdenv.isLinux||!stdenv.isAarch64)google-chrome) |
67 | 80 | # strace is not available on OSX
|
68 |
| -(lib.optionalDrvAttr(!pkgs.stdenv.isDarwin)strace) |
| 81 | +(lib.optionalDrvAttr(!pkgs.stdenv.isDarwin)strace) |
69 | 82 | bat
|
70 | 83 | cairo
|
71 | 84 | curl
|
72 | 85 | delve
|
| 86 | +dive |
73 | 87 | drpc.defaultPackage.${system}
|
| 88 | +formatter |
74 | 89 | fzf
|
75 | 90 | gcc
|
76 | 91 | gdk
|
|
129 | 144 |
|
130 | 145 | src=./site/.;
|
131 | 146 | # Required for the `canvas` package!
|
132 |
| -extraBuildInputs=withpkgs;[ |
133 |
| -cairo |
134 |
| -pango |
135 |
| -pixman |
136 |
| -libpnglibjpeggifliblibrsvg |
137 |
| -python312Packages.setuptools |
138 |
| -]++(lib.optionalsstdenv.targetPlatform.isDarwin[darwin.apple_sdk.frameworks.Foundationxcbuild]); |
| 147 | +extraBuildInputs= |
| 148 | +withpkgs; |
| 149 | +[ |
| 150 | +cairo |
| 151 | +pango |
| 152 | +pixman |
| 153 | +libpng |
| 154 | +libjpeg |
| 155 | +giflib |
| 156 | +librsvg |
| 157 | +python312Packages.setuptools |
| 158 | +] |
| 159 | +++(lib.optionalsstdenv.targetPlatform.isDarwin[ |
| 160 | +darwin.apple_sdk.frameworks.Foundation |
| 161 | +xcbuild |
| 162 | +]); |
139 | 163 | installInPlace=true;
|
140 | 164 | distDir="out";
|
141 | 165 | };
|
|
144 | 168 |
|
145 | 169 | # To make faster subsequent builds, you could extract the `.zst`
|
146 | 170 | # slim bundle into it's own derivation.
|
147 |
| -buildFat=osArch: |
| 171 | +buildFat= |
| 172 | +osArch: |
148 | 173 | pkgs.buildGo122Module{
|
149 | 174 | name="coder-${osArch}";
|
150 | 175 | # Updated with ./scripts/update-flake.sh`.
|
151 | 176 | # This should be updated whenever go.mod changes!
|
152 |
| -vendorHash="sha256-DNQ3UPQoiiWEatMPj6B7QGGy9qOSvOmjADsrr+drCBY="; |
| 177 | +vendorHash="sha256-hJBNmHz9ZJLS/QTu8w8y1w/Yi45aSoaSeZ//ysllp6c="; |
153 | 178 | proxyVendor=true;
|
154 | 179 | src=./.;
|
155 |
| -nativeBuildInputs=withpkgs;[getoptopensslzstd]; |
| 180 | +nativeBuildInputs=withpkgs;[ |
| 181 | +getopt |
| 182 | +openssl |
| 183 | +zstd |
| 184 | +]; |
156 | 185 | preBuild=''
|
157 | 186 | # Replaces /usr/bin/env with an absolute path to the interpreter.
|
158 | 187 | patchShebangs ./scripts
|
|
177 | 206 | '';
|
178 | 207 | };
|
179 | 208 | in
|
180 |
| -{ |
| 209 | +rec{ |
| 210 | +inheritformatter; |
| 211 | + |
181 | 212 | devShells={
|
182 | 213 | default=pkgs.mkShell{
|
183 | 214 | buildInputs=devShellPackages;
|
|
186 | 217 | export PLAYWRIGHT_SKIP_VALIDATE_HOST_REQUIREMENTS=true
|
187 | 218 | '';
|
188 | 219 |
|
189 |
| -LOCALE_ARCHIVE=withpkgs;lib.optionalDrvAttrstdenv.isLinux"${glibcLocales}/lib/locale/locale-archive"; |
| 220 | +LOCALE_ARCHIVE= |
| 221 | +withpkgs; |
| 222 | +lib.optionalDrvAttrstdenv.isLinux"${glibcLocales}/lib/locale/locale-archive"; |
190 | 223 | };
|
191 | 224 | };
|
192 | 225 |
|
193 |
| -packages={ |
194 |
| -proto_gen_go=proto_gen_go_1_30; |
195 |
| -all=pkgs.buildEnv{ |
196 |
| -name="all-packages"; |
197 |
| -paths=devShellPackages; |
198 |
| -}; |
199 |
| -site=buildSite; |
200 |
| - |
201 |
| -# Copying `OS_ARCHES` from the Makefile. |
202 |
| -linux_amd64=buildFat"linux_amd64"; |
203 |
| -linux_arm64=buildFat"linux_arm64"; |
204 |
| -darwin_amd64=buildFat"darwin_amd64"; |
205 |
| -darwin_arm64=buildFat"darwin_arm64"; |
206 |
| -windows_amd64=buildFat"windows_amd64.exe"; |
207 |
| -windows_arm64=buildFat"windows_arm64.exe"; |
208 |
| -}; |
| 226 | +packages= |
| 227 | +{ |
| 228 | +default=packages.${system}; |
| 229 | + |
| 230 | +site=buildSite; |
| 231 | + |
| 232 | +# Copying `OS_ARCHES` from the Makefile. |
| 233 | +x86_64-linux=buildFat"linux_amd64"; |
| 234 | +aarch64-linux=buildFat"linux_arm64"; |
| 235 | +x86_64-darwin=buildFat"darwin_amd64"; |
| 236 | +aarch64-darwin=buildFat"darwin_arm64"; |
| 237 | +x86_64-windows=buildFat"windows_amd64.exe"; |
| 238 | +aarch64-windows=buildFat"windows_arm64.exe"; |
| 239 | +} |
| 240 | +//(pkgs.lib.optionalAttrspkgs.stdenv.isLinux{ |
| 241 | +dev_image=pkgs.dockerTools.buildNixShellImage{ |
| 242 | +name="codercom/oss-dogfood-nix"; |
| 243 | +tag="latest-${system}"; |
| 244 | + |
| 245 | +drv=devShells.default.overrideAttrs(oldAttrs:{ |
| 246 | +buildInputs=oldAttrs.buildInputs++[pkgs.nix]; |
| 247 | +}); |
| 248 | +}; |
| 249 | +}); |
209 | 250 | }
|
210 | 251 | );
|
211 | 252 | }
|