···12501250 directories, thus increasing the purity of the build.
12511251 </para>
12521252 </listitem>
12531253+ <listitem>
12541254+ <para>
12551255+ Three new options,
12561256+ <link linkend="opt-xdg.mime.addedAssociations">xdg.mime.addedAssociations</link>,
12571257+ <link linkend="opt-xdg.mime.defaultApplications">xdg.mime.defaultApplications</link>,
12581258+ and
12591259+ <link linkend="opt-xdg.mime.removedAssociations">xdg.mime.removedAssociations</link>
12601260+ have been added to the
12611261+ <link linkend="opt-xdg.mime.enable">xdg.mime</link> module to
12621262+ allow the configuration of
12631263+ <literal>/etc/xdg/mimeapps.list</literal>.
12641264+ </para>
12651265+ </listitem>
12531266 </itemizedlist>
12541267 </section>
12551268</section>
+2
nixos/doc/manual/release-notes/rl-2111.section.md
···378378379379- `lua` and `luajit` interpreters have been patched to avoid looking into /usr/lib
380380 directories, thus increasing the purity of the build.
381381+382382+- Three new options, [xdg.mime.addedAssociations](#opt-xdg.mime.addedAssociations), [xdg.mime.defaultApplications](#opt-xdg.mime.defaultApplications), and [xdg.mime.removedAssociations](#opt-xdg.mime.removedAssociations) have been added to the [xdg.mime](#opt-xdg.mime.enable) module to allow the configuration of `/etc/xdg/mimeapps.list`.
···44 version="5.0"
55 xml:id="module-services-pleroma">
66 <title>Pleroma</title>
77- <para><link xlink:href="https://pleroma.social/">Pleroma</link> is a lightweight activity pub server.</para>
88- <section xml:id="module-services-pleroma-getting-started">
99- <title>Quick Start</title>
1010- <para>To get quickly started, you can use this sample NixOS configuration and adapt it to your use case.</para>
1111- <para><programlisting>
1212- {
1313- security.acme = {
1414- email = "root@tld";
1515- acceptTerms = true;
1616- certs = {
1717- "social.tld.com" = {
1818- webroot = "/var/www/social.tld.com";
1919- email = "root@tld";
2020- group = "nginx";
2121- };
2222- };
2323- };
2424- services = {
2525- pleroma = {
2626- enable = true;
2727- secretConfigFile = "/var/lib/pleroma/secrets.exs";
2828- configs = [
2929- ''
3030- import Config
77+ <para>
88+ <link xlink:href="https://pleroma.social/">Pleroma</link> is a lightweight activity pub server.</para>
99+ <section xml:id="module-services-pleroma-generate-config">
1010+ <title>Generating the Pleroma config</title>
1111+ <para>The <literal>pleroma_ctl</literal> CLI utility will prompt you some questions and it will generate an initial config file. This is an example of usage
1212+<programlisting>
1313+<prompt>$ </prompt>mkdir tmp-pleroma
1414+<prompt>$ </prompt>cd tmp-pleroma
1515+<prompt>$ </prompt>nix-shell -p pleroma-otp
1616+<prompt>$ </prompt>pleroma_ctl instance gen --output config.exs --output-psql setup.psql
1717+</programlisting>
1818+ </para>
1919+ <para>The <literal>config.exs</literal> file can be further customized following the instructions on the <link xlink:href="https://docs-develop.pleroma.social/backend/configuration/cheatsheet/">upstream documentation</link>. Many refinements can be applied also after the service is running.</para>
2020+ </section>
2121+ <section xml:id="module-services-pleroma-initialize-db">
2222+ <title>Initializing the database</title>
2323+ <para>First, the Postgresql service must be enabled in the NixOS configuration
2424+<programlisting>
2525+services.postgresql = {
2626+ enable = true;
2727+ package = pkgs.postgresql_13;
2828+};
2929+</programlisting>
3030+and activated with the usual
3131+<programlisting>
3232+<prompt>$ </prompt>nixos-rebuild switch
3333+</programlisting>
3434+ </para>
3535+ <para>Then you can create and seed the database, using the <literal>setup.psql</literal> file that you generated in the previous section, by running
3636+<programlisting>
3737+<prompt>$ </prompt>sudo -u postgres psql -f setup.psql
3838+</programlisting>
3939+ </para>
4040+ </section>
4141+ <section xml:id="module-services-pleroma-enable">
4242+ <title>Enabling the Pleroma service locally</title>
4343+ <para>In this section we will enable the Pleroma service only locally, so its configurations can be improved incrementally.</para>
4444+ <para>This is an example of configuration, where <link linkend="opt-services.pleroma.configs">services.pleroma.configs</link> option contains the content of the file <literal>config.exs</literal>, generated <link linkend="module-services-pleroma-generate-config">in the first section</link>, but with the secrets (database password, endpoint secret key, salts, etc.) removed. Removing secrets is important, because otherwise they will be stored publicly in the Nix store.
4545+<programlisting>
4646+services.pleroma = {
4747+ enable = true;
4848+ secretConfigFile = "/var/lib/pleroma/secrets.exs";
4949+ configs = [
5050+ ''
5151+ import Config
31523232- config :pleroma, Pleroma.Web.Endpoint,
3333- url: [host: "social.tld.com", scheme: "https", port: 443],
3434- http: [ip: {127, 0, 0, 1}, port: 4000]
5353+ config :pleroma, Pleroma.Web.Endpoint,
5454+ url: [host: "pleroma.example.net", scheme: "https", port: 443],
5555+ http: [ip: {127, 0, 0, 1}, port: 4000]
35563636- config :pleroma, :instance,
3737- name: "NixOS test pleroma server",
3838- email: "pleroma@social.tld.com",
3939- notify_email: "pleroma@social.tld.com",
4040- limit: 5000,
4141- registrations_open: true
5757+ config :pleroma, :instance,
5858+ name: "Test",
5959+ email: "admin@example.net",
6060+ notify_email: "admin@example.net",
6161+ limit: 5000,
6262+ registrations_open: true
42634343- config :pleroma, :media_proxy,
4444- enabled: false,
4545- redirect_on_failure: true
4646- #base_url: "https://cache.pleroma.social"
6464+ config :pleroma, :media_proxy,
6565+ enabled: false,
6666+ redirect_on_failure: true
47674848- config :pleroma, Pleroma.Repo,
4949- adapter: Ecto.Adapters.Postgres,
5050- username: "pleroma",
5151- password: "${test-db-passwd}",
5252- database: "pleroma",
5353- hostname: "localhost",
5454- pool_size: 10,
5555- prepare: :named,
5656- parameters: [
5757- plan_cache_mode: "force_custom_plan"
5858- ]
6868+ config :pleroma, Pleroma.Repo,
6969+ adapter: Ecto.Adapters.Postgres,
7070+ username: "pleroma",
7171+ database: "pleroma",
7272+ hostname: "localhost"
59736060- config :pleroma, :database, rum_enabled: false
6161- config :pleroma, :instance, static_dir: "/var/lib/pleroma/static"
6262- config :pleroma, Pleroma.Uploaders.Local, uploads: "/var/lib/pleroma/uploads"
6363- config :pleroma, configurable_from_database: false
6464- ''
6565- ];
6666- };
6767- postgresql = {
6868- enable = true;
6969- package = pkgs.postgresql_12;
7070- };
7171- nginx = {
7272- enable = true;
7373- addSSL = true;
7474- sslCertificate = "/var/lib/acme/social.tld.com/fullchain.pem";
7575- sslCertificateKey = "/var/lib/acme/social.tld.com/key.pem";
7676- root = "/var/www/social.tld.com";
7777- # ACME endpoint
7878- locations."/.well-known/acme-challenge" = {
7979- root = "/var/www/social.tld.com/";
8080- };
8181- virtualHosts."social.tld.com" = {
8282- addSSL = true;
8383- locations."/" = {
8484- proxyPass = "http://127.0.0.1:4000";
8585- extraConfig = ''
8686- add_header 'Access-Control-Allow-Origin' '*' always;
8787- add_header 'Access-Control-Allow-Methods' 'POST, PUT, DELETE, GET, PATCH, OPTIONS' always;
8888- add_header 'Access-Control-Allow-Headers' 'Authorization, Content-Type, Idempotency-Key' always;
8989- add_header 'Access-Control-Expose-Headers' 'Link, X-RateLimit-Reset, X-RateLimit-Limit, X-RateLimit-Remaining, X-Request-Id' always;
9090- if ($request_method = OPTIONS) {
9191- return 204;
9292- }
9393- add_header X-XSS-Protection "1; mode=block";
9494- add_header X-Permitted-Cross-Domain-Policies none;
9595- add_header X-Frame-Options DENY;
9696- add_header X-Content-Type-Options nosniff;
9797- add_header Referrer-Policy same-origin;
9898- add_header X-Download-Options noopen;
9999- proxy_http_version 1.1;
100100- proxy_set_header Upgrade $http_upgrade;
101101- proxy_set_header Connection "upgrade";
102102- proxy_set_header Host $host;
103103- client_max_body_size 16m;
104104- '';
105105- };
106106- };
107107- };
108108- };
109109- };
110110- </programlisting></para>
111111- <para>Note that you'll need to seed your database and upload your pleroma secrets to the path pointed by <literal>config.pleroma.secretConfigFile</literal>. You can find more informations about how to do that in the <link linkend="module-services-pleroma-generate-config">next</link> section.</para>
112112- </section>
113113- <section xml:id="module-services-pleroma-generate-config">
114114- <title>Generating the Pleroma Config and Seed the Database</title>
7474+ # Configure web push notifications
7575+ config :web_push_encryption, :vapid_details,
7676+ subject: "mailto:admin@example.net"
11577116116- <para>Before using this service, you'll need to generate your
117117-server configuration and its associated database seed. The
118118-<literal>pleroma_ctl</literal> CLI utility can help you with that. You
119119-can start with <literal>pleroma_ctl instance gen --output config.exs
120120---output-psql setup.psql</literal>, this will prompt you some
121121-questions and will generate both your config file and database initial
122122-migration. </para>
123123-<para>For more details about this configuration format, please have a look at the <link xlink:href="https://docs-develop.pleroma.social/backend/configuration/cheatsheet/">upstream documentation</link>.</para>
124124-<para>To seed your database, you can use the <literal>setup.psql</literal> file you just generated by running
7878+ # ... TO CONTINUE ...
7979+ ''
8080+ ];
8181+};
8282+</programlisting>
8383+ </para>
8484+ <para>Secrets must be moved into a file pointed by <link linkend="opt-services.pleroma.secretConfigFile">services.pleroma.secretConfigFile</link>, in our case <literal>/var/lib/pleroma/secrets.exs</literal>. This file can be created copying the previously generated <literal>config.exs</literal> file and then removing all the settings, except the secrets. This is an example
12585<programlisting>
126126- sudo -u postgres psql -f setup.psql
127127-</programlisting></para>
128128- <para>In regard of the pleroma service configuration you also just generated, you'll need to split it in two parts. The "public" part, which do not contain any secrets and thus can be safely stored in the Nix store and its "private" counterpart containing some secrets (database password, endpoint secret key, salts, etc.).</para>
8686+# Pleroma instance passwords
12987130130- <para>The public part will live in your NixOS machine configuration in the <link linkend="opt-services.pleroma.configs">services.pleroma.configs</link> option. However, it's up to you to upload the secret pleroma configuration to the path pointed by <link linkend="opt-services.pleroma.secretConfigFile">services.pleroma.secretConfigFile</link>. You can do that manually or rely on a third party tool such as <link xlink:href="https://github.com/DBCDK/morph">Morph</link> or <link xlink:href="https://github.com/NixOS/nixops">NixOps</link>.</para>
8888+import Config
8989+9090+config :pleroma, Pleroma.Web.Endpoint,
9191+ secret_key_base: "<the secret generated by pleroma_ctl>",
9292+ signing_salt: "<the secret generated by pleroma_ctl>"
9393+9494+config :pleroma, Pleroma.Repo,
9595+ password: "<the secret generated by pleroma_ctl>"
9696+9797+# Configure web push notifications
9898+config :web_push_encryption, :vapid_details,
9999+ public_key: "<the secret generated by pleroma_ctl>",
100100+ private_key: "<the secret generated by pleroma_ctl>"
101101+102102+# ... TO CONTINUE ...
103103+</programlisting>
104104+ Note that the lines of the same configuration group are comma separated (i.e. all the lines end with a comma, except the last one), so when the lines with passwords are added or removed, commas must be adjusted accordingly.</para>
105105+106106+ <para>The service can be enabled with the usual
107107+<programlisting>
108108+<prompt>$ </prompt>nixos-rebuild switch
109109+</programlisting>
110110+ </para>
111111+ <para>The service is accessible only from the local <literal>127.0.0.1:4000</literal> port. It can be tested using a port forwarding like this
112112+<programlisting>
113113+<prompt>$ </prompt>ssh -L 4000:localhost:4000 myuser@example.net
114114+</programlisting>
115115+and then accessing <link xlink:href="http://localhost:4000">http://localhost:4000</link> from a web browser.</para>
116116+ </section>
117117+ <section xml:id="module-services-pleroma-admin-user">
118118+ <title>Creating the admin user</title>
119119+ <para>After Pleroma service is running, all <link xlink:href="https://docs-develop.pleroma.social/">Pleroma administration utilities</link> can be used. In particular an admin user can be created with
120120+<programlisting>
121121+<prompt>$ </prompt>pleroma_ctl user new <nickname> <email> --admin --moderator --password <password>
122122+</programlisting>
123123+ </para>
124124+ </section>
125125+ <section xml:id="module-services-pleroma-nginx">
126126+ <title>Configuring Nginx</title>
127127+ <para>In this configuration, Pleroma is listening only on the local port 4000. Nginx can be configured as a Reverse Proxy, for forwarding requests from public ports to the Pleroma service. This is an example of configuration, using
128128+<link xlink:href="https://letsencrypt.org/">Let's Encrypt</link> for the TLS certificates
129129+<programlisting>
130130+security.acme = {
131131+ email = "root@example.net";
132132+ acceptTerms = true;
133133+};
134134+135135+services.nginx = {
136136+ enable = true;
137137+ addSSL = true;
138138+139139+ recommendedTlsSettings = true;
140140+ recommendedOptimisation = true;
141141+ recommendedGzipSettings = true;
142142+143143+ recommendedProxySettings = false;
144144+ # NOTE: if enabled, the NixOS proxy optimizations will override the Pleroma
145145+ # specific settings, and they will enter in conflict.
146146+147147+ virtualHosts = {
148148+ "pleroma.example.net" = {
149149+ http2 = true;
150150+ enableACME = true;
151151+ forceSSL = true;
152152+153153+ locations."/" = {
154154+ proxyPass = "http://127.0.0.1:4000";
155155+156156+ extraConfig = ''
157157+ etag on;
158158+ gzip on;
159159+160160+ add_header 'Access-Control-Allow-Origin' '*' always;
161161+ add_header 'Access-Control-Allow-Methods' 'POST, PUT, DELETE, GET, PATCH, OPTIONS' always;
162162+ add_header 'Access-Control-Allow-Headers' 'Authorization, Content-Type, Idempotency-Key' always;
163163+ add_header 'Access-Control-Expose-Headers' 'Link, X-RateLimit-Reset, X-RateLimit-Limit, X-RateLimit-Remaining, X-Request-Id' always;
164164+ if ($request_method = OPTIONS) {
165165+ return 204;
166166+ }
167167+ add_header X-XSS-Protection "1; mode=block";
168168+ add_header X-Permitted-Cross-Domain-Policies none;
169169+ add_header X-Frame-Options DENY;
170170+ add_header X-Content-Type-Options nosniff;
171171+ add_header Referrer-Policy same-origin;
172172+ add_header X-Download-Options noopen;
173173+ proxy_http_version 1.1;
174174+ proxy_set_header Upgrade $http_upgrade;
175175+ proxy_set_header Connection "upgrade";
176176+ proxy_set_header Host $host;
177177+178178+ client_max_body_size 16m;
179179+ # NOTE: increase if users need to upload very big files
180180+ '';
181181+ };
182182+ };
183183+ };
184184+};
185185+</programlisting>
186186+ </para>
131187 </section>
132188</chapter>
···170170 url = "https://raw.githubusercontent.com/input-output-hk/haskell.nix/122bd81150386867da07fdc9ad5096db6719545a/overlays/patches/ghc/cabal-host.patch";
171171 sha256 = "sha256:0yd0sajgi24sc1w5m55lkg2lp6kfkgpp3lgija2c8y3cmkwfpdc1";
172172 })
173173+174174+ # In order to build ghcjs packages, the Cabal of the ghc used for the ghcjs
175175+ # needs to be patched. Ref https://github.com/haskell/cabal/pull/7575
176176+ (fetchpatch {
177177+ url = "https://github.com/haskell/cabal/commit/369c4a0a54ad08a9e6b0d3bd303fedd7b5e5a336.patch";
178178+ sha256 = "120f11hwyaqa0pq9g5l1300crqij49jg0rh83hnp9sa49zfdwx1n";
179179+ stripLen = 3;
180180+ extraPrefix = "libraries/Cabal/Cabal/";
181181+ })
173182 ] ++ lib.optionals stdenv.isDarwin [
174183 # Make Block.h compile with c++ compilers. Remove with the next release
175184 (fetchpatch {
+6-7
pkgs/development/compilers/ghc/head.nix
···4040, # Whether to build terminfo.
4141 enableTerminfo ? !stdenv.targetPlatform.isWindows
42424343-, version ? "9.3.20210806"
4343+, version ? "9.3.20210913"
4444, # What flavour to build. An empty string indicates no
4545 # specific flavour and falls back to ghc default values.
4646 ghcFlavour ? lib.optionalString (stdenv.targetPlatform != stdenv.hostPlatform)
···153153154154 src = fetchgit {
155155 url = "https://gitlab.haskell.org/ghc/ghc.git/";
156156- rev = "5d651c78fed7e55b3b3cd21a04499d1a2f75204d";
157157- sha256 = "1z9xg8jsqr9id985wxfhkjyb3kpyrmr7vjdqzfv42cpxynd483r8";
156156+ rev = "64923cf295ea914db458547432237a5ed1eff571";
157157+ sha256 = "1s9sm4gf4r71lk0s7h9v217rxfwjf435q1jji90hlxz23wvmhr6d";
158158 };
159159160160 enableParallelBuilding = true;
···194194 export NIX_LDFLAGS+=" -rpath $out/lib/ghc-${version}"
195195 '' + lib.optionalString stdenv.isDarwin ''
196196 export NIX_LDFLAGS+=" -no_dtrace_dof"
197197+198198+ # GHC tries the host xattr /usr/bin/xattr by default which fails since it expects python to be 2.7
199199+ export XATTR=${lib.getBin xattr}/bin/xattr
197200 '' + lib.optionalString targetPlatform.useAndroidPrebuilt ''
198201 sed -i -e '5i ,("armv7a-unknown-linux-androideabi", ("e-m:e-p:32:32-i64:64-v128:64:128-a:0:32-n32-S64", "cortex-a8", ""))' llvm-targets
199202 '' + lib.optionalString targetPlatform.isMusl ''
···256259 ghc bootPkgs.alex bootPkgs.happy bootPkgs.hscolour
257260 ] ++ lib.optionals enableDocs [
258261 sphinx
259259- ] ++ lib.optionals stdenv.isDarwin [
260260- # TODO(@sternenseemann): use XATTR env var once we have
261261- # https://gitlab.haskell.org/ghc/ghc/-/merge_requests/6447
262262- xattr
263262 ];
264263265264 # For building runtime libs
···11-New build system for GHCJS 8.2
22----
33-44-`ghcjs-8.2` reworked the build system, and now comes with its own
55-small package set of dependencies. This involves autogenerating
66-several sources and cabal files, based on a GHC
77-checkout. `callCabal2nix` is off limits, since we don't like "import
88-from derivation" in nixpkgs. So there is a derivation that builds the
99-nix expression that should be checked in whenever GHCJS is updated.
1010-1111-Updating
1212----
1313-1414-```
1515-$ nix-prefetch-git https://github.com/ghcjs/ghcjs --rev refs/heads/ghc-8.4 \
1616- | jq '{ url, rev, fetchSubmodules, sha256 }' \
1717- > 8.4/git.json
1818-$ cat $(nix-build ../../../.. -A haskell.compiler.ghcjs82.genStage0 --no-out-link) > 8.4/stage0.nix
1919-$ cabal2nix --compiler ghcjs git://github.com/ghcjs/ghcjs-base > ghcjs-base.nix
2020-```
2121-
···11+{ perl
22+, autoconf
33+, automake
44+, python3
55+, gcc
66+, cabal-install
77+, runCommand
88+, lib
99+, stdenv
1010+1111+, ghc
1212+, happy
1313+, alex
1414+1515+, ghcjsSrc
1616+, version
1717+}:
1818+1919+runCommand "configured-ghcjs-src" {
2020+ nativeBuildInputs = [
2121+ perl
2222+ autoconf
2323+ automake
2424+ python3
2525+ ghc
2626+ happy
2727+ alex
2828+ cabal-install
2929+ ] ++ lib.optionals stdenv.isDarwin [
3030+ gcc # https://github.com/ghcjs/ghcjs/issues/663
3131+ ];
3232+ inherit ghcjsSrc;
3333+} ''
3434+ export HOME=$(pwd)
3535+ mkdir $HOME/.cabal
3636+ touch $HOME/.cabal/config
3737+ cp -r "$ghcjsSrc" "$out"
3838+ chmod -R +w "$out"
3939+ cd "$out"
4040+4141+ # TODO: Find a better way to avoid impure version numbers
4242+ sed -i 's/RELEASE=NO/RELEASE=YES/' ghc/configure.ac
4343+4444+ # These files are needed by ghc-boot package, and these are generated by the
4545+ # make/hadrian build system when compiling ghc. Since we dont have access to
4646+ # the generated code of the ghc while it got built, here is a little hack to
4747+ # generate these again.
4848+ runhaskell ${./generate_host_version.hs}
4949+ mkdir -p utils/pkg-cache/ghc/libraries/ghc-boot/dist-install/build/GHC/Platform
5050+ mv Host.hs utils/pkg-cache/ghc/libraries/ghc-boot/dist-install/build/GHC/Platform/Host.hs
5151+ mv Version.hs utils/pkg-cache/ghc/libraries/ghc-boot/dist-install/build/GHC/Version.hs
5252+5353+ # The ghcjs has the following hardcoded paths of lib dir in its code. Patching
5454+ # these to match the path expected by the nixpkgs's generic-builder, etc.
5555+ sed -i 's/libSubDir = "lib"/libSubDir = "lib\/ghcjs-${version}"/' src-bin/Boot.hs
5656+ sed -i 's@let libDir = takeDirectory haddockPath </> ".." </> "lib"@let libDir = takeDirectory haddockPath </> ".." </> "lib/ghcjs-${version}"@' src-bin/HaddockDriver.hs
5757+5858+ patchShebangs .
5959+ ./utils/makePackages.sh copy
6060+''
···13551355 # 2021-06-20: Tests fail: https://github.com/haskell/haskell-language-server/issues/1949
13561356 hls-refine-imports-plugin = dontCheck super.hls-refine-imports-plugin;
1357135713581358- # 2021-03-09: Golden tests seem to be missing in hackage release:
13591359- # https://github.com/haskell/haskell-language-server/issues/1536
13601360- hls-tactics-plugin = dontCheck (super.hls-tactics-plugin.override { refinery = self.refinery_0_3_0_0; });
13581358+ # 2021-09-14: Tests are broken because of undeterministic variable names
13591359+ hls-tactics-plugin = dontCheck super.hls-tactics-plugin;
1361136013621361 # 2021-03-21 Test hangs
13631362 # https://github.com/haskell/haskell-language-server/issues/1562
13641364- # Jailbreak because of: https://github.com/haskell/haskell-language-server/pull/1595
13651365- ghcide = doJailbreak (dontCheck super.ghcide);
13661366-13671367- # 2020-03-09: Tests broken in hackage release
13681368- # fixed on upstream, but not released in hiedb 0.3.0.1
13691369- # https://github.com/wz1000/HieDb/issues/30
13701370- hiedb = dontCheck super.hiedb;
13631363+ ghcide = dontCheck super.ghcide;
1371136413721365 data-tree-print = doJailbreak super.data-tree-print;
13731366···14441437 # compatible with Cabal 3. No upstream repository found so far
14451438 readline = appendPatch super.readline ./patches/readline-fix-for-cabal-3.patch;
1446143914471447- # 2020-12-05: http-client is fixed on too old version
14481448- essence-of-live-coding-warp = doJailbreak (super.essence-of-live-coding-warp.override {
14491449- http-client = self.http-client_0_7_8;
14501450- });
14401440+ # 2020-12-05: this package requires a newer version of http-client,
14411441+ # but it still compiles with older version:
14421442+ # https://github.com/turion/essence-of-live-coding/pull/86
14431443+ essence-of-live-coding-warp = doJailbreak super.essence-of-live-coding-warp;
1451144414521445 # 2020-12-06: Restrictive upper bounds w.r.t. pandoc-types (https://github.com/owickstrom/pandoc-include-code/issues/27)
14531446 pandoc-include-code = doJailbreak super.pandoc-include-code;
···18431836 testFlags = [ "--pattern" "!/[NOCI]/" ];
18441837 };
1845183818461846- # Tests require to run a binary which isn't built
18471847- lsp-test = dontCheck super.lsp-test;
18481848-18491839 # 2021-05-22: Tests fail sometimes (even consistently on hydra)
18501840 # when running a fs-related test with >= 12 jobs. To work around
18511841 # this, run tests with only a single job.
···1924191419251915 # Needs Cabal >= 3.4
19261916 chs-cabal = super.chs-cabal.override {
19271927- Cabal = self.Cabal_3_6_0_0;
19171917+ Cabal = self.Cabal_3_6_1_0;
19281918 };
1929191919301920 # 2021-08-18: streamly-posix was released with hspec 2.8.2, but it works with older versions too.
···1932192219331923 # 2021-09-06: hadolint depends on language-docker >= 10.1
19341924 hadolint = super.hadolint.override {
19351935- language-docker = self.language-docker_10_1_1;
19251925+ language-docker = self.language-docker_10_1_2;
19361926 };
19271927+19281928+ # 2021-09-13: hls 1.3 needs a newer lsp than stackage-lts. (lsp >= 1.2.0.1)
19291929+ # (hls is nearly the only consumer, but consists of 18 packages, so we bump lsp globally.)
19301930+ lsp = doDistribute self.lsp_1_2_0_1;
19311931+ lsp-types = doDistribute self.lsp-types_1_3_0_1;
19321932+ # Not running the "example" test because it requires a binary from lsps test
19331933+ # suite which is not part of the output of lsp.
19341934+ lsp-test = doDistribute (overrideCabal self.lsp-test_0_14_0_1 (old: { testTarget = "tests func-test"; }));
19351935+19361936+ # 2021-09-14: Tests are flaky.
19371937+ hls-splice-plugin = dontCheck super.hls-splice-plugin;
1937193819381939} // import ./configuration-tensorflow.nix {inherit pkgs haskellLib;} self super
···13131414buildPythonPackage rec {
1515 pname = "botocore";
1616- version = "1.20.106"; # N.B: if you change this, change boto3 and awscli to a matching version
1616+ version = "1.21.31"; # N.B: if you change this, change boto3 and awscli to a matching version
17171818 src = fetchPypi {
1919 inherit pname version;
2020- sha256 = "sha256-bVyYOAix0AQ39W0MCEEr2C2fgBL9t35VX5cneh/U1d8=";
2020+ sha256 = "sha256-WM0xXirglxrNs9fNqcnDa0HHMYH0GUOnRDgS1tPJrRg=";
2121 };
22222323 propagatedBuildInputs = [
···2121in
2222with py.pkgs; buildPythonApplication rec {
2323 pname = "awscli";
2424- version = "1.19.106"; # N.B: if you change this, change botocore and boto3 to a matching version too
2424+ version = "1.20.31"; # N.B: if you change this, change botocore and boto3 to a matching version too
25252626 src = fetchPypi {
2727 inherit pname version;
2828- sha256 = "sha256-6o24GUcT3efgK5+Wa7n4+EeA5qXmAGhybzed7ybdT9Q=";
2828+ sha256 = "sha256-qDKnxh4M+LOXYp1xCvW0S0IE5NnwvFpYelUCCjA18zQ=";
2929 };
30303131 # https://github.com/aws/aws-cli/issues/4837