Merge master into staging-next

+4691 -2316
+2 -2
.github/CONTRIBUTING.md
··· 53 To [backport a change into a release branch](https://nixos.org/nixpkgs/manual/#submitting-changes-stable-release-branches): 54 55 1. Take note of the commit in which the change was introduced into `master`. 56 - 2. Check out the target _release branch_, e.g. `release-19.09`. Do not use a _channel branch_ like `nixos-19.09` or `nixpkgs-19.09`. 57 3. Use `git cherry-pick -x <original commit>`. 58 - 4. Open your backport PR. Make sure to select the release branch (e.g. `release-19.09`) as the target branch of the PR, and link to the PR in which the original change was made to `master`. 59 60 ## Reviewing contributions 61
··· 53 To [backport a change into a release branch](https://nixos.org/nixpkgs/manual/#submitting-changes-stable-release-branches): 54 55 1. Take note of the commit in which the change was introduced into `master`. 56 + 2. Check out the target _release branch_, e.g. `release-20.03`. Do not use a _channel branch_ like `nixos-20.03` or `nixpkgs-20.03`. 57 3. Use `git cherry-pick -x <original commit>`. 58 + 4. Open your backport PR. Make sure to select the release branch (e.g. `release-20.03`) as the target branch of the PR, and link to the PR in which the original change was made to `master`. 59 60 ## Reviewing contributions 61
+2 -2
README.md
··· 45 system, [Hydra](https://hydra.nixos.org/). 46 47 * [Continuous package builds for unstable/master](https://hydra.nixos.org/jobset/nixos/trunk-combined) 48 - * [Continuous package builds for the NixOS 19.09 release](https://hydra.nixos.org/jobset/nixos/release-19.09) 49 * [Tests for unstable/master](https://hydra.nixos.org/job/nixos/trunk-combined/tested#tabs-constituents) 50 - * [Tests for the NixOS 19.09 release](https://hydra.nixos.org/job/nixos/release-19.09/tested#tabs-constituents) 51 52 Artifacts successfully built with Hydra are published to cache at 53 https://cache.nixos.org/. When successful build and test criteria are
··· 45 system, [Hydra](https://hydra.nixos.org/). 46 47 * [Continuous package builds for unstable/master](https://hydra.nixos.org/jobset/nixos/trunk-combined) 48 + * [Continuous package builds for the NixOS 20.03 release](https://hydra.nixos.org/jobset/nixos/release-20.03) 49 * [Tests for unstable/master](https://hydra.nixos.org/job/nixos/trunk-combined/tested#tabs-constituents) 50 + * [Tests for the NixOS 20.03 release](https://hydra.nixos.org/job/nixos/release-20.03/tested#tabs-constituents) 51 52 Artifacts successfully built with Hydra are published to cache at 53 https://cache.nixos.org/. When successful build and test criteria are
+1 -1
doc/builders/images/appimagetools.xml
··· 63 appimageTools.wrapType2 { # or wrapType1 64 name = "patchwork"; <co xml:id='ex-appimageTools-wrapping-1' /> 65 src = fetchurl { <co xml:id='ex-appimageTools-wrapping-2' /> 66 - url = https://github.com/ssbc/patchwork/releases/download/v3.11.4/Patchwork-3.11.4-linux-x86_64.AppImage; 67 sha256 = "1blsprpkvm0ws9b96gb36f0rbf8f5jgmw4x6dsb1kswr4ysf591s"; 68 }; 69 extraPkgs = pkgs: with pkgs; [ ]; <co xml:id='ex-appimageTools-wrapping-3' />
··· 63 appimageTools.wrapType2 { # or wrapType1 64 name = "patchwork"; <co xml:id='ex-appimageTools-wrapping-1' /> 65 src = fetchurl { <co xml:id='ex-appimageTools-wrapping-2' /> 66 + url = "https://github.com/ssbc/patchwork/releases/download/v3.11.4/Patchwork-3.11.4-linux-x86_64.AppImage"; 67 sha256 = "1blsprpkvm0ws9b96gb36f0rbf8f5jgmw4x6dsb1kswr4ysf591s"; 68 }; 69 extraPkgs = pkgs: with pkgs; [ ]; <co xml:id='ex-appimageTools-wrapping-3' />
+1 -1
doc/languages-frameworks/python.section.md
··· 412 413 meta = with lib; { 414 description = "A pythonic wrapper around FFTW, the FFT library, presenting a unified interface for all the supported transforms"; 415 - homepage = http://hgomersall.github.com/pyFFTW; 416 license = with licenses; [ bsd2 bsd3 ]; 417 maintainers = with maintainers; [ fridh ]; 418 };
··· 412 413 meta = with lib; { 414 description = "A pythonic wrapper around FFTW, the FFT library, presenting a unified interface for all the supported transforms"; 415 + homepage = "http://hgomersall.github.com/pyFFTW"; 416 license = with licenses; [ bsd2 bsd3 ]; 417 maintainers = with maintainers; [ fridh ]; 418 };
+2 -2
doc/languages-frameworks/ruby.xml
··· 32 33 meta = with lib; { 34 description = "A monitoring framework that aims to be simple, malleable, and scalable"; 35 - homepage = http://sensuapp.org/; 36 license = with licenses; mit; 37 maintainers = with maintainers; [ theuni ]; 38 platforms = platforms.unix; ··· 69 70 meta = with lib; { 71 description = "Tool and libraries for maintaining Ruby gems."; 72 - homepage = https://github.com/nyarly/corundum; 73 license = licenses.mit; 74 maintainers = [ maintainers.nyarly ]; 75 platforms = platforms.unix;
··· 32 33 meta = with lib; { 34 description = "A monitoring framework that aims to be simple, malleable, and scalable"; 35 + homepage = "http://sensuapp.org/"; 36 license = with licenses; mit; 37 maintainers = with maintainers; [ theuni ]; 38 platforms = platforms.unix; ··· 69 70 meta = with lib; { 71 description = "Tool and libraries for maintaining Ruby gems."; 72 + homepage = "https://github.com/nyarly/corundum"; 73 license = licenses.mit; 74 maintainers = [ maintainers.nyarly ]; 75 platforms = platforms.unix;
-27
doc/languages-frameworks/texlive.xml
··· 149 ]]></programlisting> 150 </para> 151 </section> 152 - 153 - <section xml:id="sec-language-texlive-known-problems"> 154 - <title>Known problems</title> 155 - 156 - <itemizedlist> 157 - <listitem> 158 - <para> 159 - Some tools are still missing, e.g. luajittex; 160 - </para> 161 - </listitem> 162 - <listitem> 163 - <para> 164 - some apps aren't packaged/tested yet (asymptote, biber, etc.); 165 - </para> 166 - </listitem> 167 - <listitem> 168 - <para> 169 - feature/bug: when a package is rejected by <varname>pkgFilter</varname>, its dependencies are still propagated; 170 - </para> 171 - </listitem> 172 - <listitem> 173 - <para> 174 - in case of any bugs or feature requests, file a github issue or better a pull request and /cc @vcunat. 175 - </para> 176 - </listitem> 177 - </itemizedlist> 178 - </section> 179 </section>
··· 149 ]]></programlisting> 150 </para> 151 </section> 152 </section>
+2 -2
doc/old/cross.txt
··· 60 name = "binutils-2.16.1-arm"; 61 builder = ./builder.sh; 62 src = fetchurl { 63 - url = http://ftp.nluug.nl/gnu/binutils/binutils-2.16.1.tar.bz2; 64 sha256 = "1ian3kwh2vg6hr3ymrv48s04gijs539vzrq62xr76bxbhbwnz2np"; 65 }; 66 inherit noSysDirs; ··· 84 name = "linux-headers-2.6.13.1-arm"; 85 builder = ./builder.sh; 86 src = fetchurl { 87 - url = http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.13.1.tar.bz2; 88 sha256 = "12qxmc827fjhaz53kjy7vyrzsaqcg78amiqsb3qm20z26w705lma"; 89 }; 90 }
··· 60 name = "binutils-2.16.1-arm"; 61 builder = ./builder.sh; 62 src = fetchurl { 63 + url = "http://ftp.nluug.nl/gnu/binutils/binutils-2.16.1.tar.bz2"; 64 sha256 = "1ian3kwh2vg6hr3ymrv48s04gijs539vzrq62xr76bxbhbwnz2np"; 65 }; 66 inherit noSysDirs; ··· 84 name = "linux-headers-2.6.13.1-arm"; 85 builder = ./builder.sh; 86 src = fetchurl { 87 + url = "http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.13.1.tar.bz2"; 88 sha256 = "12qxmc827fjhaz53kjy7vyrzsaqcg78amiqsb3qm20z26w705lma"; 89 }; 90 }
+1 -1
doc/release-notes.xml
··· 190 The function <function>fetchurl</function> now has support for two different kinds of mirroring of files. First, it has support for <emphasis>content-addressable mirrors</emphasis>. For example, given the <function>fetchurl</function> call 191 <programlisting> 192 fetchurl { 193 - url = http://releases.mozilla.org/<replaceable>...</replaceable>/firefox-2.0.0.6-source.tar.bz2; 194 sha1 = "eb72f55e4a8bf08e8c6ef227c0ade3d068ba1082"; 195 }</programlisting> 196 <function>fetchurl</function> will first try to download this file from <link
··· 190 The function <function>fetchurl</function> now has support for two different kinds of mirroring of files. First, it has support for <emphasis>content-addressable mirrors</emphasis>. For example, given the <function>fetchurl</function> call 191 <programlisting> 192 fetchurl { 193 + url = "http://releases.mozilla.org/<replaceable>...</replaceable>/firefox-2.0.0.6-source.tar.bz2"; 194 sha1 = "eb72f55e4a8bf08e8c6ef227c0ade3d068ba1082"; 195 }</programlisting> 196 <function>fetchurl</function> will first try to download this file from <link
+1 -1
doc/stdenv/stdenv.xml
··· 14 stdenv.mkDerivation { 15 name = "libfoo-1.2.3"; 16 src = fetchurl { 17 - url = http://example.org/libfoo-1.2.3.tar.bz2; 18 sha256 = "0x2g1jqygyr5wiwg4ma1nd7w4ydpy82z9gkcv8vh2v8dn3y58v5m"; 19 }; 20 }</programlisting>
··· 14 stdenv.mkDerivation { 15 name = "libfoo-1.2.3"; 16 src = fetchurl { 17 + url = "http://example.org/libfoo-1.2.3.tar.bz2"; 18 sha256 = "0x2g1jqygyr5wiwg4ma1nd7w4ydpy82z9gkcv8vh2v8dn3y58v5m"; 19 }; 20 }</programlisting>
+20 -15
lib/licenses.nix
··· 2 let 3 4 spdx = lic: lic // { 5 - url = "http://spdx.org/licenses/${lic.spdxId}.html"; 6 }; 7 8 in ··· 40 41 amazonsl = { 42 fullName = "Amazon Software License"; 43 - url = "http://aws.amazon.com/asl/"; 44 free = false; 45 }; 46 47 amd = { 48 fullName = "AMD License Agreement"; 49 - url = "http://developer.amd.com/amd-license-agreement/"; 50 free = false; 51 }; 52 ··· 230 231 eapl = { 232 fullName = "EPSON AVASYS PUBLIC LICENSE"; 233 - url = "http://avasys.jp/hp/menu000000700/hpg000000603.htm"; 234 free = false; 235 }; 236 ··· 271 fullName = "European Union Public License 1.1"; 272 }; 273 274 fdl12 = spdx { 275 spdxId = "GFDL-1.2-only"; 276 fullName = "GNU Free Documentation License v1.2 only"; ··· 293 294 ffsl = { 295 fullName = "Floodgap Free Software License"; 296 - url = "http://www.floodgap.com/software/ffsl/license.html"; 297 free = false; 298 }; 299 ··· 370 # Intel's license, seems free 371 iasl = { 372 fullName = "iASL"; 373 - url = "http://www.calculate-linux.org/packages/licenses/iASL"; 374 }; 375 376 ijg = spdx { ··· 385 386 inria-compcert = { 387 fullName = "INRIA Non-Commercial License Agreement for the CompCert verified compiler"; 388 - url = "http://compcert.inria.fr/doc/LICENSE"; 389 free = false; 390 }; 391 392 inria-icesl = { 393 fullName = "INRIA Non-Commercial License Agreement for IceSL"; 394 - url = "http://shapeforge.loria.fr/icesl/EULA_IceSL_binary.pdf"; 395 free = false; 396 }; 397 ··· 469 470 llgpl21 = { 471 fullName = "Lisp LGPL; GNU Lesser General Public License version 2.1 with Franz Inc. preamble for clarification of LGPL terms in context of Lisp"; 472 - url = "http://opensource.franz.com/preamble.html"; 473 }; 474 475 lppl12 = spdx { ··· 493 }; 494 495 # spdx.org does not (yet) differentiate between the X11 and Expat versions 496 - # for details see http://en.wikipedia.org/wiki/MIT_License#Various_versions 497 mit = spdx { 498 spdxId = "MIT"; 499 fullName = "MIT License"; ··· 596 psfl = spdx { 597 spdxId = "Python-2.0"; 598 fullName = "Python Software Foundation License version 2"; 599 - #url = http://docs.python.org/license.html; 600 }; 601 602 publicDomain = { ··· 620 621 qwt = { 622 fullName = "Qwt License, Version 1.0"; 623 - url = "http://qwt.sourceforge.net/qwtlicense.html"; 624 }; 625 626 ruby = spdx { ··· 646 smail = { 647 shortName = "smail"; 648 fullName = "SMAIL General Public License"; 649 - url = "http://metadata.ftp-master.debian.org/changelogs/main/d/debianutils/debianutils_4.8.1_copyright"; 650 }; 651 652 sspl = { ··· 663 664 ufl = { 665 fullName = "Ubuntu Font License 1.0"; 666 - url = "http://font.ubuntu.com/ufl/ubuntu-font-licence-1.0.txt"; 667 }; 668 669 unfree = { ··· 740 741 xfig = { 742 fullName = "xfig"; 743 - url = "http://mcj.sourceforge.net/authors.html#xfig"; 744 }; 745 746 zlib = spdx {
··· 2 let 3 4 spdx = lic: lic // { 5 + url = "https://spdx.org/licenses/${lic.spdxId}.html"; 6 }; 7 8 in ··· 40 41 amazonsl = { 42 fullName = "Amazon Software License"; 43 + url = "https://aws.amazon.com/asl/"; 44 free = false; 45 }; 46 47 amd = { 48 fullName = "AMD License Agreement"; 49 + url = "https://developer.amd.com/amd-license-agreement/"; 50 free = false; 51 }; 52 ··· 230 231 eapl = { 232 fullName = "EPSON AVASYS PUBLIC LICENSE"; 233 + url = "https://avasys.jp/hp/menu000000700/hpg000000603.htm"; 234 free = false; 235 }; 236 ··· 271 fullName = "European Union Public License 1.1"; 272 }; 273 274 + eupl12 = spdx { 275 + spdxId = "EUPL-1.2"; 276 + fullName = "European Union Public License 1.2"; 277 + }; 278 + 279 fdl12 = spdx { 280 spdxId = "GFDL-1.2-only"; 281 fullName = "GNU Free Documentation License v1.2 only"; ··· 298 299 ffsl = { 300 fullName = "Floodgap Free Software License"; 301 + url = "https://www.floodgap.com/software/ffsl/license.html"; 302 free = false; 303 }; 304 ··· 375 # Intel's license, seems free 376 iasl = { 377 fullName = "iASL"; 378 + url = "https://old.calculate-linux.org/packages/licenses/iASL"; 379 }; 380 381 ijg = spdx { ··· 390 391 inria-compcert = { 392 fullName = "INRIA Non-Commercial License Agreement for the CompCert verified compiler"; 393 + url = "http://compcert.inria.fr/doc/LICENSE"; # https is broken 394 free = false; 395 }; 396 397 inria-icesl = { 398 fullName = "INRIA Non-Commercial License Agreement for IceSL"; 399 + url = "http://shapeforge.loria.fr/icesl/EULA_IceSL_binary.pdf"; # https is broken 400 free = false; 401 }; 402 ··· 474 475 llgpl21 = { 476 fullName = "Lisp LGPL; GNU Lesser General Public License version 2.1 with Franz Inc. preamble for clarification of LGPL terms in context of Lisp"; 477 + url = "https://opensource.franz.com/preamble.html"; 478 }; 479 480 lppl12 = spdx { ··· 498 }; 499 500 # spdx.org does not (yet) differentiate between the X11 and Expat versions 501 + # for details see https://en.wikipedia.org/wiki/MIT_License#Various_versions 502 mit = spdx { 503 spdxId = "MIT"; 504 fullName = "MIT License"; ··· 601 psfl = spdx { 602 spdxId = "Python-2.0"; 603 fullName = "Python Software Foundation License version 2"; 604 + url = "https://docs.python.org/license.html"; 605 }; 606 607 publicDomain = { ··· 625 626 qwt = { 627 fullName = "Qwt License, Version 1.0"; 628 + url = "https://qwt.sourceforge.io/qwtlicense.html"; 629 }; 630 631 ruby = spdx { ··· 651 smail = { 652 shortName = "smail"; 653 fullName = "SMAIL General Public License"; 654 + url = "https://sources.debian.org/copyright/license/debianutils/4.9.1/"; 655 }; 656 657 sspl = { ··· 668 669 ufl = { 670 fullName = "Ubuntu Font License 1.0"; 671 + url = "https://ubuntu.com/legal/font-licence"; 672 }; 673 674 unfree = { ··· 745 746 xfig = { 747 fullName = "xfig"; 748 + url = "http://mcj.sourceforge.net/authors.html#xfig"; # https is broken 749 }; 750 751 zlib = spdx {
+6
maintainers/maintainer-list.nix
··· 7816 githubId = 563054; 7817 name = "Thomas Tuegel"; 7818 }; 7819 tv = { 7820 email = "tv@krebsco.de"; 7821 github = "4z3";
··· 7816 githubId = 563054; 7817 name = "Thomas Tuegel"; 7818 }; 7819 + turion = { 7820 + email = "programming@manuelbaerenz.de"; 7821 + github = "turion"; 7822 + githubId = 303489; 7823 + name = "Manuel Bärenz"; 7824 + }; 7825 tv = { 7826 email = "tv@krebsco.de"; 7827 github = "4z3";
+8 -8
nixos/doc/manual/installation/upgrading.xml
··· 14 <para> 15 <emphasis>Stable channels</emphasis>, such as 16 <literal 17 - xlink:href="https://nixos.org/channels/nixos-19.09">nixos-19.09</literal>. 18 These only get conservative bug fixes and package upgrades. For instance, 19 a channel update may cause the Linux kernel on your system to be upgraded 20 from 4.19.34 to 4.19.38 (a minor bug fix), but not from ··· 38 <para> 39 <emphasis>Small channels</emphasis>, such as 40 <literal 41 - xlink:href="https://nixos.org/channels/nixos-19.09-small">nixos-19.09-small</literal> 42 or 43 <literal 44 xlink:href="https://nixos.org/channels/nixos-unstable-small">nixos-unstable-small</literal>. ··· 63 <para> 64 When you first install NixOS, you’re automatically subscribed to the NixOS 65 channel that corresponds to your installation source. For instance, if you 66 - installed from a 19.09 ISO, you will be subscribed to the 67 - <literal>nixos-19.09</literal> channel. To see which NixOS channel you’re 68 subscribed to, run the following as root: 69 <screen> 70 # nix-channel --list | grep nixos ··· 75 # nix-channel --add https://nixos.org/channels/<replaceable>channel-name</replaceable> nixos 76 </screen> 77 (Be sure to include the <literal>nixos</literal> parameter at the end.) For 78 - instance, to use the NixOS 19.09 stable channel: 79 <screen> 80 - # nix-channel --add https://nixos.org/channels/nixos-19.09 nixos 81 </screen> 82 If you have a server, you may want to use the “small” channel instead: 83 <screen> 84 - # nix-channel --add https://nixos.org/channels/nixos-19.09-small nixos 85 </screen> 86 And if you want to live on the bleeding edge: 87 <screen> ··· 132 kernel, initrd or kernel modules. 133 You can also specify a channel explicitly, e.g. 134 <programlisting> 135 - <xref linkend="opt-system.autoUpgrade.channel"/> = https://nixos.org/channels/nixos-19.09; 136 </programlisting> 137 </para> 138 </section>
··· 14 <para> 15 <emphasis>Stable channels</emphasis>, such as 16 <literal 17 + xlink:href="https://nixos.org/channels/nixos-20.03">nixos-20.03</literal>. 18 These only get conservative bug fixes and package upgrades. For instance, 19 a channel update may cause the Linux kernel on your system to be upgraded 20 from 4.19.34 to 4.19.38 (a minor bug fix), but not from ··· 38 <para> 39 <emphasis>Small channels</emphasis>, such as 40 <literal 41 + xlink:href="https://nixos.org/channels/nixos-20.03-small">nixos-20.03-small</literal> 42 or 43 <literal 44 xlink:href="https://nixos.org/channels/nixos-unstable-small">nixos-unstable-small</literal>. ··· 63 <para> 64 When you first install NixOS, you’re automatically subscribed to the NixOS 65 channel that corresponds to your installation source. For instance, if you 66 + installed from a 20.03 ISO, you will be subscribed to the 67 + <literal>nixos-20.03</literal> channel. To see which NixOS channel you’re 68 subscribed to, run the following as root: 69 <screen> 70 # nix-channel --list | grep nixos ··· 75 # nix-channel --add https://nixos.org/channels/<replaceable>channel-name</replaceable> nixos 76 </screen> 77 (Be sure to include the <literal>nixos</literal> parameter at the end.) For 78 + instance, to use the NixOS 20.03 stable channel: 79 <screen> 80 + # nix-channel --add https://nixos.org/channels/nixos-20.03 nixos 81 </screen> 82 If you have a server, you may want to use the “small” channel instead: 83 <screen> 84 + # nix-channel --add https://nixos.org/channels/nixos-20.03-small nixos 85 </screen> 86 And if you want to live on the bleeding edge: 87 <screen> ··· 132 kernel, initrd or kernel modules. 133 You can also specify a channel explicitly, e.g. 134 <programlisting> 135 + <xref linkend="opt-system.autoUpgrade.channel"/> = https://nixos.org/channels/nixos-20.03; 136 </programlisting> 137 </para> 138 </section>
+1 -1
nixos/doc/manual/release-notes/rl-2003.xml
··· 3 xmlns:xi="http://www.w3.org/2001/XInclude" 4 version="5.0" 5 xml:id="sec-release-20.03"> 6 - <title>Release 20.03 (“Markhor”, 2020.03/??)</title> 7 8 <section xmlns="http://docbook.org/ns/docbook" 9 xmlns:xlink="http://www.w3.org/1999/xlink"
··· 3 xmlns:xi="http://www.w3.org/2001/XInclude" 4 version="5.0" 5 xml:id="sec-release-20.03"> 6 + <title>Release 20.03 (“Markhor”, 2020.04/20)</title> 7 8 <section xmlns="http://docbook.org/ns/docbook" 9 xmlns:xlink="http://www.w3.org/1999/xlink"
+1
nixos/doc/manual/release-notes/rl-2009.xml
··· 255 # sudo /run/current-system/fine-tune/child-1/bin/switch-to-configuration test 256 </programlisting> 257 </para> 258 </itemizedlist> 259 </section> 260
··· 255 # sudo /run/current-system/fine-tune/child-1/bin/switch-to-configuration test 256 </programlisting> 257 </para> 258 + </listitem> 259 </itemizedlist> 260 </section> 261
+5 -21
nixos/modules/hardware/opengl.nix
··· 10 11 videoDrivers = config.services.xserver.videoDrivers; 12 13 - makePackage = p: pkgs.buildEnv { 14 - name = "mesa-drivers+txc-${p.mesa.version}"; 15 - paths = 16 - [ p.mesa.drivers 17 - (if cfg.s3tcSupport then p.libtxc_dxtn else p.libtxc_dxtn_s2tc) 18 - ]; 19 - }; 20 - 21 package = pkgs.buildEnv { 22 name = "opengl-drivers"; 23 paths = [ cfg.package ] ++ cfg.extraPackages; ··· 34 35 imports = [ 36 (mkRenamedOptionModule [ "services" "xserver" "vaapiDrivers" ] [ "hardware" "opengl" "extraPackages" ]) 37 ]; 38 39 options = { ··· 71 supported for the <literal>nvidia</literal> and 72 <literal>ati_unfree</literal> drivers, as well as 73 <literal>Mesa</literal>. 74 - ''; 75 - }; 76 - 77 - s3tcSupport = mkOption { 78 - type = types.bool; 79 - default = false; 80 - description = '' 81 - Make S3TC(S3 Texture Compression) via libtxc_dxtn available 82 - to OpenGL drivers instead of the patent-free S2TC replacement. 83 - 84 - Using this library may require a patent license depending on your location. 85 ''; 86 }; 87 ··· 166 environment.sessionVariables.LD_LIBRARY_PATH = mkIf cfg.setLdLibraryPath 167 ([ "/run/opengl-driver/lib" ] ++ optional cfg.driSupport32Bit "/run/opengl-driver-32/lib"); 168 169 - hardware.opengl.package = mkDefault (makePackage pkgs); 170 - hardware.opengl.package32 = mkDefault (makePackage pkgs.pkgsi686Linux); 171 172 boot.extraModulePackages = optional (elem "virtualbox" videoDrivers) kernelPackages.virtualboxGuestAdditions; 173 };
··· 10 11 videoDrivers = config.services.xserver.videoDrivers; 12 13 package = pkgs.buildEnv { 14 name = "opengl-drivers"; 15 paths = [ cfg.package ] ++ cfg.extraPackages; ··· 26 27 imports = [ 28 (mkRenamedOptionModule [ "services" "xserver" "vaapiDrivers" ] [ "hardware" "opengl" "extraPackages" ]) 29 + (mkRemovedOptionModule [ "hardware" "opengl" "s3tcSupport" ] '' 30 + S3TC support is now always enabled in Mesa. 31 + '') 32 ]; 33 34 options = { ··· 66 supported for the <literal>nvidia</literal> and 67 <literal>ati_unfree</literal> drivers, as well as 68 <literal>Mesa</literal>. 69 ''; 70 }; 71 ··· 150 environment.sessionVariables.LD_LIBRARY_PATH = mkIf cfg.setLdLibraryPath 151 ([ "/run/opengl-driver/lib" ] ++ optional cfg.driSupport32Bit "/run/opengl-driver-32/lib"); 152 153 + hardware.opengl.package = mkDefault pkgs.mesa.drivers; 154 + hardware.opengl.package32 = mkDefault pkgs.pkgsi686Linux.mesa.drivers; 155 156 boot.extraModulePackages = optional (elem "virtualbox" videoDrivers) kernelPackages.virtualboxGuestAdditions; 157 };
+4 -4
nixos/modules/installer/tools/nixos-generate-config.pl
··· 180 ) ) 181 { 182 # we need e.g. brcmfmac43602-pcie.bin 183 - push @imports, "<nixpkgs/nixos/modules/hardware/network/broadcom-43xx.nix>"; 184 } 185 186 # Can't rely on $module here, since the module may not be loaded ··· 279 280 # Likewise for QEMU. 281 if ($virt eq "qemu" || $virt eq "kvm" || $virt eq "bochs") { 282 - push @imports, "<nixpkgs/nixos/modules/profiles/qemu-guest.nix>"; 283 } 284 285 # Also for Hyper-V. ··· 296 297 # Provide firmware for devices that are not detected by this script, 298 # unless we're in a VM/container. 299 - push @imports, "<nixpkgs/nixos/modules/installer/scan/not-detected.nix>" 300 if $virt eq "none"; 301 302 ··· 549 # Do not modify this file! It was generated by ‘nixos-generate-config’ 550 # and may be overwritten by future invocations. Please make changes 551 # to /etc/nixos/configuration.nix instead. 552 - { config, lib, pkgs, ... }: 553 554 { 555 imports =${\multiLineList(" ", @imports)};
··· 180 ) ) 181 { 182 # we need e.g. brcmfmac43602-pcie.bin 183 + push @imports, "(modulesPath + \"/hardware/network/broadcom-43xx.nix\")"; 184 } 185 186 # Can't rely on $module here, since the module may not be loaded ··· 279 280 # Likewise for QEMU. 281 if ($virt eq "qemu" || $virt eq "kvm" || $virt eq "bochs") { 282 + push @imports, "(modulesPath + \"/profiles/qemu-guest.nix\")"; 283 } 284 285 # Also for Hyper-V. ··· 296 297 # Provide firmware for devices that are not detected by this script, 298 # unless we're in a VM/container. 299 + push @imports, "(modulesPath + \"/installer/scan/not-detected.nix\")" 300 if $virt eq "none"; 301 302 ··· 549 # Do not modify this file! It was generated by ‘nixos-generate-config’ 550 # and may be overwritten by future invocations. Please make changes 551 # to /etc/nixos/configuration.nix instead. 552 + { config, lib, pkgs, modulesPath, ... }: 553 554 { 555 imports =${\multiLineList(" ", @imports)};
+1
nixos/modules/module-list.nix
··· 546 ./services/monitoring/teamviewer.nix 547 ./services/monitoring/telegraf.nix 548 ./services/monitoring/thanos.nix 549 ./services/monitoring/ups.nix 550 ./services/monitoring/uptime.nix 551 ./services/monitoring/vnstat.nix
··· 546 ./services/monitoring/teamviewer.nix 547 ./services/monitoring/telegraf.nix 548 ./services/monitoring/thanos.nix 549 + ./services/monitoring/tuptime.nix 550 ./services/monitoring/ups.nix 551 ./services/monitoring/uptime.nix 552 ./services/monitoring/vnstat.nix
+1 -38
nixos/modules/profiles/hardened.nix
··· 7 8 { 9 meta = { 10 - maintainers = [ maintainers.joachifm ]; 11 }; 12 13 boot.kernelPackages = mkDefault pkgs.linuxPackages_hardened; ··· 21 22 security.lockKernelModules = mkDefault true; 23 24 - security.allowUserNamespaces = mkDefault false; 25 - 26 security.protectKernelImage = mkDefault true; 27 28 security.allowSimultaneousMultithreading = mkDefault false; ··· 37 # Slab/slub sanity checks, redzoning, and poisoning 38 "slub_debug=FZP" 39 40 - # Disable slab merging to make certain heap overflow attacks harder 41 - "slab_nomerge" 42 - 43 # Overwrite free'd memory 44 "page_poison=1" 45 - 46 - # Disable legacy virtual syscalls 47 - "vsyscall=none" 48 49 # Enable page allocator randomization 50 "page_alloc.shuffle=1" ··· 82 # (e.g., parent/child) 83 boot.kernel.sysctl."kernel.yama.ptrace_scope" = mkOverride 500 1; 84 85 - # Restrict access to kernel ring buffer (information leaks) 86 - boot.kernel.sysctl."kernel.dmesg_restrict" = mkDefault true; 87 - 88 # Hide kptrs even for processes with CAP_SYSLOG 89 boot.kernel.sysctl."kernel.kptr_restrict" = mkOverride 500 2; 90 91 - # Unprivileged access to bpf() has been used for privilege escalation in 92 - # the past 93 - boot.kernel.sysctl."kernel.unprivileged_bpf_disabled" = mkDefault true; 94 - 95 # Disable bpf() JIT (to eliminate spray attacks) 96 boot.kernel.sysctl."net.core.bpf_jit_enable" = mkDefault false; 97 98 - # ... or at least apply some hardening to it 99 - boot.kernel.sysctl."net.core.bpf_jit_harden" = mkDefault true; 100 - 101 - # Raise ASLR entropy for 64bit & 32bit, respectively. 102 - # 103 - # Note: mmap_rnd_compat_bits may not exist on 64bit. 104 - boot.kernel.sysctl."vm.mmap_rnd_bits" = mkDefault 32; 105 - boot.kernel.sysctl."vm.mmap_rnd_compat_bits" = mkDefault 16; 106 - 107 - # Allowing users to mmap() memory starting at virtual address 0 can turn a 108 - # NULL dereference bug in the kernel into code execution with elevated 109 - # privilege. Mitigate by enforcing a minimum base addr beyond the NULL memory 110 - # space. This breaks applications that require mapping the 0 page, such as 111 - # dosemu or running 16bit applications under wine. It also breaks older 112 - # versions of qemu. 113 - # 114 - # The value is taken from the KSPP recommendations (Debian uses 4096). 115 - boot.kernel.sysctl."vm.mmap_min_addr" = mkDefault 65536; 116 - 117 # Disable ftrace debugging 118 boot.kernel.sysctl."kernel.ftrace_enabled" = mkDefault false; 119 ··· 140 # Ignore outgoing ICMP redirects (this is ipv4 only) 141 boot.kernel.sysctl."net.ipv4.conf.all.send_redirects" = mkDefault false; 142 boot.kernel.sysctl."net.ipv4.conf.default.send_redirects" = mkDefault false; 143 - 144 - # Restrict userfaultfd syscalls to processes with the SYS_PTRACE capability 145 - boot.kernel.sysctl."vm.unprivileged_userfaultfd" = mkDefault false; 146 }
··· 7 8 { 9 meta = { 10 + maintainers = [ maintainers.joachifm maintainers.emily ]; 11 }; 12 13 boot.kernelPackages = mkDefault pkgs.linuxPackages_hardened; ··· 21 22 security.lockKernelModules = mkDefault true; 23 24 security.protectKernelImage = mkDefault true; 25 26 security.allowSimultaneousMultithreading = mkDefault false; ··· 35 # Slab/slub sanity checks, redzoning, and poisoning 36 "slub_debug=FZP" 37 38 # Overwrite free'd memory 39 "page_poison=1" 40 41 # Enable page allocator randomization 42 "page_alloc.shuffle=1" ··· 74 # (e.g., parent/child) 75 boot.kernel.sysctl."kernel.yama.ptrace_scope" = mkOverride 500 1; 76 77 # Hide kptrs even for processes with CAP_SYSLOG 78 boot.kernel.sysctl."kernel.kptr_restrict" = mkOverride 500 2; 79 80 # Disable bpf() JIT (to eliminate spray attacks) 81 boot.kernel.sysctl."net.core.bpf_jit_enable" = mkDefault false; 82 83 # Disable ftrace debugging 84 boot.kernel.sysctl."kernel.ftrace_enabled" = mkDefault false; 85 ··· 106 # Ignore outgoing ICMP redirects (this is ipv4 only) 107 boot.kernel.sysctl."net.ipv4.conf.all.send_redirects" = mkDefault false; 108 boot.kernel.sysctl."net.ipv4.conf.default.send_redirects" = mkDefault false; 109 }
+6 -1
nixos/modules/security/acme.nix
··· 343 344 # Test that existing cert is older than new cert 345 KEY=${spath}/certificates/${keyName}.key 346 if [ -e $KEY -a $KEY -nt key.pem ]; then 347 cp -p ${spath}/certificates/${keyName}.key key.pem 348 cp -p ${spath}/certificates/${keyName}.crt fullchain.pem 349 cp -p ${spath}/certificates/${keyName}.issuer.crt chain.pem ··· 354 chmod ${fileMode} *.pem 355 chown '${data.user}:${data.group}' *.pem 356 357 - ${data.postRun} 358 ''; 359 in 360 "+${script}";
··· 343 344 # Test that existing cert is older than new cert 345 KEY=${spath}/certificates/${keyName}.key 346 + KEY_CHANGED=no 347 if [ -e $KEY -a $KEY -nt key.pem ]; then 348 + KEY_CHANGED=yes 349 cp -p ${spath}/certificates/${keyName}.key key.pem 350 cp -p ${spath}/certificates/${keyName}.crt fullchain.pem 351 cp -p ${spath}/certificates/${keyName}.issuer.crt chain.pem ··· 356 chmod ${fileMode} *.pem 357 chown '${data.user}:${data.group}' *.pem 358 359 + if [ "$KEY_CHANGED" = "yes" ]; then 360 + : # noop in case postRun is empty 361 + ${data.postRun} 362 + fi 363 ''; 364 in 365 "+${script}";
+1 -1
nixos/modules/services/databases/cockroachdb.nix
··· 153 defaultText = "pkgs.cockroachdb"; 154 description = '' 155 The CockroachDB derivation to use for running the service. 156 - 157 This would primarily be useful to enable Enterprise Edition features 158 in your own custom CockroachDB build (Nixpkgs CockroachDB binaries 159 only contain open source features and open source code).
··· 153 defaultText = "pkgs.cockroachdb"; 154 description = '' 155 The CockroachDB derivation to use for running the service. 156 + 157 This would primarily be useful to enable Enterprise Edition features 158 in your own custom CockroachDB build (Nixpkgs CockroachDB binaries 159 only contain open source features and open source code).
+2
nixos/modules/services/mail/rss2email.nix
··· 91 }; 92 }; 93 94 services.rss2email.config.to = cfg.to; 95 96 systemd.tmpfiles.rules = [
··· 91 }; 92 }; 93 94 + environment.systemPackages = with pkgs; [ rss2email ]; 95 + 96 services.rss2email.config.to = cfg.to; 97 98 systemd.tmpfiles.rules = [
+2 -2
nixos/modules/services/misc/redmine.nix
··· 132 example = literalExample '' 133 { 134 dkuk-redmine_alex_skin = builtins.fetchurl { 135 - url = https://bitbucket.org/dkuk/redmine_alex_skin/get/1842ef675ef3.zip; 136 sha256 = "0hrin9lzyi50k4w2bd2b30vrf1i4fi1c0gyas5801wn8i7kpm9yl"; 137 }; 138 } ··· 146 example = literalExample '' 147 { 148 redmine_env_auth = builtins.fetchurl { 149 - url = https://github.com/Intera/redmine_env_auth/archive/0.6.zip; 150 sha256 = "0yyr1yjd8gvvh832wdc8m3xfnhhxzk2pk3gm2psg5w9jdvd6skak"; 151 }; 152 }
··· 132 example = literalExample '' 133 { 134 dkuk-redmine_alex_skin = builtins.fetchurl { 135 + url = "https://bitbucket.org/dkuk/redmine_alex_skin/get/1842ef675ef3.zip"; 136 sha256 = "0hrin9lzyi50k4w2bd2b30vrf1i4fi1c0gyas5801wn8i7kpm9yl"; 137 }; 138 } ··· 146 example = literalExample '' 147 { 148 redmine_env_auth = builtins.fetchurl { 149 + url = "https://github.com/Intera/redmine_env_auth/archive/0.6.zip"; 150 sha256 = "0yyr1yjd8gvvh832wdc8m3xfnhhxzk2pk3gm2psg5w9jdvd6skak"; 151 }; 152 }
+84
nixos/modules/services/monitoring/tuptime.nix
···
··· 1 + { config, lib, pkgs, ... }: 2 + 3 + with lib; 4 + 5 + let 6 + 7 + cfg = config.services.tuptime; 8 + 9 + in { 10 + 11 + options.services.tuptime = { 12 + 13 + enable = mkEnableOption "the total uptime service"; 14 + 15 + timer = { 16 + enable = mkOption { 17 + type = types.bool; 18 + default = true; 19 + description = "Whether to regularly log uptime to detect bad shutdowns."; 20 + }; 21 + 22 + period = mkOption { 23 + type = types.str; 24 + default = "*:0/5"; 25 + description = "systemd calendar event"; 26 + }; 27 + }; 28 + }; 29 + 30 + 31 + config = mkIf cfg.enable { 32 + 33 + environment.systemPackages = [ pkgs.tuptime ]; 34 + 35 + users.users.tuptime.description = "tuptime database owner"; 36 + 37 + systemd = { 38 + services = { 39 + 40 + tuptime = { 41 + description = "the total uptime service"; 42 + documentation = [ "man:tuptime(1)" ]; 43 + after = [ "time-sync.target" ]; 44 + wantedBy = [ "multi-user.target" ]; 45 + serviceConfig = { 46 + StateDirectory = "tuptime"; 47 + Type = "oneshot"; 48 + User = "tuptime"; 49 + RemainAfterExit = true; 50 + ExecStart = "${pkgs.tuptime}/bin/tuptime -x"; 51 + ExecStop = "${pkgs.tuptime}/bin/tuptime -xg"; 52 + }; 53 + }; 54 + 55 + tuptime-oneshot = mkIf cfg.timer.enable { 56 + description = "the tuptime scheduled execution unit"; 57 + serviceConfig = { 58 + StateDirectory = "tuptime"; 59 + Type = "oneshot"; 60 + User = "tuptime"; 61 + ExecStart = "${pkgs.tuptime}/bin/tuptime -x"; 62 + }; 63 + }; 64 + }; 65 + 66 + timers.tuptime = mkIf cfg.timer.enable { 67 + description = "the tuptime scheduled execution timer"; 68 + # this timer should be started if the service is started 69 + # even if the timer was previously stopped 70 + wantedBy = [ "tuptime.service" "timers.target" ]; 71 + # this timer should be stopped if the service is stopped 72 + partOf = [ "tuptime.service" ]; 73 + timerConfig = { 74 + OnBootSec = "1min"; 75 + OnCalendar = cfg.timer.period; 76 + Unit = "tuptime-oneshot.service"; 77 + }; 78 + }; 79 + }; 80 + }; 81 + 82 + meta.maintainers = [ maintainers.evils ]; 83 + 84 + }
+6 -8
nixos/modules/services/networking/ntp/chrony.nix
··· 92 93 systemd.services.systemd-timedated.environment = { SYSTEMD_TIMEDATED_NTP_SERVICES = "chronyd.service"; }; 94 95 systemd.services.chronyd = 96 { description = "chrony NTP daemon"; 97 ··· 103 104 path = [ pkgs.chrony ]; 105 106 - preStart = '' 107 - mkdir -m 0755 -p ${stateDir} 108 - touch ${keyFile} 109 - chmod 0640 ${keyFile} 110 - chown chrony:chrony ${stateDir} ${keyFile} 111 - ''; 112 - 113 unitConfig.ConditionCapability = "CAP_SYS_TIME"; 114 serviceConfig = 115 { Type = "simple"; ··· 118 ProtectHome = "yes"; 119 ProtectSystem = "full"; 120 PrivateTmp = "yes"; 121 - 122 }; 123 124 };
··· 92 93 systemd.services.systemd-timedated.environment = { SYSTEMD_TIMEDATED_NTP_SERVICES = "chronyd.service"; }; 94 95 + systemd.tmpfiles.rules = [ 96 + "d ${stateDir} 0755 chrony chrony - -" 97 + "f ${keyFile} 0640 chrony chrony -" 98 + ]; 99 + 100 systemd.services.chronyd = 101 { description = "chrony NTP daemon"; 102 ··· 108 109 path = [ pkgs.chrony ]; 110 111 unitConfig.ConditionCapability = "CAP_SYS_TIME"; 112 serviceConfig = 113 { Type = "simple"; ··· 116 ProtectHome = "yes"; 117 ProtectSystem = "full"; 118 PrivateTmp = "yes"; 119 + StateDirectory = "chrony"; 120 }; 121 122 };
+1 -1
nixos/modules/services/security/bitwarden_rs/default.nix
··· 58 default = {}; 59 example = literalExample '' 60 { 61 - domain = https://bw.domain.tld:8443; 62 signupsAllowed = true; 63 rocketPort = 8222; 64 rocketLog = "critical";
··· 58 default = {}; 59 example = literalExample '' 60 { 61 + domain = "https://bw.domain.tld:8443"; 62 signupsAllowed = true; 63 rocketPort = 8222; 64 rocketLog = "critical";
+304 -188
nixos/modules/services/web-apps/dokuwiki.nix
··· 3 let 4 5 inherit (lib) mkEnableOption mkForce mkIf mkMerge mkOption optionalAttrs recursiveUpdate types; 6 7 - cfg = config.services.dokuwiki; 8 9 - user = config.services.nginx.user; 10 group = config.services.nginx.group; 11 12 - dokuwikiAclAuthConfig = pkgs.writeText "acl.auth.php" '' 13 # acl.auth.php 14 # <?php exit()?> 15 # ··· 18 ${toString cfg.acl} 19 ''; 20 21 - dokuwikiLocalConfig = pkgs.writeText "local.php" '' 22 <?php 23 $conf['savedir'] = '${cfg.stateDir}'; 24 $conf['superuser'] = '${toString cfg.superUser}'; 25 $conf['useacl'] = '${toString cfg.aclUse}'; 26 ${toString cfg.extraConfig} 27 ''; 28 29 - dokuwikiPluginsLocalConfig = pkgs.writeText "plugins.local.php" '' 30 <?php 31 ${cfg.pluginsConfig} 32 ''; 33 34 - in 35 - { 36 - options.services.dokuwiki = { 37 - enable = mkEnableOption "DokuWiki web application."; 38 39 - hostName = mkOption { 40 - type = types.str; 41 - default = "localhost"; 42 - description = "FQDN for the instance."; 43 - }; 44 45 - stateDir = mkOption { 46 - type = types.path; 47 - default = "/var/lib/dokuwiki/data"; 48 - description = "Location of the dokuwiki state directory."; 49 - }; 50 51 - acl = mkOption { 52 - type = types.nullOr types.lines; 53 - default = null; 54 - example = "* @ALL 8"; 55 - description = '' 56 - Access Control Lists: see <link xlink:href="https://www.dokuwiki.org/acl"/> 57 - Mutually exclusive with services.dokuwiki.aclFile 58 - Set this to a value other than null to take precedence over aclFile option. 59 - ''; 60 - }; 61 62 - aclFile = mkOption { 63 - type = types.nullOr types.path; 64 - default = null; 65 - description = '' 66 - Location of the dokuwiki acl rules. Mutually exclusive with services.dokuwiki.acl 67 - Mutually exclusive with services.dokuwiki.acl which is preferred. 68 - Consult documentation <link xlink:href="https://www.dokuwiki.org/acl"/> for further instructions. 69 - Example: <link xlink:href="https://github.com/splitbrain/dokuwiki/blob/master/conf/acl.auth.php.dist"/> 70 - ''; 71 - }; 72 73 - aclUse = mkOption { 74 - type = types.bool; 75 - default = true; 76 - description = '' 77 - Necessary for users to log in into the system. 78 - Also limits anonymous users. When disabled, 79 - everyone is able to create and edit content. 80 - ''; 81 - }; 82 83 - pluginsConfig = mkOption { 84 - type = types.lines; 85 - default = '' 86 - $plugins['authad'] = 0; 87 - $plugins['authldap'] = 0; 88 - $plugins['authmysql'] = 0; 89 - $plugins['authpgsql'] = 0; 90 - ''; 91 - description = '' 92 - List of the dokuwiki (un)loaded plugins. 93 - ''; 94 - }; 95 96 - superUser = mkOption { 97 - type = types.nullOr types.str; 98 - default = "@admin"; 99 - description = '' 100 - You can set either a username, a list of usernames (“admin1,admin2”), 101 - or the name of a group by prepending an @ char to the groupname 102 - Consult documentation <link xlink:href="https://www.dokuwiki.org/config:superuser"/> for further instructions. 103 - ''; 104 - }; 105 106 - usersFile = mkOption { 107 - type = types.nullOr types.path; 108 - default = null; 109 - description = '' 110 - Location of the dokuwiki users file. List of users. Format: 111 - login:passwordhash:Real Name:email:groups,comma,separated 112 - Create passwordHash easily by using:$ mkpasswd -5 password `pwgen 8 1` 113 - Example: <link xlink:href="https://github.com/splitbrain/dokuwiki/blob/master/conf/users.auth.php.dist"/> 114 ''; 115 - }; 116 117 - extraConfig = mkOption { 118 - type = types.nullOr types.lines; 119 - default = null; 120 - example = '' 121 - $conf['title'] = 'My Wiki'; 122 - $conf['userewrite'] = 1; 123 - ''; 124 - description = '' 125 - DokuWiki configuration. Refer to 126 - <link xlink:href="https://www.dokuwiki.org/config"/> 127 - for details on supported values. 128 - ''; 129 - }; 130 131 - poolConfig = mkOption { 132 - type = with types; attrsOf (oneOf [ str int bool ]); 133 - default = { 134 - "pm" = "dynamic"; 135 - "pm.max_children" = 32; 136 - "pm.start_servers" = 2; 137 - "pm.min_spare_servers" = 2; 138 - "pm.max_spare_servers" = 4; 139 - "pm.max_requests" = 500; 140 }; 141 - description = '' 142 - Options for the dokuwiki PHP pool. See the documentation on <literal>php-fpm.conf</literal> 143 - for details on configuration directives. 144 - ''; 145 - }; 146 147 - nginx = mkOption { 148 - type = types.submodule ( 149 - recursiveUpdate 150 - (import ../web-servers/nginx/vhost-options.nix { inherit config lib; }) 151 - { 152 - # Enable encryption by default, 153 - options.forceSSL.default = true; 154 - options.enableACME.default = true; 155 - } 156 - ); 157 - default = {forceSSL = true; enableACME = true;}; 158 - example = { 159 - serverAliases = [ 160 - "wiki.\${config.networking.domain}" 161 - ]; 162 - enableACME = false; 163 }; 164 - description = '' 165 - With this option, you can customize the nginx virtualHost which already has sensible defaults for DokuWiki. 166 - ''; 167 }; 168 }; 169 170 # implementation 171 172 - config = mkIf cfg.enable { 173 174 - warnings = mkIf (cfg.superUser == null) ["Not setting services.dokuwiki.superUser will impair your ability to administer DokuWiki"]; 175 176 - assertions = [ 177 - { 178 - assertion = cfg.aclUse -> (cfg.acl != null || cfg.aclFile != null); 179 - message = "Either services.dokuwiki.acl or services.dokuwiki.aclFile is mandatory when aclUse is true"; 180 - } 181 - { 182 - assertion = cfg.usersFile != null -> cfg.aclUse != false; 183 - message = "services.dokuwiki.aclUse must be true when usersFile is not null"; 184 - } 185 - ]; 186 187 - services.phpfpm.pools.dokuwiki = { 188 - inherit user; 189 - inherit group; 190 - phpEnv = { 191 - DOKUWIKI_LOCAL_CONFIG = "${dokuwikiLocalConfig}"; 192 - DOKUWIKI_PLUGINS_LOCAL_CONFIG = "${dokuwikiPluginsLocalConfig}"; 193 - } //optionalAttrs (cfg.usersFile != null) { 194 - DOKUWIKI_USERS_AUTH_CONFIG = "${cfg.usersFile}"; 195 - } //optionalAttrs (cfg.aclUse) { 196 - DOKUWIKI_ACL_AUTH_CONFIG = if (cfg.acl != null) then "${dokuwikiAclAuthConfig}" else "${toString cfg.aclFile}"; 197 - }; 198 - 199 - settings = { 200 - "listen.mode" = "0660"; 201 - "listen.owner" = user; 202 - "listen.group" = group; 203 - } // cfg.poolConfig; 204 - }; 205 206 services.nginx = { 207 enable = true; 208 - 209 - virtualHosts = { 210 - ${cfg.hostName} = mkMerge [ cfg.nginx { 211 - root = mkForce "${pkgs.dokuwiki}/share/dokuwiki/"; 212 - extraConfig = "fastcgi_param HTTPS on;"; 213 214 - locations."~ /(conf/|bin/|inc/|install.php)" = { 215 - extraConfig = "deny all;"; 216 - }; 217 218 - locations."~ ^/data/" = { 219 - root = "${cfg.stateDir}"; 220 - extraConfig = "internal;"; 221 - }; 222 223 - locations."~ ^/lib.*\.(js|css|gif|png|ico|jpg|jpeg)$" = { 224 - extraConfig = "expires 365d;"; 225 - }; 226 227 - locations."/" = { 228 - priority = 1; 229 - index = "doku.php"; 230 - extraConfig = ''try_files $uri $uri/ @dokuwiki;''; 231 - }; 232 233 - locations."@dokuwiki" = { 234 - extraConfig = '' 235 # rewrites "doku.php/" out of the URLs if you set the userwrite setting to .htaccess in dokuwiki config page 236 rewrite ^/_media/(.*) /lib/exe/fetch.php?media=$1 last; 237 rewrite ^/_detail/(.*) /lib/exe/detail.php?media=$1 last; 238 rewrite ^/_export/([^/]+)/(.*) /doku.php?do=export_$1&id=$2 last; 239 rewrite ^/(.*) /doku.php?id=$1&$args last; 240 - ''; 241 - }; 242 243 - locations."~ \.php$" = { 244 - extraConfig = '' 245 try_files $uri $uri/ /doku.php; 246 include ${pkgs.nginx}/conf/fastcgi_params; 247 fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; 248 fastcgi_param REDIRECT_STATUS 200; 249 - fastcgi_pass unix:${config.services.phpfpm.pools.dokuwiki.socket}; 250 fastcgi_param HTTPS on; 251 - ''; 252 - }; 253 - }]; 254 - }; 255 - 256 }; 257 258 - systemd.tmpfiles.rules = [ 259 "d ${cfg.stateDir}/attic 0750 ${user} ${group} - -" 260 "d ${cfg.stateDir}/cache 0750 ${user} ${group} - -" 261 "d ${cfg.stateDir}/index 0750 ${user} ${group} - -" ··· 266 "d ${cfg.stateDir}/meta 0750 ${user} ${group} - -" 267 "d ${cfg.stateDir}/pages 0750 ${user} ${group} - -" 268 "d ${cfg.stateDir}/tmp 0750 ${user} ${group} - -" 269 - ]; 270 271 }; 272 }
··· 3 let 4 5 inherit (lib) mkEnableOption mkForce mkIf mkMerge mkOption optionalAttrs recursiveUpdate types; 6 + inherit (lib) concatMapStringsSep flatten mapAttrs mapAttrs' mapAttrsToList nameValuePair concatMapStringSep; 7 8 + eachSite = config.services.dokuwiki; 9 10 + user = "dokuwiki"; 11 group = config.services.nginx.group; 12 13 + dokuwikiAclAuthConfig = cfg: pkgs.writeText "acl.auth.php" '' 14 # acl.auth.php 15 # <?php exit()?> 16 # ··· 19 ${toString cfg.acl} 20 ''; 21 22 + dokuwikiLocalConfig = cfg: pkgs.writeText "local.php" '' 23 <?php 24 $conf['savedir'] = '${cfg.stateDir}'; 25 $conf['superuser'] = '${toString cfg.superUser}'; 26 $conf['useacl'] = '${toString cfg.aclUse}'; 27 + $conf['disableactions'] = '${cfg.disableActions}'; 28 ${toString cfg.extraConfig} 29 ''; 30 31 + dokuwikiPluginsLocalConfig = cfg: pkgs.writeText "plugins.local.php" '' 32 <?php 33 ${cfg.pluginsConfig} 34 ''; 35 36 + pkg = hostName: cfg: pkgs.stdenv.mkDerivation rec { 37 + pname = "dokuwiki-${hostName}"; 38 + version = src.version; 39 + src = cfg.package; 40 41 + installPhase = '' 42 + mkdir -p $out 43 + cp -r * $out/ 44 45 + # symlink the dokuwiki config 46 + ln -s ${dokuwikiLocalConfig cfg} $out/share/dokuwiki/local.php 47 48 + # symlink plugins config 49 + ln -s ${dokuwikiPluginsLocalConfig cfg} $out/share/dokuwiki/plugins.local.php 50 + 51 + # symlink acl 52 + ln -s ${dokuwikiAclAuthConfig cfg} $out/share/dokuwiki/acl.auth.php 53 + 54 + # symlink additional plugin(s) and templates(s) 55 + ${concatMapStringsSep "\n" (template: "ln -s ${template} $out/share/dokuwiki/lib/tpl/${template.name}") cfg.templates} 56 + ${concatMapStringsSep "\n" (plugin: "ln -s ${plugin} $out/share/dokuwiki/lib/plugins/${plugin.name}") cfg.plugins} 57 + ''; 58 + }; 59 60 + siteOpts = { config, lib, name, ...}: { 61 + options = { 62 + enable = mkEnableOption "DokuWiki web application."; 63 64 + package = mkOption { 65 + type = types.package; 66 + default = pkgs.dokuwiki; 67 + description = "Which dokuwiki package to use."; 68 + }; 69 70 + hostName = mkOption { 71 + type = types.str; 72 + default = "localhost"; 73 + description = "FQDN for the instance."; 74 + }; 75 76 + stateDir = mkOption { 77 + type = types.path; 78 + default = "/var/lib/dokuwiki/${name}/data"; 79 + description = "Location of the dokuwiki state directory."; 80 + }; 81 82 + acl = mkOption { 83 + type = types.nullOr types.lines; 84 + default = null; 85 + example = "* @ALL 8"; 86 + description = '' 87 + Access Control Lists: see <link xlink:href="https://www.dokuwiki.org/acl"/> 88 + Mutually exclusive with services.dokuwiki.aclFile 89 + Set this to a value other than null to take precedence over aclFile option. 90 + 91 + Warning: Consider using aclFile instead if you do not 92 + want to store the ACL in the world-readable Nix store. 93 ''; 94 + }; 95 + 96 + aclFile = mkOption { 97 + type = with types; nullOr str; 98 + default = if (config.aclUse && config.acl == null) then "/var/lib/dokuwiki/${name}/users.auth.php" else null; 99 + description = '' 100 + Location of the dokuwiki acl rules. Mutually exclusive with services.dokuwiki.acl 101 + Mutually exclusive with services.dokuwiki.acl which is preferred. 102 + Consult documentation <link xlink:href="https://www.dokuwiki.org/acl"/> for further instructions. 103 + Example: <link xlink:href="https://github.com/splitbrain/dokuwiki/blob/master/conf/acl.auth.php.dist"/> 104 + ''; 105 + example = "/var/lib/dokuwiki/${name}/acl.auth.php"; 106 + }; 107 108 + aclUse = mkOption { 109 + type = types.bool; 110 + default = true; 111 + description = '' 112 + Necessary for users to log in into the system. 113 + Also limits anonymous users. When disabled, 114 + everyone is able to create and edit content. 115 + ''; 116 + }; 117 + 118 + pluginsConfig = mkOption { 119 + type = types.lines; 120 + default = '' 121 + $plugins['authad'] = 0; 122 + $plugins['authldap'] = 0; 123 + $plugins['authmysql'] = 0; 124 + $plugins['authpgsql'] = 0; 125 + ''; 126 + description = '' 127 + List of the dokuwiki (un)loaded plugins. 128 + ''; 129 + }; 130 + 131 + superUser = mkOption { 132 + type = types.nullOr types.str; 133 + default = "@admin"; 134 + description = '' 135 + You can set either a username, a list of usernames (“admin1,admin2”), 136 + or the name of a group by prepending an @ char to the groupname 137 + Consult documentation <link xlink:href="https://www.dokuwiki.org/config:superuser"/> for further instructions. 138 + ''; 139 + }; 140 141 + usersFile = mkOption { 142 + type = with types; nullOr str; 143 + default = if config.aclUse then "/var/lib/dokuwiki/${name}/users.auth.php" else null; 144 + description = '' 145 + Location of the dokuwiki users file. List of users. Format: 146 + login:passwordhash:Real Name:email:groups,comma,separated 147 + Create passwordHash easily by using:$ mkpasswd -5 password `pwgen 8 1` 148 + Example: <link xlink:href="https://github.com/splitbrain/dokuwiki/blob/master/conf/users.auth.php.dist"/> 149 + ''; 150 + example = "/var/lib/dokuwiki/${name}/users.auth.php"; 151 }; 152 153 + disableActions = mkOption { 154 + type = types.nullOr types.str; 155 + default = ""; 156 + example = "search,register"; 157 + description = '' 158 + Disable individual action modes. Refer to 159 + <link xlink:href="https://www.dokuwiki.org/config:action_modes"/> 160 + for details on supported values. 161 + ''; 162 }; 163 + 164 + extraConfig = mkOption { 165 + type = types.nullOr types.lines; 166 + default = null; 167 + example = '' 168 + $conf['title'] = 'My Wiki'; 169 + $conf['userewrite'] = 1; 170 + ''; 171 + description = '' 172 + DokuWiki configuration. Refer to 173 + <link xlink:href="https://www.dokuwiki.org/config"/> 174 + for details on supported values. 175 + ''; 176 + }; 177 + 178 + plugins = mkOption { 179 + type = types.listOf types.path; 180 + default = []; 181 + description = '' 182 + List of path(s) to respective plugin(s) which are copied from the 'plugin' directory. 183 + <note><para>These plugins need to be packaged before use, see example.</para></note> 184 + ''; 185 + example = '' 186 + # Let's package the icalevents plugin 187 + plugin-icalevents = pkgs.stdenv.mkDerivation { 188 + name = "icalevents"; 189 + # Download the plugin from the dokuwiki site 190 + src = pkgs.fetchurl { 191 + url = https://github.com/real-or-random/dokuwiki-plugin-icalevents/releases/download/2017-06-16/dokuwiki-plugin-icalevents-2017-06-16.zip; 192 + sha256 = "e40ed7dd6bbe7fe3363bbbecb4de481d5e42385b5a0f62f6a6ce6bf3a1f9dfa8"; 193 + }; 194 + sourceRoot = "."; 195 + # We need unzip to build this package 196 + buildInputs = [ pkgs.unzip ]; 197 + # Installing simply means copying all files to the output directory 198 + installPhase = "mkdir -p $out; cp -R * $out/"; 199 + }; 200 + 201 + # And then pass this theme to the plugin list like this: 202 + plugins = [ plugin-icalevents ]; 203 + ''; 204 + }; 205 + 206 + templates = mkOption { 207 + type = types.listOf types.path; 208 + default = []; 209 + description = '' 210 + List of path(s) to respective template(s) which are copied from the 'tpl' directory. 211 + <note><para>These templates need to be packaged before use, see example.</para></note> 212 + ''; 213 + example = '' 214 + # Let's package the bootstrap3 theme 215 + template-bootstrap3 = pkgs.stdenv.mkDerivation { 216 + name = "bootstrap3"; 217 + # Download the theme from the dokuwiki site 218 + src = pkgs.fetchurl { 219 + url = https://github.com/giterlizzi/dokuwiki-template-bootstrap3/archive/v2019-05-22.zip; 220 + sha256 = "4de5ff31d54dd61bbccaf092c9e74c1af3a4c53e07aa59f60457a8f00cfb23a6"; 221 + }; 222 + # We need unzip to build this package 223 + buildInputs = [ pkgs.unzip ]; 224 + # Installing simply means copying all files to the output directory 225 + installPhase = "mkdir -p $out; cp -R * $out/"; 226 + }; 227 + 228 + # And then pass this theme to the template list like this: 229 + templates = [ template-bootstrap3 ]; 230 + ''; 231 + }; 232 + 233 + poolConfig = mkOption { 234 + type = with types; attrsOf (oneOf [ str int bool ]); 235 + default = { 236 + "pm" = "dynamic"; 237 + "pm.max_children" = 32; 238 + "pm.start_servers" = 2; 239 + "pm.min_spare_servers" = 2; 240 + "pm.max_spare_servers" = 4; 241 + "pm.max_requests" = 500; 242 + }; 243 + description = '' 244 + Options for the dokuwiki PHP pool. See the documentation on <literal>php-fpm.conf</literal> 245 + for details on configuration directives. 246 + ''; 247 + }; 248 + 249 + nginx = mkOption { 250 + type = types.submodule ( 251 + recursiveUpdate 252 + (import ../web-servers/nginx/vhost-options.nix { inherit config lib; }) 253 + { 254 + # Enable encryption by default, 255 + options.forceSSL.default = true; 256 + options.enableACME.default = true; 257 + } 258 + ); 259 + default = {forceSSL = true; enableACME = true;}; 260 + example = { 261 + serverAliases = [ 262 + "wiki.\${config.networking.domain}" 263 + ]; 264 + enableACME = false; 265 + }; 266 + description = '' 267 + With this option, you can customize the nginx virtualHost which already has sensible defaults for DokuWiki. 268 + ''; 269 + }; 270 + }; 271 + }; 272 + in 273 + { 274 + # interface 275 + options = { 276 + services.dokuwiki = mkOption { 277 + type = types.attrsOf (types.submodule siteOpts); 278 + default = {}; 279 + description = "Sepcification of one or more dokuwiki sites to service."; 280 }; 281 }; 282 283 # implementation 284 285 + config = mkIf (eachSite != {}) { 286 287 + warnings = mapAttrsToList (hostName: cfg: mkIf (cfg.superUser == null) "Not setting services.dokuwiki.${hostName} superUser will impair your ability to administer DokuWiki") eachSite; 288 289 + assertions = flatten (mapAttrsToList (hostName: cfg: 290 + [{ 291 + assertion = cfg.aclUse -> (cfg.acl != null || cfg.aclFile != null); 292 + message = "Either services.dokuwiki.${hostName}.acl or services.dokuwiki.${hostName}.aclFile is mandatory if aclUse true"; 293 + } 294 + { 295 + assertion = cfg.usersFile != null -> cfg.aclUse != false; 296 + message = "services.dokuwiki.${hostName}.aclUse must must be true if usersFile is not null"; 297 + } 298 + ]) eachSite); 299 300 + services.phpfpm.pools = mapAttrs' (hostName: cfg: ( 301 + nameValuePair "dokuwiki-${hostName}" { 302 + inherit user; 303 + inherit group; 304 + phpEnv = { 305 + DOKUWIKI_LOCAL_CONFIG = "${dokuwikiLocalConfig cfg}"; 306 + DOKUWIKI_PLUGINS_LOCAL_CONFIG = "${dokuwikiPluginsLocalConfig cfg}"; 307 + } // optionalAttrs (cfg.usersFile != null) { 308 + DOKUWIKI_USERS_AUTH_CONFIG = "${cfg.usersFile}"; 309 + } //optionalAttrs (cfg.aclUse) { 310 + DOKUWIKI_ACL_AUTH_CONFIG = if (cfg.acl != null) then "${dokuwikiAclAuthConfig cfg}" else "${toString cfg.aclFile}"; 311 + }; 312 + 313 + settings = { 314 + "listen.mode" = "0660"; 315 + "listen.owner" = user; 316 + "listen.group" = group; 317 + } // cfg.poolConfig; 318 + })) eachSite; 319 320 services.nginx = { 321 enable = true; 322 + virtualHosts = mapAttrs (hostName: cfg: mkMerge [ cfg.nginx { 323 + root = mkForce "${pkg hostName cfg}/share/dokuwiki"; 324 + extraConfig = "fastcgi_param HTTPS on;"; 325 326 + locations."~ /(conf/|bin/|inc/|install.php)" = { 327 + extraConfig = "deny all;"; 328 + }; 329 330 + locations."~ ^/data/" = { 331 + root = "${cfg.stateDir}"; 332 + extraConfig = "internal;"; 333 + }; 334 335 + locations."~ ^/lib.*\.(js|css|gif|png|ico|jpg|jpeg)$" = { 336 + extraConfig = "expires 365d;"; 337 + }; 338 339 + locations."/" = { 340 + priority = 1; 341 + index = "doku.php"; 342 + extraConfig = ''try_files $uri $uri/ @dokuwiki;''; 343 + }; 344 345 + locations."@dokuwiki" = { 346 + extraConfig = '' 347 # rewrites "doku.php/" out of the URLs if you set the userwrite setting to .htaccess in dokuwiki config page 348 rewrite ^/_media/(.*) /lib/exe/fetch.php?media=$1 last; 349 rewrite ^/_detail/(.*) /lib/exe/detail.php?media=$1 last; 350 rewrite ^/_export/([^/]+)/(.*) /doku.php?do=export_$1&id=$2 last; 351 rewrite ^/(.*) /doku.php?id=$1&$args last; 352 + ''; 353 + }; 354 355 + locations."~ \.php$" = { 356 + extraConfig = '' 357 try_files $uri $uri/ /doku.php; 358 include ${pkgs.nginx}/conf/fastcgi_params; 359 fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; 360 fastcgi_param REDIRECT_STATUS 200; 361 + fastcgi_pass unix:${config.services.phpfpm.pools."dokuwiki-${hostName}".socket}; 362 fastcgi_param HTTPS on; 363 + ''; 364 + }; 365 + }]) eachSite; 366 }; 367 368 + systemd.tmpfiles.rules = flatten (mapAttrsToList (hostName: cfg: [ 369 "d ${cfg.stateDir}/attic 0750 ${user} ${group} - -" 370 "d ${cfg.stateDir}/cache 0750 ${user} ${group} - -" 371 "d ${cfg.stateDir}/index 0750 ${user} ${group} - -" ··· 376 "d ${cfg.stateDir}/meta 0750 ${user} ${group} - -" 377 "d ${cfg.stateDir}/pages 0750 ${user} ${group} - -" 378 "d ${cfg.stateDir}/tmp 0750 ${user} ${group} - -" 379 + ] ++ lib.optional (cfg.aclFile != null) "C ${cfg.aclFile} 0640 ${user} ${group} - ${pkg hostName cfg}/share/dokuwiki/conf/acl.auth.php.dist" 380 + ++ lib.optional (cfg.usersFile != null) "C ${cfg.usersFile} 0640 ${user} ${group} - ${pkg hostName cfg}/share/dokuwiki/conf/users.auth.php.dist" 381 + ) eachSite); 382 383 + users.users.${user} = { 384 + group = group; 385 + isSystemUser = true; 386 + }; 387 }; 388 }
+2 -2
nixos/modules/services/web-apps/wordpress.nix
··· 105 name = "embed-pdf-viewer-plugin"; 106 # Download the theme from the wordpress site 107 src = pkgs.fetchurl { 108 - url = https://downloads.wordpress.org/plugin/embed-pdf-viewer.2.0.3.zip; 109 sha256 = "1rhba5h5fjlhy8p05zf0p14c9iagfh96y91r36ni0rmk6y891lyd"; 110 }; 111 # We need unzip to build this package ··· 132 name = "responsive-theme"; 133 # Download the theme from the wordpress site 134 src = pkgs.fetchurl { 135 - url = https://downloads.wordpress.org/theme/responsive.3.14.zip; 136 sha256 = "0rjwm811f4aa4q43r77zxlpklyb85q08f9c8ns2akcarrvj5ydx3"; 137 }; 138 # We need unzip to build this package
··· 105 name = "embed-pdf-viewer-plugin"; 106 # Download the theme from the wordpress site 107 src = pkgs.fetchurl { 108 + url = "https://downloads.wordpress.org/plugin/embed-pdf-viewer.2.0.3.zip"; 109 sha256 = "1rhba5h5fjlhy8p05zf0p14c9iagfh96y91r36ni0rmk6y891lyd"; 110 }; 111 # We need unzip to build this package ··· 132 name = "responsive-theme"; 133 # Download the theme from the wordpress site 134 src = pkgs.fetchurl { 135 + url = "https://downloads.wordpress.org/theme/responsive.3.14.zip"; 136 sha256 = "0rjwm811f4aa4q43r77zxlpklyb85q08f9c8ns2akcarrvj5ydx3"; 137 }; 138 # We need unzip to build this package
+7 -7
nixos/modules/system/boot/systemd.nix
··· 894 "sysctl.d/50-coredump.conf".source = "${systemd}/example/sysctl.d/50-coredump.conf"; 895 "sysctl.d/50-default.conf".source = "${systemd}/example/sysctl.d/50-default.conf"; 896 897 "tmpfiles.d/home.conf".source = "${systemd}/example/tmpfiles.d/home.conf"; 898 "tmpfiles.d/journal-nocow.conf".source = "${systemd}/example/tmpfiles.d/journal-nocow.conf"; 899 "tmpfiles.d/portables.conf".source = "${systemd}/example/tmpfiles.d/portables.conf"; ··· 905 "tmpfiles.d/tmp.conf".source = "${systemd}/example/tmpfiles.d/tmp.conf"; 906 "tmpfiles.d/var.conf".source = "${systemd}/example/tmpfiles.d/var.conf"; 907 "tmpfiles.d/x11.conf".source = "${systemd}/example/tmpfiles.d/x11.conf"; 908 - 909 - "tmpfiles.d/nixos.conf".text = '' 910 - # This file is created automatically and should not be modified. 911 - # Please change the option ‘systemd.tmpfiles.rules’ instead. 912 - 913 - ${concatStringsSep "\n" cfg.tmpfiles.rules} 914 - ''; 915 916 "systemd/system-generators" = { source = hooks "generators" cfg.generators; }; 917 "systemd/system-shutdown" = { source = hooks "shutdown" cfg.shutdown; };
··· 894 "sysctl.d/50-coredump.conf".source = "${systemd}/example/sysctl.d/50-coredump.conf"; 895 "sysctl.d/50-default.conf".source = "${systemd}/example/sysctl.d/50-default.conf"; 896 897 + "tmpfiles.d/00-nixos.conf".text = '' 898 + # This file is created automatically and should not be modified. 899 + # Please change the option ‘systemd.tmpfiles.rules’ instead. 900 + 901 + ${concatStringsSep "\n" cfg.tmpfiles.rules} 902 + ''; 903 + 904 "tmpfiles.d/home.conf".source = "${systemd}/example/tmpfiles.d/home.conf"; 905 "tmpfiles.d/journal-nocow.conf".source = "${systemd}/example/tmpfiles.d/journal-nocow.conf"; 906 "tmpfiles.d/portables.conf".source = "${systemd}/example/tmpfiles.d/portables.conf"; ··· 912 "tmpfiles.d/tmp.conf".source = "${systemd}/example/tmpfiles.d/tmp.conf"; 913 "tmpfiles.d/var.conf".source = "${systemd}/example/tmpfiles.d/var.conf"; 914 "tmpfiles.d/x11.conf".source = "${systemd}/example/tmpfiles.d/x11.conf"; 915 916 "systemd/system-generators" = { source = hooks "generators" cfg.generators; }; 917 "systemd/system-shutdown" = { source = hooks "shutdown" cfg.shutdown; };
+16 -2
nixos/modules/virtualisation/containers.nix
··· 463 A specification of the desired configuration of this 464 container, as a NixOS module. 465 ''; 466 - type = lib.mkOptionType { 467 name = "Toplevel NixOS config"; 468 - merge = loc: defs: (import ../../lib/eval-config.nix { 469 inherit system; 470 modules = 471 let 472 extraConfig = { ··· 512 Grant additional capabilities to the container. See the 513 capabilities(7) and systemd-nspawn(1) man pages for more 514 information. 515 ''; 516 }; 517
··· 463 A specification of the desired configuration of this 464 container, as a NixOS module. 465 ''; 466 + type = let 467 + confPkgs = if config.pkgs == null then pkgs else config.pkgs; 468 + in lib.mkOptionType { 469 name = "Toplevel NixOS config"; 470 + merge = loc: defs: (import (confPkgs.path + "/nixos/lib/eval-config.nix") { 471 inherit system; 472 + pkgs = confPkgs; 473 + baseModules = import (confPkgs.path + "/nixos/modules/module-list.nix"); 474 + inherit (confPkgs) lib; 475 modules = 476 let 477 extraConfig = { ··· 517 Grant additional capabilities to the container. See the 518 capabilities(7) and systemd-nspawn(1) man pages for more 519 information. 520 + ''; 521 + }; 522 + 523 + pkgs = mkOption { 524 + type = types.nullOr types.attrs; 525 + default = null; 526 + example = literalExample "pkgs"; 527 + description = '' 528 + Customise which nixpkgs to use for this container. 529 ''; 530 }; 531
+3
nixos/release-combined.nix
··· 75 (onFullSupported "nixos.tests.fontconfig-default-fonts") 76 (onFullSupported "nixos.tests.gnome3") 77 (onFullSupported "nixos.tests.gnome3-xorg") 78 (onSystems ["x86_64-linux"] "nixos.tests.hibernate") 79 (onFullSupported "nixos.tests.i3wm") 80 (onSystems ["x86_64-linux"] "nixos.tests.installer.btrfsSimple") ··· 96 (onFullSupported "nixos.tests.keymap.dvp") 97 (onFullSupported "nixos.tests.keymap.neo") 98 (onFullSupported "nixos.tests.keymap.qwertz") 99 (onFullSupported "nixos.tests.lightdm") 100 (onFullSupported "nixos.tests.login") 101 (onFullSupported "nixos.tests.misc")
··· 75 (onFullSupported "nixos.tests.fontconfig-default-fonts") 76 (onFullSupported "nixos.tests.gnome3") 77 (onFullSupported "nixos.tests.gnome3-xorg") 78 + (onFullSupported "nixos.tests.hardened") 79 (onSystems ["x86_64-linux"] "nixos.tests.hibernate") 80 (onFullSupported "nixos.tests.i3wm") 81 (onSystems ["x86_64-linux"] "nixos.tests.installer.btrfsSimple") ··· 97 (onFullSupported "nixos.tests.keymap.dvp") 98 (onFullSupported "nixos.tests.keymap.neo") 99 (onFullSupported "nixos.tests.keymap.qwertz") 100 + (onFullSupported "nixos.tests.latestKernel.hardened") 101 + (onFullSupported "nixos.tests.latestKernel.login") 102 (onFullSupported "nixos.tests.lightdm") 103 (onFullSupported "nixos.tests.login") 104 (onFullSupported "nixos.tests.misc")
+48 -54
nixos/tests/acme.nix
··· 1 let 2 - commonConfig = ./common/letsencrypt/common.nix; 3 4 dnsScript = {writeScript, dnsAddress, bash, curl}: writeScript "dns-hook.sh" '' 5 #!${bash}/bin/bash ··· 16 name = "acme"; 17 18 nodes = rec { 19 - letsencrypt = { nodes, lib, ... }: { 20 - imports = [ ./common/letsencrypt ]; 21 networking.nameservers = lib.mkForce [ 22 nodes.dnsserver.config.networking.primaryIPAddress 23 ]; ··· 33 serviceConfig = { 34 ExecStart = "${pkgs.pebble}/bin/pebble-challtestsrv -dns01 ':53' -defaultIPv6 '' -defaultIPv4 '${nodes.webserver.config.networking.primaryIPAddress}'"; 35 # Required to bind on privileged ports. 36 - User = "root"; 37 - Group = "root"; 38 }; 39 }; 40 }; ··· 45 nodes.dnsserver.config.networking.primaryIPAddress 46 ]; 47 networking.firewall.allowedTCPPorts = [ 80 ]; 48 - security.acme = { 49 - server = "https://acme-v02.api.letsencrypt.org/dir"; 50 - certs."standalone.com" = { 51 - webroot = "/var/lib/acme/acme-challenges"; 52 - }; 53 }; 54 - systemd.targets."acme-finished-standalone.com" = {}; 55 - systemd.services."acme-standalone.com" = { 56 - wants = [ "acme-finished-standalone.com.target" ]; 57 - before = [ "acme-finished-standalone.com.target" ]; 58 }; 59 services.nginx.enable = true; 60 - services.nginx.virtualHosts."standalone.com" = { 61 locations."/.well-known/acme-challenge".root = "/var/lib/acme/acme-challenges"; 62 }; 63 }; ··· 71 72 # A target remains active. Use this to probe the fact that 73 # a service fired eventhough it is not RemainAfterExit 74 - systemd.targets."acme-finished-a.example.com" = {}; 75 - systemd.services."acme-a.example.com" = { 76 - wants = [ "acme-finished-a.example.com.target" ]; 77 - before = [ "acme-finished-a.example.com.target" ]; 78 after = [ "nginx.service" ]; 79 }; 80 81 services.nginx.enable = true; 82 83 - services.nginx.virtualHosts."a.example.com" = { 84 enableACME = true; 85 forceSSL = true; 86 locations."/".root = pkgs.runCommand "docroot" {} '' ··· 89 ''; 90 }; 91 92 - security.acme.server = "https://acme-v02.api.letsencrypt.org/dir"; 93 94 specialisation.second-cert.configuration = {pkgs, ...}: { 95 - systemd.targets."acme-finished-b.example.com" = {}; 96 - systemd.services."acme-b.example.com" = { 97 - wants = [ "acme-finished-b.example.com.target" ]; 98 - before = [ "acme-finished-b.example.com.target" ]; 99 after = [ "nginx.service" ]; 100 }; 101 - services.nginx.virtualHosts."b.example.com" = { 102 enableACME = true; 103 forceSSL = true; 104 locations."/".root = pkgs.runCommand "docroot" {} '' ··· 108 }; 109 }; 110 specialisation.dns-01.configuration = {pkgs, config, nodes, lib, ...}: { 111 - security.acme.certs."example.com" = { 112 - domain = "*.example.com"; 113 dnsProvider = "exec"; 114 dnsPropagationCheck = false; 115 credentialsFile = with pkgs; writeText "wildcard.env" '' ··· 118 user = config.services.nginx.user; 119 group = config.services.nginx.group; 120 }; 121 - systemd.targets."acme-finished-example.com" = {}; 122 - systemd.services."acme-example.com" = { 123 - wants = [ "acme-finished-example.com.target" ]; 124 - before = [ "acme-finished-example.com.target" "nginx.service" ]; 125 wantedBy = [ "nginx.service" ]; 126 }; 127 - services.nginx.virtualHosts."c.example.com" = { 128 forceSSL = true; 129 - sslCertificate = config.security.acme.certs."example.com".directory + "/cert.pem"; 130 - sslTrustedCertificate = config.security.acme.certs."example.com".directory + "/full.pem"; 131 - sslCertificateKey = config.security.acme.certs."example.com".directory + "/key.pem"; 132 locations."/".root = pkgs.runCommand "docroot" {} '' 133 mkdir -p "$out" 134 echo hello world > "$out/index.html" ··· 159 client.start() 160 dnsserver.start() 161 162 - letsencrypt.wait_for_unit("default.target") 163 dnsserver.wait_for_unit("pebble-challtestsrv.service") 164 client.succeed( 165 - 'curl --data \'{"host": "acme-v02.api.letsencrypt.org", "addresses": ["${nodes.letsencrypt.config.networking.primaryIPAddress}"]}\' http://${nodes.dnsserver.config.networking.primaryIPAddress}:8055/add-a' 166 ) 167 client.succeed( 168 - 'curl --data \'{"host": "standalone.com", "addresses": ["${nodes.acmeStandalone.config.networking.primaryIPAddress}"]}\' http://${nodes.dnsserver.config.networking.primaryIPAddress}:8055/add-a' 169 ) 170 171 - letsencrypt.start() 172 acmeStandalone.start() 173 174 - letsencrypt.wait_for_unit("default.target") 175 - letsencrypt.wait_for_unit("pebble.service") 176 177 with subtest("can request certificate with HTTPS-01 challenge"): 178 acmeStandalone.wait_for_unit("default.target") 179 - acmeStandalone.succeed("systemctl start acme-standalone.com.service") 180 - acmeStandalone.wait_for_unit("acme-finished-standalone.com.target") 181 182 client.wait_for_unit("default.target") 183 184 - client.succeed("curl https://acme-v02.api.letsencrypt.org:15000/roots/0 > /tmp/ca.crt") 185 - client.succeed( 186 - "curl https://acme-v02.api.letsencrypt.org:15000/intermediate-keys/0 >> /tmp/ca.crt" 187 - ) 188 189 with subtest("Can request certificate for nginx service"): 190 - webserver.wait_for_unit("acme-finished-a.example.com.target") 191 client.succeed( 192 - "curl --cacert /tmp/ca.crt https://a.example.com/ | grep -qF 'hello world'" 193 ) 194 195 with subtest("Can add another certificate for nginx service"): 196 webserver.succeed( 197 "/run/current-system/specialisation/second-cert/bin/switch-to-configuration test" 198 ) 199 - webserver.wait_for_unit("acme-finished-b.example.com.target") 200 client.succeed( 201 - "curl --cacert /tmp/ca.crt https://b.example.com/ | grep -qF 'hello world'" 202 ) 203 204 with subtest("Can request wildcard certificates using DNS-01 challenge"): ··· 208 webserver.succeed( 209 "/run/current-system/specialisation/dns-01/bin/switch-to-configuration test" 210 ) 211 - webserver.wait_for_unit("acme-finished-example.com.target") 212 client.succeed( 213 - "curl --cacert /tmp/ca.crt https://c.example.com/ | grep -qF 'hello world'" 214 ) 215 ''; 216 }
··· 1 let 2 + commonConfig = ./common/acme/client; 3 4 dnsScript = {writeScript, dnsAddress, bash, curl}: writeScript "dns-hook.sh" '' 5 #!${bash}/bin/bash ··· 16 name = "acme"; 17 18 nodes = rec { 19 + acme = { nodes, lib, ... }: { 20 + imports = [ ./common/acme/server ]; 21 networking.nameservers = lib.mkForce [ 22 nodes.dnsserver.config.networking.primaryIPAddress 23 ]; ··· 33 serviceConfig = { 34 ExecStart = "${pkgs.pebble}/bin/pebble-challtestsrv -dns01 ':53' -defaultIPv6 '' -defaultIPv4 '${nodes.webserver.config.networking.primaryIPAddress}'"; 35 # Required to bind on privileged ports. 36 + AmbientCapabilities = [ "CAP_NET_BIND_SERVICE" ]; 37 }; 38 }; 39 }; ··· 44 nodes.dnsserver.config.networking.primaryIPAddress 45 ]; 46 networking.firewall.allowedTCPPorts = [ 80 ]; 47 + security.acme.certs."standalone.test" = { 48 + webroot = "/var/lib/acme/acme-challenges"; 49 }; 50 + systemd.targets."acme-finished-standalone.test" = {}; 51 + systemd.services."acme-standalone.test" = { 52 + wants = [ "acme-finished-standalone.test.target" ]; 53 + before = [ "acme-finished-standalone.test.target" ]; 54 }; 55 services.nginx.enable = true; 56 + services.nginx.virtualHosts."standalone.test" = { 57 locations."/.well-known/acme-challenge".root = "/var/lib/acme/acme-challenges"; 58 }; 59 }; ··· 67 68 # A target remains active. Use this to probe the fact that 69 # a service fired eventhough it is not RemainAfterExit 70 + systemd.targets."acme-finished-a.example.test" = {}; 71 + systemd.services."acme-a.example.test" = { 72 + wants = [ "acme-finished-a.example.test.target" ]; 73 + before = [ "acme-finished-a.example.test.target" ]; 74 after = [ "nginx.service" ]; 75 }; 76 77 services.nginx.enable = true; 78 79 + services.nginx.virtualHosts."a.example.test" = { 80 enableACME = true; 81 forceSSL = true; 82 locations."/".root = pkgs.runCommand "docroot" {} '' ··· 85 ''; 86 }; 87 88 + security.acme.server = "https://acme.test/dir"; 89 90 specialisation.second-cert.configuration = {pkgs, ...}: { 91 + systemd.targets."acme-finished-b.example.test" = {}; 92 + systemd.services."acme-b.example.test" = { 93 + wants = [ "acme-finished-b.example.test.target" ]; 94 + before = [ "acme-finished-b.example.test.target" ]; 95 after = [ "nginx.service" ]; 96 }; 97 + services.nginx.virtualHosts."b.example.test" = { 98 enableACME = true; 99 forceSSL = true; 100 locations."/".root = pkgs.runCommand "docroot" {} '' ··· 104 }; 105 }; 106 specialisation.dns-01.configuration = {pkgs, config, nodes, lib, ...}: { 107 + security.acme.certs."example.test" = { 108 + domain = "*.example.test"; 109 dnsProvider = "exec"; 110 dnsPropagationCheck = false; 111 credentialsFile = with pkgs; writeText "wildcard.env" '' ··· 114 user = config.services.nginx.user; 115 group = config.services.nginx.group; 116 }; 117 + systemd.targets."acme-finished-example.test" = {}; 118 + systemd.services."acme-example.test" = { 119 + wants = [ "acme-finished-example.test.target" ]; 120 + before = [ "acme-finished-example.test.target" "nginx.service" ]; 121 wantedBy = [ "nginx.service" ]; 122 }; 123 + services.nginx.virtualHosts."c.example.test" = { 124 forceSSL = true; 125 + sslCertificate = config.security.acme.certs."example.test".directory + "/cert.pem"; 126 + sslTrustedCertificate = config.security.acme.certs."example.test".directory + "/full.pem"; 127 + sslCertificateKey = config.security.acme.certs."example.test".directory + "/key.pem"; 128 locations."/".root = pkgs.runCommand "docroot" {} '' 129 mkdir -p "$out" 130 echo hello world > "$out/index.html" ··· 155 client.start() 156 dnsserver.start() 157 158 + acme.wait_for_unit("default.target") 159 dnsserver.wait_for_unit("pebble-challtestsrv.service") 160 client.succeed( 161 + 'curl --data \'{"host": "acme.test", "addresses": ["${nodes.acme.config.networking.primaryIPAddress}"]}\' http://${nodes.dnsserver.config.networking.primaryIPAddress}:8055/add-a' 162 ) 163 client.succeed( 164 + 'curl --data \'{"host": "standalone.test", "addresses": ["${nodes.acmeStandalone.config.networking.primaryIPAddress}"]}\' http://${nodes.dnsserver.config.networking.primaryIPAddress}:8055/add-a' 165 ) 166 167 + acme.start() 168 acmeStandalone.start() 169 170 + acme.wait_for_unit("default.target") 171 + acme.wait_for_unit("pebble.service") 172 173 with subtest("can request certificate with HTTPS-01 challenge"): 174 acmeStandalone.wait_for_unit("default.target") 175 + acmeStandalone.succeed("systemctl start acme-standalone.test.service") 176 + acmeStandalone.wait_for_unit("acme-finished-standalone.test.target") 177 178 client.wait_for_unit("default.target") 179 180 + client.succeed("curl https://acme.test:15000/roots/0 > /tmp/ca.crt") 181 + client.succeed("curl https://acme.test:15000/intermediate-keys/0 >> /tmp/ca.crt") 182 183 with subtest("Can request certificate for nginx service"): 184 + webserver.wait_for_unit("acme-finished-a.example.test.target") 185 client.succeed( 186 + "curl --cacert /tmp/ca.crt https://a.example.test/ | grep -qF 'hello world'" 187 ) 188 189 with subtest("Can add another certificate for nginx service"): 190 webserver.succeed( 191 "/run/current-system/specialisation/second-cert/bin/switch-to-configuration test" 192 ) 193 + webserver.wait_for_unit("acme-finished-b.example.test.target") 194 client.succeed( 195 + "curl --cacert /tmp/ca.crt https://b.example.test/ | grep -qF 'hello world'" 196 ) 197 198 with subtest("Can request wildcard certificates using DNS-01 challenge"): ··· 202 webserver.succeed( 203 "/run/current-system/specialisation/dns-01/bin/switch-to-configuration test" 204 ) 205 + webserver.wait_for_unit("acme-finished-example.test.target") 206 client.succeed( 207 + "curl --cacert /tmp/ca.crt https://c.example.test/ | grep -qF 'hello world'" 208 ) 209 ''; 210 }
+5 -1
nixos/tests/all-tests.nix
··· 22 in 23 { 24 _3proxy = handleTest ./3proxy.nix {}; 25 - acme = handleTestOn ["x86_64-linux"] ./acme.nix {}; 26 atd = handleTest ./atd.nix {}; 27 automysqlbackup = handleTest ./automysqlbackup.nix {}; 28 avahi = handleTest ./avahi.nix {}; ··· 51 cloud-init = handleTest ./cloud-init.nix {}; 52 codimd = handleTest ./codimd.nix {}; 53 consul = handleTest ./consul.nix {}; 54 containers-bridge = handleTest ./containers-bridge.nix {}; 55 containers-ephemeral = handleTest ./containers-ephemeral.nix {}; 56 containers-extra_veth = handleTest ./containers-extra_veth.nix {}; 57 containers-hosts = handleTest ./containers-hosts.nix {}; ··· 160 # kubernetes.e2e should eventually replace kubernetes.rbac when it works 161 #kubernetes.e2e = handleTestOn ["x86_64-linux"] ./kubernetes/e2e.nix {}; 162 kubernetes.rbac = handleTestOn ["x86_64-linux"] ./kubernetes/rbac.nix {}; 163 latestKernel.login = handleTest ./login.nix { latestKernel = true; }; 164 ldap = handleTest ./ldap.nix {}; 165 leaps = handleTest ./leaps.nix {}; ··· 311 trilium-server = handleTestOn ["x86_64-linux"] ./trilium-server.nix {}; 312 trezord = handleTest ./trezord.nix {}; 313 trickster = handleTest ./trickster.nix {}; 314 udisks2 = handleTest ./udisks2.nix {}; 315 upnp = handleTest ./upnp.nix {}; 316 uwsgi = handleTest ./uwsgi.nix {};
··· 22 in 23 { 24 _3proxy = handleTest ./3proxy.nix {}; 25 + acme = handleTest ./acme.nix {}; 26 atd = handleTest ./atd.nix {}; 27 automysqlbackup = handleTest ./automysqlbackup.nix {}; 28 avahi = handleTest ./avahi.nix {}; ··· 51 cloud-init = handleTest ./cloud-init.nix {}; 52 codimd = handleTest ./codimd.nix {}; 53 consul = handleTest ./consul.nix {}; 54 + cockroachdb = handleTestOn ["x86_64-linux"] ./cockroachdb.nix {}; 55 containers-bridge = handleTest ./containers-bridge.nix {}; 56 + containers-custom-pkgs.nix = handleTest ./containers-custom-pkgs.nix {}; 57 containers-ephemeral = handleTest ./containers-ephemeral.nix {}; 58 containers-extra_veth = handleTest ./containers-extra_veth.nix {}; 59 containers-hosts = handleTest ./containers-hosts.nix {}; ··· 162 # kubernetes.e2e should eventually replace kubernetes.rbac when it works 163 #kubernetes.e2e = handleTestOn ["x86_64-linux"] ./kubernetes/e2e.nix {}; 164 kubernetes.rbac = handleTestOn ["x86_64-linux"] ./kubernetes/rbac.nix {}; 165 + latestKernel.hardened = handleTest ./hardened.nix { latestKernel = true; }; 166 latestKernel.login = handleTest ./login.nix { latestKernel = true; }; 167 ldap = handleTest ./ldap.nix {}; 168 leaps = handleTest ./leaps.nix {}; ··· 314 trilium-server = handleTestOn ["x86_64-linux"] ./trilium-server.nix {}; 315 trezord = handleTest ./trezord.nix {}; 316 trickster = handleTest ./trickster.nix {}; 317 + tuptime = handleTest ./tuptime.nix {}; 318 udisks2 = handleTest ./udisks2.nix {}; 319 upnp = handleTest ./upnp.nix {}; 320 uwsgi = handleTest ./uwsgi.nix {};
+13 -15
nixos/tests/cockroachdb.nix
··· 1 # This performs a full 'end-to-end' test of a multi-node CockroachDB cluster 2 # using the built-in 'cockroach workload' command, to simulate a semi-realistic 3 # test load. It generally takes anywhere from 3-5 minutes to run and 1-2GB of 4 - # RAM (though each of 3 workers gets 1GB allocated) 5 # 6 # CockroachDB requires synchronized system clocks within a small error window 7 # (~500ms by default) on each node in order to maintain a multi-node cluster. ··· 55 56 { 57 # Bank/TPC-C benchmarks take some memory to complete 58 - virtualisation.memorySize = 1024; 59 60 # Install the KVM PTP "Virtualized Clock" driver. This allows a /dev/ptp0 61 # device to appear as a reference clock, synchronized to the host clock. ··· 88 services.cockroachdb.listen.address = myAddr; 89 services.cockroachdb.join = lib.mkIf (joinNode != null) joinNode; 90 91 # Hold startup until Chrony has performed its first measurement (which 92 # will probably result in a full timeskip, thanks to makestep) 93 systemd.services.cockroachdb.preStart = '' ··· 95 ''; 96 }; 97 98 - in import ./make-test.nix ({ pkgs, ...} : { 99 name = "cockroachdb"; 100 meta.maintainers = with pkgs.stdenv.lib.maintainers; 101 [ thoughtpolice ]; ··· 110 # there's otherwise no way to guarantee that node1 will start before the others try 111 # to join it. 112 testScript = '' 113 - $node1->start; 114 - $node1->waitForUnit("cockroachdb"); 115 - 116 - $node2->start; 117 - $node2->waitForUnit("cockroachdb"); 118 - 119 - $node3->start; 120 - $node3->waitForUnit("cockroachdb"); 121 - 122 - $node1->mustSucceed("cockroach sql --host=192.168.1.1 --insecure -e 'SHOW ALL CLUSTER SETTINGS' 2>&1"); 123 - $node1->mustSucceed("cockroach workload init bank 'postgresql://root\@192.168.1.1:26257?sslmode=disable'"); 124 - $node1->mustSucceed("cockroach workload run bank --duration=1m 'postgresql://root\@192.168.1.1:26257?sslmode=disable'"); 125 ''; 126 })
··· 1 # This performs a full 'end-to-end' test of a multi-node CockroachDB cluster 2 # using the built-in 'cockroach workload' command, to simulate a semi-realistic 3 # test load. It generally takes anywhere from 3-5 minutes to run and 1-2GB of 4 + # RAM (though each of 3 workers gets 2GB allocated) 5 # 6 # CockroachDB requires synchronized system clocks within a small error window 7 # (~500ms by default) on each node in order to maintain a multi-node cluster. ··· 55 56 { 57 # Bank/TPC-C benchmarks take some memory to complete 58 + virtualisation.memorySize = 2048; 59 60 # Install the KVM PTP "Virtualized Clock" driver. This allows a /dev/ptp0 61 # device to appear as a reference clock, synchronized to the host clock. ··· 88 services.cockroachdb.listen.address = myAddr; 89 services.cockroachdb.join = lib.mkIf (joinNode != null) joinNode; 90 91 + systemd.services.chronyd.unitConfig.ConditionPathExists = "/dev/ptp0"; 92 + 93 # Hold startup until Chrony has performed its first measurement (which 94 # will probably result in a full timeskip, thanks to makestep) 95 systemd.services.cockroachdb.preStart = '' ··· 97 ''; 98 }; 99 100 + in import ./make-test-python.nix ({ pkgs, ...} : { 101 name = "cockroachdb"; 102 meta.maintainers = with pkgs.stdenv.lib.maintainers; 103 [ thoughtpolice ]; ··· 112 # there's otherwise no way to guarantee that node1 will start before the others try 113 # to join it. 114 testScript = '' 115 + for node in node1, node2, node3: 116 + node.start() 117 + node.wait_for_unit("cockroachdb") 118 + node1.succeed( 119 + "cockroach sql --host=192.168.1.1 --insecure -e 'SHOW ALL CLUSTER SETTINGS' 2>&1", 120 + "cockroach workload init bank 'postgresql://root@192.168.1.1:26257?sslmode=disable'", 121 + "cockroach workload run bank --duration=1m 'postgresql://root@192.168.1.1:26257?sslmode=disable'", 122 + ) 123 ''; 124 })
+15
nixos/tests/common/acme/client/default.nix
···
··· 1 + { lib, nodes, pkgs, ... }: 2 + 3 + let 4 + acme-ca = nodes.acme.config.test-support.acme.caCert; 5 + in 6 + 7 + { 8 + security.acme = { 9 + server = "https://acme.test/dir"; 10 + email = "hostmaster@example.test"; 11 + acceptTerms = true; 12 + }; 13 + 14 + security.pki.certificateFiles = [ acme-ca ]; 15 + }
+171
nixos/tests/common/acme/server/snakeoil-certs.nix
···
··· 1 + # Generated via mkcert.sh in the same directory. 2 + { 3 + ca.key = builtins.toFile "ca.key" '' 4 + -----BEGIN PRIVATE KEY----- 5 + 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 54 + JUsBXFNz132nP4iIr3UKrPedQZijSi4= 55 + -----END PRIVATE KEY----- 56 + ''; 57 + ca.cert = builtins.toFile "ca.cert" '' 58 + -----BEGIN CERTIFICATE----- 59 + MIIFDzCCAvegAwIBAgIUTRDYSWJvmlhwIR3pzVrIQfnboLEwDQYJKoZIhvcNAQEL 60 + BQAwFjEUMBIGA1UEAwwLU25ha2VvaWwgQ0EwIBcNMjAwMzIyMjI1NjE3WhgPMjEy 61 + MDAyMjcyMjU2MTdaMBYxFDASBgNVBAMMC1NuYWtlb2lsIENBMIICIjANBgkqhkiG 62 + 9w0BAQEFAAOCAg8AMIICCgKCAgEAwp1WRhJ+vHs15Q1hOYI7Aj6rrUeJ8cP8LyGw 63 + MQdlZNlnkOhxr7diXa8+anq9iF3e+mLaUHqnfn33rWi7THhU6/l8vcqhKcdgH75h 64 + BHC57olm7FBmc7B8Fu/+JD4ABQcvU8CZ/5PPdpUerkGGtEEt/Ql/OZCzGfy2V1Mg 65 + pSAWviMU9TqL5hqjDq+JxgEkUD+nf558p+NSp2rf3bacmmuc4H2MAOmFulMXMsLw 66 + UqTDlzNP/NgRWRsgC7d50Pn35q7SnLzI7DSwRWrJVfs2DtTzGy20wlvEpiU44c7m 67 + qV7QR67r6HtuNd911pb3D9cpWk8dGpcIkFia9VxDlFixBU4Dk3kcolQ8Q7p6c/u6 68 + BnMM3HThvJwoHesNGmGhAs9c70txWE0M/jIqphJMerOG49VPdCNJMFCW3lo46xju 69 + 2PUKuItfRmnw4O3ADJ/XhwojWzaz4+rf4H2lWwq25Jt2VY5Ly00Npm9pb+/rVYou 70 + Odtu4jT7jUupcdhVZa/w14kazlX4IT76DsVH186ICYWS1eGZIvsnGxkGucPGDA2A 71 + r+HNPHSgOwGrVYTUutHNc4EDY7lhdwb6HEskshlKJ1U+odQ2JSfWAKoKjaXnYDUf 72 + ZKadN+EjIQe3Y/ZXgei0TAPnNXxv0/tZQ25APr6KXqbePt9KA3Ak2HxIn5dR8Kjc 73 + P21w5tcCAwEAAaNTMFEwHQYDVR0OBBYEFCIoeYSYjtMiPrmxfHmcrsZkyTpvMB8G 74 + A1UdIwQYMBaAFCIoeYSYjtMiPrmxfHmcrsZkyTpvMA8GA1UdEwEB/wQFMAMBAf8w 75 + DQYJKoZIhvcNAQELBQADggIBAHPdwOgAxyhIhbqFObNftW8K3sptorB/Fj6jwYCm 76 + mHleFueqQnjTHMWsflOjREvQp1M307FWooGj+KQkjwvAyDc/Hmy7WgJxBg9p3vc+ 77 + /Xf/e7ZfBl8rv7vH8VXW/BC1vVsILdFncrgTrP8/4psV50/cl1F4+nPBiekvvxwZ 78 + k+R7SgeSvcWT7YlOG8tm1M3al4F4mWzSRkYjkrXmwRCKAiya9xcGSt0Bob+LoM/O 79 + mpDGV/PMC1WAoDc1mMuXN2hSc0n68xMcuFs+dj/nQYn8uL5pzOxpX9560ynKyLDv 80 + yOzQlM2VuZ7H2hSIeYOFgrtHJJwhDtzjmUNDQpQdp9Fx+LONQTS1VLCTXND2i/3F 81 + 10X6PkdnLEn09RiPt5qy20pQkICxoEydmlwpFs32musYfJPdBPkZqZWrwINBv2Wb 82 + HfOmEB4xUvXufZ5Ju5icgggBkyNA3PCLo0GZFRrMtvA7i9IXOcXNR+njhKa9246V 83 + QQfeWiz05RmIvgShJYVsnZWtael8ni366d+UXypBYncohimyNlAD1n+Bh3z0PvBB 84 + +FK4JgOSeouM4SuBHdwmlZ/H0mvfUG81Y8Jbrw0yuRHtuCtX5HpN5GKpZPHDE7aQ 85 + fEShVB/GElC3n3DvgK9OJBeVVhYQgUEfJi4rsSxt3cdEI0NrdckUoZbApWVJ3CBc 86 + F8Y7 87 + -----END CERTIFICATE----- 88 + ''; 89 + "acme.test".key = builtins.toFile "acme.test.key" '' 90 + -----BEGIN RSA PRIVATE KEY----- 91 + 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 140 + -----END RSA PRIVATE KEY----- 141 + ''; 142 + "acme.test".cert = builtins.toFile "acme.test.cert" '' 143 + -----BEGIN CERTIFICATE----- 144 + MIIEoTCCAokCAgKaMA0GCSqGSIb3DQEBCwUAMBYxFDASBgNVBAMMC1NuYWtlb2ls 145 + IENBMCAXDTIwMDMyMjIyNTYxOFoYDzIxMjAwMjI3MjI1NjE4WjAUMRIwEAYDVQQD 146 + DAlhY21lLnRlc3QwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCWBBNm 147 + Mp+zdofDQn33eTuMUCz6FVE9///McwCJSQ8pRg9NKXVPFL9s9uFbNKiibTSPhIuE 148 + YYaFt36We9ODS68pvGySABN/DlyVubVk36DHgO7HCMtXfEjGl5Jj48rOznPzD+T4 149 + AmH7M4/JfAfe63cL6iCnVL/kiGbNXdr/JT/qTTOkbGM3pk9FNcWvP3cjWk94KQnP 150 + 3SXu2P7a4Vz3G0zbQ1BfnZ/RjahKFwbx8p01lXO4ceRleStkiGi7nn+dHLaMqAV4 151 + PcZBB9r2vA9atXJtDq0owyShrMH9SeTL3FxMjYslqt/GAcM72/3IUG+ZHhQzwHeQ 152 + zzY0egQ20dpnaaaIwZnNMRCV/zHBjIcWuoEUhVFYRSvuuv87lCv2Ag3RPi7frscJ 153 + 7FVgArNs7Y/2HvlzPOMwygaRtfN71IxD+KSvESbAAeCvVfGHqJBiaA82TwBHd336 154 + jYjtYlkxRhkBEue6FWv0E1e/nXSKplOpfyVzIvl8SPdJPgBv4fut969m3o1TbqIk 155 + sFgCOsDaZK8f7C+RujGuBJLzFg+Q5bw0s0Rtuh3Oh8ikH5Jornc4iTRuP1zVgCCt 156 + I0RH9MNOANetZQ2uV9Vn8zv4AR15TTrCLuxWFWJ/o4EPc6mApI2N4TpO4kfzQ+Lk 157 + xa6BIUGvv3Zdvq6FWg+JU4U36qIYHpSTAGBIqQIDAQABMA0GCSqGSIb3DQEBCwUA 158 + A4ICAQBCDs0V4z00Ze6Ask3qDOLAPo4k85QCfItlRZmwl2XbPZq7kbe13MqF2wxx 159 + yiLalm6veK+ehU9MYN104hJZnuce5iEcZurk+8A+Pwn1Ifz+oWKVbUtUP3uV8Sm3 160 + chktJ2H1bebXtNJE5TwvdHiUkXU9ywQt2FkxiTSl6+eac7JKEQ8lVN/o6uYxF5ds 161 + +oIZplb7bv2XxsRCzq55F2tJX7fIzqXrSa+lQTnfLGmDVMAQX4TRB/lx0Gqd1a9y 162 + qGfFnZ7xVyW97f6PiL8MoxPfd2I2JzrzGyP/igNbFOW0ho1OwfxVmvZeS7fQSc5e 163 + +qu+nwnFfl0S4cHRif3G3zmz8Ryx9LM5TYkH41qePIHxoEO2sV0DgWJvbSjysV2S 164 + EU2a31dJ0aZ+z6YtZVpHlujKMVzxVTrqj74trS4LvU5h/9hv7e1gjYdox1TO0HMK 165 + mtDfgBevB21Tvxpz67Ijf31HvfTmCerKJEOjGnbYmyYpMeMNSONRDcToWk8sUwvi 166 + OWa5jlUFRAxgXNM09vCTPi9aRUhcFqACqfAd6I1NqGVlfplLWrc7SWaSa+PsLfBf 167 + 4EOZfk8iEKBVeYXNjg+CcD8j8yk/oEs816/jpihIk8haCDRWYWGKyyGnwn6OQb8d 168 + MdRO2b7Oi/AAmEF3jMlICqv286GIYK5qTKk2/CKHlOLPnsWEuA== 169 + -----END CERTIFICATE----- 170 + ''; 171 + }
-12
nixos/tests/common/letsencrypt/common.nix
··· 1 - { lib, nodes, pkgs, ... }: let 2 - letsencrypt-ca = nodes.letsencrypt.config.test-support.letsencrypt.caCert; 3 - in { 4 - networking.nameservers = [ 5 - nodes.letsencrypt.config.networking.primaryIPAddress 6 - ]; 7 - 8 - security.acme.acceptTerms = true; 9 - security.acme.email = "webmaster@example.com"; 10 - 11 - security.pki.certificateFiles = [ letsencrypt-ca ]; 12 - }
···
+17 -17
nixos/tests/common/letsencrypt/default.nix nixos/tests/common/acme/server/default.nix
··· 1 # The certificate for the ACME service is exported as: 2 # 3 - # config.test-support.letsencrypt.caCert 4 # 5 # This value can be used inside the configuration of other test nodes to inject 6 # the snakeoil certificate into security.pki.certificateFiles or into package 7 # overlays. 8 # 9 # Another value that's needed if you don't use a custom resolver (see below for 10 - # notes on that) is to add the letsencrypt node as a nameserver to every node 11 # that needs to acquire certificates using ACME, because otherwise the API host 12 - # for letsencrypt.org can't be resolved. 13 # 14 # A configuration example of a full node setup using this would be this: 15 # 16 # { 17 - # letsencrypt = import ./common/letsencrypt; 18 # 19 # example = { nodes, ... }: { 20 # networking.nameservers = [ 21 - # nodes.letsencrypt.config.networking.primaryIPAddress 22 # ]; 23 # security.pki.certificateFiles = [ 24 - # nodes.letsencrypt.config.test-support.letsencrypt.caCert 25 # ]; 26 # }; 27 # } ··· 33 # override networking.nameservers like this: 34 # 35 # { 36 - # letsencrypt = { nodes, ... }: { 37 - # imports = [ ./common/letsencrypt ]; 38 - # networking.nameservers = [ 39 # nodes.myresolver.config.networking.primaryIPAddress 40 # ]; 41 # }; ··· 55 let 56 snakeOilCerts = import ./snakeoil-certs.nix; 57 58 - wfeDomain = "acme-v02.api.letsencrypt.org"; 59 wfeCertFile = snakeOilCerts.${wfeDomain}.cert; 60 wfeKeyFile = snakeOilCerts.${wfeDomain}.key; 61 62 - siteDomain = "letsencrypt.org"; 63 siteCertFile = snakeOilCerts.${siteDomain}.cert; 64 siteKeyFile = snakeOilCerts.${siteDomain}.key; 65 pebble = pkgs.pebble; 66 resolver = let 67 - message = "You need to define a resolver for the letsencrypt test module."; 68 firstNS = lib.head config.networking.nameservers; 69 in if config.networking.nameservers == [] then throw message else firstNS; 70 ··· 76 httpPort = 80; 77 tlsPort = 443; 78 ocspResponderURL = "http://0.0.0.0:4002"; 79 }; 80 81 pebbleConfFile = pkgs.writeText "pebble.conf" (builtins.toJSON pebbleConf); 82 pebbleDataDir = "/root/pebble"; 83 84 in { 85 - imports = [ ../resolver.nix ]; 86 87 - options.test-support.letsencrypt.caCert = lib.mkOption { 88 type = lib.types.path; 89 description = '' 90 A certificate file to use with the <literal>nodes</literal> attribute to ··· 98 resolver.enable = let 99 isLocalResolver = config.networking.nameservers == [ "127.0.0.1" ]; 100 in lib.mkOverride 900 isLocalResolver; 101 - letsencrypt.caCert = snakeOilCerts.ca.cert; 102 }; 103 104 # This has priority 140, because modules/testing/test-instrumentation.nix ··· 126 ''; 127 serviceConfig = { 128 # Required to bind on privileged ports. 129 - User = "root"; 130 - Group = "root"; 131 }; 132 }; 133 };
··· 1 # The certificate for the ACME service is exported as: 2 # 3 + # config.test-support.acme.caCert 4 # 5 # This value can be used inside the configuration of other test nodes to inject 6 # the snakeoil certificate into security.pki.certificateFiles or into package 7 # overlays. 8 # 9 # Another value that's needed if you don't use a custom resolver (see below for 10 + # notes on that) is to add the acme node as a nameserver to every node 11 # that needs to acquire certificates using ACME, because otherwise the API host 12 + # for acme.test can't be resolved. 13 # 14 # A configuration example of a full node setup using this would be this: 15 # 16 # { 17 + # acme = import ./common/acme/server; 18 # 19 # example = { nodes, ... }: { 20 # networking.nameservers = [ 21 + # nodes.acme.config.networking.primaryIPAddress 22 # ]; 23 # security.pki.certificateFiles = [ 24 + # nodes.acme.config.test-support.acme.caCert 25 # ]; 26 # }; 27 # } ··· 33 # override networking.nameservers like this: 34 # 35 # { 36 + # acme = { nodes, lib, ... }: { 37 + # imports = [ ./common/acme/server ]; 38 + # networking.nameservers = lib.mkForce [ 39 # nodes.myresolver.config.networking.primaryIPAddress 40 # ]; 41 # }; ··· 55 let 56 snakeOilCerts = import ./snakeoil-certs.nix; 57 58 + wfeDomain = "acme.test"; 59 wfeCertFile = snakeOilCerts.${wfeDomain}.cert; 60 wfeKeyFile = snakeOilCerts.${wfeDomain}.key; 61 62 + siteDomain = "acme.test"; 63 siteCertFile = snakeOilCerts.${siteDomain}.cert; 64 siteKeyFile = snakeOilCerts.${siteDomain}.key; 65 pebble = pkgs.pebble; 66 resolver = let 67 + message = "You need to define a resolver for the acme test module."; 68 firstNS = lib.head config.networking.nameservers; 69 in if config.networking.nameservers == [] then throw message else firstNS; 70 ··· 76 httpPort = 80; 77 tlsPort = 443; 78 ocspResponderURL = "http://0.0.0.0:4002"; 79 + strict = true; 80 }; 81 82 pebbleConfFile = pkgs.writeText "pebble.conf" (builtins.toJSON pebbleConf); 83 pebbleDataDir = "/root/pebble"; 84 85 in { 86 + imports = [ ../../resolver.nix ]; 87 88 + options.test-support.acme.caCert = lib.mkOption { 89 type = lib.types.path; 90 description = '' 91 A certificate file to use with the <literal>nodes</literal> attribute to ··· 99 resolver.enable = let 100 isLocalResolver = config.networking.nameservers == [ "127.0.0.1" ]; 101 in lib.mkOverride 900 isLocalResolver; 102 + acme.caCert = snakeOilCerts.ca.cert; 103 }; 104 105 # This has priority 140, because modules/testing/test-instrumentation.nix ··· 127 ''; 128 serviceConfig = { 129 # Required to bind on privileged ports. 130 + AmbientCapabilities = [ "CAP_NET_BIND_SERVICE" ]; 131 }; 132 }; 133 };
+2 -3
nixos/tests/common/letsencrypt/mkcerts.nix nixos/tests/common/acme/server/mkcerts.nix
··· 1 { pkgs ? import <nixpkgs> {} 2 , lib ? pkgs.lib 3 - 4 - , domains ? [ "acme-v02.api.letsencrypt.org" "letsencrypt.org" ] 5 }: 6 7 - pkgs.runCommand "letsencrypt-snakeoil-ca" { 8 nativeBuildInputs = [ pkgs.openssl ]; 9 } '' 10 addpem() {
··· 1 { pkgs ? import <nixpkgs> {} 2 , lib ? pkgs.lib 3 + , domains ? [ "acme.test" ] 4 }: 5 6 + pkgs.runCommand "acme-snakeoil-ca" { 7 nativeBuildInputs = [ pkgs.openssl ]; 8 } '' 9 addpem() {
nixos/tests/common/letsencrypt/mkcerts.sh nixos/tests/common/acme/server/mkcerts.sh
-254
nixos/tests/common/letsencrypt/snakeoil-certs.nix
··· 1 - # Generated via mkcert.sh in the same directory. 2 - { 3 - ca.key = builtins.toFile "ca.key" '' 4 - -----BEGIN PRIVATE KEY----- 5 - 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 54 - Eq4OVTSu/s8gmY94tgbjeOaLUPEPmg== 55 - -----END PRIVATE KEY----- 56 - ''; 57 - ca.cert = builtins.toFile "ca.cert" '' 58 - -----BEGIN CERTIFICATE----- 59 - MIIFDzCCAvegAwIBAgIUU9rbCLTuvaI6gjSsFsJJjfLWIX8wDQYJKoZIhvcNAQEL 60 - BQAwFjEUMBIGA1UEAwwLU25ha2VvaWwgQ0EwIBcNMTkxMDE4MDc1NDEyWhgPMjEx 61 - OTA5MjQwNzU0MTJaMBYxFDASBgNVBAMMC1NuYWtlb2lsIENBMIICIjANBgkqhkiG 62 - 9w0BAQEFAAOCAg8AMIICCgKCAgEA0NG9tyNbKyWcEdjDHb0iSuaXMC3611PuIBGR 63 - J1jck/MnlcHsmvvL5jTTpbyt88X/mYmP+2kNEWSTDodvlXZYB5q9kCoUE39R8H2Q 64 - P9OhaJQ9/w3EvgzCTEk1a9e/f1y53XlVWVKlO7Y7wQFikiEvB9oUhdVDj4vYAQ0f 65 - DMAj+kII/FmIW5LfauO/5TveqgJpulNRfkO0WDPWUCFiPNTdDLOcCaHIO5+ktfYl 66 - eunj4ewD2qWRWLqetYBRln2oZgNtexCyGXeep/MozhdHqW/bAtF6WAg0a2CgVi6j 67 - 4r/usL3WbWbwCyLciL9PGcF5QZBYNy2wAIT539Fcc6WMrEJssss5IMtudp/kontJ 68 - MfgeKpunzpKX4GJT0lU29nV8f23v0hNPLtGvRTtH2aZAclhGSVFMJ4LCYC1GuzKK 69 - 0H92r8aM3wtuV6r824nmX0l5QO5jlHJWWwv1lBacozJciVNngkPMEsLD15fdaMXG 70 - JTpLlS4HeNYK/aRl0EriiJK4G35H7Y4NrQwvu4OzvKq3ReNhY22YyMf++AGrJrBo 71 - eBk0LYkpLxJ07LYqAumgleOA5SVmwSDL5MmsLm41JT6Yo9B+umPUOLRHP5LXO6Bk 72 - H6qpbsi2+N03qG0zxwC7DXgGG9/azLQaOQwwlHPNbH7gzITK/6GFyqxbLVLIOQGO 73 - piWkRtECAwEAAaNTMFEwHQYDVR0OBBYEFAZcEiVphGxBT4OWXbM6lKu96dvbMB8G 74 - A1UdIwQYMBaAFAZcEiVphGxBT4OWXbM6lKu96dvbMA8GA1UdEwEB/wQFMAMBAf8w 75 - DQYJKoZIhvcNAQELBQADggIBAGJ5Jnxq1IQ++IRYxCE7r7BqzzF+HTx0EWKkSOmt 76 - eSPqeOdhC26hJlclgGZXAF/Xosmn8vkSQMHhj/jr4HI0VF9IyvDUJm8AKsnOgu/7 77 - DUey3lEUdOtJpTG9NyTOcrzxToMJ+hWlFLZKxx2dk4FLIvTLjmo1VHM97Bat7XYW 78 - IrL9RRIZ25V+eCYtlR7XYjceGFQ0rCdp8SFIQwC6C/AH2tV3b1AJFsND9PcoLu7c 79 - //fH+WUQCcD/N0grdC/QCX7AFWzd4rKQ8gjfND4TSYFTSDwW10Mud4kAVhY2P1sY 80 - Y3ZpnxWrCHbIZMbszlbMyD+cjsCBnNvOtYGm7pDut/371rllVcB/uOWYWMCtKPoj 81 - 0elPrwNMrK+P+wceNBCRQO+9gwzB589F2morFTtsob/qtpAygW8Sfl8M+iLWXeYS 82 - c3LBLnj0TpgXKRWg7wgIWKSZx9v6pgy70U0qvkjNS1XseUCPf7hfAbxT3xF+37Dw 83 - zZRwF4WAWqdnJoOey21mgc+a2DQzqtykA6KfHgCqNFfDbQXPXvNy25DDThbk+paX 84 - G2M2EWtr+Nv9s/zm7Xv/pOXlgMFavaj+ikqZ4wfJf6c/sMOdZJtMA4TsYtAJgbc8 85 - ts+0eymTq4v5S8/fW51Lbjw6hc1Kcm8k7NbHSi9sEjBfxFLTZNQ5eb4NGr9Od3sU 86 - kgwJ 87 - -----END CERTIFICATE----- 88 - ''; 89 - "acme-v02.api.letsencrypt.org".key = builtins.toFile "acme-v02.api.letsencrypt.org.key" '' 90 - -----BEGIN RSA PRIVATE KEY----- 91 - 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 140 - -----END RSA PRIVATE KEY----- 141 - ''; 142 - "acme-v02.api.letsencrypt.org".cert = builtins.toFile "acme-v02.api.letsencrypt.org.cert" '' 143 - -----BEGIN CERTIFICATE----- 144 - MIIEtDCCApwCAgKaMA0GCSqGSIb3DQEBCwUAMBYxFDASBgNVBAMMC1NuYWtlb2ls 145 - IENBMCAXDTE5MTAxODA3NTQxM1oYDzIxMTkwOTI0MDc1NDEzWjAnMSUwIwYDVQQD 146 - DBxhY21lLXYwMi5hcGkubGV0c2VuY3J5cHQub3JnMIICIjANBgkqhkiG9w0BAQEF 147 - AAOCAg8AMIICCgKCAgEApny0WhfDwEXe6WDTCw8qBuMAPDr88pj6kbhQWfzAW2c0 148 - TggJEtjs9dktENeTpSl14nnLVMiSYIJPYY3KbOIFQH1qDaOuQ7NaOhj9CdMTm5r9 149 - bl+CYAyqLIMQ9AAZDhUcQjOy3moiL7ClFHlkFYuEzZBO9DF7hJpfUFIs0Idg50mN 150 - oZh/K/fb4P2skNjfCjjomTRUmZHxT6G00ImSTtSaYbN/WHut1xXwJvOoT1nlEA/P 151 - ghKmJJ9ZuRMSddUJmjL+sT09L8LVkK8CKeHi4r58DHM0D0u8owIFV9qsXd5UvZHa 152 - NgvQ4OAWGukMX+TxRuqkUZkaj84vnNL+ttEMl4jedw0ImzNtCOYehDyTPRkfng5P 153 - LWMSvWbwyP8jDd2578mSbx5BF7ypYX366+vknjIFyZ5WezcC1pscIHxLoEwuhuf+ 154 - knN+kFkLOHeYbqQrU6mxSnu9q0hnNvGUkTP0a/1aLOGRfQ5C/pxpE/Rebi8qfM/O 155 - JFd4mSxGL93JUTXWAItiIeBnQpIne65/Ska9dWynOEfIb0okdet3kfmNHz3zc17d 156 - Z5g4AdOSCgHAlQgFt/Qd8W6xXUe4C5Mfv2ctxRrfQhDwtB6rMByPwzImnciC2h3v 157 - CwD3vS/vjUyWICyhZyi2LZDUQz+sCKBXCYYcYh8ThFO40j5x1OnYMq7XQvyl8QkC 158 - AwEAATANBgkqhkiG9w0BAQsFAAOCAgEAkx0GLPuCvKSLTHxVLh5tP4jxSGG/zN37 159 - PeZLu3QJTdRdRc8bgeOGXAVEVFbqOLTNTsuY1mvpiv2V6wxR6nns+PIHeLY/UOdc 160 - mOreKPtMU2dWPp3ybec2Jwii6PhAXZJ26AKintmug1psMw7662crR3SCnn85/CvW 161 - 192vhr5gM1PqLBIlbsX0tAqxAwBe1YkxBb9vCq8NVghJlKme49xnwGULMTGs15MW 162 - hIPx6sW93zwrGiTsDImH49ILGF+NcX1AgAq90nG0j/l5zhDgXGJglX+K1xP99X1R 163 - de3I4uoufPa5q+Pjmhy7muL+o4Qt0D0Vm86RqqjTkNPsr7gAJtt66A7TJrYiIoKn 164 - GTIBsgM6egeFLLYQsT0ap/59HJismO2Pjx4Jk/jHOkC8TJsXQNRq1Km76VMBnuc0 165 - 2CMoD9pb38GjUUH94D4hJK4Ls/gJMF3ftKUyR8Sr/LjE6qU6Yj+ZpeEQP4kW9ANq 166 - Lv9KSNDQQpRTL4LwGLTGomksLTQEekge7/q4J2TQRZNYJ/mxnrBKRcv9EAMgBMXq 167 - Q+7GHtKDv9tJVlMfG/MRD3CMuuSRiT3OVbvMMkFzsPkqxYAP1CqE/JGvh67TzKI+ 168 - MUfXKehA6TKuxrTVqCtoFIfGaqA9IWyoRTtugYq/xssB9ESeEYGeaM1A9Yueqz+h 169 - KkBZO00jHSE= 170 - -----END CERTIFICATE----- 171 - ''; 172 - "letsencrypt.org".key = builtins.toFile "letsencrypt.org.key" '' 173 - -----BEGIN RSA PRIVATE KEY----- 174 - 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 223 - -----END RSA PRIVATE KEY----- 224 - ''; 225 - "letsencrypt.org".cert = builtins.toFile "letsencrypt.org.cert" '' 226 - -----BEGIN CERTIFICATE----- 227 - MIIEpzCCAo8CAgKaMA0GCSqGSIb3DQEBCwUAMBYxFDASBgNVBAMMC1NuYWtlb2ls 228 - IENBMCAXDTE5MTAxODA3NTQxNVoYDzIxMTkwOTI0MDc1NDE1WjAaMRgwFgYDVQQD 229 - DA9sZXRzZW5jcnlwdC5vcmcwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoIC 230 - AQD12l08TLMPf8EF2zu0D/nWz5aYsXJa4WurjIx3ZH6+LmC8rueUs1UqFiCJOYrZ 231 - Sb5QSka5wmpkdxNJkDUHPhL/w0P8Aj0joSbC8GKdjn8+5vEQAuT1iIMD4jMfxkYU 232 - zzBeDt8xtskCzK/5IcC2vaOYKyCCum4Pl+DOzan4XarT6hWh4XAwA5R0B/aM200s 233 - SPZDoyJHler7AU5xG1eU2VdYhfc2ua5s7/E6kM2mzKPJgLkt35bToxLltMdJ2/no 234 - CRSDY+6AwKGPXlM510QkgrzM9cVOUxjJ71IrCOE1Rmi997jFcJpOPaebOty4wovP 235 - 5LewpB5NaOJFxjfDjNOUBuG0ZcONeOEw5usehYzx7dxMvg0ky+201K1d+JzFt5Ns 236 - iJi77t20XSr6JZpmp7Fzo90BoikVnRdLD6LmIt1BmYHDNjs0uUelC6l+HrN7SoNR 237 - VkAwO5ujgkpRMHMfpBO6EfH65Sbstzxh00Cufuj+8xkNDKbUSJrErFm4IZqoW+rx 238 - kricFWwd9xduEX9cPYcyJ3e3siZtERW72qdz4Sf5pxT9IlpoveuMxboctUyvr69C 239 - sLNiS8vMpimhSb0PUpyfp3w5/GXaIJpj0KQyvn/onWnXBxN1w3shVD8MUF5MNq7J 240 - ZvJmQ7+U+hmhqRbJc7H1L22AKXOEWY2BGRm/3A35CC40NwIDAQABMA0GCSqGSIb3 241 - DQEBCwUAA4ICAQBbJwE+qc0j6JGHWe0TGjv1viJU3WuyJkMRi+ejx0p/k7Ntp5An 242 - 2wLC7b/lVP/Nh+PKY/iXWn/BErv2MUo4POc1g8svgxsmMMh5KGGieIfGs7xT+JMH 243 - dzZZM+pUpIB5fEO5JfjiOEOKDdAvRSs0mTAVYZEokGkXSNWyylvEaA16mHtMgPjo 244 - Lm75d0O66RfJDdd/hTl8umGpF7kEGW1qYk2QmuPr7AqOa8na7olL5fMPh6Q7yRqx 245 - GIS9JKQ0fWl8Ngk09WfwUN/kEMcp9Jl5iunNRkbpUJIM/lHFkSA7yOFFL+dVWzd4 246 - 2r+ddJXTFzW8Rwt65l8SV2MEhijEamKva3mqKLIRWxDsfFVT1T04LWFtnzMW4Z29 247 - UHF9Pi7XSyKz0Y/Lz31mNTkjJYbOvbnwok8lc3wFWHc+lummZk8IkCq8xfqzwmwX 248 - Ow6EV+Q6VaQpOHumQZ12pBBLtL8DyDhWaRUgVy2vYpwYsMYa5BFMcKCynjlSewo9 249 - G2hNoW45cQZP1qHltRR9Xad7SaP7iTETDCiR7AWOqSpDipSh9eMfVW97ZbSfz+vl 250 - xl8PZEZMTRIIRVXsPP+E8gtDUhUQp2+Vcz8r6q71qslXM09xl/501uaNjCc3hH2R 251 - iw2N77Lho1F3FrBbHdML3RYHZI55eC9iQw6R4S+R4b+iWLJoHzHrW61itg== 252 - -----END CERTIFICATE----- 253 - ''; 254 - }
···
+1 -1
nixos/tests/common/resolver.nix
··· 18 defining this option needs to be explicitly imported. 19 20 The reason this option exists is for the 21 - <filename>nixos/tests/common/letsencrypt</filename> module, which 22 needs that option to disable the resolver once the user has set its own 23 resolver. 24 '';
··· 18 defining this option needs to be explicitly imported. 19 20 The reason this option exists is for the 21 + <filename>nixos/tests/common/acme/server</filename> module, which 22 needs that option to disable the resolver once the user has set its own 23 resolver. 24 '';
+42
nixos/tests/containers-custom-pkgs.nix
···
··· 1 + # Test for NixOS' container support. 2 + 3 + import ./make-test-python.nix ({ pkgs, lib, ...} : let 4 + 5 + customPkgs = pkgs // { 6 + hello = pkgs.hello.overrideAttrs(old: { 7 + name = "custom-hello"; 8 + }); 9 + }; 10 + 11 + in { 12 + name = "containers-hosts"; 13 + meta = with lib.maintainers; { 14 + maintainers = [ adisbladis ]; 15 + }; 16 + 17 + machine = 18 + { ... }: 19 + { 20 + virtualisation.memorySize = 256; 21 + virtualisation.vlans = []; 22 + 23 + containers.simple = { 24 + autoStart = true; 25 + pkgs = customPkgs; 26 + config = {pkgs, config, ... }: { 27 + environment.systemPackages = [ 28 + pkgs.hello 29 + ]; 30 + }; 31 + }; 32 + 33 + }; 34 + 35 + testScript = '' 36 + start_all() 37 + machine.wait_for_unit("default.target") 38 + machine.succeed( 39 + "test $(nixos-container run simple -- readlink -f /run/current-system/sw/bin/hello) = ${customPkgs.hello}/bin/hello" 40 + ) 41 + ''; 42 + })
+63 -18
nixos/tests/dokuwiki.nix
··· 1 - import ./make-test-python.nix ({ lib, ... }: 2 3 - with lib; 4 5 - { 6 name = "dokuwiki"; 7 - meta.maintainers = with maintainers; [ maintainers."1000101" ]; 8 9 - nodes.machine = 10 - { pkgs, ... }: 11 - { services.dokuwiki = { 12 - enable = true; 13 - acl = " "; 14 - superUser = null; 15 - nginx = { 16 - forceSSL = false; 17 - enableACME = false; 18 - }; 19 - }; 20 }; 21 22 testScript = '' 23 - machine.start() 24 - machine.wait_for_unit("phpfpm-dokuwiki.service") 25 machine.wait_for_unit("nginx.service") 26 machine.wait_for_open_port(80) 27 - machine.succeed("curl -sSfL http://localhost/ | grep 'DokuWiki'") 28 ''; 29 })
··· 1 + import ./make-test-python.nix ({ pkgs, ... }: 2 + 3 + let 4 + template-bootstrap3 = pkgs.stdenv.mkDerivation { 5 + name = "bootstrap3"; 6 + # Download the theme from the dokuwiki site 7 + src = pkgs.fetchurl { 8 + url = https://github.com/giterlizzi/dokuwiki-template-bootstrap3/archive/v2019-05-22.zip; 9 + sha256 = "4de5ff31d54dd61bbccaf092c9e74c1af3a4c53e07aa59f60457a8f00cfb23a6"; 10 + }; 11 + # We need unzip to build this package 12 + buildInputs = [ pkgs.unzip ]; 13 + # Installing simply means copying all files to the output directory 14 + installPhase = "mkdir -p $out; cp -R * $out/"; 15 + }; 16 17 + 18 + # Let's package the icalevents plugin 19 + plugin-icalevents = pkgs.stdenv.mkDerivation { 20 + name = "icalevents"; 21 + # Download the plugin from the dokuwiki site 22 + src = pkgs.fetchurl { 23 + url = https://github.com/real-or-random/dokuwiki-plugin-icalevents/releases/download/2017-06-16/dokuwiki-plugin-icalevents-2017-06-16.zip; 24 + sha256 = "e40ed7dd6bbe7fe3363bbbecb4de481d5e42385b5a0f62f6a6ce6bf3a1f9dfa8"; 25 + }; 26 + # We need unzip to build this package 27 + buildInputs = [ pkgs.unzip ]; 28 + sourceRoot = "."; 29 + # Installing simply means copying all files to the output directory 30 + installPhase = "mkdir -p $out; cp -R * $out/"; 31 + }; 32 33 + in { 34 name = "dokuwiki"; 35 + meta.maintainers = with pkgs.lib.maintainers; [ "1000101" ]; 36 37 + machine = { ... }: { 38 + services.dokuwiki."site1.local" = { 39 + aclUse = false; 40 + superUser = "admin"; 41 + nginx = { 42 + forceSSL = false; 43 + enableACME = false; 44 + }; 45 }; 46 + services.dokuwiki."site2.local" = { 47 + aclUse = true; 48 + superUser = "admin"; 49 + nginx = { 50 + forceSSL = false; 51 + enableACME = false; 52 + }; 53 + templates = [ template-bootstrap3 ]; 54 + plugins = [ plugin-icalevents ]; 55 + }; 56 + networking.hosts."127.0.0.1" = [ "site1.local" "site2.local" ]; 57 + }; 58 59 testScript = '' 60 + site_names = ["site1.local", "site2.local"] 61 + 62 + start_all() 63 + 64 + machine.wait_for_unit("phpfpm-dokuwiki-site1.local.service") 65 + machine.wait_for_unit("phpfpm-dokuwiki-site2.local.service") 66 + 67 machine.wait_for_unit("nginx.service") 68 + 69 machine.wait_for_open_port(80) 70 + 71 + machine.succeed("curl -sSfL http://site1.local/ | grep 'DokuWiki'") 72 + machine.succeed("curl -sSfL http://site2.local/ | grep 'DokuWiki'") 73 ''; 74 })
+8 -3
nixos/tests/hardened.nix
··· 1 - import ./make-test.nix ({ pkgs, ...} : { 2 name = "hardened"; 3 meta = with pkgs.stdenv.lib.maintainers; { 4 maintainers = [ joachifm ]; ··· 10 { users.users.alice = { isNormalUser = true; extraGroups = [ "proc" ]; }; 11 users.users.sybil = { isNormalUser = true; group = "wheel"; }; 12 imports = [ ../modules/profiles/hardened.nix ]; 13 environment.memoryAllocator.provider = "graphene-hardened"; 14 nix.useSandbox = false; 15 virtualisation.emptyDiskImages = [ 4096 ]; ··· 23 options = [ "noauto" ]; 24 }; 25 }; 26 - boot.extraModulePackages = [ config.boot.kernelPackages.wireguard ]; 27 boot.kernelModules = [ "wireguard" ]; 28 }; 29 ··· 76 77 # Test userns 78 subtest "userns", sub { 79 - $machine->fail("unshare --user"); 80 }; 81 82 # Test dmesg restriction
··· 1 + import ./make-test.nix ({ pkgs, latestKernel ? false, ... } : { 2 name = "hardened"; 3 meta = with pkgs.stdenv.lib.maintainers; { 4 maintainers = [ joachifm ]; ··· 10 { users.users.alice = { isNormalUser = true; extraGroups = [ "proc" ]; }; 11 users.users.sybil = { isNormalUser = true; group = "wheel"; }; 12 imports = [ ../modules/profiles/hardened.nix ]; 13 + boot.kernelPackages = 14 + lib.mkIf latestKernel pkgs.linuxPackages_latest_hardened; 15 environment.memoryAllocator.provider = "graphene-hardened"; 16 nix.useSandbox = false; 17 virtualisation.emptyDiskImages = [ 4096 ]; ··· 25 options = [ "noauto" ]; 26 }; 27 }; 28 + boot.extraModulePackages = 29 + optional (versionOlder config.boot.kernelPackages.kernel.version "5.6") 30 + config.boot.kernelPackages.wireguard; 31 boot.kernelModules = [ "wireguard" ]; 32 }; 33 ··· 80 81 # Test userns 82 subtest "userns", sub { 83 + $machine->succeed("unshare --user true"); 84 + $machine->fail("su -l alice -c 'unshare --user true'"); 85 }; 86 87 # Test dmesg restriction
+1
nixos/tests/installed-tests/default.nix
··· 91 ibus = callInstalledTest ./ibus.nix {}; 92 libgdata = callInstalledTest ./libgdata.nix {}; 93 glib-testing = callInstalledTest ./glib-testing.nix {}; 94 libxmlb = callInstalledTest ./libxmlb.nix {}; 95 malcontent = callInstalledTest ./malcontent.nix {}; 96 ostree = callInstalledTest ./ostree.nix {};
··· 91 ibus = callInstalledTest ./ibus.nix {}; 92 libgdata = callInstalledTest ./libgdata.nix {}; 93 glib-testing = callInstalledTest ./glib-testing.nix {}; 94 + libjcat = callInstalledTest ./libjcat.nix {}; 95 libxmlb = callInstalledTest ./libxmlb.nix {}; 96 malcontent = callInstalledTest ./malcontent.nix {}; 97 ostree = callInstalledTest ./ostree.nix {};
+5
nixos/tests/installed-tests/libjcat.nix
···
··· 1 + { pkgs, makeInstalledTest, ... }: 2 + 3 + makeInstalledTest { 4 + tested = pkgs.libjcat; 5 + }
+29
nixos/tests/tuptime.nix
···
··· 1 + import ./make-test-python.nix ({ pkgs, ...} : { 2 + name = "tuptime"; 3 + meta = with pkgs.stdenv.lib.maintainers; { 4 + maintainers = [ evils ]; 5 + }; 6 + 7 + machine = { pkgs, ... }: { 8 + imports = [ ../modules/profiles/minimal.nix ]; 9 + services.tuptime.enable = true; 10 + }; 11 + 12 + testScript = 13 + '' 14 + # see if it starts 15 + start_all() 16 + machine.wait_for_unit("multi-user.target") 17 + machine.succeed("tuptime | grep 'System startups:[[:blank:]]*1'") 18 + machine.succeed("tuptime | grep 'System uptime:[[:blank:]]*100.0%'") 19 + machine.shutdown() 20 + 21 + # restart machine and see if it correctly reports the reboot 22 + machine.start() 23 + machine.wait_for_unit("multi-user.target") 24 + machine.succeed("tuptime | grep 'System startups:[[:blank:]]*2'") 25 + machine.succeed("tuptime | grep 'System shutdowns:[[:blank:]]*1 ok'") 26 + machine.shutdown() 27 + ''; 28 + }) 29 +
+3 -3
pkgs/applications/accessibility/contrast/default.nix
··· 19 20 rustPlatform.buildRustPackage rec { 21 pname = "contrast"; 22 - version = "0.0.2"; 23 24 src = fetchFromGitLab { 25 domain = "gitlab.gnome.org"; ··· 27 owner = "design"; 28 repo = "contrast"; 29 rev = version; 30 - sha256 = "0rm705zrk9rfv31pwbqxrswi5v6vhnghxa8dgxjmcrh00l8dm6j9"; 31 }; 32 33 - cargoSha256 = "0qj0vmxa1d6war1vb3zgkf1drvk7awm970fw6692hd9msa9c1kkf"; 34 35 nativeBuildInputs = [ 36 desktop-file-utils
··· 19 20 rustPlatform.buildRustPackage rec { 21 pname = "contrast"; 22 + version = "0.0.3"; 23 24 src = fetchFromGitLab { 25 domain = "gitlab.gnome.org"; ··· 27 owner = "design"; 28 repo = "contrast"; 29 rev = version; 30 + sha256 = "0kk3mv7a6y258109xvgicmsi0lw0rcs00gfyivl5hdz7qh47iccy"; 31 }; 32 33 + cargoSha256 = "0vi8nv4hkhsgqgz36xacwkk5cxirg6li44nbmk3x7vx7c64hzybq"; 34 35 nativeBuildInputs = [ 36 desktop-file-utils
+3 -3
pkgs/applications/audio/gbsplay/default.nix
··· 11 }; 12 13 buildInputs = [ libpulseaudio ]; 14 - 15 - configureFlagsArray = 16 [ "--without-test" "--without-contrib" "--disable-devdsp" 17 "--enable-pulse" "--disable-alsa" "--disable-midi" 18 "--disable-nas" "--disable-dsound" "--disable-i18n" ]; 19 20 - makeFlagsArray = [ "tests=" ]; 21 22 meta = with stdenv.lib; { 23 description = "gameboy sound player";
··· 11 }; 12 13 buildInputs = [ libpulseaudio ]; 14 + 15 + configureFlags = 16 [ "--without-test" "--without-contrib" "--disable-devdsp" 17 "--enable-pulse" "--disable-alsa" "--disable-midi" 18 "--disable-nas" "--disable-dsound" "--disable-i18n" ]; 19 20 + makeFlags = [ "tests=" ]; 21 22 meta = with stdenv.lib; { 23 description = "gameboy sound player";
+34
pkgs/applications/audio/hydrogen/unstable.nix
···
··· 1 + { stdenv, fetchFromGitHub, cmake, pkgconfig, wrapQtAppsHook 2 + , alsaLib, ladspa-sdk, lash, libarchive, libjack2, liblo, libpulseaudio, libsndfile, lrdf 3 + , qtbase, qttools, qtxmlpatterns 4 + }: 5 + 6 + stdenv.mkDerivation rec { 7 + pname = "hydrogen"; 8 + version = "1.0.0-beta2"; 9 + 10 + src = fetchFromGitHub { 11 + owner = "hydrogen-music"; 12 + repo = pname; 13 + rev = version; 14 + sha256 = "1s3jrdyjpm92flw9mkkxchnj0wz8nn1y1kifii8ws252iiqjya4a"; 15 + }; 16 + 17 + nativeBuildInputs = [ cmake pkgconfig wrapQtAppsHook ]; 18 + buildInputs = [ 19 + alsaLib ladspa-sdk lash libarchive libjack2 liblo libpulseaudio libsndfile lrdf 20 + qtbase qttools qtxmlpatterns 21 + ]; 22 + 23 + cmakeFlags = [ 24 + "-DWANT_DEBUG=OFF" 25 + ]; 26 + 27 + meta = with stdenv.lib; { 28 + description = "Advanced drum machine"; 29 + homepage = "http://www.hydrogen-music.org"; 30 + license = licenses.gpl2; 31 + platforms = platforms.linux; 32 + maintainers = with maintainers; [ goibhniu orivej ]; 33 + }; 34 + }
+2 -2
pkgs/applications/audio/lollypop/default.nix
··· 23 24 python3.pkgs.buildPythonApplication rec { 25 pname = "lollypop"; 26 - version = "1.2.32"; 27 28 format = "other"; 29 doCheck = false; ··· 32 url = "https://gitlab.gnome.org/World/lollypop"; 33 rev = "refs/tags/${version}"; 34 fetchSubmodules = true; 35 - sha256 = "03x6qihd349pq5lmgahb77sys60g16v5v6qkdlzf8k88451k8p7n"; 36 }; 37 38 nativeBuildInputs = [
··· 23 24 python3.pkgs.buildPythonApplication rec { 25 pname = "lollypop"; 26 + version = "1.2.35"; 27 28 format = "other"; 29 doCheck = false; ··· 32 url = "https://gitlab.gnome.org/World/lollypop"; 33 rev = "refs/tags/${version}"; 34 fetchSubmodules = true; 35 + sha256 = "19nw9qh17yyi9ih1nwngbbwjx1vr26haqhmzsdqf0yjgsgf9vldx"; 36 }; 37 38 nativeBuildInputs = [
+2 -2
pkgs/applications/audio/lsp-plugins/default.nix
··· 5 6 stdenv.mkDerivation rec { 7 pname = "lsp-plugins"; 8 - version = "1.1.15"; 9 10 src = fetchFromGitHub { 11 owner = "sadko4u"; 12 repo = pname; 13 rev = "${pname}-${version}"; 14 - sha256 = "0lynyjs5zp27gnzcv8a23pvb7c1ghzc2dspypca3ciq40bfpfzik"; 15 }; 16 17 nativeBuildInputs = [ pkgconfig php makeWrapper ];
··· 5 6 stdenv.mkDerivation rec { 7 pname = "lsp-plugins"; 8 + version = "1.1.19"; 9 10 src = fetchFromGitHub { 11 owner = "sadko4u"; 12 repo = pname; 13 rev = "${pname}-${version}"; 14 + sha256 = "1wiph3vxhydc6mr9hn2c6crd4cx592l2zv0wrzgmpnlm1lflzpbg"; 15 }; 16 17 nativeBuildInputs = [ pkgconfig php makeWrapper ];
+1 -1
pkgs/applications/audio/musescore/default.nix
··· 33 description = "Music notation and composition software"; 34 homepage = "https://musescore.org/"; 35 license = licenses.gpl2; 36 - maintainers = with maintainers; [ vandenoever ]; 37 platforms = platforms.linux; 38 repositories.git = "https://github.com/musescore/MuseScore"; 39 };
··· 33 description = "Music notation and composition software"; 34 homepage = "https://musescore.org/"; 35 license = licenses.gpl2; 36 + maintainers = with maintainers; [ vandenoever turion ]; 37 platforms = platforms.linux; 38 repositories.git = "https://github.com/musescore/MuseScore"; 39 };
+1 -1
pkgs/applications/audio/polyphone/default.nix
··· 41 42 meta = with stdenv.lib; { 43 description = "A soundfont editor for creating musical instruments"; 44 - homepage = https://www.polyphone-soundfonts.com/; 45 license = licenses.gpl3; 46 maintainers = [ maintainers.maxdamantus ]; 47 platforms = platforms.linux;
··· 41 42 meta = with stdenv.lib; { 43 description = "A soundfont editor for creating musical instruments"; 44 + homepage = "https://www.polyphone-soundfonts.com/"; 45 license = licenses.gpl3; 46 maintainers = [ maintainers.maxdamantus ]; 47 platforms = platforms.linux;
+6 -2
pkgs/applications/audio/spotifyd/default.nix
··· 2 , withALSA ? true, alsaLib ? null 3 , withPulseAudio ? false, libpulseaudio ? null 4 , withPortAudio ? false, portaudio ? null 5 }: 6 7 rustPlatform.buildRustPackage rec { ··· 20 cargoBuildFlags = [ 21 "--no-default-features" 22 "--features" 23 - "${stdenv.lib.optionalString withALSA "alsa_backend,"}${stdenv.lib.optionalString withPulseAudio "pulseaudio_backend,"}${stdenv.lib.optionalString withPortAudio "portaudio_backend,"}" 24 ]; 25 26 nativeBuildInputs = [ pkgconfig ]; ··· 28 buildInputs = [ openssl ] 29 ++ stdenv.lib.optional withALSA alsaLib 30 ++ stdenv.lib.optional withPulseAudio libpulseaudio 31 - ++ stdenv.lib.optional withPortAudio portaudio; 32 33 doCheck = false; 34
··· 2 , withALSA ? true, alsaLib ? null 3 , withPulseAudio ? false, libpulseaudio ? null 4 , withPortAudio ? false, portaudio ? null 5 + , withMpris ? false 6 + , withKeyring ? false 7 + , dbus ? null 8 }: 9 10 rustPlatform.buildRustPackage rec { ··· 23 cargoBuildFlags = [ 24 "--no-default-features" 25 "--features" 26 + "${stdenv.lib.optionalString withALSA "alsa_backend,"}${stdenv.lib.optionalString withPulseAudio "pulseaudio_backend,"}${stdenv.lib.optionalString withPortAudio "portaudio_backend,"}${stdenv.lib.optionalString withMpris "dbus_mpris,"}${stdenv.lib.optionalString withKeyring "dbus_keyring,"}" 27 ]; 28 29 nativeBuildInputs = [ pkgconfig ]; ··· 31 buildInputs = [ openssl ] 32 ++ stdenv.lib.optional withALSA alsaLib 33 ++ stdenv.lib.optional withPulseAudio libpulseaudio 34 + ++ stdenv.lib.optional withPortAudio portaudio 35 + ++ stdenv.lib.optional (withMpris || withKeyring) dbus; 36 37 doCheck = false; 38
+4 -3
pkgs/applications/blockchains/go-ethereum.nix
··· 2 3 buildGoModule rec { 4 pname = "go-ethereum"; 5 - version = "1.9.12"; 6 7 src = fetchFromGitHub { 8 owner = "ethereum"; 9 repo = pname; 10 rev = "v${version}"; 11 - sha256 = "143imiphyzk3009cfnqj7q013pb1wva13zq63byfj3d204b58cg6"; 12 }; 13 14 - modSha256 = "15a8if5gx361nrqgv201jy8saq1ir1g18rpqzdmavg4ic75si5x1"; 15 16 subPackages = [ 17 "cmd/abigen" 18 "cmd/bootnode" 19 "cmd/checkpoint-admin"
··· 2 3 buildGoModule rec { 4 pname = "go-ethereum"; 5 + version = "1.9.13"; 6 7 src = fetchFromGitHub { 8 owner = "ethereum"; 9 repo = pname; 10 rev = "v${version}"; 11 + sha256 = "1yqqflp73yvjy6bp05xd1nv5fc6p1nx7g4spbssxf3ws96pdh425"; 12 }; 13 14 + modSha256 = "07xrw3fivfpbkg4mp8ghrj1bishfas82dbd780fymgs2h74iigf3"; 15 16 subPackages = [ 17 + "cmd/abidump" 18 "cmd/abigen" 19 "cmd/bootnode" 20 "cmd/checkpoint-admin"
+6 -6
pkgs/applications/editors/android-studio/default.nix
··· 8 inherit (gnome2) GConf gnome_vfs; 9 }; 10 stableVersion = { 11 - version = "3.6.2.0"; # "Android Studio 3.6.2" 12 - build = "192.6308749"; 13 - sha256Hash = "04r4iwlmns1lf3wfd32cqmndbdz9rf7hfbi5r6qmvpi8j83fghvr"; 14 }; 15 betaVersion = { 16 version = "4.0.0.13"; # "Android Studio 4.0 Beta 4" ··· 18 sha256Hash = "0lchi3l50826n1af1z24yclpf27v2q5p1zjbvcmn37wz46d4s4g2"; 19 }; 20 latestVersion = { # canary & dev 21 - version = "4.1.0.5"; # "Android Studio 4.1 Canary 5" 22 - build = "193.6362631"; 23 - sha256Hash = "1q9wbqnwpq0mz8rz4c0v7mfaazymq6xv20dv4fll6p2q63qk71qp"; 24 }; 25 in { 26 # Attributes are named by their corresponding release channels
··· 8 inherit (gnome2) GConf gnome_vfs; 9 }; 10 stableVersion = { 11 + version = "3.6.3.0"; # "Android Studio 3.6.3" 12 + build = "192.6392135"; 13 + sha256Hash = "0apxmp341m7mbpm2df3qvsbaifwy6yqq746kbhbwlw8bn9hrzv1k"; 14 }; 15 betaVersion = { 16 version = "4.0.0.13"; # "Android Studio 4.0 Beta 4" ··· 18 sha256Hash = "0lchi3l50826n1af1z24yclpf27v2q5p1zjbvcmn37wz46d4s4g2"; 19 }; 20 latestVersion = { # canary & dev 21 + version = "4.1.0.6"; # "Android Studio 4.1 Canary 6" 22 + build = "193.6381907"; 23 + sha256Hash = "0sa5plr96m90wv5hi9bqwa11j6k8k9wa0ji8qmlimdhnpyzhsdrx"; 24 }; 25 in { 26 # Attributes are named by their corresponding release channels
+6 -1
pkgs/applications/editors/emacs/default.nix
··· 1 - { stdenv, lib, fetchurl, ncurses, xlibsWrapper, libXaw, libXpm 2 , Xaw3d, libXcursor, pkgconfig, gettext, libXft, dbus, libpng, libjpeg, libungif 3 , libtiff, librsvg, gconf, libxml2, imagemagick, gnutls, libselinux 4 , alsaLib, cairo, acl, gpm, AppKit, GSS, ImageIO, m17n_lib, libotf ··· 44 patches = [ 45 ./clean-env.patch 46 ./tramp-detect-wrapped-gvfsd.patch 47 ]; 48 49 postPatch = lib.optionalString srcRepo ''
··· 1 + { stdenv, lib, fetchurl, fetchpatch, ncurses, xlibsWrapper, libXaw, libXpm 2 , Xaw3d, libXcursor, pkgconfig, gettext, libXft, dbus, libpng, libjpeg, libungif 3 , libtiff, librsvg, gconf, libxml2, imagemagick, gnutls, libselinux 4 , alsaLib, cairo, acl, gpm, AppKit, GSS, ImageIO, m17n_lib, libotf ··· 44 patches = [ 45 ./clean-env.patch 46 ./tramp-detect-wrapped-gvfsd.patch 47 + # unbreak macOS unexec 48 + (fetchpatch { 49 + url = https://github.com/emacs-mirror/emacs/commit/888ffd960c06d56a409a7ff15b1d930d25c56089.patch; 50 + sha256 = "08q3ygdigqwky70r47rcgzlkc5jy82xiq8am5kwwy891wlpl7frw"; 51 + }) 52 ]; 53 54 postPatch = lib.optionalString srcRepo ''
+5 -3
pkgs/applications/editors/micro/default.nix
··· 2 3 buildGoPackage rec { 4 pname = "micro"; 5 - version = "1.4.1"; 6 7 goPackagePath = "github.com/zyedidia/micro"; 8 ··· 10 owner = "zyedidia"; 11 repo = "micro"; 12 rev = "v${version}"; 13 - sha256 = "0m9p6smb5grdazsgr3m1x4rry9ihhlgl9ildhvfp53czrifbx0m5"; 14 fetchSubmodules = true; 15 }; 16 17 subPackages = [ "cmd/micro" ]; 18 19 - buildFlagsArray = [ "-ldflags=" "-X main.Version=${version}" ]; 20 21 meta = with stdenv.lib; { 22 homepage = "https://micro-editor.github.io";
··· 2 3 buildGoPackage rec { 4 pname = "micro"; 5 + version = "2.0.3"; 6 7 goPackagePath = "github.com/zyedidia/micro"; 8 ··· 10 owner = "zyedidia"; 11 repo = "micro"; 12 rev = "v${version}"; 13 + sha256 = "017m9kb3gfrgzd06f1nma1i3m5rb0hzpgdikb86lsyv8ik18y12z"; 14 fetchSubmodules = true; 15 }; 16 17 subPackages = [ "cmd/micro" ]; 18 19 + buildFlagsArray = [ "-ldflags=" "-X ${goPackagePath}/internal/util.Version=${version}" ]; 20 + 21 + goDeps = ./deps.nix; 22 23 meta = with stdenv.lib; { 24 homepage = "https://micro-editor.github.io";
+336
pkgs/applications/editors/micro/deps.nix
···
··· 1 + # file generated from go.mod using vgo2nix (https://github.com/adisbladis/vgo2nix) 2 + [ 3 + { 4 + goPackagePath = "github.com/blang/semver"; 5 + fetch = { 6 + type = "git"; 7 + url = "https://github.com/blang/semver"; 8 + rev = "v3.5.1"; 9 + sha256 = "13ws259bwcibkclbr82ilhk6zadm63kxklxhk12wayklj8ghhsmy"; 10 + }; 11 + } 12 + { 13 + goPackagePath = "github.com/chzyer/logex"; 14 + fetch = { 15 + type = "git"; 16 + url = "https://github.com/chzyer/logex"; 17 + rev = "v1.1.10"; 18 + sha256 = "08pbjj3wx9acavlwyr055isa8a5hnmllgdv5k6ra60l5y1brmlq4"; 19 + }; 20 + } 21 + { 22 + goPackagePath = "github.com/chzyer/readline"; 23 + fetch = { 24 + type = "git"; 25 + url = "https://github.com/chzyer/readline"; 26 + rev = "2972be24d48e"; 27 + sha256 = "104q8dazj8yf6b089jjr82fy9h1g80zyyzvp3g8b44a7d8ngjj6r"; 28 + }; 29 + } 30 + { 31 + goPackagePath = "github.com/chzyer/test"; 32 + fetch = { 33 + type = "git"; 34 + url = "https://github.com/chzyer/test"; 35 + rev = "a1ea475d72b1"; 36 + sha256 = "0rns2aqk22i9xsgyap0pq8wi4cfaxsri4d9q6xxhhyma8jjsnj2k"; 37 + }; 38 + } 39 + { 40 + goPackagePath = "github.com/davecgh/go-spew"; 41 + fetch = { 42 + type = "git"; 43 + url = "https://github.com/davecgh/go-spew"; 44 + rev = "v1.1.1"; 45 + sha256 = "0hka6hmyvp701adzag2g26cxdj47g21x6jz4sc6jjz1mn59d474y"; 46 + }; 47 + } 48 + { 49 + goPackagePath = "github.com/dustin/go-humanize"; 50 + fetch = { 51 + type = "git"; 52 + url = "https://github.com/dustin/go-humanize"; 53 + rev = "v1.0.0"; 54 + sha256 = "1kqf1kavdyvjk7f8kx62pnm7fbypn9z1vbf8v2qdh3y7z7a0cbl3"; 55 + }; 56 + } 57 + { 58 + goPackagePath = "github.com/gdamore/encoding"; 59 + fetch = { 60 + type = "git"; 61 + url = "https://github.com/gdamore/encoding"; 62 + rev = "v1.0.0"; 63 + sha256 = "1vmm5zll92i2fm4ajqx0gyx0p9j36496x5nabi3y0x7h0inv0pk9"; 64 + }; 65 + } 66 + { 67 + goPackagePath = "github.com/go-errors/errors"; 68 + fetch = { 69 + type = "git"; 70 + url = "https://github.com/go-errors/errors"; 71 + rev = "v1.0.1"; 72 + sha256 = "0rznpknk19rxkr7li6dqs52c26pjazp69lh493l4ny4sxn5922lp"; 73 + }; 74 + } 75 + { 76 + goPackagePath = "github.com/kballard/go-shellquote"; 77 + fetch = { 78 + type = "git"; 79 + url = "https://github.com/kballard/go-shellquote"; 80 + rev = "95032a82bc51"; 81 + sha256 = "1rspvmnsikdq95jmx3dykxd4k1rmgl98ryjrysvl0cf18hl1vq80"; 82 + }; 83 + } 84 + { 85 + goPackagePath = "github.com/kr/pretty"; 86 + fetch = { 87 + type = "git"; 88 + url = "https://github.com/kr/pretty"; 89 + rev = "v0.1.0"; 90 + sha256 = "18m4pwg2abd0j9cn5v3k2ksk9ig4vlwxmlw9rrglanziv9l967qp"; 91 + }; 92 + } 93 + { 94 + goPackagePath = "github.com/kr/pty"; 95 + fetch = { 96 + type = "git"; 97 + url = "https://github.com/kr/pty"; 98 + rev = "v1.1.1"; 99 + sha256 = "0383f0mb9kqjvncqrfpidsf8y6ns5zlrc91c6a74xpyxjwvzl2y6"; 100 + }; 101 + } 102 + { 103 + goPackagePath = "github.com/kr/text"; 104 + fetch = { 105 + type = "git"; 106 + url = "https://github.com/kr/text"; 107 + rev = "v0.1.0"; 108 + sha256 = "1gm5bsl01apvc84bw06hasawyqm4q84vx1pm32wr9jnd7a8vjgj1"; 109 + }; 110 + } 111 + { 112 + goPackagePath = "github.com/lucasb-eyer/go-colorful"; 113 + fetch = { 114 + type = "git"; 115 + url = "https://github.com/lucasb-eyer/go-colorful"; 116 + rev = "v1.0.3"; 117 + sha256 = "12bgz6dxbb2ki1g3x7fg9ipsjgfkd58fp7cdpv63h4kvlj2n7j69"; 118 + }; 119 + } 120 + { 121 + goPackagePath = "github.com/mattn/go-isatty"; 122 + fetch = { 123 + type = "git"; 124 + url = "https://github.com/mattn/go-isatty"; 125 + rev = "v0.0.11"; 126 + sha256 = "0h671sv7hfprja495kavazkalkx7xzaqksjh13brcnwq67ijrali"; 127 + }; 128 + } 129 + { 130 + goPackagePath = "github.com/mattn/go-runewidth"; 131 + fetch = { 132 + type = "git"; 133 + url = "https://github.com/mattn/go-runewidth"; 134 + rev = "v0.0.7"; 135 + sha256 = "1snr8mk63vz2h44knq26dm81p83887v7kb09iywqmx0nqzngih66"; 136 + }; 137 + } 138 + { 139 + goPackagePath = "github.com/mitchellh/go-homedir"; 140 + fetch = { 141 + type = "git"; 142 + url = "https://github.com/mitchellh/go-homedir"; 143 + rev = "v1.1.0"; 144 + sha256 = "0ydzkipf28hwj2bfxqmwlww47khyk6d152xax4bnyh60f4lq3nx1"; 145 + }; 146 + } 147 + { 148 + goPackagePath = "github.com/pmezard/go-difflib"; 149 + fetch = { 150 + type = "git"; 151 + url = "https://github.com/pmezard/go-difflib"; 152 + rev = "v1.0.0"; 153 + sha256 = "0c1cn55m4rypmscgf0rrb88pn58j3ysvc2d0432dp3c6fqg6cnzw"; 154 + }; 155 + } 156 + { 157 + goPackagePath = "github.com/robertkrimen/otto"; 158 + fetch = { 159 + type = "git"; 160 + url = "https://github.com/robertkrimen/otto"; 161 + rev = "c382bd3c16ff"; 162 + sha256 = "043y6l647snsz71mdy84s2d3kn22aj6rbqd6c1vd8absvamqhlxa"; 163 + }; 164 + } 165 + { 166 + goPackagePath = "github.com/sergi/go-diff"; 167 + fetch = { 168 + type = "git"; 169 + url = "https://github.com/sergi/go-diff"; 170 + rev = "v1.1.0"; 171 + sha256 = "0ir8ali2vx0j7pipmlfd6k8c973akyy2nmbjrf008fm800zcp7z2"; 172 + }; 173 + } 174 + { 175 + goPackagePath = "github.com/stretchr/objx"; 176 + fetch = { 177 + type = "git"; 178 + url = "https://github.com/stretchr/objx"; 179 + rev = "v0.1.0"; 180 + sha256 = "19ynspzjdynbi85xw06mh8ad5j0qa1vryvxjgvbnyrr8rbm4vd8w"; 181 + }; 182 + } 183 + { 184 + goPackagePath = "github.com/stretchr/testify"; 185 + fetch = { 186 + type = "git"; 187 + url = "https://github.com/stretchr/testify"; 188 + rev = "v1.4.0"; 189 + sha256 = "187i5g88sxfy4vxpm7dw1gwv29pa2qaq475lxrdh5livh69wqfjb"; 190 + }; 191 + } 192 + { 193 + goPackagePath = "github.com/yuin/gopher-lua"; 194 + fetch = { 195 + type = "git"; 196 + url = "https://github.com/yuin/gopher-lua"; 197 + rev = "ab39c6098bdb"; 198 + sha256 = "13b0rrpv3988qw8rq6z7npajn1my059ybhafi5mxff9jw09k9sja"; 199 + }; 200 + } 201 + { 202 + goPackagePath = "github.com/zyedidia/clipboard"; 203 + fetch = { 204 + type = "git"; 205 + url = "https://github.com/zyedidia/clipboard"; 206 + rev = "241f98e9b197"; 207 + sha256 = "1glc8w30sijpbppcvaf3503rmx5nxqkcgw87dr2pr3q3vv1bg3zi"; 208 + }; 209 + } 210 + { 211 + goPackagePath = "github.com/zyedidia/glob"; 212 + fetch = { 213 + type = "git"; 214 + url = "https://github.com/zyedidia/glob"; 215 + rev = "dd4023a66dc3"; 216 + sha256 = "1vqw4xbqq6j8p5m7mwxvb448w69vjvgzx0ndsfzdh2cxfirwp3y7"; 217 + }; 218 + } 219 + { 220 + goPackagePath = "github.com/zyedidia/highlight"; 221 + fetch = { 222 + type = "git"; 223 + url = "https://github.com/zyedidia/highlight"; 224 + rev = "201131ce5cf5"; 225 + sha256 = "0blaynf32swmqddx2hcrifrfssj9c04kwnbdy42h3kzxihrwz4ps"; 226 + }; 227 + } 228 + { 229 + goPackagePath = "github.com/zyedidia/json5"; 230 + fetch = { 231 + type = "git"; 232 + url = "https://github.com/zyedidia/json5"; 233 + rev = "2da050b1a98d"; 234 + sha256 = "1sgydazf3npr788b4w17ydmlh3fd1zmpriv9b69967ww90ckh2kz"; 235 + }; 236 + } 237 + { 238 + goPackagePath = "github.com/zyedidia/poller"; 239 + fetch = { 240 + type = "git"; 241 + url = "https://github.com/zyedidia/poller"; 242 + rev = "v1.0.1"; 243 + sha256 = "10cjrqfk1j0l55bdbpm7kv4mqc665pngc8avai0p9chq03y2654g"; 244 + }; 245 + } 246 + { 247 + goPackagePath = "github.com/zyedidia/pty"; 248 + fetch = { 249 + type = "git"; 250 + url = "https://github.com/zyedidia/pty"; 251 + rev = "v2.0.0"; 252 + sha256 = "1n946ld8y2v2wfbwsxv8rfaicxbw3w8pk11ryc8iybmw7hkmmf79"; 253 + }; 254 + } 255 + { 256 + goPackagePath = "github.com/zyedidia/tcell"; 257 + fetch = { 258 + type = "git"; 259 + url = "https://github.com/zyedidia/tcell"; 260 + rev = "v1.4.4"; 261 + sha256 = "0d62a9csab15b64y09jcbvq71065wliw4bd5m7lfpl5k8rmrrdyi"; 262 + }; 263 + } 264 + { 265 + goPackagePath = "github.com/zyedidia/terminal"; 266 + fetch = { 267 + type = "git"; 268 + url = "https://github.com/zyedidia/terminal"; 269 + rev = "533c623e2415"; 270 + sha256 = "16l628f3zgl5yp9z5zkfy2hyl2sckw4d6mg3iqv2jjvh4i8yhrsm"; 271 + }; 272 + } 273 + { 274 + goPackagePath = "golang.org/x/sys"; 275 + fetch = { 276 + type = "git"; 277 + url = "https://go.googlesource.com/sys"; 278 + rev = "33540a1f6037"; 279 + sha256 = "0fjcv0vzvi6za0b4xmnk3932pr9f9gczzf03y0kgq3ry9rqg169y"; 280 + }; 281 + } 282 + { 283 + goPackagePath = "golang.org/x/text"; 284 + fetch = { 285 + type = "git"; 286 + url = "https://go.googlesource.com/text"; 287 + rev = "v0.3.2"; 288 + sha256 = "0flv9idw0jm5nm8lx25xqanbkqgfiym6619w575p7nrdh0riqwqh"; 289 + }; 290 + } 291 + { 292 + goPackagePath = "golang.org/x/tools"; 293 + fetch = { 294 + type = "git"; 295 + url = "https://go.googlesource.com/tools"; 296 + rev = "90fa682c2a6e"; 297 + sha256 = "03ic2xsy51jw9749wl7gszdbz99iijbd2bckgygl6cm9w5m364ak"; 298 + }; 299 + } 300 + { 301 + goPackagePath = "gopkg.in/check.v1"; 302 + fetch = { 303 + type = "git"; 304 + url = "https://gopkg.in/check.v1"; 305 + rev = "41f04d3bba15"; 306 + sha256 = "0vfk9czmlxmp6wndq8k17rhnjxal764mxfhrccza7nwlia760pjy"; 307 + }; 308 + } 309 + { 310 + goPackagePath = "gopkg.in/sourcemap.v1"; 311 + fetch = { 312 + type = "git"; 313 + url = "https://gopkg.in/sourcemap.v1"; 314 + rev = "v1.0.5"; 315 + sha256 = "08rf2dl13hbnm3fq2cm0nnsspy9fhf922ln23cz5463cv7h62as4"; 316 + }; 317 + } 318 + { 319 + goPackagePath = "gopkg.in/yaml.v2"; 320 + fetch = { 321 + type = "git"; 322 + url = "https://gopkg.in/yaml.v2"; 323 + rev = "v2.2.7"; 324 + sha256 = "0k5xcwkd3wmcx54isk7ck9cwp8fapfhyqdz3f13kxp77cxqizazj"; 325 + }; 326 + } 327 + { 328 + goPackagePath = "layeh.com/gopher-luar"; 329 + fetch = { 330 + type = "git"; 331 + url = "https://github.com/layeh/gopher-luar"; 332 + rev = "v1.0.7"; 333 + sha256 = "1rdbni3q7zajmiy62ccvbfgqjzppk5212wpwks2ba726hvyf85mj"; 334 + }; 335 + } 336 + ]
+1 -1
pkgs/applications/editors/vscode/vscodium.nix
··· 54 homepage = "https://github.com/VSCodium/vscodium"; 55 downloadPage = "https://github.com/VSCodium/vscodium/releases"; 56 license = licenses.mit; 57 - maintainers = with maintainers; [ synthetica ]; 58 platforms = [ "x86_64-linux" "x86_64-darwin" ]; 59 }; 60 }
··· 54 homepage = "https://github.com/VSCodium/vscodium"; 55 downloadPage = "https://github.com/VSCodium/vscodium/releases"; 56 license = licenses.mit; 57 + maintainers = with maintainers; [ synthetica turion ]; 58 platforms = [ "x86_64-linux" "x86_64-darwin" ]; 59 }; 60 }
+1 -1
pkgs/applications/kde/konsole.nix
··· 11 name = "konsole"; 12 meta = { 13 license = with lib.licenses; [ gpl2 lgpl21 fdl12 ]; 14 - maintainers = [ lib.maintainers.ttuegel ]; 15 }; 16 nativeBuildInputs = [ extra-cmake-modules kdoctools ]; 17 buildInputs = [
··· 11 name = "konsole"; 12 meta = { 13 license = with lib.licenses; [ gpl2 lgpl21 fdl12 ]; 14 + maintainers = with lib.maintainers; [ ttuegel turion ]; 15 }; 16 nativeBuildInputs = [ extra-cmake-modules kdoctools ]; 17 buildInputs = [
+1 -1
pkgs/applications/kde/okular.nix
··· 21 meta = with lib; { 22 homepage = "http://www.kde.org"; 23 license = with licenses; [ gpl2 lgpl21 fdl12 bsd3 ]; 24 - maintainers = with maintainers; [ ttuegel ]; 25 platforms = lib.platforms.linux; 26 }; 27 }
··· 21 meta = with lib; { 22 homepage = "http://www.kde.org"; 23 license = with licenses; [ gpl2 lgpl21 fdl12 bsd3 ]; 24 + maintainers = with maintainers; [ ttuegel turion ]; 25 platforms = lib.platforms.linux; 26 }; 27 }
+6
pkgs/applications/misc/alacritty/default.nix
··· 104 '' else '' 105 install -D extra/linux/Alacritty.desktop -t $out/share/applications/ 106 install -D extra/logo/alacritty-term.svg $out/share/icons/hicolor/scalable/apps/Alacritty.svg 107 patchelf --set-rpath "${lib.makeLibraryPath rpathLibs}" $out/bin/alacritty 108 '' 109 ) + ''
··· 104 '' else '' 105 install -D extra/linux/Alacritty.desktop -t $out/share/applications/ 106 install -D extra/logo/alacritty-term.svg $out/share/icons/hicolor/scalable/apps/Alacritty.svg 107 + 108 + # patchelf generates an ELF that binutils' "strip" doesn't like: 109 + # strip: not enough room for program headers, try linking with -N 110 + # As a workaround, strip manually before running patchelf. 111 + strip -S $out/bin/alacritty 112 + 113 patchelf --set-rpath "${lib.makeLibraryPath rpathLibs}" $out/bin/alacritty 114 '' 115 ) + ''
+27
pkgs/applications/misc/ausweisapp2/default.nix
···
··· 1 + { stdenv, mkDerivation, fetchFromGitHub, cmake, pkgconfig, pcsclite, qtsvg, qttools, qtwebsockets 2 + , qtquickcontrols2, qtgraphicaleffects }: 3 + 4 + mkDerivation rec { 5 + pname = "AusweisApp2"; 6 + version = "1.20.0"; 7 + 8 + src = fetchFromGitHub { 9 + owner = "Governikus"; 10 + repo = "AusweisApp2"; 11 + rev = "${version}"; 12 + sha256 = "0qkwdaxhig4qjim7h20j6ln6w76ycppfc786nd8l69bd1qv46m40"; 13 + }; 14 + 15 + nativeBuildInputs = [ cmake pkgconfig ]; 16 + 17 + buildInputs = [ qtsvg qttools qtwebsockets qtquickcontrols2 qtgraphicaleffects pcsclite ]; 18 + 19 + meta = with stdenv.lib; { 20 + description = "Authentication software for the German ID card"; 21 + downloadPage = "https://github.com/Governikus/AusweisApp2/releases"; 22 + homepage = "https://www.ausweisapp.bund.de/ausweisapp2/"; 23 + license = licenses.eupl12; 24 + maintainers = with maintainers; [ b4dm4n ]; 25 + platforms = platforms.linux; 26 + }; 27 + }
+4 -9
pkgs/applications/misc/birdtray/default.nix
··· 7 , qtbase 8 , qttools 9 , qtx11extras 10 - , sqlite 11 }: 12 13 mkDerivation rec { 14 pname = "birdtray"; 15 - version = "1.7.0"; 16 17 src = fetchFromGitHub { 18 owner = "gyunaev"; 19 repo = pname; 20 - rev = "RELEASE_${version}"; 21 - sha256 = "0wj2lq5bz1p0cf6yj43v3ifxschcrh5amwx30wqw2m4bb8syzjw1"; 22 }; 23 24 nativeBuildInputs = [ cmake pkgconfig ]; 25 buildInputs = [ 26 - qtbase qtx11extras sqlite 27 ]; 28 - 29 - installPhase = '' 30 - install -Dm755 birdtray $out/bin/birdtray 31 - ''; 32 33 meta = with lib; { 34 description = "Mail system tray notification icon for Thunderbird";
··· 7 , qtbase 8 , qttools 9 , qtx11extras 10 }: 11 12 mkDerivation rec { 13 pname = "birdtray"; 14 + version = "1.8.0"; 15 16 src = fetchFromGitHub { 17 owner = "gyunaev"; 18 repo = pname; 19 + rev = version; 20 + sha256 = "15d0gz889vf9b2a046m93s5kdi6lw2sqjd5gaxgjkjrs20x5vr18"; 21 }; 22 23 nativeBuildInputs = [ cmake pkgconfig ]; 24 buildInputs = [ 25 + qtbase qttools qtx11extras 26 ]; 27 28 meta = with lib; { 29 description = "Mail system tray notification icon for Thunderbird";
+4 -4
pkgs/applications/misc/joplin-desktop/default.nix
··· 2 3 let 4 pname = "joplin-desktop"; 5 - version = "1.0.179"; 6 desktopItem = makeDesktopItem { 7 name = "Joplin"; 8 exec = "joplin-desktop"; ··· 13 name = "${pname}-${version}"; 14 src = fetchurl { 15 url = "https://github.com/laurent22/joplin/releases/download/v${version}/Joplin-${version}.AppImage"; 16 - sha256 = "0v7d5wzwiznl755pl6jfg33g6jxr1cbm9j13jpbmfi497hj8w82k"; 17 }; 18 19 ··· 40 applications directly or from your own text editor. The notes are in 41 Markdown format. 42 ''; 43 - homepage = "https://joplin.cozic.net/"; 44 license = licenses.mit; 45 - maintainers = with maintainers; [ rafaelgg raquelgb ]; 46 platforms = [ "x86_64-linux" ]; 47 }; 48 }
··· 2 3 let 4 pname = "joplin-desktop"; 5 + version = "1.0.200"; 6 desktopItem = makeDesktopItem { 7 name = "Joplin"; 8 exec = "joplin-desktop"; ··· 13 name = "${pname}-${version}"; 14 src = fetchurl { 15 url = "https://github.com/laurent22/joplin/releases/download/v${version}/Joplin-${version}.AppImage"; 16 + sha256 = "14gwv8i6dprvl96mifadq0zj77a82rww8xd5bmzm8ql6sidi2216"; 17 }; 18 19 ··· 40 applications directly or from your own text editor. The notes are in 41 Markdown format. 42 ''; 43 + homepage = "https://joplinapp.org"; 44 license = licenses.mit; 45 + maintainers = with maintainers; [ hugoreeves rafaelgg raquelgb ]; 46 platforms = [ "x86_64-linux" ]; 47 }; 48 }
+17 -5
pkgs/applications/misc/keepassx/community.nix
··· 1 - { stdenv, fetchFromGitHub, cmake, makeWrapper, qttools, darwin 2 3 , curl 4 , glibcLocales ··· 33 34 stdenv.mkDerivation rec { 35 pname = "keepassxc"; 36 - version = "2.5.2"; 37 38 src = fetchFromGitHub { 39 owner = "keepassxreboot"; 40 repo = "keepassxc"; 41 rev = version; 42 - sha256 = "0z5bd17qaq7zpv96gw6qwv6rb4xx7xjq86ss6wm5zskcrraf7r7n"; 43 }; 44 45 NIX_CFLAGS_COMPILE = stdenv.lib.optionalString stdenv.cc.isClang [ ··· 57 58 patches = [ 59 ./darwin.patch 60 ]; 61 62 cmakeFlags = [ ··· 79 export LC_ALL="en_US.UTF-8" 80 export QT_QPA_PLATFORM=offscreen 81 export QT_PLUGIN_PATH="${qtbase.bin}/${qtbase.qtPluginPrefix}" 82 - make test ARGS+="-E testgui --output-on-failure" 83 ''; 84 85 nativeBuildInputs = [ cmake wrapQtAppsHook qttools ]; ··· 116 longDescription = "A community fork of KeePassX, which is itself a port of KeePass Password Safe. The goal is to extend and improve KeePassX with new features and bugfixes to provide a feature-rich, fully cross-platform and modern open-source password manager. Accessible via native cross-platform GUI, CLI, and browser integration with the KeePassXC Browser Extension (https://github.com/keepassxreboot/keepassxc-browser)."; 117 homepage = "https://keepassxc.org/"; 118 license = licenses.gpl2; 119 - maintainers = with maintainers; [ jonafato ]; 120 platforms = platforms.linux ++ platforms.darwin; 121 }; 122 }
··· 1 + { stdenv 2 + , fetchFromGitHub 3 + , fetchpatch 4 + , cmake 5 + , makeWrapper 6 + , qttools 7 + , darwin 8 9 , curl 10 , glibcLocales ··· 39 40 stdenv.mkDerivation rec { 41 pname = "keepassxc"; 42 + version = "2.5.4"; 43 44 src = fetchFromGitHub { 45 owner = "keepassxreboot"; 46 repo = "keepassxc"; 47 rev = version; 48 + sha256 = "1xih9q1pxszalc0l29fmjxwn1vrrrrbnhc8gmi8brw5sclhbs6bh"; 49 }; 50 51 NIX_CFLAGS_COMPILE = stdenv.lib.optionalString stdenv.cc.isClang [ ··· 63 64 patches = [ 65 ./darwin.patch 66 + # use wl-copy on Wayland - can be dropped with the next version update 67 + (fetchpatch { 68 + url = "https://github.com/keepassxreboot/keepassxc/commit/6128e5d58294f26411160f44da91087ebe7f4b07.patch"; 69 + sha256 = "16q0h7kijqjdbskmk4ar6p3g8vcxr0bq1zrlq2bk16pk10nv4bh1"; 70 + }) 71 ]; 72 73 cmakeFlags = [ ··· 90 export LC_ALL="en_US.UTF-8" 91 export QT_QPA_PLATFORM=offscreen 92 export QT_PLUGIN_PATH="${qtbase.bin}/${qtbase.qtPluginPrefix}" 93 + # testcli and testgui are flaky - skip them both 94 + make test ARGS+="-E 'testcli|testgui' --output-on-failure" 95 ''; 96 97 nativeBuildInputs = [ cmake wrapQtAppsHook qttools ]; ··· 128 longDescription = "A community fork of KeePassX, which is itself a port of KeePass Password Safe. The goal is to extend and improve KeePassX with new features and bugfixes to provide a feature-rich, fully cross-platform and modern open-source password manager. Accessible via native cross-platform GUI, CLI, and browser integration with the KeePassXC Browser Extension (https://github.com/keepassxreboot/keepassxc-browser)."; 129 homepage = "https://keepassxc.org/"; 130 license = licenses.gpl2; 131 + maintainers = with maintainers; [ jonafato turion ]; 132 platforms = platforms.linux ++ platforms.darwin; 133 }; 134 }
+2 -2
pkgs/applications/misc/keepassx/darwin.patch
··· 6 set(PLUGIN_INSTALL_DIR ".") 7 set(DATA_INSTALL_DIR "share") 8 elseif(APPLE AND WITH_APP_BUNDLE) 9 - + set(CMAKE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}/Applications") 10 set(CMAKE_INSTALL_MANDIR "${PROGNAME}.app/Contents/Resources/man") 11 set(CLI_INSTALL_DIR "${PROGNAME}.app/Contents/MacOS") 12 - set(PROXY_INSTALL_DIR "${PROGNAME}.app/Contents/MacOS") 13 @@ -369,12 +370,6 @@ set(CMAKE_AUTORCC ON) 14 15 if(APPLE)
··· 6 set(PLUGIN_INSTALL_DIR ".") 7 set(DATA_INSTALL_DIR "share") 8 elseif(APPLE AND WITH_APP_BUNDLE) 9 + + set(CMAKE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}/Applications") 10 + set(BUNDLE_INSTALL_DIR "${PROGNAME}.app/Contents") 11 set(CMAKE_INSTALL_MANDIR "${PROGNAME}.app/Contents/Resources/man") 12 set(CLI_INSTALL_DIR "${PROGNAME}.app/Contents/MacOS") 13 @@ -369,12 +370,6 @@ set(CMAKE_AUTORCC ON) 14 15 if(APPLE)
+1 -1
pkgs/applications/misc/krusader/default.nix
··· 20 description = "Norton/Total Commander clone for KDE"; 21 license = licenses.gpl2; 22 homepage = "http://www.krusader.org"; 23 - maintainers = with maintainers; [ sander ]; 24 }; 25 26 nativeBuildInputs = [ extra-cmake-modules kdoctools wrapGAppsHook ];
··· 20 description = "Norton/Total Commander clone for KDE"; 21 license = licenses.gpl2; 22 homepage = "http://www.krusader.org"; 23 + maintainers = with maintainers; [ sander turion ]; 24 }; 25 26 nativeBuildInputs = [ extra-cmake-modules kdoctools wrapGAppsHook ];
+1 -1
pkgs/applications/misc/lutris/chrootenv.nix
··· 94 libsndfile libtheora libogg libvorbis libopus libGLU libpcap libpulseaudio 95 libao libusb libevdev udev libgcrypt libxml2 libusb libpng libmpeg2 libv4l 96 libjpeg libxkbcommon libass libcdio libjack2 libsamplerate libzip libmad libaio 97 - libcap libtiff libva libgphoto2 libxslt libtxc_dxtn libsndfile giflib zlib glib 98 alsaLib zziplib bash dbus keyutils zip cabextract freetype unzip coreutils 99 readline gcc SDL SDL2 curl graphite2 gtk2 gtk3 udev ncurses wayland libglvnd 100 vulkan-loader xdg_utils sqlite gnutls libbsd
··· 94 libsndfile libtheora libogg libvorbis libopus libGLU libpcap libpulseaudio 95 libao libusb libevdev udev libgcrypt libxml2 libusb libpng libmpeg2 libv4l 96 libjpeg libxkbcommon libass libcdio libjack2 libsamplerate libzip libmad libaio 97 + libcap libtiff libva libgphoto2 libxslt libsndfile giflib zlib glib 98 alsaLib zziplib bash dbus keyutils zip cabextract freetype unzip coreutils 99 readline gcc SDL SDL2 curl graphite2 gtk2 gtk3 udev ncurses wayland libglvnd 100 vulkan-loader xdg_utils sqlite gnutls libbsd
+1 -1
pkgs/applications/misc/termpdf.py/default.nix
··· 44 A graphical pdf (and epub, cbz, ...) reader that works 45 inside the kitty terminal. 46 ''; 47 - homepage = https://github.com/dsanson/termpdf.py; 48 maintainers = with maintainers; [ teto ]; 49 license = licenses.mit; 50 };
··· 44 A graphical pdf (and epub, cbz, ...) reader that works 45 inside the kitty terminal. 46 ''; 47 + homepage = "https://github.com/dsanson/termpdf.py"; 48 maintainers = with maintainers; [ teto ]; 49 license = licenses.mit; 50 };
+2 -2
pkgs/applications/networking/browsers/brave/default.nix
··· 82 83 stdenv.mkDerivation rec { 84 pname = "brave"; 85 - version = "1.5.123"; 86 87 src = fetchurl { 88 url = "https://github.com/brave/brave-browser/releases/download/v${version}/brave-browser_${version}_amd64.deb"; 89 - sha256 = "1yv6hfjqzcd60b0bjpfbj8d4s2yf10swanxhbmnslcqp6ajb2nqr"; 90 }; 91 92 dontConfigure = true;
··· 82 83 stdenv.mkDerivation rec { 84 pname = "brave"; 85 + version = "1.7.92"; 86 87 src = fetchurl { 88 url = "https://github.com/brave/brave-browser/releases/download/v${version}/brave-browser_${version}_amd64.deb"; 89 + sha256 = "1f262xh88c83m6ixqxc69z8kvkl3qbjc6jnv2g8n0flw8s70hs7z"; 90 }; 91 92 dontConfigure = true;
+11 -6
pkgs/applications/networking/browsers/chromium/common.nix
··· 24 , libdrm ? null, wayland ? null, mesa_drivers ? null, libxkbcommon ? null # useOzone 25 26 # package customization 27 - , useVaapi ? false 28 , useOzone ? false 29 , gnomeSupport ? false, gnome ? null 30 , gnomeKeyringSupport ? false, libgnome-keyring3 ? null 31 , proprietaryCodecs ? true ··· 127 libXScrnSaver libXcursor libXtst libGLU libGL 128 pciutils protobuf speechd libXdamage at-spi2-core 129 jre 130 - ] ++ optional gnomeKeyringSupport libgnome-keyring3 131 ++ optionals gnomeSupport [ gnome.GConf libgcrypt ] 132 ++ optionals cupsSupport [ libgcrypt cups ] 133 - ++ optional useVaapi libva 134 ++ optional pulseSupport libpulseaudio 135 ++ optionals useOzone [ libdrm wayland mesa_drivers libxkbcommon ]; 136 ··· 149 # 150 # ++ optionals (channel == "dev") [ ( githubPatch "<patch>" "0000000000000000000000000000000000000000000000000000000000000000" ) ] 151 # ++ optional (versionRange "68" "72") ( githubPatch "<patch>" "0000000000000000000000000000000000000000000000000000000000000000" ) 152 - ] ++ optionals (useVaapi) ([ 153 - # source: https://aur.archlinux.org/cgit/aur.git/tree/vaapi-fix.patch?h=chromium-vaapi 154 - ./patches/vaapi-fix.patch 155 ] ++ optionals (versionRange "81" "82") [ 156 (githubPatch "5b2ff215473e0526b5b24aeff4ad90d369b21c75" "0n00vh8wfpn2ay5fqsxcsx0zadnv7mihm72bcvnrfzh75nzbg902") 157 (githubPatch "98e343ab369e4262511b5fce547728e3e5eefba8" "00wwp653jk0k0yvix00vr7ymgck9dj7fxjwx4nc67ynn84dh6064")
··· 24 , libdrm ? null, wayland ? null, mesa_drivers ? null, libxkbcommon ? null # useOzone 25 26 # package customization 27 , useOzone ? false 28 + , useVaapi ? !(useOzone || stdenv.isAarch64) # Built if supported, but disabled in the wrapper 29 + # VA-API TODOs: 30 + # - Ozone: M81 fails to build due to "ozone_platform_gbm = false" 31 + # - Possible solutions: Write a patch to fix the build (wrong gn dependencies) 32 + # or build with minigbm 33 + # - AArch64: Causes serious regressions (https://github.com/NixOS/nixpkgs/pull/85253#issuecomment-614405879) 34 , gnomeSupport ? false, gnome ? null 35 , gnomeKeyringSupport ? false, libgnome-keyring3 ? null 36 , proprietaryCodecs ? true ··· 132 libXScrnSaver libXcursor libXtst libGLU libGL 133 pciutils protobuf speechd libXdamage at-spi2-core 134 jre 135 + ] ++ optional useVaapi libva 136 + ++ optional gnomeKeyringSupport libgnome-keyring3 137 ++ optionals gnomeSupport [ gnome.GConf libgcrypt ] 138 ++ optionals cupsSupport [ libgcrypt cups ] 139 ++ optional pulseSupport libpulseaudio 140 ++ optionals useOzone [ libdrm wayland mesa_drivers libxkbcommon ]; 141 ··· 154 # 155 # ++ optionals (channel == "dev") [ ( githubPatch "<patch>" "0000000000000000000000000000000000000000000000000000000000000000" ) ] 156 # ++ optional (versionRange "68" "72") ( githubPatch "<patch>" "0000000000000000000000000000000000000000000000000000000000000000" ) 157 + ] ++ optionals (useVaapi) ([ # Fixes for the VA-API build: 158 + ./patches/enable-vdpau-support-for-nvidia.patch # https://aur.archlinux.org/cgit/aur.git/tree/vdpau-support.patch?h=chromium-vaapi 159 + ./patches/enable-video-acceleration-on-linux.patch # Can be controlled at runtime (i.e. without rebuilding Chromium) 160 ] ++ optionals (versionRange "81" "82") [ 161 (githubPatch "5b2ff215473e0526b5b24aeff4ad90d369b21c75" "0n00vh8wfpn2ay5fqsxcsx0zadnv7mihm72bcvnrfzh75nzbg902") 162 (githubPatch "98e343ab369e4262511b5fce547728e3e5eefba8" "00wwp653jk0k0yvix00vr7ymgck9dj7fxjwx4nc67ynn84dh6064")
+14 -5
pkgs/applications/networking/browsers/chromium/default.nix
··· 6 , lib 7 8 # package customization 9 , channel ? "stable" 10 , gnomeSupport ? false, gnome ? null 11 , gnomeKeyringSupport ? false 12 , proprietaryCodecs ? true 13 , enablePepperFlash ? false 14 , enableWideVine ? false 15 - , useVaapi ? false # test video on radeon, before enabling this 16 , useOzone ? false 17 , cupsSupport ? true 18 , pulseSupport ? config.pulseaudio or stdenv.isLinux ··· 33 upstream-info = (callPackage ./update.nix {}).getChannel channel; 34 35 mkChromiumDerivation = callPackage ./common.nix ({ 36 - inherit gnome gnomeSupport gnomeKeyringSupport proprietaryCodecs cupsSupport pulseSupport useVaapi useOzone; 37 gnChromium = gn; 38 } // lib.optionalAttrs (channel != "stable") { 39 # TODO: Remove after we can update gn for the stable channel (backward incompatible changes): ··· 127 cp -a ${widevineCdm}/WidevineCdm $out/libexec/chromium/ 128 '' 129 else browser; 130 in stdenv.mkDerivation { 131 name = "chromium${suffix}-${version}"; 132 inherit version; ··· 146 buildCommand = let 147 browserBinary = "${chromiumWV}/libexec/chromium/chromium"; 148 getWrapperFlags = plugin: "$(< \"${plugin}/nix-support/wrapper-flags\")"; 149 - libPath = stdenv.lib.makeLibraryPath ([] 150 - ++ stdenv.lib.optional useVaapi libva 151 - ); 152 153 in with stdenv.lib; '' 154 mkdir -p "$out/bin" 155 156 eval makeWrapper "${browserBinary}" "$out/bin/chromium" \ 157 --add-flags ${escapeShellArg (escapeShellArg commandLineArgs)} \ 158 ${concatMapStringsSep " " getWrapperFlags chromium.plugins.enabled} 159 160 ed -v -s "$out/bin/chromium" << EOF
··· 6 , lib 7 8 # package customization 9 + # Note: enable* flags should not require full rebuilds (i.e. only affect the wrapper) 10 , channel ? "stable" 11 , gnomeSupport ? false, gnome ? null 12 , gnomeKeyringSupport ? false 13 , proprietaryCodecs ? true 14 , enablePepperFlash ? false 15 , enableWideVine ? false 16 + , useVaapi ? false # Deprecated, use enableVaapi instead! 17 + , enableVaapi ? false # Disabled by default due to unofficial support and issues on radeon 18 , useOzone ? false 19 , cupsSupport ? true 20 , pulseSupport ? config.pulseaudio or stdenv.isLinux ··· 35 upstream-info = (callPackage ./update.nix {}).getChannel channel; 36 37 mkChromiumDerivation = callPackage ./common.nix ({ 38 + inherit gnome gnomeSupport gnomeKeyringSupport proprietaryCodecs cupsSupport pulseSupport useOzone; 39 gnChromium = gn; 40 } // lib.optionalAttrs (channel != "stable") { 41 # TODO: Remove after we can update gn for the stable channel (backward incompatible changes): ··· 129 cp -a ${widevineCdm}/WidevineCdm $out/libexec/chromium/ 130 '' 131 else browser; 132 + 133 + optionalVaapiFlags = if useVaapi # TODO: Remove after 20.09: 134 + then throw '' 135 + Chromium's useVaapi was replaced by enableVaapi and you don't need to pass 136 + "--ignore-gpu-blacklist" anymore (also no rebuilds are required anymore). 137 + '' else lib.optionalString 138 + (!enableVaapi) 139 + "--add-flags --disable-accelerated-video-decode --add-flags --disable-accelerated-video-encode"; 140 in stdenv.mkDerivation { 141 name = "chromium${suffix}-${version}"; 142 inherit version; ··· 156 buildCommand = let 157 browserBinary = "${chromiumWV}/libexec/chromium/chromium"; 158 getWrapperFlags = plugin: "$(< \"${plugin}/nix-support/wrapper-flags\")"; 159 + libPath = stdenv.lib.makeLibraryPath [ libva ]; 160 161 in with stdenv.lib; '' 162 mkdir -p "$out/bin" 163 164 eval makeWrapper "${browserBinary}" "$out/bin/chromium" \ 165 --add-flags ${escapeShellArg (escapeShellArg commandLineArgs)} \ 166 + ${optionalVaapiFlags} \ 167 ${concatMapStringsSep " " getWrapperFlags chromium.plugins.enabled} 168 169 ed -v -s "$out/bin/chromium" << EOF
+48
pkgs/applications/networking/browsers/chromium/patches/enable-video-acceleration-on-linux.patch
···
··· 1 + From b2144fd28e09cd52e7a88a62a9d9b54cf9922f9f Mon Sep 17 00:00:00 2001 2 + From: Michael Weiss <dev.primeos@gmail.com> 3 + Date: Tue, 14 Apr 2020 14:16:10 +0200 4 + Subject: [PATCH] Enable accelerated video decode on Linux 5 + 6 + This will enable accelerated video decode on Linux by default (i.e. 7 + without "--ignore-gpu-blacklist"), but on NixOS we'll provide 8 + "--disable-accelerated-video-decode" and 9 + "--disable-accelerated-video-encode" by default to avoid regressions 10 + (e.g. VA-API doesn't work properly for some radeon drivers). 11 + 12 + Video acceleration can then be enabled via: 13 + chromium.override { enableVaapi = true; } 14 + without rebuilding Chromium. 15 + --- 16 + gpu/config/software_rendering_list.json | 16 ---------------- 17 + 1 file changed, 16 deletions(-) 18 + 19 + diff --git a/gpu/config/software_rendering_list.json b/gpu/config/software_rendering_list.json 20 + index 22712bdbf38f..a06dd19a50e4 100644 21 + --- a/gpu/config/software_rendering_list.json 22 + +++ b/gpu/config/software_rendering_list.json 23 + @@ -336,22 +336,6 @@ 24 + ] 25 + }, 26 + { 27 + - "id": 48, 28 + - "description": "Accelerated video decode is unavailable on Linux", 29 + - "cr_bugs": [137247, 1032907], 30 + - "os": { 31 + - "type": "linux" 32 + - }, 33 + - "exceptions": [ 34 + - { 35 + - "machine_model_name": ["Chromecast"] 36 + - } 37 + - ], 38 + - "features": [ 39 + - "accelerated_video_decode" 40 + - ] 41 + - }, 42 + - { 43 + "id": 50, 44 + "description": "Disable VMware software renderer on older Mesa", 45 + "cr_bugs": [145531, 332596, 571899, 629434], 46 + -- 47 + 2.11.0 48 +
pkgs/applications/networking/browsers/chromium/patches/vaapi-fix.patch pkgs/applications/networking/browsers/chromium/patches/enable-vdpau-support-for-nvidia.patch
+2 -2
pkgs/applications/networking/browsers/chromium/plugins.nix
··· 45 46 flash = stdenv.mkDerivation rec { 47 pname = "flashplayer-ppapi"; 48 - version = "32.0.0.344"; 49 50 src = fetchzip { 51 url = "https://fpdownload.adobe.com/pub/flashplayer/pdc/${version}/flash_player_ppapi_linux.x86_64.tar.gz"; 52 - sha256 = "05ijlgsby9zxx0qs6f3vav1z0p6xr1cg6idl4akxvfmsl6hn6hkq"; 53 stripRoot = false; 54 }; 55
··· 45 46 flash = stdenv.mkDerivation rec { 47 pname = "flashplayer-ppapi"; 48 + version = "32.0.0.363"; 49 50 src = fetchzip { 51 url = "https://fpdownload.adobe.com/pub/flashplayer/pdc/${version}/flash_player_ppapi_linux.x86_64.tar.gz"; 52 + sha256 = "0znk8an892mykgbz56hyv3gz65vc9mhb3vn96c6bsvicwl1fn460"; 53 stripRoot = false; 54 }; 55
-1
pkgs/applications/networking/browsers/firefox/wrapper.nix
··· 46 "icedtea" 47 "enableGoogleTalkPlugin" 48 "enableFriBIDPlugin" 49 - "enableGnomeExtensions" 50 "enableBluejeans" 51 "enableAdobeReader" 52 ];
··· 46 "icedtea" 47 "enableGoogleTalkPlugin" 48 "enableFriBIDPlugin" 49 "enableBluejeans" 50 "enableAdobeReader" 51 ];
+5 -5
pkgs/applications/networking/browsers/mozilla-plugins/flashplayer/default.nix
··· 74 in 75 stdenv.mkDerivation rec { 76 pname = "flashplayer"; 77 - version = "32.0.0.344"; 78 79 src = fetchurl { 80 url = ··· 85 sha256 = 86 if debug then 87 if arch == "x86_64" then 88 - "1kkwijxlcs1rlqxr1vj51h95fwwrp5m0c9lngqpncgmmhh8v9dyr" 89 else 90 - "0r47s19fw7gsph73rd5jb2zfsjwz7mjawm6c49rir9rsa0zxrsks" 91 else 92 if arch == "x86_64" then 93 - "1ki3i7zw0q48xf01xjfm1mpizc5flk768p9hqxpg881r4h65dh6b" 94 else 95 - "1v527i60sljwyvv4l1kg9ml05skjgm3naynlswd35hsz258jnxl4"; 96 }; 97 98 nativeBuildInputs = [ unzip ];
··· 74 in 75 stdenv.mkDerivation rec { 76 pname = "flashplayer"; 77 + version = "32.0.0.363"; 78 79 src = fetchurl { 80 url = ··· 85 sha256 = 86 if debug then 87 if arch == "x86_64" then 88 + "06711k4vbn6mqfd8gvx2snsxyalhw15hn5b64sja8726z5rxvzy7" 89 else 90 + "0v584aqhy4xk08afi3ypkq4mqjq57y136z82i5ixyim88dqbaf4f" 91 else 92 if arch == "x86_64" then 93 + "1g1ijxypm8a8mfc1x58gksmaakqpp7xmf277wiir8zqjn3vd6c64" 94 else 95 + "13nbxmqmbxqvdhdwdqimim2f9fz3y2vrsx6b3pck6352m4i4wzh8"; 96 }; 97 98 nativeBuildInputs = [ unzip ];
+3 -3
pkgs/applications/networking/browsers/mozilla-plugins/flashplayer/standalone.nix
··· 50 51 stdenv.mkDerivation { 52 pname = "flashplayer-standalone"; 53 - version = "32.0.0.344"; 54 55 src = fetchurl { 56 url = ··· 60 "https://fpdownload.macromedia.com/pub/flashplayer/updaters/32/flash_player_sa_linux.x86_64.tar.gz"; 61 sha256 = 62 if debug then 63 - "1ymsk07xmnanyv86r58ar1l4wgjarlq0fc111ajc76pp8dsxnfx8" 64 else 65 - "0wiwpn4a0jxslw4ahalq74rksn82y0aqa3lrjr9qs7kdcak74vky"; 66 }; 67 68 nativeBuildInputs = [ unzip ];
··· 50 51 stdenv.mkDerivation { 52 pname = "flashplayer-standalone"; 53 + version = "32.0.0.363"; 54 55 src = fetchurl { 56 url = ··· 60 "https://fpdownload.macromedia.com/pub/flashplayer/updaters/32/flash_player_sa_linux.x86_64.tar.gz"; 61 sha256 = 62 if debug then 63 + "03zhza8lvc1nvz3racwfsajfd6rnbw3g56dp5wvr1qmaps8xaaqg" 64 else 65 + "0bhp7jv2l2agfzr8m564k749a5g75dw1390phlwvf49n1h8ldap2"; 66 }; 67 68 nativeBuildInputs = [ unzip ];
+5 -4
pkgs/applications/networking/cluster/cni/default.nix
··· 1 - { stdenv, fetchFromGitHub, buildGoPackage }: 2 3 buildGoPackage rec { 4 pname = "cni"; 5 - version = "0.7.0"; 6 7 src = fetchFromGitHub { 8 owner = "containernetworking"; 9 repo = pname; 10 rev = "v${version}"; 11 - sha256 = "15ad323dw44k82bfx9r8w5q2kn7jix60p9v4ciyzx2p5pip36wp8"; 12 }; 13 14 goPackagePath = "github.com/containernetworking/cni"; 15 - meta = with stdenv.lib; { 16 description = "Container Network Interface - networking for Linux containers"; 17 license = licenses.asl20; 18 homepage = "https://github.com/containernetworking/cni";
··· 1 + { lib, fetchFromGitHub, buildGoPackage }: 2 3 buildGoPackage rec { 4 pname = "cni"; 5 + version = "0.7.1"; 6 7 src = fetchFromGitHub { 8 owner = "containernetworking"; 9 repo = pname; 10 rev = "v${version}"; 11 + sha256 = "02qn1br8164d99978acalisy1sx294g1axnii4yh1wji0fc735xz"; 12 }; 13 14 goPackagePath = "github.com/containernetworking/cni"; 15 + 16 + meta = with lib; { 17 description = "Container Network Interface - networking for Linux containers"; 18 license = licenses.asl20; 19 homepage = "https://github.com/containernetworking/cni";
-210
pkgs/applications/networking/cluster/cni/plugins-deps.nix
··· 1 - # file generated from go.mod using vgo2nix (https://github.com/adisbladis/vgo2nix) 2 - [ 3 - { 4 - goPackagePath = "github.com/Microsoft/go-winio"; 5 - fetch = { 6 - type = "git"; 7 - url = "https://github.com/Microsoft/go-winio"; 8 - rev = "v0.4.11"; 9 - sha256 = "14y1gryr3pb3zy09v2g8dh89m363rfd9sch0wgbabh531hfx72vn"; 10 - }; 11 - } 12 - { 13 - goPackagePath = "github.com/Microsoft/hcsshim"; 14 - fetch = { 15 - type = "git"; 16 - url = "https://github.com/Microsoft/hcsshim"; 17 - rev = "v0.7.4"; 18 - sha256 = "0hky9p6xvkkx2jfkd4fy2d6iaikvlzalyw67gypyqyxygf2hsshg"; 19 - }; 20 - } 21 - { 22 - goPackagePath = "github.com/alexflint/go-filemutex"; 23 - fetch = { 24 - type = "git"; 25 - url = "https://github.com/alexflint/go-filemutex"; 26 - rev = "72bdc8eae2ae"; 27 - sha256 = "082y6y9zv40q3kaqvsv6fyaw2fc42j0sn9z0dl9rbiz4szixj3c4"; 28 - }; 29 - } 30 - { 31 - goPackagePath = "github.com/buger/jsonparser"; 32 - fetch = { 33 - type = "git"; 34 - url = "https://github.com/buger/jsonparser"; 35 - rev = "f4dd9f5a6b44"; 36 - sha256 = "12qa2n33s7yz88ywpr3k9kg3b4gm6rqgnv28iyikyxw8h5jascz5"; 37 - }; 38 - } 39 - { 40 - goPackagePath = "github.com/containernetworking/cni"; 41 - fetch = { 42 - type = "git"; 43 - url = "https://github.com/containernetworking/cni"; 44 - rev = "v0.7.0"; 45 - sha256 = "15ad323dw44k82bfx9r8w5q2kn7jix60p9v4ciyzx2p5pip36wp8"; 46 - }; 47 - } 48 - { 49 - goPackagePath = "github.com/coreos/go-iptables"; 50 - fetch = { 51 - type = "git"; 52 - url = "https://github.com/coreos/go-iptables"; 53 - rev = "v0.4.1"; 54 - sha256 = "0id1npqw3rd5rrkslf6i9yy6lpmd7l5qcglln38g85ylq7inysyi"; 55 - }; 56 - } 57 - { 58 - goPackagePath = "github.com/coreos/go-systemd"; 59 - fetch = { 60 - type = "git"; 61 - url = "https://github.com/coreos/go-systemd"; 62 - rev = "39ca1b05acc7"; 63 - sha256 = "1kzqrrzqspa5qm7kwslxl3m16lqzns23c24rv474ajzwmj3ixmx1"; 64 - }; 65 - } 66 - { 67 - goPackagePath = "github.com/d2g/dhcp4"; 68 - fetch = { 69 - type = "git"; 70 - url = "https://github.com/d2g/dhcp4"; 71 - rev = "f0e4d29ff023"; 72 - sha256 = "07gn9bjvnlfz2jv9wdq3gxxxm9lpwgrwk8z65072jdrz9rs9izpr"; 73 - }; 74 - } 75 - { 76 - goPackagePath = "github.com/d2g/dhcp4client"; 77 - fetch = { 78 - type = "git"; 79 - url = "https://github.com/d2g/dhcp4client"; 80 - rev = "bed07e1bc5b8"; 81 - sha256 = "0kyjalv1kah7sk3i96abg71cgy5s9kzpff2zc7mwj69vicbj7mi3"; 82 - }; 83 - } 84 - { 85 - goPackagePath = "github.com/d2g/dhcp4server"; 86 - fetch = { 87 - type = "git"; 88 - url = "https://github.com/d2g/dhcp4server"; 89 - rev = "477b11cea4dc"; 90 - sha256 = "010dpw6cxrsm6dm49w1q6qpz5xz3lbi5viz6wywxk49fxvnzmx9l"; 91 - }; 92 - } 93 - { 94 - goPackagePath = "github.com/godbus/dbus"; 95 - fetch = { 96 - type = "git"; 97 - url = "https://github.com/godbus/dbus"; 98 - rev = "885f9cc04c9c"; 99 - sha256 = "0wjpaj4vr5lvpnwc5faf3qizd7zd2v9yq0fm0558wap1hiyqb8x8"; 100 - }; 101 - } 102 - { 103 - goPackagePath = "github.com/j-keck/arping"; 104 - fetch = { 105 - type = "git"; 106 - url = "https://github.com/j-keck/arping"; 107 - rev = "2cf9dc699c56"; 108 - sha256 = "1bid8mpx3j4546ni0a6q5xyz7hb854g95qnxqmg5jzs9vrcird3c"; 109 - }; 110 - } 111 - { 112 - goPackagePath = "github.com/juju/errors"; 113 - fetch = { 114 - type = "git"; 115 - url = "https://github.com/juju/errors"; 116 - rev = "22422dad46e1"; 117 - sha256 = "1766ys24y9qgngaqbx0g84lmh54b3369v8hk5fa1k8si2d34fxas"; 118 - }; 119 - } 120 - { 121 - goPackagePath = "github.com/mattn/go-shellwords"; 122 - fetch = { 123 - type = "git"; 124 - url = "https://github.com/mattn/go-shellwords"; 125 - rev = "v1.0.3"; 126 - sha256 = "1pg7pl25wvpl2dbpyrv9p1r7prnqimxlf6136vn0dfm54j2x4mnr"; 127 - }; 128 - } 129 - { 130 - goPackagePath = "github.com/onsi/ginkgo"; 131 - fetch = { 132 - type = "git"; 133 - url = "https://github.com/onsi/ginkgo"; 134 - rev = "7f8ab55aaf3b"; 135 - sha256 = "0nas6wqdym4jx42kw9wj80b58r69k9qhnvglz009lj34g5gba7rw"; 136 - }; 137 - } 138 - { 139 - goPackagePath = "github.com/onsi/gomega"; 140 - fetch = { 141 - type = "git"; 142 - url = "https://github.com/onsi/gomega"; 143 - rev = "2152b45fa28a"; 144 - sha256 = "0amjlkawp84mmdqjgdamf93p1546cla6h4wwrx7hf5r862r2qcw2"; 145 - }; 146 - } 147 - { 148 - goPackagePath = "github.com/safchain/ethtool"; 149 - fetch = { 150 - type = "git"; 151 - url = "https://github.com/safchain/ethtool"; 152 - rev = "42ed695e3de8"; 153 - sha256 = "0n5hkrzc1bh46nidcssx4539kvcmgj501v3kzh2pljpg27509daj"; 154 - }; 155 - } 156 - { 157 - goPackagePath = "github.com/sirupsen/logrus"; 158 - fetch = { 159 - type = "git"; 160 - url = "https://github.com/sirupsen/logrus"; 161 - rev = "v1.0.6"; 162 - sha256 = "029irw2lsbqi944gdrbkwdw0m2794sqni4g21gsnmz142hbzds8c"; 163 - }; 164 - } 165 - { 166 - goPackagePath = "github.com/vishvananda/netlink"; 167 - fetch = { 168 - type = "git"; 169 - url = "https://github.com/vishvananda/netlink"; 170 - rev = "023a6dafdcdf"; 171 - sha256 = "1i5q8r8rg7lxzvq2vhbf25lrkzdlgficfv0bxg9rf7cgg6z819sn"; 172 - }; 173 - } 174 - { 175 - goPackagePath = "github.com/vishvananda/netns"; 176 - fetch = { 177 - type = "git"; 178 - url = "https://github.com/vishvananda/netns"; 179 - rev = "13995c7128cc"; 180 - sha256 = "1zk6w8158qi4niva5rijchbv9ixgmijsgqshh54wdaav4xrhjshn"; 181 - }; 182 - } 183 - { 184 - goPackagePath = "golang.org/x/crypto"; 185 - fetch = { 186 - type = "git"; 187 - url = "https://go.googlesource.com/crypto"; 188 - rev = "7c1a557ab941"; 189 - sha256 = "1f1q9mby8m7ws3gbj90v0prhnf4g2sgf74azmw31kzwd6azlar3m"; 190 - }; 191 - } 192 - { 193 - goPackagePath = "golang.org/x/net"; 194 - fetch = { 195 - type = "git"; 196 - url = "https://go.googlesource.com/net"; 197 - rev = "49bb7cea24b1"; 198 - sha256 = "111q4qm3hcjvzvyv9y5rz8ydnyg48rckcygxqy6gv63q618wz6gn"; 199 - }; 200 - } 201 - { 202 - goPackagePath = "golang.org/x/sys"; 203 - fetch = { 204 - type = "git"; 205 - url = "https://go.googlesource.com/sys"; 206 - rev = "66b7b1311ac8"; 207 - sha256 = "00ny4r2bbj6rz939iy9g699acqydq7rfi6r6awn25w9i2dld9m13"; 208 - }; 209 - } 210 - ]
···
+15 -13
pkgs/applications/networking/cluster/cni/plugins.nix
··· 1 - { stdenv, lib, fetchFromGitHub, go, removeReferencesTo, buildGoPackage }: 2 buildGoPackage rec { 3 pname = "cni-plugins"; 4 - version = "0.8.4"; 5 6 src = fetchFromGitHub { 7 owner = "containernetworking"; 8 repo = "plugins"; 9 rev = "v${version}"; 10 - sha256 = "02kz6y3klhbriybsskn4hmldwli28cycnp2klsm2x0y9c73iczdp"; 11 }; 12 13 - goDeps = ./plugins-deps.nix; 14 goPackagePath = "github.com/containernetworking/plugins"; 15 subPackages = [ 16 - "plugins/meta/bandwidth" 17 - "plugins/meta/firewall" 18 - "plugins/meta/flannel" 19 - "plugins/meta/portmap" 20 - "plugins/meta/sbr" 21 - "plugins/meta/tuning" 22 "plugins/main/bridge" 23 "plugins/main/host-device" 24 "plugins/main/ipvlan" ··· 26 "plugins/main/macvlan" 27 "plugins/main/ptp" 28 "plugins/main/vlan" 29 - "plugins/ipam/dhcp" 30 - "plugins/ipam/host-local" 31 - "plugins/ipam/static" 32 ]; 33 meta = with lib; { 34 description = "Some standard networking plugins, maintained by the CNI team"; 35 homepage = "https://github.com/containernetworking/plugins";
··· 1 + { lib, fetchFromGitHub, buildGoPackage }: 2 + 3 buildGoPackage rec { 4 pname = "cni-plugins"; 5 + version = "0.8.5"; 6 7 src = fetchFromGitHub { 8 owner = "containernetworking"; 9 repo = "plugins"; 10 rev = "v${version}"; 11 + sha256 = "17c8pvpn0dpda6ah7irr9hhd8sk7mnm32zv72nc5pxg1xvfpaipi"; 12 }; 13 14 goPackagePath = "github.com/containernetworking/plugins"; 15 + 16 subPackages = [ 17 + "plugins/ipam/dhcp" 18 + "plugins/ipam/host-local" 19 + "plugins/ipam/static" 20 "plugins/main/bridge" 21 "plugins/main/host-device" 22 "plugins/main/ipvlan" ··· 24 "plugins/main/macvlan" 25 "plugins/main/ptp" 26 "plugins/main/vlan" 27 + "plugins/meta/bandwidth" 28 + "plugins/meta/firewall" 29 + "plugins/meta/flannel" 30 + "plugins/meta/portmap" 31 + "plugins/meta/sbr" 32 + "plugins/meta/tuning" 33 ]; 34 + 35 meta = with lib; { 36 description = "Some standard networking plugins, maintained by the CNI team"; 37 homepage = "https://github.com/containernetworking/plugins";
+7 -1
pkgs/applications/networking/cluster/terraform/default.nix
··· 1 - { stdenv, lib, buildEnv, buildGoPackage, fetchFromGitHub, makeWrapper 2 , runCommand, writeText, terraform-providers }: 3 4 let ··· 17 rev = "v${version}"; 18 inherit sha256; 19 }; 20 21 postInstall = '' 22 # remove all plugins, they are part of the main binary now
··· 1 + { stdenv, lib, buildEnv, buildGoPackage, fetchFromGitHub, makeWrapper, coreutils 2 , runCommand, writeText, terraform-providers }: 3 4 let ··· 17 rev = "v${version}"; 18 inherit sha256; 19 }; 20 + 21 + postPatch = '' 22 + # speakeasy hardcodes /bin/stty https://github.com/bgentry/speakeasy/issues/22 23 + substituteInPlace vendor/github.com/bgentry/speakeasy/speakeasy_unix.go \ 24 + --replace "/bin/stty" "${coreutils}/bin/stty" 25 + ''; 26 27 postInstall = '' 28 # remove all plugins, they are part of the main binary now
+6 -6
pkgs/applications/networking/gmailieer/default.nix pkgs/applications/networking/lieer/default.nix
··· 1 { stdenv, fetchFromGitHub, python3Packages }: 2 3 python3Packages.buildPythonApplication rec { 4 - name = "gmailieer-${version}"; 5 - version = "1.0"; 6 7 src = fetchFromGitHub { 8 owner = "gauteh"; 9 - repo = "gmailieer"; 10 rev = "v${version}"; 11 - sha256 = "1zzylv8xbcrh34bz0s29dawzcyx39lai8y8wk0bl4x75v1jfynvf"; 12 }; 13 14 propagatedBuildInputs = with python3Packages; [ ··· 27 tags in the notmuch database may be pushed back remotely to your 28 GMail account. 29 ''; 30 - homepage = "https://github.com/gauteh/gmailieer"; 31 - repositories.git = "https://github.com/gauteh/gmailieer.git"; 32 license = licenses.gpl3Plus; 33 maintainers = with maintainers; [ kaiha ]; 34 };
··· 1 { stdenv, fetchFromGitHub, python3Packages }: 2 3 python3Packages.buildPythonApplication rec { 4 + pname = "lieer"; 5 + version = "1.1"; 6 7 src = fetchFromGitHub { 8 owner = "gauteh"; 9 + repo = "lieer"; 10 rev = "v${version}"; 11 + sha256 = "19jx3sm925nrzl26km1bxbp6y5gk1mzwadd79vip2jl70b3xk9f8"; 12 }; 13 14 propagatedBuildInputs = with python3Packages; [ ··· 27 tags in the notmuch database may be pushed back remotely to your 28 GMail account. 29 ''; 30 + homepage = "https://lieer.gaute.vetsj.com/"; 31 + repositories.git = "https://github.com/gauteh/lieer.git"; 32 license = licenses.gpl3Plus; 33 maintainers = with maintainers; [ kaiha ]; 34 };
+3 -3
pkgs/applications/networking/ids/zeek/default.nix
··· 5 in 6 stdenv.mkDerivation rec { 7 pname = "zeek"; 8 - version = "3.1.1"; 9 10 src = fetchurl { 11 - url = "https://old.zeek.org/downloads/zeek-${version}.tar.gz"; 12 - sha256 = "0siybzdp8w62jqk5vdi5fxwvj6cn4r6c2d4z2axd4rj5vhv5zvx2"; 13 }; 14 15 nativeBuildInputs = [ cmake flex bison file ];
··· 5 in 6 stdenv.mkDerivation rec { 7 pname = "zeek"; 8 + version = "3.1.2"; 9 10 src = fetchurl { 11 + url = "https://download.zeek.org/zeek-${version}.tar.gz"; 12 + sha256 = "18aa4pfwav8m6vq7cr4bhfg243da54ak933rqbriljnhsrgp4n0q"; 13 }; 14 15 nativeBuildInputs = [ cmake flex bison file ];
+2 -2
pkgs/applications/networking/msmtp/default.nix
··· 9 10 in stdenv.mkDerivation rec { 11 pname = "msmtp"; 12 - version = "1.8.7"; 13 14 src = fetchurl { 15 url = "https://marlam.de/${pname}/releases/${pname}-${version}.tar.xz"; 16 - sha256 = "1waiiksa57byb7gvx1zmh6srvl6r8rvwqklk0slb3iaf4kfbqlws"; 17 }; 18 19 patches = [
··· 9 10 in stdenv.mkDerivation rec { 11 pname = "msmtp"; 12 + version = "1.8.8"; 13 14 src = fetchurl { 15 url = "https://marlam.de/${pname}/releases/${pname}-${version}.tar.xz"; 16 + sha256 = "1rarck61mz3mwg0l30vjj6j9fq6gc7gic0r1c1ppwpq2izj57jzc"; 17 }; 18 19 patches = [
+84
pkgs/applications/office/elementary-planner/0001-Revert-Add-patch.patch
···
··· 1 + From a6d8bd67416c848f9bf52f4746bda34216ae9993 Mon Sep 17 00:00:00 2001 2 + From: worldofpeace <worldofpeace@protonmail.ch> 3 + Date: Sun, 19 Apr 2020 12:48:59 -0400 4 + Subject: [PATCH] Revert "Add patch" 5 + 6 + This reverts commit c44127936b785afda0e914da4c1dc1e66a0ac97b. 7 + --- 8 + src/Application.vala | 49 -------------------------------------------- 9 + 1 file changed, 49 deletions(-) 10 + 11 + diff --git a/src/Application.vala b/src/Application.vala 12 + index 43d52fbc..82a9ebe5 100644 13 + --- a/src/Application.vala 14 + +++ b/src/Application.vala 15 + @@ -127,66 +127,17 @@ public class Planner : Gtk.Application { 16 + 17 + utils.apply_theme_changed (); 18 + 19 + - // Set Theme and Icon 20 + Gtk.Settings.get_default ().set_property ("gtk-icon-theme-name", "elementary"); 21 + Gtk.Settings.get_default ().set_property ("gtk-theme-name", "elementary"); 22 + 23 + - // Path Theme 24 + - var command = new Granite.Services.SimpleCommand (".", "echo $DESKTOP_SESSION"); 25 + - command.run (); 26 + - command.output_changed.connect ((text) => { 27 + - print ("DESKTOP_SESSION: %s\n".printf (text)); 28 + - }); 29 + - 30 + - if (get_os_info ("PRETTY_NAME") == null || get_os_info ("PRETTY_NAME").index_of ("elementary") == -1) { 31 + - string CSS = """ 32 + - window decoration { 33 + - box-shadow: none; 34 + - margin: 1px; 35 + - } 36 + - """; 37 + - 38 + - var _provider = new Gtk.CssProvider (); 39 + - _provider.load_from_data (CSS, CSS.length); 40 + - 41 + - Gtk.StyleContext.add_provider_for_screen ( 42 + - Gdk.Screen.get_default (), _provider, 43 + - Gtk.STYLE_PROVIDER_PRIORITY_APPLICATION 44 + - ); 45 + - } 46 + - 47 + // Set shortcut 48 + string quick_add_shortcut = settings.get_string ("quick-add-shortcut"); 49 + if (quick_add_shortcut == "") { 50 + quick_add_shortcut = "<Primary>Tab"; 51 + settings.set_string ("quick-add-shortcut", quick_add_shortcut); 52 + } 53 + - 54 + utils.set_quick_add_shortcut (quick_add_shortcut); 55 + } 56 + - 57 + - public string get_os_info (string field) { 58 + - string return_value = ""; 59 + - var file = File.new_for_path ("/etc/os-release"); 60 + - try { 61 + - var osrel = new Gee.HashMap<string, string> (); 62 + - var dis = new DataInputStream (file.read ()); 63 + - string line; 64 + - // Read lines until end of file (null) is reached 65 + - while ((line = dis.read_line (null)) != null) { 66 + - var osrel_component = line.split ("=", 2); 67 + - if (osrel_component.length == 2) { 68 + - osrel[osrel_component[0]] = osrel_component[1].replace ("\"", ""); 69 + - } 70 + - } 71 + - 72 + - return_value = osrel[field]; 73 + - } catch (Error e) { 74 + - warning ("Couldn't read os-release file, assuming elementary OS"); 75 + - } 76 + - 77 + - return return_value; 78 + - } 79 + 80 + public override int command_line (ApplicationCommandLine command_line) { 81 + bool silence_mode = false; 82 + -- 83 + 2.25.1 84 +
+12 -2
pkgs/applications/office/elementary-planner/default.nix
··· 15 16 stdenv.mkDerivation rec { 17 pname = "elementary-planner"; 18 - version = "2.2.14"; 19 20 src = fetchFromGitHub { 21 owner = "alainm23"; 22 repo = "planner"; 23 rev = version; 24 - sha256 = "14k5kiknr0d3my17p4v20iiqzifpz3y80gdzj8vdxic8yk2yr1ap"; 25 }; 26 27 nativeBuildInputs = [ 28 desktop-file-utils
··· 15 16 stdenv.mkDerivation rec { 17 pname = "elementary-planner"; 18 + version = "2.3.2"; 19 20 src = fetchFromGitHub { 21 owner = "alainm23"; 22 repo = "planner"; 23 rev = version; 24 + sha256 = "1kjk1zafx71zmax3whzpx6mzl037wlxri30bl2k9y9rg3fd09arr"; 25 }; 26 + 27 + patches = [ 28 + # Revert a patch the works around some stylesheet issues: 29 + # https://github.com/alainm23/planner/issues/268 30 + # https://github.com/alainm23/planner/issues/303 31 + # The don't seem to be a problem with Pantheon on NixOS 32 + # and for some reason produce the opposite effect with 33 + # pantheon's stylesheet. 34 + ./0001-Revert-Add-patch.patch 35 + ]; 36 37 nativeBuildInputs = [ 38 desktop-file-utils
+5
pkgs/applications/office/libreoffice/default.nix
··· 62 63 patches = [ 64 ./xdg-open-brief.patch 65 ]; 66 67 tarballPath = "external/tarballs";
··· 62 63 patches = [ 64 ./xdg-open-brief.patch 65 + (fetchpatch { 66 + url = "https://git.pld-linux.org/gitweb.cgi?p=packages/libreoffice.git;a=blob_plain;f=poppler-0.86.patch;h=76b8356d5f22ef537a83b0f9b0debab591f152fe;hb=a2737a61353e305a9ee69640fb20d4582c218008"; 67 + name = "poppler-0.86.patch"; 68 + sha256 = "0q6k4l8imgp8ailcv0qx5l83afyw44hah24fi7gjrm9xgv5sbb8j"; 69 + }) 70 ]; 71 72 tarballPath = "external/tarballs";
+4 -4
pkgs/applications/office/libreoffice/src-fresh/download.nix
··· 728 md5name = "a754c02f7051c2f21e52f8669a421b50485afcde9a581674d6106326b189d126-postgresql-9.2.24.tar.bz2"; 729 } 730 { 731 - name = "Python-3.7.6.tar.xz"; 732 - url = "http://dev-www.libreoffice.org/src/Python-3.7.6.tar.xz"; 733 - sha256 = "55a2cce72049f0794e9a11a84862e9039af9183603b78bc60d89539f82cf533f"; 734 md5 = ""; 735 - md5name = "55a2cce72049f0794e9a11a84862e9039af9183603b78bc60d89539f82cf533f-Python-3.7.6.tar.xz"; 736 } 737 { 738 name = "QR-Code-generator-1.4.0.tar.gz";
··· 728 md5name = "a754c02f7051c2f21e52f8669a421b50485afcde9a581674d6106326b189d126-postgresql-9.2.24.tar.bz2"; 729 } 730 { 731 + name = "Python-3.7.7.tar.xz"; 732 + url = "http://dev-www.libreoffice.org/src/Python-3.7.7.tar.xz"; 733 + sha256 = "06a0a9f1bf0d8cd1e4121194d666c4e28ddae4dd54346de6c343206599f02136"; 734 md5 = ""; 735 + md5name = "06a0a9f1bf0d8cd1e4121194d666c4e28ddae4dd54346de6c343206599f02136-Python-3.7.7.tar.xz"; 736 } 737 { 738 name = "QR-Code-generator-1.4.0.tar.gz";
+5 -5
pkgs/applications/office/libreoffice/src-fresh/primary.nix
··· 8 9 major = "6"; 10 minor = "4"; 11 - patch = "1"; 12 - tweak = "1"; 13 14 subdir = "${major}.${minor}.${patch}"; 15 ··· 17 18 src = fetchurl { 19 url = "https://download.documentfoundation.org/libreoffice/src/${subdir}/libreoffice-${version}.tar.xz"; 20 - sha256 = "03fqpkilz4yi35l447hb9r8gjwj23l61bpdkwg21jm8blm8kkvyj"; 21 }; 22 23 # FIXME rename 24 translations = fetchSrc { 25 name = "translations"; 26 - sha256 = "0a7arjlxxy7hjm1brxwd124bf1gkbl92bgygi3sbbhbsv07pjdcr"; 27 }; 28 29 # the "dictionaries" archive is not used for LO build because we already build hunspellDicts packages from ··· 31 32 help = fetchSrc { 33 name = "help"; 34 - sha256 = "1hfllrdyxrg5mgqry3dcrhjbdrd0d27k5mvv4sfj7nwjlmjh8rqq"; 35 }; 36 }
··· 8 9 major = "6"; 10 minor = "4"; 11 + patch = "3"; 12 + tweak = "2"; 13 14 subdir = "${major}.${minor}.${patch}"; 15 ··· 17 18 src = fetchurl { 19 url = "https://download.documentfoundation.org/libreoffice/src/${subdir}/libreoffice-${version}.tar.xz"; 20 + sha256 = "1cmbrhha7mlflnlbpla8fix07cxcgkdb7krnrgs1bylf31y5855w"; 21 }; 22 23 # FIXME rename 24 translations = fetchSrc { 25 name = "translations"; 26 + sha256 = "06z9hz4m3kdcljjc6y5s18001axjibj9xiyakdndkl9pmnnhn9h3"; 27 }; 28 29 # the "dictionaries" archive is not used for LO build because we already build hunspellDicts packages from ··· 31 32 help = fetchSrc { 33 name = "help"; 34 + sha256 = "0mpgrwg8z1q38j03l6m1sdpcplyjd5nz1nqaa13vfkryj2lflw45"; 35 }; 36 }
+2 -2
pkgs/applications/science/electronics/verilator/default.nix
··· 2 3 stdenv.mkDerivation rec { 4 pname = "verilator"; 5 - version = "4.030"; 6 7 src = fetchurl { 8 url = "https://www.veripool.org/ftp/${pname}-${version}.tgz"; 9 - sha256 = "07ldkf7xkr31n1dmx82bmzam8bvc1vsp32k76vd7yzn7r853qyky"; 10 }; 11 12 enableParallelBuilding = true;
··· 2 3 stdenv.mkDerivation rec { 4 pname = "verilator"; 5 + version = "4.032"; 6 7 src = fetchurl { 8 url = "https://www.veripool.org/ftp/${pname}-${version}.tgz"; 9 + sha256 = "1l3rhgw7pk59dz7dyhcl0iygn6c9rv9bv131rfzg66asxfwbfq1s"; 10 }; 11 12 enableParallelBuilding = true;
+22 -16
pkgs/applications/science/logic/beluga/default.nix
··· 1 - { stdenv, fetchFromGitHub, ocamlPackages, omake }: 2 3 - stdenv.mkDerivation { 4 - name = "beluga-20180403"; 5 6 src = fetchFromGitHub { 7 owner = "Beluga-lang"; 8 repo = "Beluga"; 9 - rev = "046aa59f008be70a7c4700b723bed0214ea8b687"; 10 - sha256 = "0m68y0r0wdw3mg2jks68bihaww7sg305zdfnic1rkndq2cxv0mld"; 11 }; 12 13 - nativeBuildInputs = with ocamlPackages; [ findlib ocamlbuild omake ]; 14 - buildInputs = with ocamlPackages; [ ocaml ulex ocaml_extlib ]; 15 16 - installPhase = '' 17 - mkdir -p $out 18 - cp -r bin $out/ 19 20 - mkdir -p $out/share/beluga 21 - cp -r tools/ examples/ $out/share/beluga 22 23 mkdir -p $out/share/emacs/site-lisp/beluga/ 24 cp -r tools/beluga-mode.el $out/share/emacs/site-lisp/beluga 25 ''; 26 27 - meta = { 28 description = "A functional language for reasoning about formal systems"; 29 homepage = "http://complogic.cs.mcgill.ca/beluga/"; 30 - license = stdenv.lib.licenses.gpl3Plus; 31 - maintainers = [ stdenv.lib.maintainers.bcdarwin ]; 32 - platforms = stdenv.lib.platforms.unix; 33 }; 34 }
··· 1 + { lib, fetchFromGitHub, ocamlPackages, rsync }: 2 3 + ocamlPackages.buildDunePackage { 4 + pname = "beluga"; 5 + version = "unstable-2020-03-11"; 6 7 src = fetchFromGitHub { 8 owner = "Beluga-lang"; 9 repo = "Beluga"; 10 + rev = "6133b2f572219333f304bb4f77c177592324c55b"; 11 + sha256 = "0sy6mi50z3mvs5z7dx38piydapk89all81rh038x3559b5fsk68q"; 12 }; 13 14 + useDune2 = true; 15 16 + buildInputs = with ocamlPackages; [ 17 + gen sedlex_2 ocaml_extlib dune-build-info linenoise 18 + ]; 19 20 + postPatch = '' 21 + patchShebangs ./TEST ./run_harpoon_test.sh 22 + ''; 23 + 24 + checkPhase = "./TEST"; 25 + checkInputs = [ rsync ]; 26 + doCheck = true; 27 28 + postInstall = '' 29 mkdir -p $out/share/emacs/site-lisp/beluga/ 30 cp -r tools/beluga-mode.el $out/share/emacs/site-lisp/beluga 31 ''; 32 33 + meta = with lib; { 34 description = "A functional language for reasoning about formal systems"; 35 homepage = "http://complogic.cs.mcgill.ca/beluga/"; 36 + license = licenses.gpl3Plus; 37 + maintainers = [ maintainers.bcdarwin ]; 38 + platforms = platforms.unix; 39 }; 40 }
+2 -2
pkgs/applications/science/logic/lean/default.nix
··· 2 3 stdenv.mkDerivation rec { 4 pname = "lean"; 5 - version = "3.8.0"; 6 7 src = fetchFromGitHub { 8 owner = "leanprover-community"; 9 repo = "lean"; 10 rev = "v${version}"; 11 - sha256 = "0frs2vhxlzdliyydb462c1886dn585zd7yp7hdxzsri2v6gdh89g"; 12 }; 13 14 nativeBuildInputs = [ cmake ];
··· 2 3 stdenv.mkDerivation rec { 4 pname = "lean"; 5 + version = "3.9.0"; 6 7 src = fetchFromGitHub { 8 owner = "leanprover-community"; 9 repo = "lean"; 10 rev = "v${version}"; 11 + sha256 = "0sklw211cmqp4y0c6nycfavpdxdpfwhq9a4sbwdlqd5agyf85h1j"; 12 }; 13 14 nativeBuildInputs = [ cmake ];
+7 -4
pkgs/applications/version-management/git-and-tools/delta/default.nix
··· 1 - { lib, fetchFromGitHub, rustPlatform }: 2 3 rustPlatform.buildRustPackage rec { 4 pname = "delta"; 5 - version = "0.0.17"; 6 7 src = fetchFromGitHub { 8 owner = "dandavison"; 9 repo = pname; 10 rev = version; 11 - sha256 = "1j01h60snciqp4psyxf67j3gbmi02c1baprsg9frzjacawbx8cz7"; 12 }; 13 14 - cargoSha256 = "176bfd57gc9casvk0p10ilvzw3q3rkkv7qflja778vrwr9zrmkzq"; 15 16 meta = with lib; { 17 homepage = "https://github.com/dandavison/delta";
··· 1 + { lib, fetchFromGitHub, rustPlatform, llvmPackages }: 2 3 rustPlatform.buildRustPackage rec { 4 pname = "delta"; 5 + version = "0.0.18"; 6 7 src = fetchFromGitHub { 8 owner = "dandavison"; 9 repo = pname; 10 rev = version; 11 + sha256 = "0cpd60861k9nd2gbzyb2hg5npnkgvsnyrvv7mlm30vb1833gz94z"; 12 }; 13 14 + LLVM_CONFIG_PATH = "${llvmPackages.llvm}/bin/llvm-config"; 15 + LIBCLANG_PATH = "${llvmPackages.libclang.lib}/lib"; 16 + 17 + cargoSha256 = "12gl50q5hf6nq571fqxfv61z4mwfjyw4jb2yqyqbsinwj2frwaxn"; 18 19 meta = with lib; { 20 homepage = "https://github.com/dandavison/delta";
+3 -1
pkgs/applications/version-management/redmine/Gemfile
··· 1 source 'https://rubygems.org' 2 3 gem "bundler", ">= 1.5.0" 4 5 - gem "rails", "5.2.4.1" 6 gem "rouge", "~> 3.12.0" 7 gem "request_store", "~> 1.4.1" 8 gem "mini_mime", "~> 1.0.1"
··· 1 source 'https://rubygems.org' 2 3 + ruby '>= 2.3.0', '< 2.7.0' if Bundler::VERSION >= '1.12.0' 4 gem "bundler", ">= 1.5.0" 5 6 + gem 'rails', '5.2.4.2' 7 + gem 'sprockets', '~> 3.7.2' if RUBY_VERSION < '2.5' 8 gem "rouge", "~> 3.12.0" 9 gem "request_store", "~> 1.4.1" 10 gem "mini_mime", "~> 1.0.1"
+62 -59
pkgs/applications/version-management/redmine/Gemfile.lock
··· 1 GEM 2 remote: https://rubygems.org/ 3 specs: 4 - actioncable (5.2.4.1) 5 - actionpack (= 5.2.4.1) 6 nio4r (~> 2.0) 7 websocket-driver (>= 0.6.1) 8 - actionmailer (5.2.4.1) 9 - actionpack (= 5.2.4.1) 10 - actionview (= 5.2.4.1) 11 - activejob (= 5.2.4.1) 12 mail (~> 2.5, >= 2.5.4) 13 rails-dom-testing (~> 2.0) 14 - actionpack (5.2.4.1) 15 - actionview (= 5.2.4.1) 16 - activesupport (= 5.2.4.1) 17 rack (~> 2.0, >= 2.0.8) 18 rack-test (>= 0.6.3) 19 rails-dom-testing (~> 2.0) ··· 21 actionpack-xml_parser (2.0.1) 22 actionpack (>= 5.0) 23 railties (>= 5.0) 24 - actionview (5.2.4.1) 25 - activesupport (= 5.2.4.1) 26 builder (~> 3.1) 27 erubi (~> 1.4) 28 rails-dom-testing (~> 2.0) 29 rails-html-sanitizer (~> 1.0, >= 1.0.3) 30 - activejob (5.2.4.1) 31 - activesupport (= 5.2.4.1) 32 globalid (>= 0.3.6) 33 - activemodel (5.2.4.1) 34 - activesupport (= 5.2.4.1) 35 - activerecord (5.2.4.1) 36 - activemodel (= 5.2.4.1) 37 - activesupport (= 5.2.4.1) 38 arel (>= 9.0) 39 - activestorage (5.2.4.1) 40 - actionpack (= 5.2.4.1) 41 - activerecord (= 5.2.4.1) 42 marcel (~> 0.3.1) 43 - activesupport (5.2.4.1) 44 concurrent-ruby (~> 1.0, >= 1.0.2) 45 i18n (>= 0.7, < 2) 46 minitest (~> 5.1) ··· 59 regexp_parser (~> 1.5) 60 xpath (~> 3.2) 61 childprocess (3.0.0) 62 - concurrent-ruby (1.1.5) 63 - crass (1.0.5) 64 css_parser (1.7.1) 65 addressable 66 csv (3.1.2) ··· 73 concurrent-ruby (~> 1.0) 74 jaro_winkler (1.5.4) 75 json (2.3.0) 76 - loofah (2.4.0) 77 crass (~> 1.0.2) 78 nokogiri (>= 1.5.9) 79 mail (2.7.1) 80 mini_mime (>= 0.1.1) 81 marcel (0.3.3) 82 mimemagic (~> 0.3.2) 83 - method_source (0.9.2) 84 - mimemagic (0.3.3) 85 mini_magick (4.9.5) 86 mini_mime (1.0.2) 87 mini_portile2 (2.4.0) 88 - minitest (5.13.0) 89 - mocha (1.11.1) 90 mysql2 (0.5.3) 91 net-ldap (0.16.2) 92 nio4r (2.5.2) 93 - nokogiri (1.10.7) 94 mini_portile2 (~> 2.4.0) 95 parallel (1.19.1) 96 - parser (2.6.5.0) 97 ast (~> 2.4.0) 98 pg (1.1.4) 99 - public_suffix (4.0.1) 100 - puma (3.12.2) 101 - rack (2.0.8) 102 rack-openid (1.4.2) 103 rack (>= 1.1.0) 104 ruby-openid (>= 2.1.8) 105 rack-test (1.1.0) 106 rack (>= 1.0, < 3) 107 - rails (5.2.4.1) 108 - actioncable (= 5.2.4.1) 109 - actionmailer (= 5.2.4.1) 110 - actionpack (= 5.2.4.1) 111 - actionview (= 5.2.4.1) 112 - activejob (= 5.2.4.1) 113 - activemodel (= 5.2.4.1) 114 - activerecord (= 5.2.4.1) 115 - activestorage (= 5.2.4.1) 116 - activesupport (= 5.2.4.1) 117 bundler (>= 1.3.0) 118 - railties (= 5.2.4.1) 119 sprockets-rails (>= 2.0.0) 120 rails-dom-testing (2.0.3) 121 activesupport (>= 4.2.0) 122 nokogiri (>= 1.6) 123 rails-html-sanitizer (1.3.0) 124 loofah (~> 2.3) 125 - railties (5.2.4.1) 126 - actionpack (= 5.2.4.1) 127 - activesupport (= 5.2.4.1) 128 method_source 129 rake (>= 0.8.7) 130 thor (>= 0.19.0, < 2.0) ··· 135 rbpdf-font (~> 1.19.0) 136 rbpdf-font (1.19.1) 137 redcarpet (3.5.0) 138 - regexp_parser (1.6.0) 139 request_store (1.4.1) 140 rack (>= 1.4) 141 - roadie (3.5.1) 142 css_parser (~> 1.4) 143 nokogiri (~> 1.8) 144 - roadie-rails (2.1.0) 145 railties (>= 5.1, < 6.1) 146 - roadie (~> 3.1) 147 rouge (3.12.0) 148 rubocop (0.76.0) 149 jaro_winkler (~> 1.5.1) ··· 152 rainbow (>= 2.2.2, < 4.0) 153 ruby-progressbar (~> 1.7) 154 unicode-display_width (>= 1.4.0, < 1.7) 155 - rubocop-performance (1.5.1) 156 rubocop (>= 0.71.0) 157 rubocop-rails (2.3.2) 158 rack (>= 1.1) 159 rubocop (>= 0.72.0) 160 ruby-openid (2.9.2) 161 ruby-progressbar (1.10.1) 162 - rubyzip (2.0.0) 163 - selenium-webdriver (3.142.6) 164 childprocess (>= 0.5, < 4.0) 165 rubyzip (>= 1.2.2) 166 simplecov (0.17.1) ··· 177 sprockets (>= 3.0.0) 178 thor (1.0.1) 179 thread_safe (0.3.6) 180 - tzinfo (1.2.5) 181 thread_safe (~> 0.1) 182 - unicode-display_width (1.6.0) 183 websocket-driver (0.7.1) 184 websocket-extensions (>= 0.1.0) 185 websocket-extensions (0.1.4) 186 xpath (3.2.0) 187 nokogiri (~> 1.8) 188 - yard (0.9.20) 189 190 PLATFORMS 191 ruby ··· 208 pg (~> 1.1.4) 209 puma (~> 3.7) 210 rack-openid 211 - rails (= 5.2.4.1) 212 rails-dom-testing 213 rbpdf (~> 1.20.0) 214 redcarpet (~> 3.5.0) ··· 223 simplecov (~> 0.17.0) 224 tzinfo-data 225 yard 226 227 BUNDLED WITH 228 2.1.4
··· 1 GEM 2 remote: https://rubygems.org/ 3 specs: 4 + actioncable (5.2.4.2) 5 + actionpack (= 5.2.4.2) 6 nio4r (~> 2.0) 7 websocket-driver (>= 0.6.1) 8 + actionmailer (5.2.4.2) 9 + actionpack (= 5.2.4.2) 10 + actionview (= 5.2.4.2) 11 + activejob (= 5.2.4.2) 12 mail (~> 2.5, >= 2.5.4) 13 rails-dom-testing (~> 2.0) 14 + actionpack (5.2.4.2) 15 + actionview (= 5.2.4.2) 16 + activesupport (= 5.2.4.2) 17 rack (~> 2.0, >= 2.0.8) 18 rack-test (>= 0.6.3) 19 rails-dom-testing (~> 2.0) ··· 21 actionpack-xml_parser (2.0.1) 22 actionpack (>= 5.0) 23 railties (>= 5.0) 24 + actionview (5.2.4.2) 25 + activesupport (= 5.2.4.2) 26 builder (~> 3.1) 27 erubi (~> 1.4) 28 rails-dom-testing (~> 2.0) 29 rails-html-sanitizer (~> 1.0, >= 1.0.3) 30 + activejob (5.2.4.2) 31 + activesupport (= 5.2.4.2) 32 globalid (>= 0.3.6) 33 + activemodel (5.2.4.2) 34 + activesupport (= 5.2.4.2) 35 + activerecord (5.2.4.2) 36 + activemodel (= 5.2.4.2) 37 + activesupport (= 5.2.4.2) 38 arel (>= 9.0) 39 + activestorage (5.2.4.2) 40 + actionpack (= 5.2.4.2) 41 + activerecord (= 5.2.4.2) 42 marcel (~> 0.3.1) 43 + activesupport (5.2.4.2) 44 concurrent-ruby (~> 1.0, >= 1.0.2) 45 i18n (>= 0.7, < 2) 46 minitest (~> 5.1) ··· 59 regexp_parser (~> 1.5) 60 xpath (~> 3.2) 61 childprocess (3.0.0) 62 + concurrent-ruby (1.1.6) 63 + crass (1.0.6) 64 css_parser (1.7.1) 65 addressable 66 csv (3.1.2) ··· 73 concurrent-ruby (~> 1.0) 74 jaro_winkler (1.5.4) 75 json (2.3.0) 76 + loofah (2.5.0) 77 crass (~> 1.0.2) 78 nokogiri (>= 1.5.9) 79 mail (2.7.1) 80 mini_mime (>= 0.1.1) 81 marcel (0.3.3) 82 mimemagic (~> 0.3.2) 83 + method_source (1.0.0) 84 + mimemagic (0.3.4) 85 mini_magick (4.9.5) 86 mini_mime (1.0.2) 87 mini_portile2 (2.4.0) 88 + minitest (5.14.0) 89 + mocha (1.11.2) 90 mysql2 (0.5.3) 91 net-ldap (0.16.2) 92 nio4r (2.5.2) 93 + nokogiri (1.10.9) 94 mini_portile2 (~> 2.4.0) 95 parallel (1.19.1) 96 + parser (2.7.1.0) 97 ast (~> 2.4.0) 98 pg (1.1.4) 99 + public_suffix (4.0.4) 100 + puma (3.12.4) 101 + rack (2.2.2) 102 rack-openid (1.4.2) 103 rack (>= 1.1.0) 104 ruby-openid (>= 2.1.8) 105 rack-test (1.1.0) 106 rack (>= 1.0, < 3) 107 + rails (5.2.4.2) 108 + actioncable (= 5.2.4.2) 109 + actionmailer (= 5.2.4.2) 110 + actionpack (= 5.2.4.2) 111 + actionview (= 5.2.4.2) 112 + activejob (= 5.2.4.2) 113 + activemodel (= 5.2.4.2) 114 + activerecord (= 5.2.4.2) 115 + activestorage (= 5.2.4.2) 116 + activesupport (= 5.2.4.2) 117 bundler (>= 1.3.0) 118 + railties (= 5.2.4.2) 119 sprockets-rails (>= 2.0.0) 120 rails-dom-testing (2.0.3) 121 activesupport (>= 4.2.0) 122 nokogiri (>= 1.6) 123 rails-html-sanitizer (1.3.0) 124 loofah (~> 2.3) 125 + railties (5.2.4.2) 126 + actionpack (= 5.2.4.2) 127 + activesupport (= 5.2.4.2) 128 method_source 129 rake (>= 0.8.7) 130 thor (>= 0.19.0, < 2.0) ··· 135 rbpdf-font (~> 1.19.0) 136 rbpdf-font (1.19.1) 137 redcarpet (3.5.0) 138 + regexp_parser (1.7.0) 139 request_store (1.4.1) 140 rack (>= 1.4) 141 + roadie (4.0.0) 142 css_parser (~> 1.4) 143 nokogiri (~> 1.8) 144 + roadie-rails (2.1.1) 145 railties (>= 5.1, < 6.1) 146 + roadie (>= 3.1, < 5.0) 147 rouge (3.12.0) 148 rubocop (0.76.0) 149 jaro_winkler (~> 1.5.1) ··· 152 rainbow (>= 2.2.2, < 4.0) 153 ruby-progressbar (~> 1.7) 154 unicode-display_width (>= 1.4.0, < 1.7) 155 + rubocop-performance (1.5.2) 156 rubocop (>= 0.71.0) 157 rubocop-rails (2.3.2) 158 rack (>= 1.1) 159 rubocop (>= 0.72.0) 160 ruby-openid (2.9.2) 161 ruby-progressbar (1.10.1) 162 + rubyzip (2.3.0) 163 + selenium-webdriver (3.142.7) 164 childprocess (>= 0.5, < 4.0) 165 rubyzip (>= 1.2.2) 166 simplecov (0.17.1) ··· 177 sprockets (>= 3.0.0) 178 thor (1.0.1) 179 thread_safe (0.3.6) 180 + tzinfo (1.2.7) 181 thread_safe (~> 0.1) 182 + unicode-display_width (1.6.1) 183 websocket-driver (0.7.1) 184 websocket-extensions (>= 0.1.0) 185 websocket-extensions (0.1.4) 186 xpath (3.2.0) 187 nokogiri (~> 1.8) 188 + yard (0.9.24) 189 190 PLATFORMS 191 ruby ··· 208 pg (~> 1.1.4) 209 puma (~> 3.7) 210 rack-openid 211 + rails (= 5.2.4.2) 212 rails-dom-testing 213 rbpdf (~> 1.20.0) 214 redcarpet (~> 3.5.0) ··· 223 simplecov (~> 0.17.0) 224 tzinfo-data 225 yard 226 + 227 + RUBY VERSION 228 + ruby 2.6.6p146 229 230 BUNDLED WITH 231 2.1.4
+3 -3
pkgs/applications/version-management/redmine/default.nix
··· 1 { stdenv, fetchurl, bundlerEnv, ruby }: 2 3 let 4 - version = "4.1.0"; 5 rubyEnv = bundlerEnv { 6 name = "redmine-env-${version}"; 7 8 inherit ruby; 9 gemdir = ./.; 10 - groups = [ "ldap" "openid" ]; 11 }; 12 in 13 stdenv.mkDerivation rec { ··· 16 17 src = fetchurl { 18 url = "https://www.redmine.org/releases/${pname}-${version}.tar.gz"; 19 - sha256 = "1fxc0xql54cfvj4g8v31vsv19jbij326qkgdz2h5xlp09r821wli"; 20 }; 21 22 buildInputs = [ rubyEnv rubyEnv.wrappedRuby rubyEnv.bundler ];
··· 1 { stdenv, fetchurl, bundlerEnv, ruby }: 2 3 let 4 + version = "4.1.1"; 5 rubyEnv = bundlerEnv { 6 name = "redmine-env-${version}"; 7 8 inherit ruby; 9 gemdir = ./.; 10 + groups = [ "development" "ldap" "markdown" "minimagick" "openid" "test" ]; 11 }; 12 in 13 stdenv.mkDerivation rec { ··· 16 17 src = fetchurl { 18 url = "https://www.redmine.org/releases/${pname}-${version}.tar.gz"; 19 + sha256 = "1nndy5hz8zvfglxf1f3bsb1pkrfwinfxzkdan1vjs3rkckkszyh5"; 20 }; 21 22 buildInputs = [ rubyEnv rubyEnv.wrappedRuby rubyEnv.bundler ];
+244 -64
pkgs/applications/version-management/redmine/gemset.nix
··· 1 { 2 actioncable = { 3 dependencies = ["actionpack" "nio4r" "websocket-driver"]; 4 source = { 5 remotes = ["https://rubygems.org"]; 6 - sha256 = "1yz5mcjl4is99650vq6rkv539xccq8mp5zsbvzh43wqzfga1llwm"; 7 type = "gem"; 8 }; 9 - version = "5.2.4.1"; 10 }; 11 actionmailer = { 12 dependencies = ["actionpack" "actionview" "activejob" "mail" "rails-dom-testing"]; 13 source = { 14 remotes = ["https://rubygems.org"]; 15 - sha256 = "1dbw3q3yyh7m7wgc4196hc3v86v123z0xz40llmic8iwx3d9vnda"; 16 type = "gem"; 17 }; 18 - version = "5.2.4.1"; 19 }; 20 actionpack = { 21 dependencies = ["actionview" "activesupport" "rack" "rack-test" "rails-dom-testing" "rails-html-sanitizer"]; 22 source = { 23 remotes = ["https://rubygems.org"]; 24 - sha256 = "0f5pm62y08j679k3vhcml8436f92kripd6j3v5dyvn760kwzz72z"; 25 type = "gem"; 26 }; 27 - version = "5.2.4.1"; 28 }; 29 actionpack-xml_parser = { 30 dependencies = ["actionpack" "railties"]; 31 source = { 32 remotes = ["https://rubygems.org"]; 33 sha256 = "1rnm6jrw3mzcf2g3q498igmhsn0kfkxq79w0nm532iclx4g4djs0"; ··· 37 }; 38 actionview = { 39 dependencies = ["activesupport" "builder" "erubi" "rails-dom-testing" "rails-html-sanitizer"]; 40 source = { 41 remotes = ["https://rubygems.org"]; 42 - sha256 = "0hnkyx268czfb6ljv6ipcnz9dbgsb1z9n1gcr6279z9wx9550zij"; 43 type = "gem"; 44 }; 45 - version = "5.2.4.1"; 46 }; 47 activejob = { 48 dependencies = ["activesupport" "globalid"]; 49 source = { 50 remotes = ["https://rubygems.org"]; 51 - sha256 = "0k4j3fcfc8m4hxwhs8xnbxazra760j3amn5r2zm2d5r1a1nqfh91"; 52 type = "gem"; 53 }; 54 - version = "5.2.4.1"; 55 }; 56 activemodel = { 57 dependencies = ["activesupport"]; 58 source = { 59 remotes = ["https://rubygems.org"]; 60 - sha256 = "0sg1yyz710pxhq9z0jsbpbgn666y8iv4aj7pywglydipp4i0bpx1"; 61 type = "gem"; 62 }; 63 - version = "5.2.4.1"; 64 }; 65 activerecord = { 66 dependencies = ["activemodel" "activesupport" "arel"]; 67 source = { 68 remotes = ["https://rubygems.org"]; 69 - sha256 = "1p35d6pj1370mnlppqq9lhr7m1ck82xvv621wq6hy12v41qfdnrg"; 70 type = "gem"; 71 }; 72 - version = "5.2.4.1"; 73 }; 74 activestorage = { 75 dependencies = ["actionpack" "activerecord" "marcel"]; 76 source = { 77 remotes = ["https://rubygems.org"]; 78 - sha256 = "0dd8k91b88b875mypwqific2jilgzj5bx1637cwmzi4c0cy1v17f"; 79 type = "gem"; 80 }; 81 - version = "5.2.4.1"; 82 }; 83 activesupport = { 84 dependencies = ["concurrent-ruby" "i18n" "minitest" "tzinfo"]; 85 source = { 86 remotes = ["https://rubygems.org"]; 87 - sha256 = "0lmlnx79sv18xv1ddm4vq7z3mwdfa4468mq5186av0k8n1k471sp"; 88 type = "gem"; 89 }; 90 - version = "5.2.4.1"; 91 }; 92 addressable = { 93 dependencies = ["public_suffix"]; 94 source = { 95 remotes = ["https://rubygems.org"]; 96 sha256 = "1fvchp2rhp2rmigx7qglf69xvjqvzq7x0g49naliw29r2bz656sy"; ··· 99 version = "2.7.0"; 100 }; 101 arel = { 102 source = { 103 remotes = ["https://rubygems.org"]; 104 sha256 = "1jk7wlmkr61f6g36w9s2sn46nmdg6wn2jfssrhbhirv5x9n95nk0"; ··· 107 version = "9.0.0"; 108 }; 109 ast = { 110 source = { 111 remotes = ["https://rubygems.org"]; 112 sha256 = "184ssy3w93nkajlz2c70ifm79jp3j737294kbc5fjw69v1w0n9x7"; ··· 115 version = "2.4.0"; 116 }; 117 builder = { 118 source = { 119 remotes = ["https://rubygems.org"]; 120 sha256 = "045wzckxpwcqzrjr353cxnyaxgf0qg22jh00dcx7z38cys5g1jlr"; ··· 124 }; 125 capybara = { 126 dependencies = ["addressable" "mini_mime" "nokogiri" "rack" "rack-test" "regexp_parser" "xpath"]; 127 source = { 128 remotes = ["https://rubygems.org"]; 129 sha256 = "1bq1y3gy98rqgw8z69b42isc2klb75fvlwvpi36vycf1yk0sfmmx"; ··· 132 version = "3.25.0"; 133 }; 134 childprocess = { 135 source = { 136 remotes = ["https://rubygems.org"]; 137 sha256 = "1ic028k8xgm2dds9mqnvwwx3ibaz32j8455zxr9f4bcnviyahya5"; ··· 140 version = "3.0.0"; 141 }; 142 concurrent-ruby = { 143 source = { 144 remotes = ["https://rubygems.org"]; 145 - sha256 = "1x07r23s7836cpp5z9yrlbpljcxpax14yw4fy4bnp6crhr6x24an"; 146 type = "gem"; 147 }; 148 - version = "1.1.5"; 149 }; 150 crass = { 151 source = { 152 remotes = ["https://rubygems.org"]; 153 - sha256 = "030sc98kjrb36rh7g21qsbdfxrj6knsjkx0mn3b7gig8zknwhp2f"; 154 type = "gem"; 155 }; 156 - version = "1.0.5"; 157 }; 158 css_parser = { 159 dependencies = ["addressable"]; 160 source = { 161 remotes = ["https://rubygems.org"]; 162 sha256 = "04c4dl8cm5rjr50k9qa6yl9r05fk9zcb1zxh0y0cdahxlsgcydfw"; ··· 165 version = "1.7.1"; 166 }; 167 csv = { 168 source = { 169 remotes = ["https://rubygems.org"]; 170 sha256 = "00szzw96bqz59r0kaab4p75qb0wq54iahmq37wpdg96bxc8y80f5"; ··· 173 version = "3.1.2"; 174 }; 175 docile = { 176 source = { 177 remotes = ["https://rubygems.org"]; 178 sha256 = "0qrwiyagxzl8zlx3dafb0ay8l14ib7imb2rsmx70i5cp420v8gif"; ··· 181 version = "1.3.2"; 182 }; 183 erubi = { 184 source = { 185 remotes = ["https://rubygems.org"]; 186 sha256 = "1nwzxnqhr31fn7nbqmffcysvxjdfl3bhxi0bld5qqhcnfc1xd13x"; ··· 190 }; 191 globalid = { 192 dependencies = ["activesupport"]; 193 source = { 194 remotes = ["https://rubygems.org"]; 195 sha256 = "1zkxndvck72bfw235bd9nl2ii0lvs5z88q14706cmn702ww2mxv1"; ··· 198 version = "0.4.2"; 199 }; 200 htmlentities = { 201 source = { 202 remotes = ["https://rubygems.org"]; 203 sha256 = "1nkklqsn8ir8wizzlakncfv42i32wc0w9hxp00hvdlgjr7376nhj"; ··· 207 }; 208 i18n = { 209 dependencies = ["concurrent-ruby"]; 210 source = { 211 remotes = ["https://rubygems.org"]; 212 sha256 = "1hfxnlyr618s25xpafw9mypa82qppjccbh292c4l3bj36az7f6wl"; ··· 215 version = "1.6.0"; 216 }; 217 jaro_winkler = { 218 source = { 219 remotes = ["https://rubygems.org"]; 220 sha256 = "1y8l6k34svmdyqxya3iahpwbpvmn3fswhwsvrz0nk1wyb8yfihsh"; ··· 223 version = "1.5.4"; 224 }; 225 json = { 226 source = { 227 remotes = ["https://rubygems.org"]; 228 sha256 = "0nrmw2r4nfxlfgprfgki3hjifgrcrs3l5zvm3ca3gb4743yr25mn"; ··· 232 }; 233 loofah = { 234 dependencies = ["crass" "nokogiri"]; 235 source = { 236 remotes = ["https://rubygems.org"]; 237 - sha256 = "1g7ps9m3s14cajhxrfgbzahv9i3gy47s4hqrv3mpybpj5cyr0srn"; 238 type = "gem"; 239 }; 240 - version = "2.4.0"; 241 }; 242 mail = { 243 dependencies = ["mini_mime"]; 244 source = { 245 remotes = ["https://rubygems.org"]; 246 sha256 = "00wwz6ys0502dpk8xprwcqfwyf3hmnx6lgxaiq6vj43mkx43sapc"; ··· 250 }; 251 marcel = { 252 dependencies = ["mimemagic"]; 253 source = { 254 remotes = ["https://rubygems.org"]; 255 sha256 = "1nxbjmcyg8vlw6zwagf17l9y2mwkagmmkg95xybpn4bmf3rfnksx"; ··· 258 version = "0.3.3"; 259 }; 260 method_source = { 261 source = { 262 remotes = ["https://rubygems.org"]; 263 - sha256 = "1pviwzvdqd90gn6y7illcdd9adapw8fczml933p5vl739dkvl3lq"; 264 type = "gem"; 265 }; 266 - version = "0.9.2"; 267 }; 268 mimemagic = { 269 source = { 270 remotes = ["https://rubygems.org"]; 271 - sha256 = "04cp5sfbh1qx82yqxn0q75c7hlcx8y1dr5g3kyzwm4mx6wi2gifw"; 272 type = "gem"; 273 }; 274 - version = "0.3.3"; 275 }; 276 mini_magick = { 277 source = { 278 remotes = ["https://rubygems.org"]; 279 sha256 = "0qy09qrd5bwh8mkbj514n5vcw9ni73218h9s3zmvbpmdwrnzi8j4"; ··· 282 version = "4.9.5"; 283 }; 284 mini_mime = { 285 source = { 286 remotes = ["https://rubygems.org"]; 287 sha256 = "1axm0rxyx3ss93wbmfkm78a6x03l8y4qy60rhkkiq0aza0vwq3ha"; ··· 290 version = "1.0.2"; 291 }; 292 mini_portile2 = { 293 source = { 294 remotes = ["https://rubygems.org"]; 295 sha256 = "15zplpfw3knqifj9bpf604rb3wc1vhq6363pd6lvhayng8wql5vy"; ··· 298 version = "2.4.0"; 299 }; 300 minitest = { 301 source = { 302 remotes = ["https://rubygems.org"]; 303 - sha256 = "0w16p7cvslh3hxd3cia8jg4pd85z7rz7xqb16vh42gj4rijn8rmi"; 304 type = "gem"; 305 }; 306 - version = "5.13.0"; 307 }; 308 mocha = { 309 source = { 310 remotes = ["https://rubygems.org"]; 311 - sha256 = "06i2q5qjr9mvjgjc8w41pdf3qalw340y33wjvzc0rp4a1cbbb7pp"; 312 type = "gem"; 313 }; 314 - version = "1.11.1"; 315 }; 316 mysql2 = { 317 source = { 318 remotes = ["https://rubygems.org"]; 319 sha256 = "0d14pcy5m4hjig0zdxnl9in5f4izszc7v9zcczf2gyi5kiyxk8jw"; ··· 322 version = "0.5.3"; 323 }; 324 net-ldap = { 325 source = { 326 remotes = ["https://rubygems.org"]; 327 sha256 = "1vzfhivjfr9q65hkln7xig3qcba6fw9y4kb4384fpm7d7ww0b7xg"; ··· 330 version = "0.16.2"; 331 }; 332 nio4r = { 333 source = { 334 remotes = ["https://rubygems.org"]; 335 sha256 = "0gnmvbryr521r135yz5bv8354m7xn6miiapfgpg1bnwsvxz8xj6c"; ··· 339 }; 340 nokogiri = { 341 dependencies = ["mini_portile2"]; 342 source = { 343 remotes = ["https://rubygems.org"]; 344 - sha256 = "0r0qpgf80h764k176yr63gqbs2z0xbsp8vlvs2a79d5r9vs83kln"; 345 type = "gem"; 346 }; 347 - version = "1.10.7"; 348 }; 349 parallel = { 350 source = { 351 remotes = ["https://rubygems.org"]; 352 sha256 = "12jijkap4akzdv11lm08dglsc8jmc87xcgq6947i1s3qb69f4zn2"; ··· 356 }; 357 parser = { 358 dependencies = ["ast"]; 359 source = { 360 remotes = ["https://rubygems.org"]; 361 - sha256 = "09davv4ld6caqlczw64vhwf8hr41apys3cj8v2h96yxs4qg1m2iw"; 362 type = "gem"; 363 }; 364 - version = "2.6.5.0"; 365 }; 366 pg = { 367 source = { 368 remotes = ["https://rubygems.org"]; 369 sha256 = "0fmnyxcyrvgdbgq7m09whgn9i8rwfybk0w8aii1nc4g5kqw0k2jy"; ··· 372 version = "1.1.4"; 373 }; 374 public_suffix = { 375 source = { 376 remotes = ["https://rubygems.org"]; 377 - sha256 = "0xnfv2j2bqgdpg2yq9i2rxby0w2sc9h5iyjkpaas2xknwrgmhdb0"; 378 type = "gem"; 379 }; 380 - version = "4.0.1"; 381 }; 382 puma = { 383 source = { 384 remotes = ["https://rubygems.org"]; 385 - sha256 = "07sb9xqc9bn5lvl9ia25w8x1fwzk52p5vgysnvjlc3hvn0r00ysj"; 386 type = "gem"; 387 }; 388 - version = "3.12.2"; 389 }; 390 rack = { 391 source = { 392 remotes = ["https://rubygems.org"]; 393 - sha256 = "1id0jsslx1ipv0pbqjfn7mjbb2vx2xybk7qypq59a17163xp30gr"; 394 type = "gem"; 395 }; 396 - version = "2.0.8"; 397 }; 398 rack-openid = { 399 dependencies = ["rack" "ruby-openid"]; 400 source = { 401 remotes = ["https://rubygems.org"]; 402 sha256 = "0sg85yn981j3a0iri3ch4znzdwscvz29l7vrk3dafqw4fdg31llc"; ··· 406 }; 407 rack-test = { 408 dependencies = ["rack"]; 409 source = { 410 remotes = ["https://rubygems.org"]; 411 sha256 = "0rh8h376mx71ci5yklnpqqn118z3bl67nnv5k801qaqn1zs62h8m"; ··· 415 }; 416 rails = { 417 dependencies = ["actioncable" "actionmailer" "actionpack" "actionview" "activejob" "activemodel" "activerecord" "activestorage" "activesupport" "railties" "sprockets-rails"]; 418 source = { 419 remotes = ["https://rubygems.org"]; 420 - sha256 = "1198azwbhlhq2n9xmpb19709d6smkanimip9cagvnlihagw80b20"; 421 type = "gem"; 422 }; 423 - version = "5.2.4.1"; 424 }; 425 rails-dom-testing = { 426 dependencies = ["activesupport" "nokogiri"]; 427 source = { 428 remotes = ["https://rubygems.org"]; 429 sha256 = "1lfq2a7kp2x64dzzi5p4cjcbiv62vxh9lyqk2f0rqq3fkzrw8h5i"; ··· 433 }; 434 rails-html-sanitizer = { 435 dependencies = ["loofah"]; 436 source = { 437 remotes = ["https://rubygems.org"]; 438 sha256 = "1icpqmxbppl4ynzmn6dx7wdil5hhq6fz707m9ya6d86c7ys8sd4f"; ··· 442 }; 443 railties = { 444 dependencies = ["actionpack" "activesupport" "method_source" "rake" "thor"]; 445 source = { 446 remotes = ["https://rubygems.org"]; 447 - sha256 = "1iqsqyyjscwnj2d3i0zl2k9apgsm7bb92l5h4wv1zbpdbb30wsqb"; 448 type = "gem"; 449 }; 450 - version = "5.2.4.1"; 451 }; 452 rainbow = { 453 source = { 454 remotes = ["https://rubygems.org"]; 455 sha256 = "0bb2fpjspydr6x0s8pn1pqkzmxszvkfapv0p4627mywl7ky4zkhk"; ··· 458 version = "3.0.0"; 459 }; 460 rake = { 461 source = { 462 remotes = ["https://rubygems.org"]; 463 sha256 = "0w6qza25bq1s825faaglkx1k6d59aiyjjk3yw3ip5sb463mhhai9"; ··· 467 }; 468 rbpdf = { 469 dependencies = ["htmlentities" "rbpdf-font"]; 470 source = { 471 remotes = ["https://rubygems.org"]; 472 sha256 = "0sdj8frakpdms820rwlil38h9bh3p24xmwnjrxsjc1p9irc3za71"; ··· 475 version = "1.20.1"; 476 }; 477 rbpdf-font = { 478 source = { 479 remotes = ["https://rubygems.org"]; 480 sha256 = "0pxlr0l4vf785qpy55m439dyii63a26l0sd0yyhbwwcy9zm9hd1v"; ··· 483 version = "1.19.1"; 484 }; 485 redcarpet = { 486 source = { 487 remotes = ["https://rubygems.org"]; 488 sha256 = "0skcyx1h8b5ms0rp2zm3ql6g322b8c1adnkwkqyv7z3kypb4bm7k"; ··· 491 version = "3.5.0"; 492 }; 493 regexp_parser = { 494 source = { 495 remotes = ["https://rubygems.org"]; 496 - sha256 = "1l44ml30jvqpdi3707x1n1dinq7fx9887pv3q2ywyfmi4kja7yf2"; 497 type = "gem"; 498 }; 499 - version = "1.6.0"; 500 }; 501 request_store = { 502 dependencies = ["rack"]; 503 source = { 504 remotes = ["https://rubygems.org"]; 505 sha256 = "1963330z03fk382fi8y231ygcbnh86m91dqlp5rh1mwy9ihzzl6d"; ··· 509 }; 510 roadie = { 511 dependencies = ["css_parser" "nokogiri"]; 512 source = { 513 remotes = ["https://rubygems.org"]; 514 - sha256 = "1zihd316bkbnrinz5s1s7pg7s0cadhhj6qs7wmc713j0g6ai1k9r"; 515 type = "gem"; 516 }; 517 - version = "3.5.1"; 518 }; 519 roadie-rails = { 520 dependencies = ["railties" "roadie"]; 521 source = { 522 remotes = ["https://rubygems.org"]; 523 - sha256 = "0hdkmnxrmw31dn9jq43xiypz2v6rbvg4x2yd2hgl2xbl3lm1ln7i"; 524 type = "gem"; 525 }; 526 - version = "2.1.0"; 527 }; 528 rouge = { 529 source = { 530 remotes = ["https://rubygems.org"]; 531 sha256 = "08fpnxbhqv5sqpnfjasl1ysxafssyq4q1yhcqamqqzmb9czj1czw"; ··· 535 }; 536 rubocop = { 537 dependencies = ["jaro_winkler" "parallel" "parser" "rainbow" "ruby-progressbar" "unicode-display_width"]; 538 source = { 539 remotes = ["https://rubygems.org"]; 540 sha256 = "07x51ixlx76y194xsszh5lbkaqakz44ykbrjxg3qaggbs18790q0"; ··· 544 }; 545 rubocop-performance = { 546 dependencies = ["rubocop"]; 547 source = { 548 remotes = ["https://rubygems.org"]; 549 - sha256 = "1kn6rb0ma32gjp5qdvrbbb9ckh66rm6xpfrw8h3kr7svirsww2h8"; 550 type = "gem"; 551 }; 552 - version = "1.5.1"; 553 }; 554 rubocop-rails = { 555 dependencies = ["rack" "rubocop"]; 556 source = { 557 remotes = ["https://rubygems.org"]; 558 sha256 = "1q7ffsq1cjm4m949nh935kjzv4zf1pacnrl00siwh8flhcn3mmjf"; ··· 561 version = "2.3.2"; 562 }; 563 ruby-openid = { 564 source = { 565 remotes = ["https://rubygems.org"]; 566 sha256 = "190p1m0bxd9xkfk1j6cpcv3x5c367g36nsglg4m1fcwqdd13k3kz"; ··· 569 version = "2.9.2"; 570 }; 571 ruby-progressbar = { 572 source = { 573 remotes = ["https://rubygems.org"]; 574 sha256 = "1k77i0d4wsn23ggdd2msrcwfy0i376cglfqypkk2q77r2l3408zf"; ··· 577 version = "1.10.1"; 578 }; 579 rubyzip = { 580 source = { 581 remotes = ["https://rubygems.org"]; 582 - sha256 = "1gz0ri0pa2xr7b6bf66yjc2wfvk51f4gi6yk7bklwl1nr65zc4gz"; 583 type = "gem"; 584 }; 585 - version = "2.0.0"; 586 }; 587 selenium-webdriver = { 588 dependencies = ["childprocess" "rubyzip"]; 589 source = { 590 remotes = ["https://rubygems.org"]; 591 - sha256 = "11abil34dr8p1kw7hlaqd6kr430v4srmhzf72zzqvhcimlfvm4yb"; 592 type = "gem"; 593 }; 594 - version = "3.142.6"; 595 }; 596 simplecov = { 597 dependencies = ["docile" "json" "simplecov-html"]; 598 source = { 599 remotes = ["https://rubygems.org"]; 600 sha256 = "1135k46nik05sdab30yxb8264lqiz01c8v000g16cl9pjc4mxrdw"; ··· 603 version = "0.17.1"; 604 }; 605 simplecov-html = { 606 source = { 607 remotes = ["https://rubygems.org"]; 608 sha256 = "1lihraa4rgxk8wbfl77fy9sf0ypk31iivly8vl3w04srd7i0clzn"; ··· 612 }; 613 sprockets = { 614 dependencies = ["concurrent-ruby" "rack"]; 615 source = { 616 remotes = ["https://rubygems.org"]; 617 sha256 = "0jm37zpvvm1arxjwrd6am0wrdbfhrhc5y0l4p2i3p11z04bsvgap"; ··· 621 }; 622 sprockets-rails = { 623 dependencies = ["actionpack" "activesupport" "sprockets"]; 624 source = { 625 remotes = ["https://rubygems.org"]; 626 sha256 = "0ab42pm8p5zxpv3sfraq45b9lj39cz9mrpdirm30vywzrwwkm5p1"; ··· 629 version = "3.2.1"; 630 }; 631 thor = { 632 source = { 633 remotes = ["https://rubygems.org"]; 634 sha256 = "1xbhkmyhlxwzshaqa7swy2bx6vd64mm0wrr8g3jywvxy7hg0cwkm"; ··· 637 version = "1.0.1"; 638 }; 639 thread_safe = { 640 source = { 641 remotes = ["https://rubygems.org"]; 642 sha256 = "0nmhcgq6cgz44srylra07bmaw99f5271l0dpsvl5f75m44l0gmwy"; ··· 646 }; 647 tzinfo = { 648 dependencies = ["thread_safe"]; 649 source = { 650 remotes = ["https://rubygems.org"]; 651 - sha256 = "1fjx9j327xpkkdlxwmkl3a8wqj7i4l4jwlrv3z13mg95z9wl253z"; 652 type = "gem"; 653 }; 654 - version = "1.2.5"; 655 }; 656 unicode-display_width = { 657 source = { 658 remotes = ["https://rubygems.org"]; 659 - sha256 = "08kfiniak1pvg3gn5k6snpigzvhvhyg7slmm0s2qx5zkj62c1z2w"; 660 type = "gem"; 661 }; 662 - version = "1.6.0"; 663 }; 664 websocket-driver = { 665 dependencies = ["websocket-extensions"]; 666 source = { 667 remotes = ["https://rubygems.org"]; 668 sha256 = "1bxamwqldmy98hxs5pqby3andws14hl36ch78g0s81gaz9b91nj2"; ··· 671 version = "0.7.1"; 672 }; 673 websocket-extensions = { 674 source = { 675 remotes = ["https://rubygems.org"]; 676 sha256 = "00i624ng1nvkz1yckj3f8yxxp6hi7xaqf40qh9q3hj2n1l9i8g6m"; ··· 680 }; 681 xpath = { 682 dependencies = ["nokogiri"]; 683 source = { 684 remotes = ["https://rubygems.org"]; 685 sha256 = "0bh8lk9hvlpn7vmi6h4hkcwjzvs2y0cmkk3yjjdr8fxvj6fsgzbd"; ··· 688 version = "3.2.0"; 689 }; 690 yard = { 691 source = { 692 remotes = ["https://rubygems.org"]; 693 - sha256 = "0rxqwry3h2hjz069f0kfr140wgx1khgljnqf112dk5x9rm4l0xny"; 694 type = "gem"; 695 }; 696 - version = "0.9.20"; 697 }; 698 }
··· 1 { 2 actioncable = { 3 dependencies = ["actionpack" "nio4r" "websocket-driver"]; 4 + groups = ["default"]; 5 + platforms = []; 6 source = { 7 remotes = ["https://rubygems.org"]; 8 + sha256 = "0q4by8d41n972j8cdcddrwsh7qphcki50xvgm1syrawyck6w1f5v"; 9 type = "gem"; 10 }; 11 + version = "5.2.4.2"; 12 }; 13 actionmailer = { 14 dependencies = ["actionpack" "actionview" "activejob" "mail" "rails-dom-testing"]; 15 + groups = ["default"]; 16 + platforms = []; 17 source = { 18 remotes = ["https://rubygems.org"]; 19 + sha256 = "0kg2nayy8wmxhfp52217h80yqr0mcg793xw3cjlfg9lkvdh0nb5z"; 20 type = "gem"; 21 }; 22 + version = "5.2.4.2"; 23 }; 24 actionpack = { 25 dependencies = ["actionview" "activesupport" "rack" "rack-test" "rails-dom-testing" "rails-html-sanitizer"]; 26 + groups = ["default"]; 27 + platforms = []; 28 source = { 29 remotes = ["https://rubygems.org"]; 30 + sha256 = "1w1l9i6q9xns4yl41l582pyc5i1xi40yyyq802drm58gwylv3wax"; 31 type = "gem"; 32 }; 33 + version = "5.2.4.2"; 34 }; 35 actionpack-xml_parser = { 36 dependencies = ["actionpack" "railties"]; 37 + groups = ["default"]; 38 + platforms = []; 39 source = { 40 remotes = ["https://rubygems.org"]; 41 sha256 = "1rnm6jrw3mzcf2g3q498igmhsn0kfkxq79w0nm532iclx4g4djs0"; ··· 45 }; 46 actionview = { 47 dependencies = ["activesupport" "builder" "erubi" "rails-dom-testing" "rails-html-sanitizer"]; 48 + groups = ["default"]; 49 + platforms = []; 50 source = { 51 remotes = ["https://rubygems.org"]; 52 + sha256 = "0fp3my6216lb9gp800s46y0404jwfl6xb3j9rvx4zf087497q8lp"; 53 type = "gem"; 54 }; 55 + version = "5.2.4.2"; 56 }; 57 activejob = { 58 dependencies = ["activesupport" "globalid"]; 59 + groups = ["default"]; 60 + platforms = []; 61 source = { 62 remotes = ["https://rubygems.org"]; 63 + sha256 = "1qsvb89rwqrp779mvpn67qbzidg2q6d1fa8kwybvpc93nzb9zpvi"; 64 type = "gem"; 65 }; 66 + version = "5.2.4.2"; 67 }; 68 activemodel = { 69 dependencies = ["activesupport"]; 70 + groups = ["default"]; 71 + platforms = []; 72 source = { 73 remotes = ["https://rubygems.org"]; 74 + sha256 = "0jcfdv00kmifj86d0z347nw55q1f8vwzr1aa9jrfnwz47ndi22di"; 75 type = "gem"; 76 }; 77 + version = "5.2.4.2"; 78 }; 79 activerecord = { 80 dependencies = ["activemodel" "activesupport" "arel"]; 81 + groups = ["default"]; 82 + platforms = []; 83 source = { 84 remotes = ["https://rubygems.org"]; 85 + sha256 = "1yaqrh23c8krrjw6rvxv7pvnkpp46nk5aq9z2daby640si4xpmp5"; 86 type = "gem"; 87 }; 88 + version = "5.2.4.2"; 89 }; 90 activestorage = { 91 dependencies = ["actionpack" "activerecord" "marcel"]; 92 + groups = ["default"]; 93 + platforms = []; 94 source = { 95 remotes = ["https://rubygems.org"]; 96 + sha256 = "1d51zp17c9k4brivm8y46rszcz07s5rb75gmkm0dpzg3rz3v38s9"; 97 type = "gem"; 98 }; 99 + version = "5.2.4.2"; 100 }; 101 activesupport = { 102 dependencies = ["concurrent-ruby" "i18n" "minitest" "tzinfo"]; 103 + groups = ["default" "test"]; 104 + platforms = []; 105 source = { 106 remotes = ["https://rubygems.org"]; 107 + sha256 = "0y1397g5xxinjyxjsdmp8c92yn0y3bd2hl4wbmmrpd08bggy6flc"; 108 type = "gem"; 109 }; 110 + version = "5.2.4.2"; 111 }; 112 addressable = { 113 dependencies = ["public_suffix"]; 114 + groups = ["default" "test"]; 115 + platforms = []; 116 source = { 117 remotes = ["https://rubygems.org"]; 118 sha256 = "1fvchp2rhp2rmigx7qglf69xvjqvzq7x0g49naliw29r2bz656sy"; ··· 121 version = "2.7.0"; 122 }; 123 arel = { 124 + groups = ["default"]; 125 + platforms = []; 126 source = { 127 remotes = ["https://rubygems.org"]; 128 sha256 = "1jk7wlmkr61f6g36w9s2sn46nmdg6wn2jfssrhbhirv5x9n95nk0"; ··· 131 version = "9.0.0"; 132 }; 133 ast = { 134 + groups = ["default" "test"]; 135 + platforms = []; 136 source = { 137 remotes = ["https://rubygems.org"]; 138 sha256 = "184ssy3w93nkajlz2c70ifm79jp3j737294kbc5fjw69v1w0n9x7"; ··· 141 version = "2.4.0"; 142 }; 143 builder = { 144 + groups = ["default"]; 145 + platforms = []; 146 source = { 147 remotes = ["https://rubygems.org"]; 148 sha256 = "045wzckxpwcqzrjr353cxnyaxgf0qg22jh00dcx7z38cys5g1jlr"; ··· 152 }; 153 capybara = { 154 dependencies = ["addressable" "mini_mime" "nokogiri" "rack" "rack-test" "regexp_parser" "xpath"]; 155 + groups = ["test"]; 156 + platforms = []; 157 source = { 158 remotes = ["https://rubygems.org"]; 159 sha256 = "1bq1y3gy98rqgw8z69b42isc2klb75fvlwvpi36vycf1yk0sfmmx"; ··· 162 version = "3.25.0"; 163 }; 164 childprocess = { 165 + groups = ["default" "test"]; 166 + platforms = []; 167 source = { 168 remotes = ["https://rubygems.org"]; 169 sha256 = "1ic028k8xgm2dds9mqnvwwx3ibaz32j8455zxr9f4bcnviyahya5"; ··· 172 version = "3.0.0"; 173 }; 174 concurrent-ruby = { 175 + groups = ["default" "test"]; 176 + platforms = []; 177 source = { 178 remotes = ["https://rubygems.org"]; 179 + sha256 = "094387x4yasb797mv07cs3g6f08y56virc2rjcpb1k79rzaj3nhl"; 180 type = "gem"; 181 }; 182 + version = "1.1.6"; 183 }; 184 crass = { 185 + groups = ["default"]; 186 + platforms = []; 187 source = { 188 remotes = ["https://rubygems.org"]; 189 + sha256 = "0pfl5c0pyqaparxaqxi6s4gfl21bdldwiawrc0aknyvflli60lfw"; 190 type = "gem"; 191 }; 192 + version = "1.0.6"; 193 }; 194 css_parser = { 195 dependencies = ["addressable"]; 196 + groups = ["default"]; 197 + platforms = []; 198 source = { 199 remotes = ["https://rubygems.org"]; 200 sha256 = "04c4dl8cm5rjr50k9qa6yl9r05fk9zcb1zxh0y0cdahxlsgcydfw"; ··· 203 version = "1.7.1"; 204 }; 205 csv = { 206 + groups = ["default"]; 207 + platforms = []; 208 source = { 209 remotes = ["https://rubygems.org"]; 210 sha256 = "00szzw96bqz59r0kaab4p75qb0wq54iahmq37wpdg96bxc8y80f5"; ··· 213 version = "3.1.2"; 214 }; 215 docile = { 216 + groups = ["default" "test"]; 217 + platforms = []; 218 source = { 219 remotes = ["https://rubygems.org"]; 220 sha256 = "0qrwiyagxzl8zlx3dafb0ay8l14ib7imb2rsmx70i5cp420v8gif"; ··· 223 version = "1.3.2"; 224 }; 225 erubi = { 226 + groups = ["default"]; 227 + platforms = []; 228 source = { 229 remotes = ["https://rubygems.org"]; 230 sha256 = "1nwzxnqhr31fn7nbqmffcysvxjdfl3bhxi0bld5qqhcnfc1xd13x"; ··· 234 }; 235 globalid = { 236 dependencies = ["activesupport"]; 237 + groups = ["default"]; 238 + platforms = []; 239 source = { 240 remotes = ["https://rubygems.org"]; 241 sha256 = "1zkxndvck72bfw235bd9nl2ii0lvs5z88q14706cmn702ww2mxv1"; ··· 244 version = "0.4.2"; 245 }; 246 htmlentities = { 247 + groups = ["default"]; 248 + platforms = []; 249 source = { 250 remotes = ["https://rubygems.org"]; 251 sha256 = "1nkklqsn8ir8wizzlakncfv42i32wc0w9hxp00hvdlgjr7376nhj"; ··· 255 }; 256 i18n = { 257 dependencies = ["concurrent-ruby"]; 258 + groups = ["default" "test"]; 259 + platforms = []; 260 source = { 261 remotes = ["https://rubygems.org"]; 262 sha256 = "1hfxnlyr618s25xpafw9mypa82qppjccbh292c4l3bj36az7f6wl"; ··· 265 version = "1.6.0"; 266 }; 267 jaro_winkler = { 268 + groups = ["default" "test"]; 269 + platforms = []; 270 source = { 271 remotes = ["https://rubygems.org"]; 272 sha256 = "1y8l6k34svmdyqxya3iahpwbpvmn3fswhwsvrz0nk1wyb8yfihsh"; ··· 275 version = "1.5.4"; 276 }; 277 json = { 278 + groups = ["default" "test"]; 279 + platforms = []; 280 source = { 281 remotes = ["https://rubygems.org"]; 282 sha256 = "0nrmw2r4nfxlfgprfgki3hjifgrcrs3l5zvm3ca3gb4743yr25mn"; ··· 286 }; 287 loofah = { 288 dependencies = ["crass" "nokogiri"]; 289 + groups = ["default"]; 290 + platforms = []; 291 source = { 292 remotes = ["https://rubygems.org"]; 293 + sha256 = "0jk9fgn5ayzbqvzqm11gbkqvas77zdbpkvynlylyiwynclgrn040"; 294 type = "gem"; 295 }; 296 + version = "2.5.0"; 297 }; 298 mail = { 299 dependencies = ["mini_mime"]; 300 + groups = ["default"]; 301 + platforms = []; 302 source = { 303 remotes = ["https://rubygems.org"]; 304 sha256 = "00wwz6ys0502dpk8xprwcqfwyf3hmnx6lgxaiq6vj43mkx43sapc"; ··· 308 }; 309 marcel = { 310 dependencies = ["mimemagic"]; 311 + groups = ["default"]; 312 + platforms = []; 313 source = { 314 remotes = ["https://rubygems.org"]; 315 sha256 = "1nxbjmcyg8vlw6zwagf17l9y2mwkagmmkg95xybpn4bmf3rfnksx"; ··· 318 version = "0.3.3"; 319 }; 320 method_source = { 321 + groups = ["default"]; 322 + platforms = []; 323 source = { 324 remotes = ["https://rubygems.org"]; 325 + sha256 = "1pnyh44qycnf9mzi1j6fywd5fkskv3x7nmsqrrws0rjn5dd4ayfp"; 326 type = "gem"; 327 }; 328 + version = "1.0.0"; 329 }; 330 mimemagic = { 331 + groups = ["default"]; 332 + platforms = []; 333 source = { 334 remotes = ["https://rubygems.org"]; 335 + sha256 = "0frrfvz52fh4v1sb2xr9pyxhrxm5f7jppqxagpmd7c5ific66l9p"; 336 type = "gem"; 337 }; 338 + version = "0.3.4"; 339 }; 340 mini_magick = { 341 + groups = ["minimagick"]; 342 + platforms = []; 343 source = { 344 remotes = ["https://rubygems.org"]; 345 sha256 = "0qy09qrd5bwh8mkbj514n5vcw9ni73218h9s3zmvbpmdwrnzi8j4"; ··· 348 version = "4.9.5"; 349 }; 350 mini_mime = { 351 + groups = ["default" "test"]; 352 + platforms = []; 353 source = { 354 remotes = ["https://rubygems.org"]; 355 sha256 = "1axm0rxyx3ss93wbmfkm78a6x03l8y4qy60rhkkiq0aza0vwq3ha"; ··· 358 version = "1.0.2"; 359 }; 360 mini_portile2 = { 361 + groups = ["default" "test"]; 362 + platforms = []; 363 source = { 364 remotes = ["https://rubygems.org"]; 365 sha256 = "15zplpfw3knqifj9bpf604rb3wc1vhq6363pd6lvhayng8wql5vy"; ··· 368 version = "2.4.0"; 369 }; 370 minitest = { 371 + groups = ["default" "test"]; 372 + platforms = []; 373 source = { 374 remotes = ["https://rubygems.org"]; 375 + sha256 = "0g73x65hmjph8dg1h3rkzfg7ys3ffxm35hj35grw75fixmq53qyz"; 376 type = "gem"; 377 }; 378 + version = "5.14.0"; 379 }; 380 mocha = { 381 + groups = ["test"]; 382 + platforms = []; 383 source = { 384 remotes = ["https://rubygems.org"]; 385 + sha256 = "0hxmkm8qxd04vwj8mqnpyrf2dwy7g1k9zipdfhl4y71cw7ijm9n4"; 386 type = "gem"; 387 }; 388 + version = "1.11.2"; 389 }; 390 mysql2 = { 391 + groups = ["default"]; 392 + platforms = [{ 393 + engine = "maglev"; 394 + } { 395 + engine = "mingw"; 396 + } { 397 + engine = "mingw"; 398 + } { 399 + engine = "ruby"; 400 + }]; 401 source = { 402 remotes = ["https://rubygems.org"]; 403 sha256 = "0d14pcy5m4hjig0zdxnl9in5f4izszc7v9zcczf2gyi5kiyxk8jw"; ··· 406 version = "0.5.3"; 407 }; 408 net-ldap = { 409 + groups = ["ldap"]; 410 + platforms = []; 411 source = { 412 remotes = ["https://rubygems.org"]; 413 sha256 = "1vzfhivjfr9q65hkln7xig3qcba6fw9y4kb4384fpm7d7ww0b7xg"; ··· 416 version = "0.16.2"; 417 }; 418 nio4r = { 419 + groups = ["default"]; 420 + platforms = []; 421 source = { 422 remotes = ["https://rubygems.org"]; 423 sha256 = "0gnmvbryr521r135yz5bv8354m7xn6miiapfgpg1bnwsvxz8xj6c"; ··· 427 }; 428 nokogiri = { 429 dependencies = ["mini_portile2"]; 430 + groups = ["default" "test"]; 431 + platforms = []; 432 source = { 433 remotes = ["https://rubygems.org"]; 434 + sha256 = "12j76d0bp608932xkzmfi638c7aqah57l437q8494znzbj610qnm"; 435 type = "gem"; 436 }; 437 + version = "1.10.9"; 438 }; 439 parallel = { 440 + groups = ["default" "test"]; 441 + platforms = []; 442 source = { 443 remotes = ["https://rubygems.org"]; 444 sha256 = "12jijkap4akzdv11lm08dglsc8jmc87xcgq6947i1s3qb69f4zn2"; ··· 448 }; 449 parser = { 450 dependencies = ["ast"]; 451 + groups = ["default" "test"]; 452 + platforms = []; 453 source = { 454 remotes = ["https://rubygems.org"]; 455 + sha256 = "07awrcwm2xibglrh7qwpj24vwzn9p64m7bmfr9xbrlffaznr0ii7"; 456 type = "gem"; 457 }; 458 + version = "2.7.1.0"; 459 }; 460 pg = { 461 + groups = ["default"]; 462 + platforms = [{ 463 + engine = "maglev"; 464 + } { 465 + engine = "mingw"; 466 + } { 467 + engine = "mingw"; 468 + } { 469 + engine = "ruby"; 470 + }]; 471 source = { 472 remotes = ["https://rubygems.org"]; 473 sha256 = "0fmnyxcyrvgdbgq7m09whgn9i8rwfybk0w8aii1nc4g5kqw0k2jy"; ··· 476 version = "1.1.4"; 477 }; 478 public_suffix = { 479 + groups = ["default" "test"]; 480 + platforms = []; 481 source = { 482 remotes = ["https://rubygems.org"]; 483 + sha256 = "1l1kqw75asziwmzrig8rywxswxz8l91sc3pvns02ffsqac1a3wiz"; 484 type = "gem"; 485 }; 486 + version = "4.0.4"; 487 }; 488 puma = { 489 + groups = ["test"]; 490 + platforms = []; 491 source = { 492 remotes = ["https://rubygems.org"]; 493 + sha256 = "0mg8yh478mh55pg7pv8z7xyvk35ra98hy61z9lwkfr8fzyyz57zs"; 494 type = "gem"; 495 }; 496 + version = "3.12.4"; 497 }; 498 rack = { 499 + groups = ["default" "openid" "test"]; 500 + platforms = []; 501 source = { 502 remotes = ["https://rubygems.org"]; 503 + sha256 = "10mp9s48ssnw004aksq90gvhdvwczh8j6q82q2kqiqq92jd1zxbp"; 504 type = "gem"; 505 }; 506 + version = "2.2.2"; 507 }; 508 rack-openid = { 509 dependencies = ["rack" "ruby-openid"]; 510 + groups = ["openid"]; 511 + platforms = []; 512 source = { 513 remotes = ["https://rubygems.org"]; 514 sha256 = "0sg85yn981j3a0iri3ch4znzdwscvz29l7vrk3dafqw4fdg31llc"; ··· 518 }; 519 rack-test = { 520 dependencies = ["rack"]; 521 + groups = ["default" "test"]; 522 + platforms = []; 523 source = { 524 remotes = ["https://rubygems.org"]; 525 sha256 = "0rh8h376mx71ci5yklnpqqn118z3bl67nnv5k801qaqn1zs62h8m"; ··· 529 }; 530 rails = { 531 dependencies = ["actioncable" "actionmailer" "actionpack" "actionview" "activejob" "activemodel" "activerecord" "activestorage" "activesupport" "railties" "sprockets-rails"]; 532 + groups = ["default"]; 533 + platforms = []; 534 source = { 535 remotes = ["https://rubygems.org"]; 536 + sha256 = "1x8k6n4yziwf386prhvr9d9plc9fwv0j8spw2bnmkwhf54v2ias4"; 537 type = "gem"; 538 }; 539 + version = "5.2.4.2"; 540 }; 541 rails-dom-testing = { 542 dependencies = ["activesupport" "nokogiri"]; 543 + groups = ["test"]; 544 + platforms = []; 545 source = { 546 remotes = ["https://rubygems.org"]; 547 sha256 = "1lfq2a7kp2x64dzzi5p4cjcbiv62vxh9lyqk2f0rqq3fkzrw8h5i"; ··· 551 }; 552 rails-html-sanitizer = { 553 dependencies = ["loofah"]; 554 + groups = ["default"]; 555 + platforms = []; 556 source = { 557 remotes = ["https://rubygems.org"]; 558 sha256 = "1icpqmxbppl4ynzmn6dx7wdil5hhq6fz707m9ya6d86c7ys8sd4f"; ··· 562 }; 563 railties = { 564 dependencies = ["actionpack" "activesupport" "method_source" "rake" "thor"]; 565 + groups = ["default"]; 566 + platforms = []; 567 source = { 568 remotes = ["https://rubygems.org"]; 569 + sha256 = "1p2rnd1xdqlk19k3m5gd058yzvwjj25k5hwn4km683b5dhylpd16"; 570 type = "gem"; 571 }; 572 + version = "5.2.4.2"; 573 }; 574 rainbow = { 575 + groups = ["default" "test"]; 576 + platforms = []; 577 source = { 578 remotes = ["https://rubygems.org"]; 579 sha256 = "0bb2fpjspydr6x0s8pn1pqkzmxszvkfapv0p4627mywl7ky4zkhk"; ··· 582 version = "3.0.0"; 583 }; 584 rake = { 585 + groups = ["default"]; 586 + platforms = []; 587 source = { 588 remotes = ["https://rubygems.org"]; 589 sha256 = "0w6qza25bq1s825faaglkx1k6d59aiyjjk3yw3ip5sb463mhhai9"; ··· 593 }; 594 rbpdf = { 595 dependencies = ["htmlentities" "rbpdf-font"]; 596 + groups = ["default"]; 597 + platforms = []; 598 source = { 599 remotes = ["https://rubygems.org"]; 600 sha256 = "0sdj8frakpdms820rwlil38h9bh3p24xmwnjrxsjc1p9irc3za71"; ··· 603 version = "1.20.1"; 604 }; 605 rbpdf-font = { 606 + groups = ["default"]; 607 + platforms = []; 608 source = { 609 remotes = ["https://rubygems.org"]; 610 sha256 = "0pxlr0l4vf785qpy55m439dyii63a26l0sd0yyhbwwcy9zm9hd1v"; ··· 613 version = "1.19.1"; 614 }; 615 redcarpet = { 616 + groups = ["markdown"]; 617 + platforms = []; 618 source = { 619 remotes = ["https://rubygems.org"]; 620 sha256 = "0skcyx1h8b5ms0rp2zm3ql6g322b8c1adnkwkqyv7z3kypb4bm7k"; ··· 623 version = "3.5.0"; 624 }; 625 regexp_parser = { 626 + groups = ["default" "test"]; 627 + platforms = []; 628 source = { 629 remotes = ["https://rubygems.org"]; 630 + sha256 = "0l2vcj9qffj5b3v9jsyi4k994bdj3rjz7l9ql8x04lndqxfrrrv2"; 631 type = "gem"; 632 }; 633 + version = "1.7.0"; 634 }; 635 request_store = { 636 dependencies = ["rack"]; 637 + groups = ["default"]; 638 + platforms = []; 639 source = { 640 remotes = ["https://rubygems.org"]; 641 sha256 = "1963330z03fk382fi8y231ygcbnh86m91dqlp5rh1mwy9ihzzl6d"; ··· 645 }; 646 roadie = { 647 dependencies = ["css_parser" "nokogiri"]; 648 + groups = ["default"]; 649 + platforms = []; 650 source = { 651 remotes = ["https://rubygems.org"]; 652 + sha256 = "01kld3drqfiih5x8c13cvr6dpvdl7jml0v9bcw4fsy322lax3kn0"; 653 type = "gem"; 654 }; 655 + version = "4.0.0"; 656 }; 657 roadie-rails = { 658 dependencies = ["railties" "roadie"]; 659 + groups = ["default"]; 660 + platforms = []; 661 source = { 662 remotes = ["https://rubygems.org"]; 663 + sha256 = "1fmn7kkbpgipjsx65rw7hqa3bwinlqykx5qf1x28ya9ag8v2q0ph"; 664 type = "gem"; 665 }; 666 + version = "2.1.1"; 667 }; 668 rouge = { 669 + groups = ["default"]; 670 + platforms = []; 671 source = { 672 remotes = ["https://rubygems.org"]; 673 sha256 = "08fpnxbhqv5sqpnfjasl1ysxafssyq4q1yhcqamqqzmb9czj1czw"; ··· 677 }; 678 rubocop = { 679 dependencies = ["jaro_winkler" "parallel" "parser" "rainbow" "ruby-progressbar" "unicode-display_width"]; 680 + groups = ["test"]; 681 + platforms = []; 682 source = { 683 remotes = ["https://rubygems.org"]; 684 sha256 = "07x51ixlx76y194xsszh5lbkaqakz44ykbrjxg3qaggbs18790q0"; ··· 688 }; 689 rubocop-performance = { 690 dependencies = ["rubocop"]; 691 + groups = ["test"]; 692 + platforms = []; 693 source = { 694 remotes = ["https://rubygems.org"]; 695 + sha256 = "1fk9nd3b24avgsqp726hy2pl1iyfjrh6jni97wkky6kqy0lq6zq2"; 696 type = "gem"; 697 }; 698 + version = "1.5.2"; 699 }; 700 rubocop-rails = { 701 dependencies = ["rack" "rubocop"]; 702 + groups = ["test"]; 703 + platforms = []; 704 source = { 705 remotes = ["https://rubygems.org"]; 706 sha256 = "1q7ffsq1cjm4m949nh935kjzv4zf1pacnrl00siwh8flhcn3mmjf"; ··· 709 version = "2.3.2"; 710 }; 711 ruby-openid = { 712 + groups = ["openid"]; 713 + platforms = []; 714 source = { 715 remotes = ["https://rubygems.org"]; 716 sha256 = "190p1m0bxd9xkfk1j6cpcv3x5c367g36nsglg4m1fcwqdd13k3kz"; ··· 719 version = "2.9.2"; 720 }; 721 ruby-progressbar = { 722 + groups = ["default" "test"]; 723 + platforms = []; 724 source = { 725 remotes = ["https://rubygems.org"]; 726 sha256 = "1k77i0d4wsn23ggdd2msrcwfy0i376cglfqypkk2q77r2l3408zf"; ··· 729 version = "1.10.1"; 730 }; 731 rubyzip = { 732 + groups = ["default" "test"]; 733 + platforms = []; 734 source = { 735 remotes = ["https://rubygems.org"]; 736 + sha256 = "0590m2pr9i209pp5z4mx0nb1961ishdiqb28995hw1nln1d1b5ji"; 737 type = "gem"; 738 }; 739 + version = "2.3.0"; 740 }; 741 selenium-webdriver = { 742 dependencies = ["childprocess" "rubyzip"]; 743 + groups = ["test"]; 744 + platforms = []; 745 source = { 746 remotes = ["https://rubygems.org"]; 747 + sha256 = "0adcvp86dinaqq3nhf8p3m0rl2g6q0a4h52k0i7kdnsg1qz9k86y"; 748 type = "gem"; 749 }; 750 + version = "3.142.7"; 751 }; 752 simplecov = { 753 dependencies = ["docile" "json" "simplecov-html"]; 754 + groups = ["test"]; 755 + platforms = []; 756 source = { 757 remotes = ["https://rubygems.org"]; 758 sha256 = "1135k46nik05sdab30yxb8264lqiz01c8v000g16cl9pjc4mxrdw"; ··· 761 version = "0.17.1"; 762 }; 763 simplecov-html = { 764 + groups = ["default" "test"]; 765 + platforms = []; 766 source = { 767 remotes = ["https://rubygems.org"]; 768 sha256 = "1lihraa4rgxk8wbfl77fy9sf0ypk31iivly8vl3w04srd7i0clzn"; ··· 772 }; 773 sprockets = { 774 dependencies = ["concurrent-ruby" "rack"]; 775 + groups = ["default"]; 776 + platforms = []; 777 source = { 778 remotes = ["https://rubygems.org"]; 779 sha256 = "0jm37zpvvm1arxjwrd6am0wrdbfhrhc5y0l4p2i3p11z04bsvgap"; ··· 783 }; 784 sprockets-rails = { 785 dependencies = ["actionpack" "activesupport" "sprockets"]; 786 + groups = ["default"]; 787 + platforms = []; 788 source = { 789 remotes = ["https://rubygems.org"]; 790 sha256 = "0ab42pm8p5zxpv3sfraq45b9lj39cz9mrpdirm30vywzrwwkm5p1"; ··· 793 version = "3.2.1"; 794 }; 795 thor = { 796 + groups = ["default"]; 797 + platforms = []; 798 source = { 799 remotes = ["https://rubygems.org"]; 800 sha256 = "1xbhkmyhlxwzshaqa7swy2bx6vd64mm0wrr8g3jywvxy7hg0cwkm"; ··· 803 version = "1.0.1"; 804 }; 805 thread_safe = { 806 + groups = ["default" "test"]; 807 + platforms = []; 808 source = { 809 remotes = ["https://rubygems.org"]; 810 sha256 = "0nmhcgq6cgz44srylra07bmaw99f5271l0dpsvl5f75m44l0gmwy"; ··· 814 }; 815 tzinfo = { 816 dependencies = ["thread_safe"]; 817 + groups = ["default" "test"]; 818 + platforms = []; 819 source = { 820 remotes = ["https://rubygems.org"]; 821 + sha256 = "1i3jh086w1kbdj3k5l60lc3nwbanmzdf8yjj3mlrx9b2gjjxhi9r"; 822 type = "gem"; 823 }; 824 + version = "1.2.7"; 825 }; 826 unicode-display_width = { 827 + groups = ["default" "test"]; 828 + platforms = []; 829 source = { 830 remotes = ["https://rubygems.org"]; 831 + sha256 = "1pppclzq4qb26g321553nm9xqca3zgllvpwb2kqxsdadwj51s09x"; 832 type = "gem"; 833 }; 834 + version = "1.6.1"; 835 }; 836 websocket-driver = { 837 dependencies = ["websocket-extensions"]; 838 + groups = ["default"]; 839 + platforms = []; 840 source = { 841 remotes = ["https://rubygems.org"]; 842 sha256 = "1bxamwqldmy98hxs5pqby3andws14hl36ch78g0s81gaz9b91nj2"; ··· 845 version = "0.7.1"; 846 }; 847 websocket-extensions = { 848 + groups = ["default"]; 849 + platforms = []; 850 source = { 851 remotes = ["https://rubygems.org"]; 852 sha256 = "00i624ng1nvkz1yckj3f8yxxp6hi7xaqf40qh9q3hj2n1l9i8g6m"; ··· 856 }; 857 xpath = { 858 dependencies = ["nokogiri"]; 859 + groups = ["default" "test"]; 860 + platforms = []; 861 source = { 862 remotes = ["https://rubygems.org"]; 863 sha256 = "0bh8lk9hvlpn7vmi6h4hkcwjzvs2y0cmkk3yjjdr8fxvj6fsgzbd"; ··· 866 version = "3.2.0"; 867 }; 868 yard = { 869 + groups = ["development"]; 870 + platforms = []; 871 source = { 872 remotes = ["https://rubygems.org"]; 873 + sha256 = "1g0bw2qcl48fxawrdf68l229508z53mrqisavji2lkxzv4w4j2pp"; 874 type = "gem"; 875 }; 876 + version = "0.9.24"; 877 }; 878 }
+9 -32
pkgs/applications/video/plex-media-player/default.nix
··· 5 # During compilation, a CMake bundle is downloaded from `artifacts.plex.tv`, 6 # which then downloads a handful of web client-related files. To enable 7 # sandboxed builds, we manually download them and save them so these files 8 - # are fetched ahead-of-time instead of during the CMake build. Whenever 9 - # plex-media-player is updated, the versions for these files are changed, 10 - # so the build IDs (and SHAs) below will need to be updated! 11 - depSrcs = rec { 12 - webClientBuildId = "141-4af71961b12c68"; 13 - webClientDesktopBuildId = "3.104.2-1b12c68"; 14 - webClientTvBuildId = "4.3.0-4af7196"; 15 - 16 - webClient = fetchurl { 17 - url = "https://artifacts.plex.tv/web-client-pmp/${webClientBuildId}/buildid.cmake"; 18 - sha256 = "0fpkd1s49dbiqqlijxbillqd71a78p8y2sc23mwp0lvcmxrg265p"; 19 - }; 20 - webClientDesktopHash = fetchurl { 21 - url = "https://artifacts.plex.tv/web-client-pmp/${webClientBuildId}/web-client-desktop-${webClientDesktopBuildId}.tar.xz.sha1"; 22 - sha256 = "0sb0j44lwqz9zbm98nba4x6c1jxdzvs36ynwfg527avkxxna0f8f"; 23 - }; 24 - webClientDesktop = fetchurl { 25 - url = "https://artifacts.plex.tv/web-client-pmp/${webClientBuildId}/web-client-desktop-${webClientDesktopBuildId}.tar.xz"; 26 - sha256 = "0dxa0ka0igfsryzda4r5clwdl47ah78nmlmgj9d5pgsvyvzjp87z"; 27 - }; 28 - webClientTvHash = fetchurl { 29 - url = "https://artifacts.plex.tv/web-client-pmp/${webClientBuildId}/web-client-tv-${webClientTvBuildId}.tar.xz.sha1"; 30 - sha256 = "086w1bavk2aqsyhv9zi5fynk31zf61sl91r6gjrdrz656wfk5bxa"; 31 - }; 32 - webClientTv = fetchurl { 33 - url = "https://artifacts.plex.tv/web-client-pmp/${webClientBuildId}/web-client-tv-${webClientTvBuildId}.tar.xz"; 34 - sha256 = "12vbgsfnj0j2y5jd73dpi08hqsr9888sma41nvd4ydsd7qblm455"; 35 - }; 36 - }; 37 in mkDerivation rec { 38 pname = "plex-media-player"; 39 - version = "2.40.0.1007"; 40 - vsnHash = "5482132c"; 41 42 src = fetchFromGitHub { 43 owner = "plexinc"; 44 repo = "plex-media-player"; 45 rev = "v${version}-${vsnHash}"; 46 - sha256 = "0ibdh5g8x32iy74q97jfsmxd08wnyrzs3gfiwjfgc10vaa1qdhli"; 47 }; 48 49 nativeBuildInputs = [ pkgconfig cmake python3 ]; ··· 60 ''; 61 62 cmakeFlags = [ "-DCMAKE_BUILD_TYPE=RelWithDebInfo" "-DQTROOT=${qtbase}" ]; 63 64 meta = with stdenv.lib; { 65 description = "Streaming media player for Plex";
··· 5 # During compilation, a CMake bundle is downloaded from `artifacts.plex.tv`, 6 # which then downloads a handful of web client-related files. To enable 7 # sandboxed builds, we manually download them and save them so these files 8 + # are fetched ahead-of-time instead of during the CMake build. To update 9 + # plex-media-player use the update.sh script, so the versions and hashes 10 + # for these files are are also updated! 11 + depSrcs = import ./deps.nix { inherit fetchurl; }; 12 in mkDerivation rec { 13 pname = "plex-media-player"; 14 + version = "2.55.0.1069"; 15 + vsnHash = "2369bed9"; 16 17 src = fetchFromGitHub { 18 owner = "plexinc"; 19 repo = "plex-media-player"; 20 rev = "v${version}-${vsnHash}"; 21 + sha256 = "1jq4592sgaia0xy2h7n3vh5i7c84sdh4l64fdc774r4i0bmg66qi"; 22 }; 23 24 nativeBuildInputs = [ pkgconfig cmake python3 ]; ··· 35 ''; 36 37 cmakeFlags = [ "-DCMAKE_BUILD_TYPE=RelWithDebInfo" "-DQTROOT=${qtbase}" ]; 38 + 39 + passthru.updateScript = ./update.sh; 40 41 meta = with stdenv.lib; { 42 description = "Streaming media player for Plex";
+28
pkgs/applications/video/plex-media-player/deps.nix
···
··· 1 + { fetchurl }: 2 + 3 + rec { 4 + webClientBuildId = "180-afec74de50e175"; 5 + webClientDesktopBuildId = "4.29.2-e50e175"; 6 + webClientTvBuildId = "4.29.3-afec74d"; 7 + 8 + webClient = fetchurl { 9 + url = "https://artifacts.plex.tv/web-client-pmp/${webClientBuildId}/buildid.cmake"; 10 + sha256 = "0rabrg3lk9vgpswk8npa54hzqf2v8ghqqnysxpwn12wrp1pc2rr9"; 11 + }; 12 + webClientDesktopHash = fetchurl { 13 + url = "https://artifacts.plex.tv/web-client-pmp/${webClientBuildId}/web-client-desktop-${webClientDesktopBuildId}.tar.xz.sha1"; 14 + sha256 = "02b5yq4yc411qlg2dkw5j9lrr3cn2y4d27sin0skf6qza180473g"; 15 + }; 16 + webClientDesktop = fetchurl { 17 + url = "https://artifacts.plex.tv/web-client-pmp/${webClientBuildId}/web-client-desktop-${webClientDesktopBuildId}.tar.xz"; 18 + sha256 = "0l3xv48kr2rx878a40zrgwif2ga2ikv6fdcbq9pylycnmm41pxmh"; 19 + }; 20 + webClientTvHash = fetchurl { 21 + url = "https://artifacts.plex.tv/web-client-pmp/${webClientBuildId}/web-client-tv-${webClientTvBuildId}.tar.xz.sha1"; 22 + sha256 = "0wq115y2xrgwqrzr43nhkq8ba237z20yfp426ki2kdypsq8fjqka"; 23 + }; 24 + webClientTv = fetchurl { 25 + url = "https://artifacts.plex.tv/web-client-pmp/${webClientBuildId}/web-client-tv-${webClientTvBuildId}.tar.xz"; 26 + sha256 = "1wax1qslm226l2w53m2fnl849jw349qhg3rjghx7vip5pmb43vw9"; 27 + }; 28 + }
+71
pkgs/applications/video/plex-media-player/update.sh
···
··· 1 + #!/usr/bin/env nix-shell 2 + #!nix-shell -i bash -p curl common-updater-scripts nix-prefetch-scripts jq 3 + 4 + set -xeuo pipefail 5 + 6 + nixpkgs="$(git rev-parse --show-toplevel)" 7 + 8 + oldVersion="$(nix-instantiate --eval -E "with import $nixpkgs {}; plex-media-player.version or (builtins.parseDrvName plex-media-player.name).version" | tr -d '"')" 9 + latestTag="$(curl -s https://api.github.com/repos/plexinc/plex-media-player/tags | jq -r '.[] | .name' | sort --version-sort | tail -1)" 10 + latestVersion="$(expr $latestTag : 'v\(.*\)-.*')" 11 + latestHash="$(expr $latestTag : 'v.*-\(.*\)')" 12 + 13 + if [ ! "$oldVersion" = "$latestVersion" ]; then 14 + # update default.nix with the new version and hash 15 + expectedHash=$(nix-prefetch-git --url https://github.com/plexinc/plex-media-player.git --rev $latestTag --quiet | jq -r '.sha256') 16 + update-source-version plex-media-player --version-key=vsnHash "${latestHash}" 0000 17 + update-source-version plex-media-player "${latestVersion}" $expectedHash 18 + 19 + # extract the webClientBuildId from the source folder 20 + src="$(nix-build --no-out-link $nixpkgs -A plex-media-player.src)" 21 + webClientBuildId="$(grep 'set(WEB_CLIENT_BUILD_ID' $src/CMakeModules/WebClient.cmake | cut -d' ' -f2 | tr -d ')')" 22 + 23 + # retreive the included cmake file and hash 24 + { read -r webClientBuildIdHash; read -r webClientBuildIdPath; } < \ 25 + <(nix-prefetch-url --print-path "https://artifacts.plex.tv/web-client-pmp/${webClientBuildId}/buildid.cmake") 26 + webClientDesktopBuildId="$(grep 'set(DESKTOP_VERSION' $webClientBuildIdPath | cut -d' ' -f2 | tr -d ')')" 27 + webClientTvBuildId="$(grep 'set(TV_VERSION' $webClientBuildIdPath | cut -d' ' -f2 | tr -d ')')" 28 + 29 + # get the hashes for the other files 30 + webClientDesktopHash="$(nix-prefetch-url "https://artifacts.plex.tv/web-client-pmp/${webClientBuildId}/web-client-desktop-${webClientDesktopBuildId}.tar.xz.sha1")" 31 + webClientDesktop="$(nix-prefetch-url "https://artifacts.plex.tv/web-client-pmp/${webClientBuildId}/web-client-desktop-${webClientDesktopBuildId}.tar.xz")" 32 + webClientTvHash="$(nix-prefetch-url "https://artifacts.plex.tv/web-client-pmp/${webClientBuildId}/web-client-tv-${webClientTvBuildId}.tar.xz.sha1")" 33 + webClientTv="$(nix-prefetch-url "https://artifacts.plex.tv/web-client-pmp/${webClientBuildId}/web-client-tv-${webClientTvBuildId}.tar.xz")" 34 + 35 + # update deps.nix 36 + cat > $nixpkgs/pkgs/applications/video/plex-media-player/deps.nix <<EOF 37 + { fetchurl }: 38 + 39 + rec { 40 + webClientBuildId = "${webClientBuildId}"; 41 + webClientDesktopBuildId = "${webClientDesktopBuildId}"; 42 + webClientTvBuildId = "${webClientTvBuildId}"; 43 + 44 + webClient = fetchurl { 45 + url = "https://artifacts.plex.tv/web-client-pmp/\${webClientBuildId}/buildid.cmake"; 46 + sha256 = "${webClientBuildIdHash}"; 47 + }; 48 + webClientDesktopHash = fetchurl { 49 + url = "https://artifacts.plex.tv/web-client-pmp/\${webClientBuildId}/web-client-desktop-\${webClientDesktopBuildId}.tar.xz.sha1"; 50 + sha256 = "${webClientDesktopHash}"; 51 + }; 52 + webClientDesktop = fetchurl { 53 + url = "https://artifacts.plex.tv/web-client-pmp/\${webClientBuildId}/web-client-desktop-\${webClientDesktopBuildId}.tar.xz"; 54 + sha256 = "${webClientDesktop}"; 55 + }; 56 + webClientTvHash = fetchurl { 57 + url = "https://artifacts.plex.tv/web-client-pmp/\${webClientBuildId}/web-client-tv-\${webClientTvBuildId}.tar.xz.sha1"; 58 + sha256 = "${webClientTvHash}"; 59 + }; 60 + webClientTv = fetchurl { 61 + url = "https://artifacts.plex.tv/web-client-pmp/\${webClientBuildId}/web-client-tv-\${webClientTvBuildId}.tar.xz"; 62 + sha256 = "${webClientTv}"; 63 + }; 64 + } 65 + EOF 66 + 67 + git add "$nixpkgs"/pkgs/applications/video/plex-media-player/{default,deps}.nix 68 + git commit -m "plex-media-player: ${oldVersion} -> ${latestVersion}" 69 + else 70 + echo "plex-media-player is already up-to-date" 71 + fi
+3 -3
pkgs/applications/virtualization/conmon/default.nix
··· 18 }; 19 20 nativeBuildInputs = [ pkg-config ]; 21 - buildInputs = [ glib systemd ] ++ 22 - stdenv.lib.optionals (!stdenv.hostPlatform.isMusl) [ glibc glibc.static ]; 23 24 - installPhase = "install -Dm755 bin/${pname} $out/bin/${pname}"; 25 26 meta = with stdenv.lib; { 27 homepage = "https://github.com/containers/conmon";
··· 18 }; 19 20 nativeBuildInputs = [ pkg-config ]; 21 + buildInputs = [ glib systemd ] 22 + ++ stdenv.lib.optionals (!stdenv.hostPlatform.isMusl) [ glibc glibc.static ]; 23 24 + installFlags = [ "PREFIX=$(out)" ]; 25 26 meta = with stdenv.lib; { 27 homepage = "https://github.com/containers/conmon";
+2 -2
pkgs/applications/virtualization/docker/default.nix
··· 1 { stdenv, lib, fetchFromGitHub, makeWrapper, removeReferencesTo, pkgconfig 2 , go-md2man, go, containerd, runc, docker-proxy, tini, libtool 3 , sqlite, iproute, lvm2, systemd 4 - , btrfs-progs, iptables, e2fsprogs, xz, utillinux, xfsprogs 5 , procps, libseccomp 6 }: 7 ··· 123 124 outputs = ["out" "man"]; 125 126 - extraPath = optionals (stdenv.isLinux) (makeBinPath [ iproute iptables e2fsprogs xz xfsprogs procps utillinux ]); 127 128 installPhase = optionalString (stdenv.isLinux) '' 129 install -Dm755 ./components/engine/bundles/dynbinary-daemon/dockerd $out/libexec/docker/dockerd
··· 1 { stdenv, lib, fetchFromGitHub, makeWrapper, removeReferencesTo, pkgconfig 2 , go-md2man, go, containerd, runc, docker-proxy, tini, libtool 3 , sqlite, iproute, lvm2, systemd 4 + , btrfs-progs, iptables, e2fsprogs, xz, utillinux, xfsprogs, git 5 , procps, libseccomp 6 }: 7 ··· 123 124 outputs = ["out" "man"]; 125 126 + extraPath = optionals (stdenv.isLinux) (makeBinPath [ iproute iptables e2fsprogs xz xfsprogs procps utillinux git ]); 127 128 installPhase = optionalString (stdenv.isLinux) '' 129 install -Dm755 ./components/engine/bundles/dynbinary-daemon/dockerd $out/libexec/docker/dockerd
+45
pkgs/applications/virtualization/qtemu/default.nix
···
··· 1 + { stdenv, mkDerivation, fetchFromGitLab, pkgconfig, qmake, qtbase, qemu, makeWrapper }: 2 + 3 + mkDerivation rec { 4 + pname = "qtemu"; 5 + version = "2.1"; 6 + 7 + src = fetchFromGitLab { 8 + owner = "qtemu"; 9 + repo = "gui"; 10 + rev = version; 11 + sha256 = "1555178mkfw0gwmw8bsxmg4339j2ifp0yb4b2f39nxh9hwshg07j"; 12 + }; 13 + 14 + nativeBuildInputs = [ 15 + qmake 16 + pkgconfig 17 + ]; 18 + 19 + buildInputs = [ 20 + qtbase 21 + qemu 22 + ]; 23 + 24 + installPhase = '' 25 + runHook preInstall 26 + 27 + # upstream lacks an install method 28 + install -D -t $out/share/applications qtemu.desktop 29 + install -D -t $out/share/pixmaps qtemu.png 30 + install -D -t $out/bin qtemu 31 + 32 + # make sure that the qemu-* executables are found 33 + wrapProgram $out/bin/qtemu --prefix PATH : ${stdenv.lib.makeBinPath [ qemu ]} 34 + 35 + runHook postInstall 36 + ''; 37 + 38 + meta = with stdenv.lib; { 39 + description = "Qt-based front-end for QEMU emulator"; 40 + homepage = "https://qtemu.org"; 41 + license = licenses.gpl2; 42 + platforms = with platforms; linux; 43 + maintainers = with maintainers; [ romildo ]; 44 + }; 45 + }
+1 -1
pkgs/build-support/alternatives/blas/default.nix
··· 81 patchelf --set-rpath "$(patchelf --print-rpath $out/lib/libblas${canonicalExtension}):${lib.getLib blasProvider}/lib" $out/lib/libblas${canonicalExtension} 82 '' else if stdenv.hostPlatform.isDarwin then '' 83 install_name_tool \ 84 - -id libblas${canonicalExtension} 85 -add_rpath ${lib.getLib blasProvider}/lib \ 86 $out/lib/libblas${canonicalExtension} 87 '' else "") + ''
··· 81 patchelf --set-rpath "$(patchelf --print-rpath $out/lib/libblas${canonicalExtension}):${lib.getLib blasProvider}/lib" $out/lib/libblas${canonicalExtension} 82 '' else if stdenv.hostPlatform.isDarwin then '' 83 install_name_tool \ 84 + -id libblas${canonicalExtension} \ 85 -add_rpath ${lib.getLib blasProvider}/lib \ 86 $out/lib/libblas${canonicalExtension} 87 '' else "") + ''
+2 -2
pkgs/common-updater/generic-updater.nix
··· 5 , attrPath ? pname 6 , versionLister 7 , rev-prefix ? "" 8 - , odd-unstable ? true 9 - , patchlevel-unstable ? true 10 }: 11 12 let
··· 5 , attrPath ? pname 6 , versionLister 7 , rev-prefix ? "" 8 + , odd-unstable ? false 9 + , patchlevel-unstable ? false 10 }: 11 12 let
+2 -2
pkgs/data/fonts/fira/default.nix
··· 1 { lib, fetchFromGitHub }: 2 3 let 4 - version = "4.106"; 5 in fetchFromGitHub { 6 name = "fira-${version}"; 7 ··· 15 cp otf/*.otf $out/share/fonts/opentype 16 ''; 17 18 - sha256 = "0c97nmihcq0ki7ywj8zn048a2bgrszc61lb9p0djfi65ar52jab4"; 19 20 meta = with lib; { 21 homepage = "https://mozilla.github.io/Fira/";
··· 1 { lib, fetchFromGitHub }: 2 3 let 4 + version = "4.202"; 5 in fetchFromGitHub { 6 name = "fira-${version}"; 7 ··· 15 cp otf/*.otf $out/share/fonts/opentype 16 ''; 17 18 + sha256 = "1iwxbp7kw5kghh5nbycb05zby7p2ib61mywva3h6giv2wd4lpxnz"; 19 20 meta = with lib; { 21 homepage = "https://mozilla.github.io/Fira/";
+1
pkgs/data/themes/arc/default.nix
··· 48 license = licenses.gpl3; 49 maintainers = with maintainers; [ simonvandel romildo ]; 50 platforms = platforms.linux; 51 }; 52 }
··· 48 license = licenses.gpl3; 49 maintainers = with maintainers; [ simonvandel romildo ]; 50 platforms = platforms.linux; 51 + broken = true; # since libsass 3.6.3 52 }; 53 }
+1
pkgs/data/themes/yaru/default.nix
··· 25 license = with licenses; [ cc-by-sa-40 gpl3 ]; 26 platforms = platforms.linux; 27 maintainers = [ maintainers.jD91mZM2 ]; 28 }; 29 }
··· 25 license = with licenses; [ cc-by-sa-40 gpl3 ]; 26 platforms = platforms.linux; 27 maintainers = [ maintainers.jD91mZM2 ]; 28 + broken = true; # since libsass 3.6.3 29 }; 30 }
+2 -2
pkgs/desktops/xfce/applications/gigolo/default.nix
··· 3 mkXfceDerivation { 4 category = "apps"; 5 pname = "gigolo"; 6 - version = "0.5.0"; 7 odd-unstable = false; 8 9 - sha256 = "1lqsxb0d5i8p9vbzx8s4p3rga7va5h1q146xgmsa41j5v40wrlw6"; 10 11 nativeBuildInputs = [ exo ]; 12 buildInputs = [ gtk3 glib gvfs ];
··· 3 mkXfceDerivation { 4 category = "apps"; 5 pname = "gigolo"; 6 + version = "0.5.1"; 7 odd-unstable = false; 8 9 + sha256 = "11a35z5apr26nl6fpmbsvvv3xf5w61sgzcb505plavrchpfbdxjn"; 10 11 nativeBuildInputs = [ exo ]; 12 buildInputs = [ gtk3 glib gvfs ];
+2 -2
pkgs/desktops/xfce/applications/parole/default.nix
··· 7 mkXfceDerivation { 8 category = "apps"; 9 pname = "parole"; 10 - version = "1.0.4"; 11 12 - sha256 = "18j4bmny37crryh4pvxcjjvj99mln6ljq2vy69awxhvrjx9ljv13"; 13 14 postPatch = '' 15 substituteInPlace src/plugins/mpris2/Makefile.am \
··· 7 mkXfceDerivation { 8 category = "apps"; 9 pname = "parole"; 10 + version = "1.0.5"; 11 12 + sha256 = "0qgis2gnkcvg7xwp76cbi0ihqdjprvvw2d66hk7klhrafp7c0v13"; 13 14 postPatch = '' 15 substituteInPlace src/plugins/mpris2/Makefile.am \
+2 -2
pkgs/desktops/xfce/applications/xfburn/default.nix
··· 3 mkXfceDerivation { 4 category = "apps"; 5 pname = "xfburn"; 6 - version = "0.6.1"; 7 8 - sha256 = "0a1ly79x7j5pgr3vbsabb4i0jd5rryaigj9z8iqzr8p9miypx20v"; 9 10 nativeBuildInputs = [ libxslt docbook_xsl ]; 11 buildInputs = [ exo gtk3 libburn libisofs libxfce4ui ];
··· 3 mkXfceDerivation { 4 category = "apps"; 5 pname = "xfburn"; 6 + version = "0.6.2"; 7 8 + sha256 = "02axhsbbsvd31jb0xs1d2qxr614qb29pajv0sm2p1n1c2cv2fjh1"; 9 10 nativeBuildInputs = [ libxslt docbook_xsl ]; 11 buildInputs = [ exo gtk3 libburn libisofs libxfce4ui ];
+2 -2
pkgs/desktops/xfce/applications/xfce4-dict/default.nix
··· 3 mkXfceDerivation { 4 category = "apps"; 5 pname = "xfce4-dict"; 6 - version = "0.8.2"; 7 8 - sha256 = "1zbb0k0984ny7wy4gbk6ymkh87rbfakpim54yq4r3h5ymslx7iv7"; 9 10 patches = [ ./configure-gio.patch ]; 11
··· 3 mkXfceDerivation { 4 category = "apps"; 5 pname = "xfce4-dict"; 6 + version = "0.8.3"; 7 8 + sha256 = "0p7k2ffknr23hh3j17dhh5q8adn736p2piwx0sg8f5dvvhhc5whz"; 9 10 patches = [ ./configure-gio.patch ]; 11
+2 -2
pkgs/desktops/xfce/applications/xfce4-notifyd/default.nix
··· 4 mkXfceDerivation { 5 category = "apps"; 6 pname = "xfce4-notifyd"; 7 - version = "0.4.4"; 8 9 - sha256 = "1lmm9h3ych8dz9jpjkxg91f9ln14xs527nxjxsryks00kmqk4kai"; 10 11 buildInputs = [ exo gtk3 glib libnotify libxfce4ui libxfce4util xfce4-panel xfconf ]; 12
··· 4 mkXfceDerivation { 5 category = "apps"; 6 pname = "xfce4-notifyd"; 7 + version = "0.6.0"; 8 9 + sha256 = "03lw7zil6pwvx537ibqrynxjz7d6iq6in7vdskrnnn16kfg6hjg2"; 10 11 buildInputs = [ exo gtk3 glib libnotify libxfce4ui libxfce4util xfce4-panel xfconf ]; 12
+2 -2
pkgs/desktops/xfce/applications/xfce4-screenshooter/default.nix
··· 3 mkXfceDerivation { 4 category = "apps"; 5 pname = "xfce4-screenshooter"; 6 - version = "1.9.5"; 7 odd-unstable = false; 8 9 - sha256 = "1h14sywvk9l06p3z1cpb79911j8w2wqbk03ldknjkia2rfymjk06"; 10 11 buildInputs = [ exo gtk3 libsoup libxfce4ui libxfce4util xfce4-panel glib-networking ]; 12
··· 3 mkXfceDerivation { 4 category = "apps"; 5 pname = "xfce4-screenshooter"; 6 + version = "1.9.7"; 7 odd-unstable = false; 8 9 + sha256 = "14vbd7iigaw57hl47rnixk873c20q5clqynzkm9zzpqc568dxixd"; 10 11 buildInputs = [ exo gtk3 libsoup libxfce4ui libxfce4util xfce4-panel glib-networking ]; 12
+2 -2
pkgs/desktops/xfce/applications/xfce4-taskmanager/default.nix
··· 3 mkXfceDerivation { 4 category = "apps"; 5 pname = "xfce4-taskmanager"; 6 - version = "1.2.2"; 7 8 - sha256 = "03js0pmhrybxa7hrp3gx4rm7j061ansv0bp2dwhnbrdpmzjysysc"; 9 10 nativeBuildInputs = [ exo ]; 11 buildInputs = [ gtk3 libwnck3 libXmu ];
··· 3 mkXfceDerivation { 4 category = "apps"; 5 pname = "xfce4-taskmanager"; 6 + version = "1.2.3"; 7 8 + sha256 = "0818chns7vkvjqakgz8z790adkygcq4jlw59dv6kyzk17hxq6cxv"; 9 10 nativeBuildInputs = [ exo ]; 11 buildInputs = [ gtk3 libwnck3 libXmu ];
+2 -2
pkgs/desktops/xfce/applications/xfce4-terminal/default.nix
··· 3 mkXfceDerivation { 4 category = "apps"; 5 pname = "xfce4-terminal"; 6 - version = "0.8.8"; 7 8 - sha256 = "0sg9vwyvhh7pjp83biv7gvf42423a7ly4dc7q2gn28kp6bds2qcp"; 9 10 buildInputs = [ gtk3 libxfce4ui vte xfconf pcre2 ]; 11
··· 3 mkXfceDerivation { 4 category = "apps"; 5 pname = "xfce4-terminal"; 6 + version = "0.8.9.2"; 7 8 + sha256 = "1vlpfsrdalqmsd86aj0kvvam5skzn6xngigjziwli6q6il6lb9fj"; 9 10 buildInputs = [ gtk3 libxfce4ui vte xfconf pcre2 ]; 11
+2 -2
pkgs/desktops/xfce/applications/xfdashboard/default.nix
··· 17 mkXfceDerivation { 18 category = "apps"; 19 pname = "xfdashboard"; 20 - version = "0.7.5"; 21 rev-prefix = ""; 22 odd-unstable = false; 23 24 - sha256 = "0d0kg90h3li41bs75z3xldljsglkz220pba39c54qznnzb8v8a2i"; 25 26 buildInputs = [ 27 clutter
··· 17 mkXfceDerivation { 18 category = "apps"; 19 pname = "xfdashboard"; 20 + version = "0.7.7"; 21 rev-prefix = ""; 22 odd-unstable = false; 23 24 + sha256 = "0b9pl3k8wl7svwhb9knhvr86gjg2904n788l8cbczwy046ql7pyc"; 25 26 buildInputs = [ 27 clutter
+8 -4
pkgs/desktops/xfce/art/xfce4-icon-theme.nix
··· 1 - { stdenv, fetchurl, pkgconfig, intltool, gtk2, xfce }: 2 3 let 4 category = "art"; ··· 13 sha256 = "1yk6rx3zr9grm4jwpjvqdkl13pisy7qn1wm5cqzmd2kbsn96cy6l"; 14 }; 15 16 - nativeBuildInputs = [ pkgconfig ]; 17 - buildInputs = [ intltool gtk2 ]; 18 - 19 passthru.updateScript = xfce.updateScript { 20 inherit pname version; 21 attrPath = "xfce.${pname}"; ··· 25 meta = with stdenv.lib; { 26 homepage = "https://www.xfce.org/"; 27 description = "Icons for Xfce"; 28 platforms = platforms.linux; 29 maintainers = [ maintainers.eelco ]; 30 };
··· 1 + { stdenv, fetchurl, pkgconfig, intltool, gtk3, xfce }: 2 3 let 4 category = "art"; ··· 13 sha256 = "1yk6rx3zr9grm4jwpjvqdkl13pisy7qn1wm5cqzmd2kbsn96cy6l"; 14 }; 15 16 + nativeBuildInputs = [ 17 + pkgconfig 18 + intltool 19 + gtk3 20 + ]; 21 + 22 passthru.updateScript = xfce.updateScript { 23 inherit pname version; 24 attrPath = "xfce.${pname}"; ··· 28 meta = with stdenv.lib; { 29 homepage = "https://www.xfce.org/"; 30 description = "Icons for Xfce"; 31 + license = licenses.gpl2Plus; 32 platforms = platforms.linux; 33 maintainers = [ maintainers.eelco ]; 34 };
+16 -5
pkgs/desktops/xfce/core/exo/default.nix
··· 1 - { mkXfceDerivation, docbook_xsl, glib, libxslt, perlPackages, gtk3 2 , libxfce4ui, libxfce4util }: 3 4 mkXfceDerivation { 5 category = "xfce"; 6 pname = "exo"; 7 - version = "0.12.8"; 8 9 - sha256 = "013am7q4pwfncf4hk2a3hv7yx2vxgzb5xm8qsi9mxkj29xdhrvs5"; 10 11 - nativeBuildInputs = [ libxslt perlPackages.URI docbook_xsl ]; 12 - buildInputs = [ gtk3 glib libxfce4ui libxfce4util ]; 13 14 # Workaround https://bugzilla.xfce.org/show_bug.cgi?id=15825 15 NIX_CFLAGS_COMPILE = "-I${glib.dev}/include/gio-unix-2.0";
··· 1 + { mkXfceDerivation, docbook_xsl, glib, libxslt, perlPackages, gtk2, gtk3 2 , libxfce4ui, libxfce4util }: 3 4 mkXfceDerivation { 5 category = "xfce"; 6 pname = "exo"; 7 + version = "0.12.11"; 8 + 9 + sha256 = "1db7w6jk3i501x4qw0hs0ydrm1fjdkxmahzbv5iag859wnnlg0pd"; 10 11 + nativeBuildInputs = [ 12 + libxslt 13 + perlPackages.URI 14 + docbook_xsl 15 + ]; 16 17 + buildInputs = [ 18 + gtk2 # some xfce plugins still uses gtk2 19 + gtk3 20 + glib 21 + libxfce4ui 22 + libxfce4util 23 + ]; 24 25 # Workaround https://bugzilla.xfce.org/show_bug.cgi?id=15825 26 NIX_CFLAGS_COMPILE = "-I${glib.dev}/include/gio-unix-2.0";
+2 -2
pkgs/desktops/xfce/core/thunar/default.nix
··· 21 let unwrapped = mkXfceDerivation { 22 category = "xfce"; 23 pname = "thunar"; 24 - version = "1.8.9"; 25 26 - sha256 = "01w60csbs2nq1bhb8n1bnmjmx48fm0va3qbnq84z0h2dxpr80b1w"; 27 28 nativeBuildInputs = [ 29 docbook_xsl
··· 21 let unwrapped = mkXfceDerivation { 22 category = "xfce"; 23 pname = "thunar"; 24 + version = "1.8.14"; 25 26 + sha256 = "1ph9bcqfm2nccliagl8zdl1dizh62qnr8m5hacri3cs2jhc0jjpy"; 27 28 nativeBuildInputs = [ 29 docbook_xsl
+2 -2
pkgs/desktops/xfce/core/tumbler/default.nix
··· 14 mkXfceDerivation { 15 category = "xfce"; 16 pname = "tumbler"; 17 - version = "0.2.7"; 18 19 - sha256 = "14ql3fcxyz81qr9s0vcwh6j2ks5fl8jf9scwnkilv5jy0ii9l0ry"; 20 21 buildInputs = [ 22 ffmpegthumbnailer
··· 14 mkXfceDerivation { 15 category = "xfce"; 16 pname = "tumbler"; 17 + version = "0.2.8"; 18 19 + sha256 = "1y9sphaz3izal96v53lps692xxzp5pad1d09kxsmmpm7pic4n1r2"; 20 21 buildInputs = [ 22 ffmpegthumbnailer
+2 -2
pkgs/desktops/xfce/core/xfce4-panel/default.nix
··· 3 mkXfceDerivation { 4 category = "xfce"; 5 pname = "xfce4-panel"; 6 - version = "4.14.0"; 7 8 - sha256 = "1v3f2xjz9gwa8maqqvv9w2dh1cgy03v89a9ny7nrv0cjsxwwrr15"; 9 10 nativeBuildInputs = [ gobject-introspection ]; 11 buildInputs = [ exo garcon gtk2 gtk3 glib glib-networking libxfce4ui libxfce4util libwnck3 xfconf ];
··· 3 mkXfceDerivation { 4 category = "xfce"; 5 pname = "xfce4-panel"; 6 + version = "4.14.3"; 7 8 + sha256 = "0h8cqs2bghmyp0jihjm2wc7j14k271j178vllin271xrl7kzmvzv"; 9 10 nativeBuildInputs = [ gobject-introspection ]; 11 buildInputs = [ exo garcon gtk2 gtk3 glib glib-networking libxfce4ui libxfce4util libwnck3 xfconf ];
+2 -2
pkgs/desktops/xfce/core/xfce4-power-manager/default.nix
··· 4 mkXfceDerivation { 5 category = "xfce"; 6 pname = "xfce4-power-manager"; 7 - version = "1.6.5"; 8 9 - sha256 = "0zazm2cgkz5xj7rvy9gbh4kaay2anfcmawg4gj38pnq3a8zcwwd5"; 10 11 nativeBuildInputs = [ automakeAddFlags exo ]; 12 buildInputs = [ gtk3 libnotify libxfce4ui libxfce4util upower xfconf ];
··· 4 mkXfceDerivation { 5 category = "xfce"; 6 pname = "xfce4-power-manager"; 7 + version = "1.6.6"; 8 9 + sha256 = "0lyp3dp4ijbpf21vanrvgm6rmfp8v0zyqxibdj5gxnadmvcq38iy"; 10 11 nativeBuildInputs = [ automakeAddFlags exo ]; 12 buildInputs = [ gtk3 libnotify libxfce4ui libxfce4util upower xfconf ];
+2 -2
pkgs/desktops/xfce/core/xfce4-session/default.nix
··· 3 mkXfceDerivation { 4 category = "xfce"; 5 pname = "xfce4-session"; 6 - version = "4.14.0"; 7 8 - sha256 = "0v0xzkdr5rgv6219c1dy96cghgw8bqnb313jccxihfgddf363104"; 9 10 buildInputs = [ exo gtk3 glib libxfce4ui libxfce4util libwnck3 xfconf polkit iceauth ]; 11
··· 3 mkXfceDerivation { 4 category = "xfce"; 5 pname = "xfce4-session"; 6 + version = "4.14.2"; 7 8 + sha256 = "1gr6j96l792v33lbh7rqpbdjmy8m68hy14bsndx6bykv10zvmgx2"; 9 10 buildInputs = [ exo gtk3 glib libxfce4ui libxfce4util libwnck3 xfconf polkit iceauth ]; 11
+2 -2
pkgs/desktops/xfce/core/xfce4-settings/default.nix
··· 5 mkXfceDerivation { 6 category = "xfce"; 7 pname = "xfce4-settings"; 8 - version = "4.14.0"; 9 10 - sha256 = "13gmxd4sfgd6wky7s03bar58w9vl4i6jv2wncd6iajww791y5akn"; 11 12 postPatch = '' 13 for f in $(find . -name \*.c); do
··· 5 mkXfceDerivation { 6 category = "xfce"; 7 pname = "xfce4-settings"; 8 + version = "4.14.3"; 9 10 + sha256 = "1zzngdj7mp2r6rcs8gvda1218zlz5gpnc6gsp20z32l69psp3yld"; 11 12 postPatch = '' 13 for f in $(find . -name \*.c); do
+2 -2
pkgs/desktops/xfce/core/xfdesktop/default.nix
··· 3 mkXfceDerivation { 4 category = "xfce"; 5 pname = "xfdesktop"; 6 - version = "4.14.1"; 7 8 - sha256 = "006w4xwmpwp34q2qkkixr3xz0vb0kny79pw64yj4304wsb5jr14g"; 9 10 buildInputs = [ 11 exo
··· 3 mkXfceDerivation { 4 category = "xfce"; 5 pname = "xfdesktop"; 6 + version = "4.14.2"; 7 8 + sha256 = "04fhm1pf9290sy3ymrmnfnm2x6fq5ldzvj5bjd9kz6zkx0nsq1za"; 9 10 buildInputs = [ 11 exo
+1 -3
pkgs/desktops/xfce/default.nix
··· 117 118 xfce4-datetime-plugin = callPackage ./panel-plugins/xfce4-datetime-plugin { }; 119 120 - xfce4-dict-plugin = callPackage ./panel-plugins/xfce4-dict-plugin.nix { }; 121 - 122 xfce4-dockbarx-plugin = callPackage ./panel-plugins/xfce4-dockbarx-plugin.nix { }; 123 124 xfce4-embed-plugin = callPackage ./panel-plugins/xfce4-embed-plugin.nix { }; ··· 187 xfce4_cpufreq_plugin = xfce4-cpufreq-plugin; 188 xfce4_cpugraph_plugin = xfce4-cpugraph-plugin; 189 xfce4_datetime_plugin = xfce4-datetime-plugin; 190 - xfce4_dict_plugin = xfce4-dict-plugin; 191 xfce4_dockbarx_plugin = xfce4-dockbarx-plugin; 192 xfce4_embed_plugin = xfce4-embed-plugin; 193 xfce4_eyes_plugin = xfce4-eyes-plugin; ··· 211 212 xfce4-mixer = throw "deprecated 2019-08-18: obsoleted by xfce4-pulseaudio-plugin"; # added 2019-08-18 213 gtk-xfce-engine = throw "deprecated 2019-09-17: Xfce 4.14 deprecated gtk-xfce-engine"; # added 2019-09-17 214 215 # added 2019-11-04 216 libxfce4ui_gtk3 = libxfce4ui;
··· 117 118 xfce4-datetime-plugin = callPackage ./panel-plugins/xfce4-datetime-plugin { }; 119 120 xfce4-dockbarx-plugin = callPackage ./panel-plugins/xfce4-dockbarx-plugin.nix { }; 121 122 xfce4-embed-plugin = callPackage ./panel-plugins/xfce4-embed-plugin.nix { }; ··· 185 xfce4_cpufreq_plugin = xfce4-cpufreq-plugin; 186 xfce4_cpugraph_plugin = xfce4-cpugraph-plugin; 187 xfce4_datetime_plugin = xfce4-datetime-plugin; 188 xfce4_dockbarx_plugin = xfce4-dockbarx-plugin; 189 xfce4_embed_plugin = xfce4-embed-plugin; 190 xfce4_eyes_plugin = xfce4-eyes-plugin; ··· 208 209 xfce4-mixer = throw "deprecated 2019-08-18: obsoleted by xfce4-pulseaudio-plugin"; # added 2019-08-18 210 gtk-xfce-engine = throw "deprecated 2019-09-17: Xfce 4.14 deprecated gtk-xfce-engine"; # added 2019-09-17 211 + xfce4-dict-plugin = throw "deprecated 2020-04-19: xfce4-dict-plugin is now part of xfce4-dict."; # added 2020-04-19 212 213 # added 2019-11-04 214 libxfce4ui_gtk3 = libxfce4ui;
+2 -2
pkgs/desktops/xfce/panel-plugins/xfce4-battery-plugin/default.nix
··· 3 mkXfceDerivation { 4 category = "panel-plugins"; 5 pname = "xfce4-battery-plugin"; 6 - version = "1.1.2"; 7 rev-prefix = ""; 8 odd-unstable = false; 9 - sha256 = "0329miiclc8da6j0sz495p99hyrf9fjhvpmdl0556fphybz5agc0"; 10 11 buildInputs = [ gtk3 libxfce4ui libxfce4util xfce4-panel xfconf ]; 12
··· 3 mkXfceDerivation { 4 category = "panel-plugins"; 5 pname = "xfce4-battery-plugin"; 6 + version = "1.1.3"; 7 rev-prefix = ""; 8 odd-unstable = false; 9 + sha256 = "0ligdiasrfc3170kd7sif2ml6lvlpp11lbxz3xdvklqkv7p3323y"; 10 11 buildInputs = [ gtk3 libxfce4ui libxfce4util xfce4-panel xfconf ]; 12
+2 -2
pkgs/desktops/xfce/panel-plugins/xfce4-clipman-plugin/default.nix
··· 3 mkXfceDerivation { 4 category = "panel-plugins"; 5 pname = "xfce4-clipman-plugin"; 6 - version = "1.4.3"; 7 - sha256 = "1xk79xh1zk0x4r1z9m1dakp79pip0zh3naviybvl1dnpwwfc03gq"; 8 9 buildInputs = [ exo gtk3 libXtst libxfce4ui libxfce4util xfce4-panel xfconf ]; 10
··· 3 mkXfceDerivation { 4 category = "panel-plugins"; 5 pname = "xfce4-clipman-plugin"; 6 + version = "1.6.1"; 7 + sha256 = "03akijvry1n1fkziyvxwcksl4vy4lmnpgd5izjs8jai5sndhsszl"; 8 9 buildInputs = [ exo gtk3 libXtst libxfce4ui libxfce4util xfce4-panel xfconf ]; 10
+23 -7
pkgs/desktops/xfce/panel-plugins/xfce4-cpugraph-plugin.nix
··· 1 - { stdenv, fetchurl, pkgconfig, intltool, glib, exo, libXtst, xorgproto, libxfce4util, xfce4-panel, libxfce4ui, xfconf, gtk2, hicolor-icon-theme, xfce }: 2 3 let 4 category = "panel-plugins"; ··· 6 7 stdenv.mkDerivation rec { 8 pname = "xfce4-cpugraph-plugin"; 9 - version = "1.0.5"; 10 11 src = fetchurl { 12 url = "mirror://xfce/src/${category}/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.bz2"; 13 - sha256 = "1izl53q95m5xm2fiq7385vb1i9nwgjizxkmgpgh33zdckb40xnl5"; 14 }; 15 16 - nativeBuildInputs = [ pkgconfig ]; 17 - buildInputs = [ intltool glib exo libXtst xorgproto libxfce4util libxfce4ui xfce4-panel xfconf gtk2 hicolor-icon-theme ]; 18 - 19 passthru.updateScript = xfce.updateScript { 20 inherit pname version; 21 attrPath = "xfce.${pname}"; ··· 23 }; 24 25 meta = with stdenv.lib; { 26 - homepage = "https://goodies.xfce.org/projects/panel-plugins/${pname}"; 27 description = "CPU graph show for Xfce panel"; 28 platforms = platforms.linux; 29 maintainers = [ maintainers.AndersonTorres ]; 30 };
··· 1 + { stdenv, fetchurl, pkgconfig, intltool, glib, exo, libXtst, xorgproto, libxfce4util, xfce4-panel, libxfce4ui, xfconf, gtk3, hicolor-icon-theme, xfce }: 2 3 let 4 category = "panel-plugins"; ··· 6 7 stdenv.mkDerivation rec { 8 pname = "xfce4-cpugraph-plugin"; 9 + version = "1.1.0"; 10 11 src = fetchurl { 12 url = "mirror://xfce/src/${category}/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.bz2"; 13 + sha256 = "193bj1p54l4zrvgdjj0pvjn161d6dn82jh9invcy09sqwlj0mkiy"; 14 }; 15 16 + nativeBuildInputs = [ 17 + pkgconfig 18 + intltool 19 + ]; 20 + 21 + buildInputs = [ 22 + glib 23 + exo 24 + libXtst 25 + xorgproto 26 + libxfce4util 27 + libxfce4ui 28 + xfce4-panel 29 + xfconf 30 + gtk3 31 + hicolor-icon-theme 32 + ]; 33 + 34 passthru.updateScript = xfce.updateScript { 35 inherit pname version; 36 attrPath = "xfce.${pname}"; ··· 38 }; 39 40 meta = with stdenv.lib; { 41 + homepage = "https://docs.xfce.org/panel-plugins/xfce4-cpugraph-plugin"; 42 description = "CPU graph show for Xfce panel"; 43 + license = licenses.gpl2Plus; 44 platforms = platforms.linux; 45 maintainers = [ maintainers.AndersonTorres ]; 46 };
-32
pkgs/desktops/xfce/panel-plugins/xfce4-dict-plugin.nix
··· 1 - { stdenv, fetchurl, pkgconfig, intltool, libxfce4util, xfce4-panel, libxfce4ui, xfconf, gtk2, xfce }: 2 - 3 - let 4 - category = "panel-plugins"; 5 - in 6 - 7 - stdenv.mkDerivation rec { 8 - pname = "xfce4-dict-plugin"; 9 - version = "0.3.0"; 10 - 11 - src = fetchurl { 12 - url = "mirror://xfce/src/${category}/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.bz2"; 13 - sha256 = "1x0imfnsdfq7fbhka8bc0yjjspkcljc1jafhrwzb08qi9bk2wbar"; 14 - }; 15 - 16 - nativeBuildInputs = [ pkgconfig ]; 17 - buildInputs = [ intltool libxfce4util libxfce4ui xfce4-panel xfconf gtk2 ]; 18 - 19 - passthru.updateScript = xfce.updateScript { 20 - inherit pname version; 21 - attrPath = "xfce.${pname}"; 22 - versionLister = xfce.archiveLister category pname; 23 - }; 24 - 25 - meta =with stdenv.lib; { 26 - homepage = "https://goodies.xfce.org/projects/panel-plugins/${pname}"; 27 - description = "Dictionary plugin for Xfce panel"; 28 - platforms = platforms.linux; 29 - maintainers = [ maintainers.AndersonTorres ]; 30 - broken = true; # see https://goodies.xfce.org/projects/panel-plugins/xfce4-dict-plugin 31 - }; 32 - }
···
+15 -5
pkgs/desktops/xfce/panel-plugins/xfce4-embed-plugin.nix
··· 1 - { stdenv, fetchurl, pkgconfig, intltool, libxfce4util, xfce4-panel, libxfce4ui, xfconf, gtk2, xfce }: 2 3 let 4 category = "panel-plugins"; ··· 14 sha256 = "0a72kqsjjh45swimqlpyrahdnplp0383v0i4phr4n6g8c1ixyry7"; 15 }; 16 17 - nativeBuildInputs = [ pkgconfig ]; 18 - buildInputs = [ intltool libxfce4util libxfce4ui xfce4-panel xfconf gtk2 ]; 19 - 20 passthru.updateScript = xfce.updateScript { 21 inherit pname version; 22 attrPath = "xfce.${pname}"; ··· 24 }; 25 26 meta = { 27 - homepage = "https://goodies.xfce.org/projects/panel-plugins/${pname}"; 28 description = "Embed arbitrary app windows on Xfce panel"; 29 platforms = platforms.linux; 30 maintainers = [ maintainers.AndersonTorres ]; 31 };
··· 1 + { stdenv, fetchurl, pkgconfig, intltool, libxfce4util, xfce4-panel, libxfce4ui, gtk2, xfce }: 2 3 let 4 category = "panel-plugins"; ··· 14 sha256 = "0a72kqsjjh45swimqlpyrahdnplp0383v0i4phr4n6g8c1ixyry7"; 15 }; 16 17 + nativeBuildInputs = [ 18 + pkgconfig 19 + intltool 20 + ]; 21 + 22 + buildInputs = [ 23 + libxfce4util 24 + libxfce4ui 25 + xfce4-panel 26 + gtk2 27 + ]; 28 + 29 passthru.updateScript = xfce.updateScript { 30 inherit pname version; 31 attrPath = "xfce.${pname}"; ··· 33 }; 34 35 meta = { 36 + homepage = "https://docs.xfce.org/panel-plugins/xfce4-embed-plugin"; 37 description = "Embed arbitrary app windows on Xfce panel"; 38 + license = licenses.gpl2Plus; 39 platforms = platforms.linux; 40 maintainers = [ maintainers.AndersonTorres ]; 41 };
+18 -8
pkgs/desktops/xfce/panel-plugins/xfce4-eyes-plugin.nix
··· 1 - { stdenv, fetchurl, pkgconfig, intltool, libxfce4util, xfce4-panel, libxfce4ui, xfconf, gtk2, xfce }: 2 3 let 4 category = "panel-plugins"; ··· 6 7 stdenv.mkDerivation rec { 8 pname = "xfce4-eyes-plugin"; 9 - version = "4.4.4"; 10 11 src = fetchurl { 12 url = "mirror://xfce/src/${category}/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.bz2"; 13 - sha256 = "1jh02hylvsvfpxrx0bq6fzgy6vnxf9qakgpbfvr63lfkd1dyh314"; 14 }; 15 16 - nativeBuildInputs = [ pkgconfig ]; 17 - buildInputs = [ intltool libxfce4util libxfce4ui xfce4-panel xfconf gtk2 ]; 18 19 passthru.updateScript = xfce.updateScript { 20 inherit pname version; ··· 23 }; 24 25 meta = with stdenv.lib; { 26 - homepage = "https://goodies.xfce.org/projects/panel-plugins/${pname}"; 27 - description = "Eyes following you!"; 28 platforms = platforms.linux; 29 maintainers = [ maintainers.AndersonTorres ]; 30 - broken = true; 31 }; 32 }
··· 1 + { stdenv, fetchurl, pkgconfig, intltool, libxfce4util, xfce4-panel, libxfce4ui, xfconf, gtk3, xfce }: 2 3 let 4 category = "panel-plugins"; ··· 6 7 stdenv.mkDerivation rec { 8 pname = "xfce4-eyes-plugin"; 9 + version = "4.5.0"; 10 11 src = fetchurl { 12 url = "mirror://xfce/src/${category}/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.bz2"; 13 + sha256 = "17gj6fbvvrdzvz61czmia8hqynllsnmhk61fs4aml443cc1h1bpx"; 14 }; 15 16 + nativeBuildInputs = [ 17 + pkgconfig 18 + intltool 19 + ]; 20 + 21 + buildInputs = [ 22 + libxfce4util 23 + libxfce4ui 24 + xfce4-panel 25 + xfconf 26 + gtk3 27 + ]; 28 29 passthru.updateScript = xfce.updateScript { 30 inherit pname version; ··· 33 }; 34 35 meta = with stdenv.lib; { 36 + homepage = "https://docs.xfce.org/panel-plugins/xfce4-eyes-plugin"; 37 + description = "Rolling eyes (following mouse pointer) plugin for the Xfce panel"; 38 + license = licenses.gpl2Plus; 39 platforms = platforms.linux; 40 maintainers = [ maintainers.AndersonTorres ]; 41 }; 42 }
+18 -8
pkgs/desktops/xfce/panel-plugins/xfce4-fsguard-plugin.nix
··· 1 - { stdenv, fetchurl, pkgconfig, intltool, libxfce4util, xfce4-panel, libxfce4ui, xfconf, gtk2, xfce }: 2 3 let 4 category = "panel-plugins"; ··· 6 7 stdenv.mkDerivation rec { 8 pname = "xfce4-fsguard-plugin"; 9 - version = "1.0.2"; 10 11 src = fetchurl { 12 url = "mirror://xfce/src/${category}/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.bz2"; 13 - sha256 = "1bj021h4q68bc03f32pkyqy4gfd1sz6s21nxdg7j6gdfhs9xbj52"; 14 }; 15 16 - nativeBuildInputs = [ pkgconfig ]; 17 - buildInputs = [ intltool libxfce4util libxfce4ui xfce4-panel xfconf gtk2 ]; 18 19 passthru.updateScript = xfce.updateScript { 20 inherit pname version; ··· 23 }; 24 25 meta = with stdenv.lib; { 26 - homepage = "https://goodies.xfce.org/projects/panel-plugins/${pname}"; 27 - description = "Filesystem monitor"; 28 platforms = platforms.linux; 29 maintainers = [ maintainers.AndersonTorres ]; 30 - broken = true; 31 }; 32 }
··· 1 + { stdenv, fetchurl, pkgconfig, intltool, libxfce4util, xfce4-panel, libxfce4ui, xfconf, gtk3, xfce }: 2 3 let 4 category = "panel-plugins"; ··· 6 7 stdenv.mkDerivation rec { 8 pname = "xfce4-fsguard-plugin"; 9 + version = "1.1.1"; 10 11 src = fetchurl { 12 url = "mirror://xfce/src/${category}/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.bz2"; 13 + sha256 = "05nmfkrmifm76bsywqmbjd1qdvzagv5cbvnwbkb57156j055vl6n"; 14 }; 15 16 + nativeBuildInputs = [ 17 + pkgconfig 18 + intltool 19 + ]; 20 + 21 + buildInputs = [ 22 + libxfce4util 23 + libxfce4ui 24 + xfce4-panel 25 + xfconf 26 + gtk3 27 + ]; 28 29 passthru.updateScript = xfce.updateScript { 30 inherit pname version; ··· 33 }; 34 35 meta = with stdenv.lib; { 36 + homepage = "https://docs.xfce.org/panel-plugins/xfce4-fsguard-plugin"; 37 + description = "Filesystem usage monitor plugin for the Xfce panel"; 38 + license = licenses.bsd2; 39 platforms = platforms.linux; 40 maintainers = [ maintainers.AndersonTorres ]; 41 }; 42 }
+17 -8
pkgs/desktops/xfce/panel-plugins/xfce4-genmon-plugin.nix
··· 1 - { stdenv, fetchurl, pkgconfig, intltool, libxfce4util, xfce4-panel, libxfce4ui, xfconf, gtk2, xfce }: 2 3 let 4 category = "panel-plugins"; ··· 6 7 stdenv.mkDerivation rec { 8 pname = "xfce4-genmon-plugin"; 9 - version = "3.4.0"; 10 11 src = fetchurl { 12 url = "mirror://xfce/src/${category}/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.bz2"; 13 - sha256 = "11q3g6lmgz3d5lyh6614mxkd9cblfdyf9jgki7f26mn895xk79dh"; 14 }; 15 16 - nativeBuildInputs = [ pkgconfig ]; 17 - buildInputs = [ intltool libxfce4util libxfce4ui xfce4-panel xfconf gtk2 ]; 18 19 passthru.updateScript = xfce.updateScript { 20 inherit pname version; ··· 23 }; 24 25 meta = with stdenv.lib; { 26 - homepage = "https://goodies.xfce.org/projects/panel-plugins/${pname}"; 27 - description = "Cyclically spawns a command and captures its output"; 28 platforms = platforms.linux; 29 maintainers = [ maintainers.AndersonTorres ]; 30 - broken = true; 31 }; 32 }
··· 1 + { stdenv, fetchurl, pkgconfig, intltool, libxfce4util, xfce4-panel, libxfce4ui, gtk3, xfce }: 2 3 let 4 category = "panel-plugins"; ··· 6 7 stdenv.mkDerivation rec { 8 pname = "xfce4-genmon-plugin"; 9 + version = "4.0.2"; 10 11 src = fetchurl { 12 url = "mirror://xfce/src/${category}/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.bz2"; 13 + sha256 = "1ai3pwgv61nv7i2dyrvncnc63r8kdjbkp40vp51vzak1dx924v15"; 14 }; 15 16 + nativeBuildInputs = [ 17 + pkgconfig 18 + intltool 19 + ]; 20 + 21 + buildInputs = [ 22 + libxfce4util 23 + libxfce4ui 24 + xfce4-panel 25 + gtk3 26 + ]; 27 28 passthru.updateScript = xfce.updateScript { 29 inherit pname version; ··· 32 }; 33 34 meta = with stdenv.lib; { 35 + homepage = "https://docs.xfce.org/panel-plugins/xfce4-genmon-plugin"; 36 + description = "Generic monitor plugin for the Xfce panel"; 37 + license = licenses.gpl2Plus; 38 platforms = platforms.linux; 39 maintainers = [ maintainers.AndersonTorres ]; 40 }; 41 }
+1 -1
pkgs/desktops/xfce/panel-plugins/xfce4-hardware-monitor-plugin.nix
··· 31 enableParallelBuilding = true; 32 33 meta = with stdenv.lib; { 34 - homepage = "https://goodies.xfce.org/projects/panel-plugins/${pname}"; 35 description = "Hardware monitor plugin for the XFCE4 panel"; 36 license = licenses.gpl3; 37 platforms = platforms.unix;
··· 31 enableParallelBuilding = true; 32 33 meta = with stdenv.lib; { 34 + homepage = "https://goodies.xfce.org/projects/panel-plugins/xfce4-hardware-monitor-plugin"; 35 description = "Hardware monitor plugin for the XFCE4 panel"; 36 license = licenses.gpl3; 37 platforms = platforms.unix;
+19 -8
pkgs/desktops/xfce/panel-plugins/xfce4-mailwatch-plugin.nix
··· 1 { stdenv, fetchurl, pkgconfig, intltool, libxfce4util, xfce4-panel, libxfce4ui, 2 - xfconf, gtk2, exo, gnutls, libgcrypt, xfce }: 3 4 let 5 category = "panel-plugins"; ··· 14 sha256 = "1bfw3smwivr9mzdyq768biqrl4aq94zqi3xjzq6kqnd8561cqjk2"; 15 }; 16 17 - nativeBuildInputs = [ pkgconfig ]; 18 - buildInputs = [ intltool libxfce4util libxfce4ui xfce4-panel 19 - xfconf gtk2 exo gnutls libgcrypt ]; 20 - 21 passthru.updateScript = xfce.updateScript { 22 inherit pname version; 23 attrPath = "xfce.${pname}"; ··· 25 }; 26 27 meta = with stdenv.lib; { 28 - homepage = "https://goodies.xfce.org/projects/panel-plugins/${pname}"; 29 - description = "Mailwatch plugin for Xfce panel"; 30 platforms = platforms.linux; 31 maintainers = [ ]; 32 - broken = true; 33 }; 34 }
··· 1 { stdenv, fetchurl, pkgconfig, intltool, libxfce4util, xfce4-panel, libxfce4ui, 2 + gtk2, exo, gnutls, libgcrypt, xfce }: 3 4 let 5 category = "panel-plugins"; ··· 14 sha256 = "1bfw3smwivr9mzdyq768biqrl4aq94zqi3xjzq6kqnd8561cqjk2"; 15 }; 16 17 + nativeBuildInputs = [ 18 + intltool 19 + pkgconfig 20 + ]; 21 + 22 + buildInputs = [ 23 + libxfce4util 24 + libxfce4ui 25 + xfce4-panel 26 + gtk2 27 + exo # needs exo with gtk2 support 28 + gnutls 29 + libgcrypt 30 + ]; 31 + 32 passthru.updateScript = xfce.updateScript { 33 inherit pname version; 34 attrPath = "xfce.${pname}"; ··· 36 }; 37 38 meta = with stdenv.lib; { 39 + homepage = "https://docs.xfce.org/panel-plugins/xfce4-mailwatch-plugin"; 40 + description = "Mail watcher plugin for Xfce panel"; 41 + license = licenses.gpl2; 42 platforms = platforms.linux; 43 maintainers = [ ]; 44 }; 45 }
+19 -10
pkgs/desktops/xfce/panel-plugins/xfce4-mpc-plugin.nix
··· 1 - { stdenv, fetchurl, pkgconfig, intltool, libxfce4util, xfce4-panel, libxfce4ui, 2 - xfconf, gtk2, exo, xfce }: 3 4 let 5 category = "panel-plugins"; ··· 7 8 stdenv.mkDerivation rec { 9 pname = "xfce4-mpc-plugin"; 10 - version = "0.4.5"; 11 12 src = fetchurl { 13 url = "mirror://xfce/src/${category}/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.bz2"; 14 - sha256 = "1kvgq1pq7cykqdc3227dq0izad093ppfw3nfsrcp9i8mi6i5f7z7"; 15 }; 16 17 - nativeBuildInputs = [ pkgconfig ]; 18 - buildInputs = [ intltool libxfce4util libxfce4ui xfce4-panel 19 - xfconf gtk2 exo ]; 20 - 21 passthru.updateScript = xfce.updateScript { 22 inherit pname version; 23 attrPath = "xfce.${pname}"; ··· 25 }; 26 27 meta = with stdenv.lib; { 28 - homepage = "https://goodies.xfce.org/projects/panel-plugins/${pname}"; 29 description = "MPD plugin for Xfce panel"; 30 platforms = platforms.linux; 31 maintainers = [ ]; 32 - broken = true; 33 }; 34 }
··· 1 + { stdenv, fetchurl, pkgconfig, intltool, libxfce4util, xfce4-panel, 2 + libxfce4ui, gtk3, exo, xfce }: 3 4 let 5 category = "panel-plugins"; ··· 7 8 stdenv.mkDerivation rec { 9 pname = "xfce4-mpc-plugin"; 10 + version = "0.5.2"; 11 12 src = fetchurl { 13 url = "mirror://xfce/src/${category}/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.bz2"; 14 + sha256 = "0q3pysdp85b3c7g3b59y3c69g4nw6bvbf518lnri4lxrnsvpizpf"; 15 }; 16 17 + nativeBuildInputs = [ 18 + pkgconfig 19 + intltool 20 + ]; 21 + 22 + buildInputs = [ 23 + libxfce4util 24 + libxfce4ui 25 + xfce4-panel 26 + gtk3 27 + exo 28 + ]; 29 + 30 passthru.updateScript = xfce.updateScript { 31 inherit pname version; 32 attrPath = "xfce.${pname}"; ··· 34 }; 35 36 meta = with stdenv.lib; { 37 + homepage = "https://docs.xfce.org/panel-plugins/xfce4-mpc-plugin"; 38 description = "MPD plugin for Xfce panel"; 39 platforms = platforms.linux; 40 + license = licenses.bsd2; 41 maintainers = [ ]; 42 }; 43 }
+3 -2
pkgs/desktops/xfce/panel-plugins/xfce4-netload-plugin/default.nix
··· 3 mkXfceDerivation { 4 category = "panel-plugins"; 5 pname = "xfce4-netload-plugin"; 6 - version = "1.3.1"; 7 rev-prefix = "version-"; 8 - sha256 = "0nm8advafw4jpc9p1qszyfqa56194sz51z216rdh4c6ilcrrpy1h"; 9 10 buildInputs = [ gtk3 libxfce4ui libxfce4util xfce4-panel xfconf ]; 11
··· 3 mkXfceDerivation { 4 category = "panel-plugins"; 5 pname = "xfce4-netload-plugin"; 6 + version = "1.3.2"; 7 rev-prefix = "version-"; 8 + odd-unstable = false; 9 + sha256 = "1py1l4z5ah4nlq8l2912k47ffsa5z7p1gbvlk7nw6b9r1x4ykdfl"; 10 11 buildInputs = [ gtk3 libxfce4ui libxfce4util xfce4-panel xfconf ]; 12
+21 -8
pkgs/desktops/xfce/panel-plugins/xfce4-notes-plugin.nix
··· 1 - { stdenv, fetchurl, pkgconfig, intltool, libxfce4util, xfce4-panel, libxfce4ui, xfconf, gtk2, libunique, xfce }: 2 3 let 4 category = "panel-plugins"; ··· 6 7 stdenv.mkDerivation rec { 8 pname = "xfce4-notes-plugin"; 9 - version = "1.7.7"; 10 11 src = fetchurl { 12 url = "mirror://xfce/src/${category}/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.bz2"; 13 - sha256 = "05sjbwgch1j93m3r23ksbjnpfk11sf7xjmbb9pm5vl3snc2s3fm7"; 14 }; 15 16 - nativeBuildInputs = [ pkgconfig ]; 17 - buildInputs = [ intltool libxfce4util libxfce4ui xfce4-panel xfconf gtk2 libunique ]; 18 - 19 passthru.updateScript = xfce.updateScript { 20 inherit pname version; 21 attrPath = "xfce.${pname}"; ··· 23 }; 24 25 meta = with stdenv.lib; { 26 - homepage = "https://goodies.xfce.org/projects/panel-plugins/${pname}"; 27 description = "Sticky notes plugin for Xfce panel"; 28 platforms = platforms.linux; 29 maintainers = [ maintainers.AndersonTorres ]; 30 - broken = true; 31 }; 32 }
··· 1 + { stdenv, fetchurl, fetchpatch, pkgconfig, intltool, libxfce4util, xfce4-panel, libxfce4ui, xfconf, gtk2, libunique, xfce }: 2 3 let 4 category = "panel-plugins"; ··· 6 7 stdenv.mkDerivation rec { 8 pname = "xfce4-notes-plugin"; 9 + version = "1.8.1"; 10 11 src = fetchurl { 12 url = "mirror://xfce/src/${category}/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.bz2"; 13 + sha256 = "1cjlvvcsigyh40xa26b2vc5zylgss0nlaw72sablzhii2kkw7907"; 14 }; 15 16 + nativeBuildInputs = [ 17 + pkgconfig 18 + intltool 19 + ]; 20 + 21 + buildInputs = [ 22 + libxfce4util 23 + libxfce4ui 24 + xfce4-panel 25 + xfconf 26 + gtk2 27 + libunique 28 + ]; 29 + 30 + hardeningDisable = [ "format" ]; 31 + 32 passthru.updateScript = xfce.updateScript { 33 inherit pname version; 34 attrPath = "xfce.${pname}"; ··· 36 }; 37 38 meta = with stdenv.lib; { 39 + homepage = "https://docs.xfce.org/panel-plugins/xfce4-notes-plugin"; 40 description = "Sticky notes plugin for Xfce panel"; 41 + license = licenses.gpl2Plus; 42 platforms = platforms.linux; 43 maintainers = [ maintainers.AndersonTorres ]; 44 }; 45 }
+4 -2
pkgs/desktops/xfce/panel-plugins/xfce4-pulseaudio-plugin/default.nix
··· 2 , automakeAddFlags 3 , dbus-glib 4 , dbus 5 , gtk3 6 , libpulseaudio 7 , libnotify ··· 16 mkXfceDerivation { 17 category = "panel-plugins"; 18 pname = "xfce4-pulseaudio-plugin"; 19 - version = "0.4.2"; 20 - sha256 = "1s996mcniskq42vv7cb9i165pmrfp9c95p5f9rx14hqq8in9mvc5"; 21 22 nativeBuildInputs = [ 23 automakeAddFlags ··· 30 ''; 31 32 buildInputs = [ 33 glib 34 gtk3 35 keybinder3
··· 2 , automakeAddFlags 3 , dbus-glib 4 , dbus 5 + , exo 6 , gtk3 7 , libpulseaudio 8 , libnotify ··· 17 mkXfceDerivation { 18 category = "panel-plugins"; 19 pname = "xfce4-pulseaudio-plugin"; 20 + version = "0.4.3"; 21 + sha256 = "1rfw2w8gl95iawiy57qlvz958dqjc8bmxnc3dma4rqzm6g46jkgq"; 22 23 nativeBuildInputs = [ 24 automakeAddFlags ··· 31 ''; 32 33 buildInputs = [ 34 + exo 35 glib 36 gtk3 37 keybinder3
+5 -5
pkgs/desktops/xfce/panel-plugins/xfce4-sensors-plugin.nix
··· 1 - { stdenv, fetchurl, pkgconfig, intltool, gtk2, libxfce4ui, 2 libxfce4util, xfce4-panel, libnotify, lm_sensors, hddtemp, netcat-gnu, xfce 3 }: 4 ··· 8 9 stdenv.mkDerivation rec { 10 pname = "xfce4-sensors-plugin"; 11 - version = "1.2.6"; 12 13 src = fetchurl { 14 url = "mirror://xfce/src/${category}/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.bz2"; 15 - sha256 = "1h0vpqxcziml3gwrbvd8xvy1mwh9mf2a68dvxsy03rs5pm1ghpi3"; 16 }; 17 18 nativeBuildInputs = [ ··· 21 ]; 22 23 buildInputs = [ 24 - gtk2 25 libxfce4ui 26 libxfce4util 27 xfce4-panel ··· 45 }; 46 47 meta = with stdenv.lib; { 48 - homepage = "https://goodies.xfce.org/projects/panel-plugins/${pname}"; 49 description = "A panel plug-in for different sensors using acpi, lm_sensors and hddtemp"; 50 license = licenses.gpl2; 51 platforms = platforms.unix;
··· 1 + { stdenv, fetchurl, pkgconfig, intltool, gtk3, libxfce4ui, 2 libxfce4util, xfce4-panel, libnotify, lm_sensors, hddtemp, netcat-gnu, xfce 3 }: 4 ··· 8 9 stdenv.mkDerivation rec { 10 pname = "xfce4-sensors-plugin"; 11 + version = "1.3.92"; 12 13 src = fetchurl { 14 url = "mirror://xfce/src/${category}/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.bz2"; 15 + sha256 = "04jibw23ibi61f19gc9xy400yhcdiya4px6zp8c7fjq65hyn9iix"; 16 }; 17 18 nativeBuildInputs = [ ··· 21 ]; 22 23 buildInputs = [ 24 + gtk3 25 libxfce4ui 26 libxfce4util 27 xfce4-panel ··· 45 }; 46 47 meta = with stdenv.lib; { 48 + homepage = "https://docs.xfce.org/panel-plugins/xfce4-sensors-plugin"; 49 description = "A panel plug-in for different sensors using acpi, lm_sensors and hddtemp"; 50 license = licenses.gpl2; 51 platforms = platforms.unix;
+17 -7
pkgs/desktops/xfce/panel-plugins/xfce4-systemload-plugin.nix
··· 1 - { stdenv, fetchurl, pkgconfig, intltool, libxfce4util, xfce4-panel, libxfce4ui, gtk2, xfce }: 2 3 let 4 category = "panel-plugins"; ··· 6 7 stdenv.mkDerivation rec { 8 pname = "xfce4-systemload-plugin"; 9 - version = "1.1.2"; 10 11 src = fetchurl { 12 url = "mirror://xfce/src/${category}/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.bz2"; 13 - sha256 = "0z4as6sxdz93d4jpgv0665dg4sykfvc5068mc689phlfl2rvcsdl"; 14 }; 15 16 - nativeBuildInputs = [ pkgconfig ]; 17 - buildInputs = [ intltool libxfce4util libxfce4ui xfce4-panel gtk2 ]; 18 - 19 passthru.updateScript = xfce.updateScript { 20 inherit pname version; 21 attrPath = "xfce.${pname}"; ··· 23 }; 24 25 meta = with stdenv.lib; { 26 - homepage = "https://goodies.xfce.org/projects/panel-plugins/${pname}"; 27 description = "System load plugin for Xfce panel"; 28 platforms = platforms.linux; 29 maintainers = [ maintainers.AndersonTorres ]; 30 };
··· 1 + { stdenv, fetchurl, pkgconfig, intltool, libxfce4util, xfce4-panel, libxfce4ui, gtk3, xfce }: 2 3 let 4 category = "panel-plugins"; ··· 6 7 stdenv.mkDerivation rec { 8 pname = "xfce4-systemload-plugin"; 9 + version = "1.2.3"; 10 11 src = fetchurl { 12 url = "mirror://xfce/src/${category}/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.bz2"; 13 + sha256 = "0x87a8h5l3ashz1ksfaxcpn9a392jzlsbx5n5pga8g90fp2hf905"; 14 }; 15 16 + nativeBuildInputs = [ 17 + pkgconfig 18 + intltool 19 + ]; 20 + 21 + buildInputs = [ 22 + libxfce4util 23 + libxfce4ui 24 + xfce4-panel 25 + gtk3 26 + ]; 27 + 28 passthru.updateScript = xfce.updateScript { 29 inherit pname version; 30 attrPath = "xfce.${pname}"; ··· 32 }; 33 34 meta = with stdenv.lib; { 35 + homepage = "https://docs.xfce.org/panel-plugins/xfce4-systemload-plugin"; 36 description = "System load plugin for Xfce panel"; 37 + license = licenses.bsd2; 38 platforms = platforms.linux; 39 maintainers = [ maintainers.AndersonTorres ]; 40 };
+16 -10
pkgs/desktops/xfce/panel-plugins/xfce4-timer-plugin.nix
··· 1 - { stdenv, fetchurl, pkgconfig, intltool, libxfce4util, xfce4-panel 2 - , libxfce4ui, xfconf, gtk2, hicolor-icon-theme, xfce }: 3 4 let 5 category = "panel-plugins"; ··· 7 8 stdenv.mkDerivation rec { 9 pname = "xfce4-timer-plugin"; 10 - version = "1.6.0"; 11 12 src = fetchurl { 13 url = "mirror://xfce/src/${category}/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.bz2"; 14 - sha256 = "0z46gyw3ihcd1jf0m5z1dsc790xv1cpi8mk1dagj3i4v14gx5mrr"; 15 }; 16 17 - buildInputs = [ intltool libxfce4util libxfce4ui xfce4-panel xfconf 18 - gtk2 hicolor-icon-theme ]; 19 20 - nativeBuildInputs = [ pkgconfig ]; 21 22 hardeningDisable = [ "format" ]; 23 ··· 28 }; 29 30 meta = with stdenv.lib; { 31 - homepage = "https://goodies.xfce.org/projects/panel-plugins/${pname}"; 32 - description = "A simple XFCE panel plugin that lets the user run an alarm at a specified time or at the end of a specified countdown period"; 33 platforms = platforms.linux; 34 license = licenses.gpl2; 35 maintainers = [ ]; 36 - broken = true; 37 }; 38 }
··· 1 + { stdenv, fetchurl, pkgconfig, intltool, libxfce4util, xfce4-panel, libxfce4ui, gtk3, hicolor-icon-theme, xfce }: 2 3 let 4 category = "panel-plugins"; ··· 6 7 stdenv.mkDerivation rec { 8 pname = "xfce4-timer-plugin"; 9 + version = "1.7.0"; 10 11 src = fetchurl { 12 url = "mirror://xfce/src/${category}/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.bz2"; 13 + sha256 = "16vypwwjwfk7nn4n16rfgn0z78jqrmbgxmc1r46269lrwd1m6kif"; 14 }; 15 16 + nativeBuildInputs = [ 17 + pkgconfig 18 + intltool 19 + ]; 20 21 + buildInputs = [ 22 + libxfce4util 23 + libxfce4ui 24 + xfce4-panel 25 + gtk3 26 + hicolor-icon-theme 27 + ]; 28 29 hardeningDisable = [ "format" ]; 30 ··· 35 }; 36 37 meta = with stdenv.lib; { 38 + homepage = "https://docs.xfce.org/panel-plugins/xfce4-timer-plugin"; 39 + description = "Simple countdown and alarm plugin for the Xfce panel"; 40 platforms = platforms.linux; 41 license = licenses.gpl2; 42 maintainers = [ ]; 43 }; 44 }
+2 -2
pkgs/desktops/xfce/panel-plugins/xfce4-vala-panel-appmenu-plugin/default.nix
··· 4 5 stdenv.mkDerivation rec { 6 pname = "xfce4-vala-panel-appmenu-plugin"; 7 - version = "0.6.94"; 8 9 src = fetchFromGitHub { 10 owner = "rilian-la-te"; ··· 12 rev = version; 13 fetchSubmodules = true; 14 15 - sha256 = "0xxn3zs60a9nfix8wrdp056wviq281cm1031hznzf1l38lp3wr5p"; 16 }; 17 18 nativeBuildInputs = [ pkgconfig cmake vala libxml2.bin ];
··· 4 5 stdenv.mkDerivation rec { 6 pname = "xfce4-vala-panel-appmenu-plugin"; 7 + version = "0.7.3"; 8 9 src = fetchFromGitHub { 10 owner = "rilian-la-te"; ··· 12 rev = version; 13 fetchSubmodules = true; 14 15 + sha256 = "06rykdr2c9rnzxwinwdynd73v9wf0gjkx6qfva7sx2n94ajsdnaw"; 16 }; 17 18 nativeBuildInputs = [ pkgconfig cmake vala libxml2.bin ];
+18 -7
pkgs/desktops/xfce/panel-plugins/xfce4-weather-plugin.nix
··· 1 - { stdenv, fetchurl, pkgconfig, intltool, gtk2, libxml2, libsoup, upower, 2 libxfce4ui, libxfce4util, xfce4-panel, hicolor-icon-theme, xfce }: 3 4 let ··· 7 8 stdenv.mkDerivation rec { 9 pname = "xfce4-weather-plugin"; 10 - version = "0.8.10"; 11 12 src = fetchurl { 13 url = "mirror://xfce/src/${category}/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.bz2"; 14 - sha256 = "1f7ac2zr5s5w6krdpgsq252wxhhmcblia3j783132ilh8k246vgf"; 15 }; 16 17 - nativeBuildInputs = [ pkgconfig intltool ]; 18 19 - buildInputs = [ gtk2 libxml2 libsoup upower libxfce4ui libxfce4util 20 - xfce4-panel hicolor-icon-theme ]; 21 22 enableParallelBuilding = true; 23 ··· 28 }; 29 30 meta = with stdenv.lib; { 31 - homepage = "https://goodies.xfce.org/projects/panel-plugins/${pname}"; 32 description = "Weather plugin for the Xfce desktop environment"; 33 license = licenses.gpl2Plus; 34 platforms = platforms.unix;
··· 1 + { stdenv, fetchurl, pkgconfig, intltool, gtk3, libxml2, libsoup, upower, 2 libxfce4ui, libxfce4util, xfce4-panel, hicolor-icon-theme, xfce }: 3 4 let ··· 7 8 stdenv.mkDerivation rec { 9 pname = "xfce4-weather-plugin"; 10 + version = "0.10.1"; 11 12 src = fetchurl { 13 url = "mirror://xfce/src/${category}/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.bz2"; 14 + sha256 = "12bs2rfmmy021087i10vxibdbbvd5vld0vk3h5hymhpz7rgszcmg"; 15 }; 16 17 + nativeBuildInputs = [ 18 + pkgconfig 19 + intltool 20 + ]; 21 22 + buildInputs = [ 23 + gtk3 24 + libxml2 25 + libsoup 26 + upower 27 + libxfce4ui 28 + libxfce4util 29 + xfce4-panel 30 + hicolor-icon-theme 31 + ]; 32 33 enableParallelBuilding = true; 34 ··· 39 }; 40 41 meta = with stdenv.lib; { 42 + homepage = "https://docs.xfce.org/panel-plugins/xfce4-weather-plugin"; 43 description = "Weather plugin for the Xfce desktop environment"; 44 license = licenses.gpl2Plus; 45 platforms = platforms.unix;
+21 -7
pkgs/desktops/xfce/panel-plugins/xfce4-windowck-plugin.nix
··· 3 4 stdenv.mkDerivation rec { 5 pname = "xfce4-windowck-plugin"; 6 - version = "0.4.4"; 7 8 src = fetchFromGitHub { 9 owner = "cedl38"; 10 repo = pname; 11 rev = "v${version}"; 12 - sha256 = "0c6a1ibh39dpq9x0dha5lsg0vzmgaf051fgwz0nlky0s94nwzvgv"; 13 }; 14 15 - nativeBuildInputs = [ pkgconfig ]; 16 - buildInputs = [ intltool python3 imagemagick libwnck gtk2 17 - exo libxfce4ui libxfce4util xfce4-panel xfconf xfce4-dev-tools ]; 18 19 preConfigure = '' 20 ./autogen.sh ··· 31 }; 32 33 meta = with stdenv.lib; { 34 - homepage = "https://goodies.xfce.org/projects/panel-plugins/${pname}"; 35 - description = "Set of two plugins which allows you to put the maximized window title and windows buttons on the panel"; 36 license = licenses.gpl2Plus; 37 platforms = platforms.unix; 38 maintainers = [ maintainers.volth ];
··· 3 4 stdenv.mkDerivation rec { 5 pname = "xfce4-windowck-plugin"; 6 + version = "0.4.6"; 7 8 src = fetchFromGitHub { 9 owner = "cedl38"; 10 repo = pname; 11 rev = "v${version}"; 12 + sha256 = "1gwrbjfv4cnlsqh05h42w41z3xs15yjj6j8y9gxvvvvlgzzp4p3g"; 13 }; 14 15 + nativeBuildInputs = [ 16 + pkgconfig 17 + intltool 18 + ]; 19 + 20 + buildInputs = [ 21 + python3 22 + imagemagick 23 + libwnck 24 + gtk2 25 + exo 26 + libxfce4ui 27 + libxfce4util 28 + xfce4-panel 29 + xfconf 30 + xfce4-dev-tools 31 + ]; 32 33 preConfigure = '' 34 ./autogen.sh ··· 45 }; 46 47 meta = with stdenv.lib; { 48 + homepage = "https://goodies.xfce.org/projects/panel-plugins/xfce4-windowck-plugin"; 49 + description = "Xfce plugins which allows to put the maximized window title and buttons on the panel"; 50 license = licenses.gpl2Plus; 51 platforms = platforms.unix; 52 maintainers = [ maintainers.volth ];
+1 -1
pkgs/development/compilers/graalvm/default.nix
··· 150 ]; 151 152 graal-mxcache = jvmci8-mxcache ++ [ 153 - # rec { sha1 = "5001adab652fc4eb35e30cdefbb0765442f8b7db"; name = "LLVM_ORG_LIBCXX_SRC_${sha1}/llvm-org-libcxx-src.tar.gz"; url = https://lafo.ssw.uni-linz.ac.at/pub/llvm-org/compiler-rt-llvmorg-8.0.0-4-gd563e33a79-bgae3b177eaa-linux-amd64.tar.gz; } 154 rec { sha1 = "5001adab652fc4eb35e30cdefbb0765442f8b7db"; name = "LLVM_ORG_COMPILER_RT_LINUX_${sha1}/llvm-org-compiler-rt-linux.tar.gz"; url = "https://lafo.ssw.uni-linz.ac.at/pub/llvm-org/compiler-rt-llvmorg-8.0.0-4-gd563e33a79-bgae3b177eaa-linux-amd64.tar.gz"; } 155 rec { sha1 = "a990b2dba1c706f5c43c56fedfe70bad9a695852"; name = "LLVM_WRAPPER_${sha1}/llvm-wrapper.jar"; url = "mirror://maven/org/bytedeco/javacpp-presets/llvm/6.0.1-1.4.2/llvm-6.0.1-1.4.2.jar"; } 156 rec { sha1 = "decbd95d46092fa9afaf2523b5b23d07ad7ad6bc"; name = "LLVM_WRAPPER_${sha1}/llvm-wrapper.sources.jar"; url = "mirror://maven/org/bytedeco/javacpp-presets/llvm/6.0.1-1.4.2/llvm-6.0.1-1.4.2-sources.jar"; }
··· 150 ]; 151 152 graal-mxcache = jvmci8-mxcache ++ [ 153 + # rec { sha1 = "5001adab652fc4eb35e30cdefbb0765442f8b7db"; name = "LLVM_ORG_LIBCXX_SRC_${sha1}/llvm-org-libcxx-src.tar.gz"; url = "https://lafo.ssw.uni-linz.ac.at/pub/llvm-org/compiler-rt-llvmorg-8.0.0-4-gd563e33a79-bgae3b177eaa-linux-amd64.tar.gz"; } 154 rec { sha1 = "5001adab652fc4eb35e30cdefbb0765442f8b7db"; name = "LLVM_ORG_COMPILER_RT_LINUX_${sha1}/llvm-org-compiler-rt-linux.tar.gz"; url = "https://lafo.ssw.uni-linz.ac.at/pub/llvm-org/compiler-rt-llvmorg-8.0.0-4-gd563e33a79-bgae3b177eaa-linux-amd64.tar.gz"; } 155 rec { sha1 = "a990b2dba1c706f5c43c56fedfe70bad9a695852"; name = "LLVM_WRAPPER_${sha1}/llvm-wrapper.jar"; url = "mirror://maven/org/bytedeco/javacpp-presets/llvm/6.0.1-1.4.2/llvm-6.0.1-1.4.2.jar"; } 156 rec { sha1 = "decbd95d46092fa9afaf2523b5b23d07ad7ad6bc"; name = "LLVM_WRAPPER_${sha1}/llvm-wrapper.sources.jar"; url = "mirror://maven/org/bytedeco/javacpp-presets/llvm/6.0.1-1.4.2/llvm-6.0.1-1.4.2-sources.jar"; }
+41
pkgs/development/compilers/ldc/binary.nix
···
··· 1 + { stdenv, fetchurl, curl, tzdata, autoPatchelfHook, fixDarwinDylibNames, libxml2 2 + , version, hashes }: 3 + with stdenv; 4 + let 5 + OS = if hostPlatform.isDarwin then "osx" else hostPlatform.parsed.kernel.name; 6 + ARCH = toString hostPlatform.parsed.cpu.name; 7 + in mkDerivation { 8 + pname = "ldc-bootstrap"; 9 + inherit version; 10 + 11 + src = fetchurl rec { 12 + name = "ldc2-${version}-${OS}-${ARCH}.tar.xz"; 13 + url = "https://github.com/ldc-developers/ldc/releases/download/v${version}/${name}"; 14 + sha256 = hashes."${OS}-${ARCH}" or (throw "missing bootstrap sha256 for ${OS}-${ARCH}"); 15 + }; 16 + 17 + dontConfigure = true; 18 + dontBuild = true; 19 + 20 + nativeBuildInputs = [ fixDarwinDylibNames autoPatchelfHook ]; 21 + 22 + buildInputs = lib.optionals stdenv.hostPlatform.isLinux [ libxml2 stdenv.cc.cc ]; 23 + 24 + propagatedBuildInputs = [ curl tzdata ]; 25 + 26 + installPhase = '' 27 + mkdir -p $out 28 + 29 + mv bin etc import lib LICENSE README $out/ 30 + ''; 31 + 32 + meta = with lib; { 33 + inherit version; 34 + description = "The LLVM-based D Compiler"; 35 + homepage = "https://github.com/ldc-developers/ldc"; 36 + # from https://github.com/ldc-developers/ldc/blob/master/LICENSE 37 + license = with licenses; [ bsd3 boost mit ncsa gpl2Plus ]; 38 + maintainers = with maintainers; [ ThomasMader lionello ]; 39 + platforms = [ "x86_64-linux" "x86_64-darwin" "aarch64-linux" ]; 40 + }; 41 + }
+10
pkgs/development/compilers/ldc/bootstrap.nix
···
··· 1 + { callPackage }: 2 + callPackage ./binary.nix { 3 + version = "1.19.0"; 4 + hashes = { 5 + # Get these from `nix-prefetch-url https://github.com/ldc-developers/ldc/releases/download/v1.19.0/ldc2-1.19.0-osx-x86_64.tar.xz` etc.. 6 + osx-x86_64 = "1bp3xkh9zp64dzq8isanib1gacb3nfbl70qv15qygwk1zan6zgy7"; 7 + linux-x86_64 = "146grr2lwarfk13wgkpyb77xb6b3as1is2rf4s2hipqjmc8biy1h"; 8 + linux-aarch64 = "1fv6jshfvi15m7masgxq1hgp216qjd5amizrqdf26vhrq3a08li3"; 9 + }; 10 + }
+3 -171
pkgs/development/compilers/ldc/default.nix
··· 1 - { stdenv, fetchurl, cmake, ninja, llvm_5, llvm_8, curl, tzdata 2 - , libconfig, lit, gdb, unzip, darwin, bash 3 - , callPackage, makeWrapper, runCommand, targetPackages 4 - , bootstrapVersion ? false 5 - , version ? "1.17.0" 6 - , ldcSha256 ? "1aag5jfrng6p4ms0fs90hjbv9bcj3hj8h52r68c3cm6racdajbva" 7 - }: 8 - 9 - let 10 - bootstrapLdc = if !bootstrapVersion then 11 - # LDC 0.17.x is the last version which doesn't need a working D compiler to 12 - # build so we use that version to bootstrap the actual build. 13 - callPackage ./default.nix { 14 - bootstrapVersion = true; 15 - version = "0.17.6"; 16 - ldcSha256 = "0qf5kbxddgmg3kqzi0kf4bgv8vdrnv16y07hcpm0cwv9mc3qr2w6"; 17 - } 18 - else 19 - ""; 20 - 21 - pathConfig = runCommand "ldc-lib-paths" {} '' 22 - mkdir $out 23 - echo ${tzdata}/share/zoneinfo/ > $out/TZDatabaseDirFile 24 - echo ${curl.out}/lib/libcurl${stdenv.hostPlatform.extensions.sharedLibrary} > $out/LibcurlPathFile 25 - ''; 26 - in 27 - 28 - stdenv.mkDerivation rec { 29 - pname = "ldc"; 30 - inherit version; 31 - 32 - enableParallelBuilding = true; 33 - 34 - src = fetchurl { 35 - url = "https://github.com/ldc-developers/ldc/releases/download/v${version}/ldc-${version}-src.tar.gz"; 36 - sha256 = ldcSha256; 37 - }; 38 - 39 - # https://issues.dlang.org/show_bug.cgi?id=19553 40 - hardeningDisable = [ "fortify" ]; 41 - 42 - postUnpack = '' 43 - patchShebangs . 44 - '' 45 - 46 - + stdenv.lib.optionalString (!bootstrapVersion) '' 47 - rm ldc-${version}-src/tests/d2/dmd-testsuite/fail_compilation/mixin_gc.d 48 - rm ldc-${version}-src/tests/d2/dmd-testsuite/runnable/xtest46_gc.d 49 - rm ldc-${version}-src/tests/d2/dmd-testsuite/runnable/testptrref_gc.d 50 - 51 - # test depends on current year 52 - rm ldc-${version}-src/tests/d2/dmd-testsuite/compilable/ddocYear.d 53 - '' 54 - 55 - + stdenv.lib.optionalString (!bootstrapVersion && stdenv.hostPlatform.isDarwin) '' 56 - # https://github.com/NixOS/nixpkgs/issues/34817 57 - rm -r ldc-${version}-src/tests/plugins/addFuncEntryCall 58 - ''; 59 - 60 - postPatch = '' 61 - # Setting SHELL=$SHELL when dmd testsuite is run doesn't work on Linux somehow 62 - substituteInPlace tests/d2/dmd-testsuite/Makefile --replace "SHELL=/bin/bash" "SHELL=${bash}/bin/bash" 63 - '' 64 - 65 - + stdenv.lib.optionalString (!bootstrapVersion && stdenv.hostPlatform.isLinux) '' 66 - substituteInPlace runtime/phobos/std/socket.d --replace "assert(ih.addrList[0] == 0x7F_00_00_01);" "" 67 - '' 68 - 69 - + stdenv.lib.optionalString (!bootstrapVersion && stdenv.hostPlatform.isDarwin) '' 70 - substituteInPlace runtime/phobos/std/socket.d --replace "foreach (name; names)" "names = []; foreach (name; names)" 71 - '' 72 - 73 - + stdenv.lib.optionalString (bootstrapVersion && stdenv.hostPlatform.isDarwin) '' 74 - # Was not able to compile on darwin due to "__inline_isnanl" 75 - # being undefined. 76 - # TODO Remove with version > 0.17.6 77 - substituteInPlace dmd2/root/port.c --replace __inline_isnanl __inline_isnan 78 - ''; 79 - 80 - nativeBuildInputs = [ cmake ninja makeWrapper unzip ] 81 - ++ stdenv.lib.optionals (!bootstrapVersion) [ 82 - bootstrapLdc lit lit.python 83 - ] 84 - ++ stdenv.lib.optional (!bootstrapVersion && stdenv.hostPlatform.isDarwin) 85 - # https://github.com/NixOS/nixpkgs/issues/57120 86 - # https://github.com/NixOS/nixpkgs/pull/59197#issuecomment-481972515 87 - llvm_5 88 - ++ stdenv.lib.optional (!bootstrapVersion && !stdenv.hostPlatform.isDarwin) 89 - llvm_8 90 - ++ stdenv.lib.optional (!bootstrapVersion && !stdenv.hostPlatform.isDarwin) 91 - # https://github.com/NixOS/nixpkgs/pull/36378#issuecomment-385034818 92 - gdb 93 - ++ stdenv.lib.optionals (bootstrapVersion) [ 94 - libconfig llvm_5 95 - ] 96 - ++ stdenv.lib.optional stdenv.hostPlatform.isDarwin 97 - darwin.apple_sdk.frameworks.Foundation; 98 - 99 - 100 - buildInputs = [ curl tzdata ]; 101 - 102 - cmakeFlags = stdenv.lib.optionals (!bootstrapVersion) [ 103 - "-DD_FLAGS=-d-version=TZDatabaseDir;-d-version=LibcurlPath;-J${pathConfig}" 104 - "-DCMAKE_BUILD_TYPE=Release" 105 - ]; 106 - 107 - postConfigure = '' 108 - export DMD=$PWD/bin/ldmd2 109 - ''; 110 - 111 - makeFlags = [ "DMD=$DMD" ]; 112 - 113 - fixNames = stdenv.lib.optionalString stdenv.hostPlatform.isDarwin '' 114 - fixDarwinDylibNames() { 115 - local flags=() 116 - 117 - for fn in "$@"; do 118 - flags+=(-change "$(basename "$fn")" "$fn") 119 - done 120 - 121 - for fn in "$@"; do 122 - if [ -L "$fn" ]; then continue; fi 123 - echo "$fn: fixing dylib" 124 - install_name_tool -id "$fn" "''${flags[@]}" "$fn" 125 - done 126 - } 127 - 128 - fixDarwinDylibNames $(find "$(pwd)/lib" -name "*.dylib") 129 - export DYLD_LIBRARY_PATH=$(pwd)/lib 130 - ''; 131 - 132 - # https://github.com/ldc-developers/ldc/issues/2497#issuecomment-459633746 133 - additionalExceptions = stdenv.lib.optionalString stdenv.hostPlatform.isDarwin 134 - "|druntime-test-shared"; 135 - 136 - doCheck = !bootstrapVersion; 137 - 138 - checkPhase = stdenv.lib.optionalString doCheck '' 139 - # Build default lib test runners 140 - ninja -j$NIX_BUILD_CORES all-test-runners 141 - 142 - ${fixNames} 143 - 144 - # Run dmd testsuite 145 - export DMD_TESTSUITE_MAKE_ARGS="-j$NIX_BUILD_CORES DMD=$DMD CC=$CXX" 146 - ctest -V -R "dmd-testsuite" 147 - 148 - # Build and run LDC D unittests. 149 - ctest --output-on-failure -R "ldc2-unittest" 150 - 151 - # Run LIT testsuite. 152 - ctest -V -R "lit-tests" 153 - 154 - # Run default lib unittests 155 - ctest -j$NIX_BUILD_CORES --output-on-failure -E "ldc2-unittest|lit-tests|dmd-testsuite${additionalExceptions}" 156 - ''; 157 - 158 - postInstall = '' 159 - wrapProgram $out/bin/ldc2 \ 160 - --prefix PATH ":" "${targetPackages.stdenv.cc}/bin" \ 161 - --set-default CC "${targetPackages.stdenv.cc}/bin/cc" 162 - ''; 163 - 164 - meta = with stdenv.lib; { 165 - description = "The LLVM-based D compiler"; 166 - homepage = "https://github.com/ldc-developers/ldc"; 167 - # from https://github.com/ldc-developers/ldc/blob/master/LICENSE 168 - license = with licenses; [ bsd3 boost mit ncsa gpl2Plus ]; 169 - maintainers = with maintainers; [ ThomasMader ]; 170 - platforms = [ "x86_64-linux" "i686-linux" "x86_64-darwin" ]; 171 - }; 172 } 173
··· 1 + import ./generic.nix { 2 + version = "1.20.1"; 3 + ldcSha256 = "1bqsgab22v02pc3c9gcyf15y7aimadv24d68icaw5lpgnvzxy89b"; 4 } 5
+143
pkgs/development/compilers/ldc/generic.nix
···
··· 1 + { version, ldcSha256 }: 2 + { stdenv, fetchurl, cmake, ninja, llvm_5, llvm_8, curl, tzdata 3 + , libconfig, lit, gdb, unzip, darwin, bash 4 + , callPackage, makeWrapper, runCommand, targetPackages 5 + , ldcBootstrap ? callPackage ./bootstrap.nix { } 6 + }: 7 + 8 + let 9 + pathConfig = runCommand "ldc-lib-paths" {} '' 10 + mkdir $out 11 + echo ${tzdata}/share/zoneinfo/ > $out/TZDatabaseDirFile 12 + echo ${curl.out}/lib/libcurl${stdenv.hostPlatform.extensions.sharedLibrary} > $out/LibcurlPathFile 13 + ''; 14 + 15 + in 16 + 17 + stdenv.mkDerivation rec { 18 + pname = "ldc"; 19 + inherit version; 20 + 21 + enableParallelBuilding = true; 22 + 23 + src = fetchurl { 24 + url = "https://github.com/ldc-developers/ldc/releases/download/v${version}/ldc-${version}-src.tar.gz"; 25 + sha256 = ldcSha256; 26 + }; 27 + 28 + # https://issues.dlang.org/show_bug.cgi?id=19553 29 + hardeningDisable = [ "fortify" ]; 30 + 31 + postUnpack = '' 32 + patchShebangs . 33 + '' 34 + + '' 35 + rm ldc-${version}-src/tests/d2/dmd-testsuite/fail_compilation/mixin_gc.d 36 + rm ldc-${version}-src/tests/d2/dmd-testsuite/runnable/xtest46_gc.d 37 + rm ldc-${version}-src/tests/d2/dmd-testsuite/runnable/testptrref_gc.d 38 + 39 + # test depends on current year 40 + rm ldc-${version}-src/tests/d2/dmd-testsuite/compilable/ddocYear.d 41 + '' 42 + + stdenv.lib.optionalString stdenv.hostPlatform.isDarwin '' 43 + # https://github.com/NixOS/nixpkgs/issues/34817 44 + rm -r ldc-${version}-src/tests/plugins/addFuncEntryCall 45 + ''; 46 + 47 + postPatch = '' 48 + # Setting SHELL=$SHELL when dmd testsuite is run doesn't work on Linux somehow 49 + substituteInPlace tests/d2/dmd-testsuite/Makefile --replace "SHELL=/bin/bash" "SHELL=${bash}/bin/bash" 50 + '' 51 + + stdenv.lib.optionalString stdenv.hostPlatform.isLinux '' 52 + substituteInPlace runtime/phobos/std/socket.d --replace "assert(ih.addrList[0] == 0x7F_00_00_01);" "" 53 + '' 54 + + stdenv.lib.optionalString stdenv.hostPlatform.isDarwin '' 55 + substituteInPlace runtime/phobos/std/socket.d --replace "foreach (name; names)" "names = []; foreach (name; names)" 56 + ''; 57 + 58 + nativeBuildInputs = [ 59 + cmake ninja makeWrapper unzip ldcBootstrap lit lit.python 60 + ] 61 + ++ stdenv.lib.optionals stdenv.hostPlatform.isDarwin [ 62 + darwin.apple_sdk.frameworks.Foundation 63 + # https://github.com/NixOS/nixpkgs/issues/57120 64 + # https://github.com/NixOS/nixpkgs/pull/59197#issuecomment-481972515 65 + llvm_5 66 + ] 67 + ++ stdenv.lib.optionals (!stdenv.hostPlatform.isDarwin) [ 68 + llvm_8 69 + # https://github.com/NixOS/nixpkgs/pull/36378#issuecomment-385034818 70 + gdb 71 + ]; 72 + 73 + buildInputs = [ curl tzdata ]; 74 + 75 + cmakeFlags = [ 76 + "-DD_FLAGS=-d-version=TZDatabaseDir;-d-version=LibcurlPath;-J${pathConfig}" 77 + "-DCMAKE_BUILD_TYPE=Release" 78 + ]; 79 + 80 + postConfigure = '' 81 + export DMD=$PWD/bin/ldmd2 82 + ''; 83 + 84 + makeFlags = [ "DMD=$DMD" ]; 85 + 86 + fixNames = stdenv.lib.optionalString stdenv.hostPlatform.isDarwin '' 87 + fixDarwinDylibNames() { 88 + local flags=() 89 + 90 + for fn in "$@"; do 91 + flags+=(-change "$(basename "$fn")" "$fn") 92 + done 93 + 94 + for fn in "$@"; do 95 + if [ -L "$fn" ]; then continue; fi 96 + echo "$fn: fixing dylib" 97 + install_name_tool -id "$fn" "''${flags[@]}" "$fn" 98 + done 99 + } 100 + 101 + fixDarwinDylibNames $(find "$(pwd)/lib" -name "*.dylib") 102 + export DYLD_LIBRARY_PATH=$(pwd)/lib 103 + ''; 104 + 105 + # https://github.com/ldc-developers/ldc/issues/2497#issuecomment-459633746 106 + additionalExceptions = stdenv.lib.optionalString stdenv.hostPlatform.isDarwin 107 + "|druntime-test-shared"; 108 + 109 + checkPhase = '' 110 + # Build default lib test runners 111 + ninja -j$NIX_BUILD_CORES all-test-runners 112 + 113 + ${fixNames} 114 + 115 + # Run dmd testsuite 116 + export DMD_TESTSUITE_MAKE_ARGS="-j$NIX_BUILD_CORES DMD=$DMD" 117 + ctest -V -R "dmd-testsuite" 118 + 119 + # Build and run LDC D unittests. 120 + ctest --output-on-failure -R "ldc2-unittest" 121 + 122 + # Run LIT testsuite. 123 + ctest -V -R "lit-tests" 124 + 125 + # Run default lib unittests 126 + ctest -j$NIX_BUILD_CORES --output-on-failure -E "ldc2-unittest|lit-tests|dmd-testsuite${additionalExceptions}" 127 + ''; 128 + 129 + postInstall = '' 130 + wrapProgram $out/bin/ldc2 \ 131 + --prefix PATH ":" "${targetPackages.stdenv.cc}/bin" \ 132 + --set-default CC "${targetPackages.stdenv.cc}/bin/cc" 133 + ''; 134 + 135 + meta = with stdenv.lib; { 136 + description = "The LLVM-based D compiler"; 137 + homepage = "https://github.com/ldc-developers/ldc"; 138 + # from https://github.com/ldc-developers/ldc/blob/master/LICENSE 139 + license = with licenses; [ bsd3 boost mit ncsa gpl2Plus ]; 140 + maintainers = with maintainers; [ ThomasMader lionello ]; 141 + platforms = [ "x86_64-linux" "i686-linux" "x86_64-darwin" ]; 142 + }; 143 + }
+3 -3
pkgs/development/compilers/tinygo/default.nix
··· 3 4 buildGoModule rec { 5 pname = "tinygo"; 6 - version = "0.12.0"; 7 8 src = fetchFromGitHub { 9 owner = "tinygo-org"; 10 repo = "tinygo"; 11 rev = "v${version}"; 12 - sha256 = "0dw3kxf55p617pb0bj3knsqcfvap5scxlvhh3a9g9ia92kann4v1"; 13 }; 14 15 - modSha256 = "1bjq4vaf38hi204lr9w3r3wcy1rzj06ygi5gzfa7dl3kx10hw6p0"; 16 enableParallelBuilding = true; 17 subPackages = [ "." ]; 18 buildInputs = [ llvm clang-unwrapped makeWrapper ];
··· 3 4 buildGoModule rec { 5 pname = "tinygo"; 6 + version = "0.13.0"; 7 8 src = fetchFromGitHub { 9 owner = "tinygo-org"; 10 repo = "tinygo"; 11 rev = "v${version}"; 12 + sha256 = "0x59j56y704m2hfkg78illgw9f6czrx265x887jfd989lnxphyqa"; 13 }; 14 15 + modSha256 = "0y8n4mcr4jhas29ahvk8k4zbj1iz65fdpsgq61qa8kcsm8m5kqa6"; 16 enableParallelBuilding = true; 17 subPackages = [ "." ]; 18 buildInputs = [ llvm clang-unwrapped makeWrapper ];
+2 -2
pkgs/development/haskell-modules/configuration-tensorflow.nix
··· 55 haskell-src-exts_1_19_1 = appendPatches (doJailbreak super.haskell-src-exts_1_19_1) [ 56 # Adapt to the Semigroup–Monoid Proposal (enables building on GHC >= 8.4) 57 (pkgs.fetchpatch { 58 - url = https://github.com/haskell-suite/haskell-src-exts/commit/258e072fe9e37f94360b7488b58ea2832843bbb8.patch; 59 sha256 = "0ja6ai41v9plinlhjwja282m6ahn6mw4xi79np0jxqk83cg0z1ff"; 60 }) 61 # Adapt to MonadFail proposal (enables building on GHC >= 8.8) 62 (pkgs.fetchpatch { 63 - url = https://gist.githubusercontent.com/mikesperber/0f2addaf3fbe97ffb4a5234d8711ba41/raw/e09e20998283c7195e82d546ba9266d290eb000d/gistfile1.txt; 64 sha256 = "18clvli7vpqsqlf2f3qidn71738j9zdlpana6wha3x0dxwan5ly0"; 65 }) ]; 66
··· 55 haskell-src-exts_1_19_1 = appendPatches (doJailbreak super.haskell-src-exts_1_19_1) [ 56 # Adapt to the Semigroup–Monoid Proposal (enables building on GHC >= 8.4) 57 (pkgs.fetchpatch { 58 + url = "https://github.com/haskell-suite/haskell-src-exts/commit/258e072fe9e37f94360b7488b58ea2832843bbb8.patch"; 59 sha256 = "0ja6ai41v9plinlhjwja282m6ahn6mw4xi79np0jxqk83cg0z1ff"; 60 }) 61 # Adapt to MonadFail proposal (enables building on GHC >= 8.8) 62 (pkgs.fetchpatch { 63 + url = "https://gist.githubusercontent.com/mikesperber/0f2addaf3fbe97ffb4a5234d8711ba41/raw/e09e20998283c7195e82d546ba9266d290eb000d/gistfile1.txt"; 64 sha256 = "18clvli7vpqsqlf2f3qidn71738j9zdlpana6wha3x0dxwan5ly0"; 65 }) ]; 66
+10 -33
pkgs/development/interpreters/j/default.nix
··· 2 3 stdenv.mkDerivation rec { 4 pname = "j"; 5 - version = "807"; 6 - jtype = "release"; 7 src = fetchFromGitHub { 8 owner = "jsoftware"; 9 repo = "jsource"; 10 rev = "j${version}-${jtype}"; 11 - sha256 = "1qciw2yg9x996zglvj2461qby038x89xcmfb3qyrh3myn8m1nq2n"; 12 }; 13 14 buildInputs = [ readline libedit bc ]; ··· 26 export HOME=$TMPDIR 27 export JLIB=$SOURCE_DIR/jlibrary 28 29 - export jbld=$HOME/bld 30 - export jplatform=${platform} 31 - export jmake=$SOURCE_DIR/make 32 - export jgit=$SOURCE_DIR 33 - export JBIN=$jbld/j${bits}/bin 34 - mkdir -p $JBIN 35 - 36 echo $OUT_DIR 37 38 - cd make 39 40 patchShebangs . 41 - sed -i jvars.sh -e " 42 - s@~/git/jsource@$SOURCE_DIR@; 43 - s@~/jbld@$HOME@; 44 - " 45 - 46 sed -i $JLIB/bin/profile.ijs -e "s@'/usr/share/j/.*'@'$out/share/j'@;" 47 48 - # For future versions, watch 49 - # https://github.com/jsoftware/jsource/pull/4 50 - cp ./jvars.sh $HOME 51 52 - echo ' 53 - #define jversion "${version}" 54 - #define jplatform "${platform}" 55 - #define jtype "${jtype}" // release,beta,... 56 - #define jlicense "GPL3" 57 - #define jbuilder "nixpkgs" // website or email 58 - ' > ../jsrc/jversion.h 59 - 60 - ./build_jconsole.sh j${bits} 61 - ./build_libj.sh j${bits} 62 ''; 63 64 checkPhase = '' 65 - echo 'i. 5' | $JBIN/jconsole | fgrep "0 1 2 3 4" 66 67 # Now run the real tests 68 cd $SOURCE_DIR/test 69 for f in *.ijs 70 do 71 echo $f 72 - $JBIN/jconsole < $f > /dev/null || echo FAIL && echo PASS 73 done 74 ''; 75 76 installPhase = '' 77 mkdir -p "$out" 78 - cp -r $JBIN "$out/bin" 79 - rm $out/bin/*.txt # Remove logs from the bin folder 80 81 mkdir -p "$out/share/j" 82 cp -r $JLIB/{addons,system} "$out/share/j"
··· 2 3 stdenv.mkDerivation rec { 4 pname = "j"; 5 + version = "901"; 6 + jtype = "release-e"; 7 src = fetchFromGitHub { 8 owner = "jsoftware"; 9 repo = "jsource"; 10 rev = "j${version}-${jtype}"; 11 + sha256 = "13ky37rrl6mc66fckrdnrw64gmvq1qlv6skzd513lab4d0wigshw"; 12 + name = "jsource"; 13 }; 14 15 buildInputs = [ readline libedit bc ]; ··· 27 export HOME=$TMPDIR 28 export JLIB=$SOURCE_DIR/jlibrary 29 30 echo $OUT_DIR 31 32 + cd make2 33 34 patchShebangs . 35 sed -i $JLIB/bin/profile.ijs -e "s@'/usr/share/j/.*'@'$out/share/j'@;" 36 37 + ./build_all.sh 38 39 + cp $SOURCE_DIR/bin/${platform}/j${bits}*/* "$JLIB/bin" 40 ''; 41 42 checkPhase = '' 43 + 44 + echo 'i. 5' | $JLIB/bin/jconsole | fgrep "0 1 2 3 4" 45 46 # Now run the real tests 47 cd $SOURCE_DIR/test 48 for f in *.ijs 49 do 50 echo $f 51 + $JLIB/bin/jconsole < $f > /dev/null || echo FAIL && echo PASS 52 done 53 ''; 54 55 installPhase = '' 56 mkdir -p "$out" 57 58 mkdir -p "$out/share/j" 59 cp -r $JLIB/{addons,system} "$out/share/j"
+1 -1
pkgs/development/interpreters/wasmtime/default.nix
··· 12 fetchSubmodules = true; 13 }; 14 15 - cargoSha256 = "0wqd2yy6ih1rcz1fq7x3aiqq1ma2nmif1w8r8x0vpxjxk395zil9"; 16 17 nativeBuildInputs = [ python cmake clang ]; 18 buildInputs = [ llvmPackages.libclang ] ++
··· 12 fetchSubmodules = true; 13 }; 14 15 + cargoSha256 = "0vyxp74jlnrisk0kblsbj9d9a54wcgzbyjm7iqav1k4ns3syrnmh"; 16 17 nativeBuildInputs = [ python cmake clang ]; 18 buildInputs = [ llvmPackages.libclang ] ++
+1 -1
pkgs/development/libraries/biblesync/default.nix
··· 16 buildInputs = [ libuuid ]; 17 18 meta = with stdenv.lib; { 19 - homepage = http://www.crosswire.org/wiki/BibleSync; 20 description = "A multicast protocol to Bible software shared conavigation"; 21 longDescription = '' 22 BibleSync is a multicast protocol to support Bible software shared
··· 16 buildInputs = [ libuuid ]; 17 18 meta = with stdenv.lib; { 19 + homepage = "http://www.crosswire.org/wiki/BibleSync"; 20 description = "A multicast protocol to Bible software shared conavigation"; 21 longDescription = '' 22 BibleSync is a multicast protocol to support Bible software shared
-13
pkgs/development/libraries/dnnl/bash-to-sh.patch
··· 1 - diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt 2 - index f6810246..e1d2a1f1 100644 3 - --- a/tests/CMakeLists.txt 4 - +++ b/tests/CMakeLists.txt 5 - @@ -72,7 +72,7 @@ if(UNIX OR MINGW) 6 - set(test_c_symbols "${CMAKE_CURRENT_BINARY_DIR}/test_c_symbols.c") 7 - add_custom_command( 8 - OUTPUT ${test_c_symbols} 9 - - COMMAND /bin/bash ${CMAKE_CURRENT_SOURCE_DIR}/generate_c_symbols_refs.sh 10 - + COMMAND @bash@/bin/bash ${CMAKE_CURRENT_SOURCE_DIR}/generate_c_symbols_refs.sh 11 - ${CMAKE_CURRENT_SOURCE_DIR}/.. ${test_c_symbols} ${include_dirs} 12 - ) 13 - register_exe(test_c_symbols-c ${test_c_symbols} "test")
···
+11 -13
pkgs/development/libraries/dnnl/default.nix
··· 1 { stdenv, lib, fetchFromGitHub, substituteAll, cmake, bash }: 2 3 stdenv.mkDerivation rec { 4 pname = "dnnl"; 5 - version = "1.2.2"; 6 7 src = fetchFromGitHub { 8 - owner = "intel"; 9 - repo = "mkl-dnn"; 10 rev = "v${version}"; 11 - sha256 = "0ydy7ibm6sh1awrikyj938n26cpg5magnxraz2d0pj76irv4vj5m"; 12 }; 13 - 14 - # Generic fix merged upstream in https://github.com/intel/mkl-dnn/pull/631 15 - # Delete after next release 16 - patches = [ (substituteAll { 17 - src = ./bash-to-sh.patch; 18 - inherit bash; 19 - }) ]; 20 21 outputs = [ "out" "dev" "doc" ]; 22 ··· 36 ''; 37 38 meta = with lib; { 39 - description = "Deep Neural Network Library (DNNL)"; 40 - homepage = "https://intel.github.io/mkl-dnn/dev_guide_transition_to_dnnl.html"; 41 license = licenses.asl20; 42 platforms = [ "x86_64-linux" ]; 43 maintainers = with maintainers; [ alexarice bhipple ];
··· 1 { stdenv, lib, fetchFromGitHub, substituteAll, cmake, bash }: 2 3 + # This was originally called mkl-dnn, then it was renamed to dnnl, and it has 4 + # just recently been renamed again to oneDNN. In a follow-up, let's move the 5 + # attr and alias dnnl -> oneDNN. See here for details: 6 + # https://github.com/oneapi-src/oneDNN#oneapi-deep-neural-network-library-onednn 7 stdenv.mkDerivation rec { 8 pname = "dnnl"; 9 + version = "1.4"; 10 11 src = fetchFromGitHub { 12 + owner = "oneapi-src"; 13 + repo = "oneDNN"; 14 rev = "v${version}"; 15 + sha256 = "162fb0c7klahz2irchhyxympi4fq4yp284apc53cadbss41mzld9"; 16 }; 17 18 outputs = [ "out" "dev" "doc" ]; 19 ··· 33 ''; 34 35 meta = with lib; { 36 + description = "oneAPI Deep Neural Network Library (oneDNN)"; 37 + homepage = "https://01.org/dnnl"; 38 + changelog = "https://github.com/oneapi-src/oneDNN/releases/tag/v${version}"; 39 license = licenses.asl20; 40 platforms = [ "x86_64-linux" ]; 41 maintainers = with maintainers; [ alexarice bhipple ];
+1 -1
pkgs/development/libraries/graphene-hardened-malloc/default.nix
··· 52 ''; 53 license = licenses.mit; 54 maintainers = with maintainers; [ ris ]; 55 - platforms = [ "x86_64-linux" ]; 56 }; 57 }
··· 52 ''; 53 license = licenses.mit; 54 maintainers = with maintainers; [ ris ]; 55 + platforms = [ "x86_64-linux" "aarch64-linux" ]; 56 }; 57 }
+91
pkgs/development/libraries/libjcat/default.nix
···
··· 1 + { stdenv 2 + , fetchFromGitHub 3 + , fetchpatch 4 + , docbook_xml_dtd_43 5 + , docbook-xsl-nons 6 + , glib 7 + , json-glib 8 + , gnutls 9 + , gpgme 10 + , gobject-introspection 11 + , vala 12 + , help2man 13 + , gtk-doc 14 + , meson 15 + , ninja 16 + , pkg-config 17 + , python3 18 + , nixosTests 19 + }: 20 + 21 + stdenv.mkDerivation rec { 22 + pname = "libjcat"; 23 + version = "0.1.1"; 24 + 25 + outputs = [ "bin" "out" "dev" "devdoc" "man" "installedTests" ]; 26 + 27 + src = fetchFromGitHub { 28 + owner = "hughsie"; 29 + repo = "libjcat"; 30 + rev = version; 31 + sha256 = "hWJUzpQvy2V4pS8C/nW7Xrs9U9LQWMsGuTVOnm5UJc0="; 32 + }; 33 + 34 + patches = [ 35 + # Installed tests are installed to different output 36 + ./installed-tests-path.patch 37 + 38 + # Fix version file generation 39 + (fetchpatch { 40 + url = "https://github.com/hughsie/libjcat/commit/cf2d9298a5fab7278ee040bc0b4be384a7b5538e.patch"; 41 + sha256 = "3749qih+wfhU8ECklh5BvReJ7pS+Ao1Q7YueZ1tT0Is="; 42 + }) 43 + ]; 44 + 45 + nativeBuildInputs = [ 46 + meson 47 + ninja 48 + pkg-config 49 + docbook_xml_dtd_43 50 + docbook-xsl-nons 51 + gobject-introspection 52 + vala 53 + help2man 54 + gtk-doc 55 + (python3.withPackages (pkgs: with pkgs; [ 56 + setuptools 57 + ])) 58 + ]; 59 + 60 + buildInputs = [ 61 + glib 62 + json-glib 63 + gnutls 64 + gpgme 65 + ]; 66 + 67 + mesonFlags = [ 68 + "-Dgtkdoc=true" 69 + "-Dinstalled_test_prefix=${placeholder "installedTests"}" 70 + ]; 71 + 72 + postPatch = '' 73 + patchShebangs contrib/generate-version-script.py 74 + ''; 75 + 76 + doCheck = true; 77 + 78 + passthru = { 79 + tests = { 80 + installed-tests = nixosTests.installed-tests.libjcat; 81 + }; 82 + }; 83 + 84 + meta = with stdenv.lib; { 85 + description = "Library for reading and writing Jcat files"; 86 + homepage = "https://github.com/hughsie/libjcat"; 87 + license = licenses.lgpl21Plus; 88 + maintainers = with maintainers; [ jtojnar ]; 89 + platforms = platforms.all; 90 + }; 91 + }
+24
pkgs/development/libraries/libjcat/installed-tests-path.patch
···
··· 1 + diff --git a/meson.build b/meson.build 2 + index f69968d..d1d6c6e 100644 3 + --- a/meson.build 4 + +++ b/meson.build 5 + @@ -114,8 +114,8 @@ else 6 + datadir = join_paths(prefix, get_option('datadir')) 7 + localstatedir = join_paths(prefix, get_option('localstatedir')) 8 + libexecdir = join_paths(prefix, get_option('libexecdir')) 9 + - installed_test_bindir = join_paths(libexecdir, 'installed-tests', meson.project_name()) 10 + - installed_test_datadir = join_paths(datadir, 'installed-tests', meson.project_name()) 11 + + installed_test_bindir = join_paths(get_option('installed_test_prefix'), 'libexec', 'installed-tests', meson.project_name()) 12 + + installed_test_datadir = join_paths(get_option('installed_test_prefix'), 'share', 'installed-tests', meson.project_name()) 13 + endif 14 + mandir = join_paths(prefix, get_option('mandir')) 15 + localedir = join_paths(prefix, get_option('localedir')) 16 + diff --git a/meson_options.txt b/meson_options.txt 17 + index 4784300..d382fc1 100644 18 + --- a/meson_options.txt 19 + +++ b/meson_options.txt 20 + @@ -1,3 +1,4 @@ 21 + +option('installed_test_prefix', type: 'string', value: '', description: 'Prefix for installed tests') 22 + option('gtkdoc', type : 'boolean', value : false, description : 'enable developer documentation') 23 + option('introspection', type : 'boolean', value : true, description : 'generate GObject Introspection data') 24 + option('tests', type : 'boolean', value : true, description : 'enable tests')
+2
pkgs/development/libraries/libqmi/default.nix
··· 26 libmbim 27 ]; 28 29 doCheck = true; 30 31 meta = with stdenv.lib; {
··· 26 libmbim 27 ]; 28 29 + enableParallelBuilding = true; 30 + 31 doCheck = true; 32 33 meta = with stdenv.lib; {
-23
pkgs/development/libraries/libtxc_dxtn/default.nix
··· 1 - { stdenv, fetchurl, autoreconfHook, libGL, libGLU }: 2 - 3 - let version = "1.0.1"; in 4 - 5 - stdenv.mkDerivation rec { 6 - pname = "libtxc_dxtn"; 7 - inherit version; 8 - 9 - src = fetchurl { 10 - url = "https://people.freedesktop.org/~cbrill/libtxc_dxtn/${pname}-${version}.tar.bz2"; 11 - sha256 = "0q5fjaknl7s0z206dd8nzk9bdh8g4p23bz7784zrllnarl90saa5"; 12 - }; 13 - 14 - nativeBuildInputs = [ autoreconfHook ]; 15 - buildInputs = [ libGL libGLU ]; 16 - 17 - meta = with stdenv.lib; { 18 - homepage = "http://dri.freedesktop.org/wiki/S3TC"; 19 - repositories.git = "git://people.freedesktop.org/~mareko/libtxc_dxtn"; 20 - license = licenses.mit; 21 - platforms = platforms.unix; 22 - }; 23 - }
···
-25
pkgs/development/libraries/libtxc_dxtn_s2tc/default.nix
··· 1 - { stdenv, fetchurl, autoreconfHook, libGL, libGLU }: 2 - 3 - let version = "1.0"; in 4 - 5 - stdenv.mkDerivation { 6 - pname = "libtxc_dxtn_s2tc"; 7 - inherit version; 8 - 9 - src = fetchurl { 10 - url = "https://github.com/divVerent/s2tc/archive/v${version}.tar.gz"; 11 - sha256 = "0ibfdib277fhbqvxzan0bmglwnsl1y1rw2g8skvz82l1sfmmn752"; 12 - }; 13 - 14 - nativeBuildInputs = [ autoreconfHook ]; 15 - buildInputs = [ libGL libGLU ]; 16 - 17 - meta = { 18 - description = "A patent-free S3TC compatible implementation"; 19 - homepage = "https://github.com/divVerent/s2tc"; 20 - repositories.git = "https://github.com/divVerent/s2tc.git"; 21 - license = stdenv.lib.licenses.mit; 22 - platforms = stdenv.lib.platforms.linux; 23 - maintainers = [ stdenv.lib.maintainers.cpages ]; 24 - }; 25 - }
···
+2 -2
pkgs/development/libraries/mdds/default.nix
··· 2 3 stdenv.mkDerivation rec { 4 pname = "mdds"; 5 - version = "1.5.0"; 6 7 src = fetchurl { 8 url = "https://kohei.us/files/${pname}/src/${pname}-${version}.tar.bz2"; 9 - sha256 = "03b8i43pw4m767mm0cnbi77x7qhpkzpi9b1f6dpp4cmyszmnsk8l"; 10 }; 11 12 postInstall = ''
··· 2 3 stdenv.mkDerivation rec { 4 pname = "mdds"; 5 + version = "1.6.0"; 6 7 src = fetchurl { 8 url = "https://kohei.us/files/${pname}/src/${pname}-${version}.tar.bz2"; 9 + sha256 = "0zg0v9rfs92ff1gpnb06gzbxbnd9nqdar5fk8dnkmy0jpnf5qn7i"; 10 }; 11 12 postInstall = ''
+2 -2
pkgs/development/libraries/netcdf/default.nix
··· 10 mpi = hdf5.mpi; 11 in stdenv.mkDerivation rec { 12 pname = "netcdf"; 13 - version = "4.7.3"; 14 15 src = fetchurl { 16 url = "https://www.unidata.ucar.edu/downloads/netcdf/ftp/${pname}-c-${version}.tar.gz"; 17 - sha256 = "12s4w2s96p51hlsa81lw92w56rdx8i3mk21pz2ydwcamw579z34f"; 18 }; 19 20 postPatch = ''
··· 10 mpi = hdf5.mpi; 11 in stdenv.mkDerivation rec { 12 pname = "netcdf"; 13 + version = "4.7.4"; 14 15 src = fetchurl { 16 url = "https://www.unidata.ucar.edu/downloads/netcdf/ftp/${pname}-c-${version}.tar.gz"; 17 + sha256 = "1a2fpp15a2rl1m50gcvvzd9y6bavl6vjf9zzf63sz5gdmq06yiqf"; 18 }; 19 20 postPatch = ''
+9 -2
pkgs/development/libraries/science/biology/elastix/default.nix
··· 1 - { stdenv, fetchFromGitHub, cmake, itk, python }: 2 3 stdenv.mkDerivation rec { 4 pname = "elastix"; ··· 10 rev = version; 11 sha256 = "1zrl7rz4lwsx88b2shnl985f3a97lmp4ksbd437h9y0hfjq8l0lj"; 12 }; 13 - nativeBuildInputs = [ cmake python ]; 14 buildInputs = [ itk ]; 15 16 meta = with stdenv.lib; { 17 homepage = "http://elastix.isi.uu.nl/";
··· 1 + { stdenv, fetchFromGitHub, cmake, itk, python3 }: 2 3 stdenv.mkDerivation rec { 4 pname = "elastix"; ··· 10 rev = version; 11 sha256 = "1zrl7rz4lwsx88b2shnl985f3a97lmp4ksbd437h9y0hfjq8l0lj"; 12 }; 13 + 14 + nativeBuildInputs = [ cmake python3 ]; 15 buildInputs = [ itk ]; 16 + 17 + doCheck = true; 18 + 19 + preCheck = " 20 + export LD_LIBRARY_PATH=$(pwd)/bin 21 + "; 22 23 meta = with stdenv.lib; { 24 homepage = "http://elastix.isi.uu.nl/";
+2 -2
pkgs/development/libraries/webkitgtk/default.nix
··· 61 62 stdenv.mkDerivation rec { 63 pname = "webkitgtk"; 64 - version = "2.28.0"; 65 66 outputs = [ "out" "dev" ]; 67 68 src = fetchurl { 69 url = "https://webkitgtk.org/releases/${pname}-${version}.tar.xz"; 70 - sha256 = "12qfs9w93c5kiyi14ynm4rf4ad3c213dvzmdrc9c3ab2iwbks7rn"; 71 }; 72 73 patches = optionals stdenv.isLinux [
··· 61 62 stdenv.mkDerivation rec { 63 pname = "webkitgtk"; 64 + version = "2.28.1"; 65 66 outputs = [ "out" "dev" ]; 67 68 src = fetchurl { 69 url = "https://webkitgtk.org/releases/${pname}-${version}.tar.xz"; 70 + sha256 = "rLwmo+1cE/OeRodc9EepwFQbbPsX+eeIQyNDHLMn89g="; 71 }; 72 73 patches = optionals stdenv.isLinux [
+89 -89
pkgs/development/node-packages/node-packages-v10.nix
··· 15293 version = "1.0.1"; 15294 src = fetchurl { 15295 name = "emitter-1.0.1.tar.gz"; 15296 - url = https://codeload.github.com/component/emitter/tar.gz/1.0.1; 15297 sha256 = "0eae744826723877457f7a7ac7f31d68a5a060673b3a883f6a8e325bf48f313d"; 15298 }; 15299 }; ··· 19632 version = "2.0.1"; 19633 src = fetchurl { 19634 name = "global-2.0.1.tar.gz"; 19635 - url = https://codeload.github.com/component/global/tar.gz/v2.0.1; 19636 sha256 = "42be02b7148745447f6ba21137c972ca82d2cad92d30d63bd4fc310623901785"; 19637 }; 19638 }; ··· 31657 version = "0.9.15"; 31658 src = fetchurl { 31659 name = "oauth-0.9.15.tar.gz"; 31660 - url = https://codeload.github.com/ciaranj/node-oauth/legacy.tar.gz/master; 31661 sha256 = "9341c28772841acde618c778e85e381976f425824b816100792f697e68aec947"; 31662 }; 31663 }; ··· 48868 version = "1.5.0"; 48869 src = fetchurl { 48870 name = "xmlhttprequest-1.5.0.tar.gz"; 48871 - url = https://codeload.github.com/LearnBoost/node-XMLHttpRequest/tar.gz/0f36d0b5ebc03d85f860d42a64ae9791e1daa433; 48872 sha256 = "28dd0394d85befe8be4e9cd9f6803102780c62cbb09298cb174b52ff9777624f"; 48873 }; 48874 }; ··· 49891 buildInputs = globalBuildInputs; 49892 meta = { 49893 description = "CLI tool for Angular"; 49894 - homepage = https://github.com/angular/angular-cli; 49895 license = "MIT"; 49896 }; 49897 production = true; ··· 49935 buildInputs = globalBuildInputs; 49936 meta = { 49937 description = "The command line interface for Antora."; 49938 - homepage = https://antora.org/; 49939 license = "MPL-2.0"; 49940 }; 49941 production = true; ··· 50264 buildInputs = globalBuildInputs; 50265 meta = { 50266 description = "The default site generator pipeline for producing and publishing static documentation sites with Antora."; 50267 - homepage = https://antora.org/; 50268 license = "MPL-2.0"; 50269 }; 50270 production = true; ··· 50427 buildInputs = globalBuildInputs; 50428 meta = { 50429 description = "A secure and free password manager for all of your devices."; 50430 - homepage = https://bitwarden.com/; 50431 license = "GPL-3.0"; 50432 }; 50433 production = true; ··· 52016 buildInputs = globalBuildInputs; 52017 meta = { 52018 description = "Command line interface for rapid Vue.js development"; 52019 - homepage = https://cli.vuejs.org/; 52020 license = "MIT"; 52021 }; 52022 production = true; ··· 52378 buildInputs = globalBuildInputs; 52379 meta = { 52380 description = "Creating Electron app packages"; 52381 - homepage = https://github.com/electron/asar; 52382 license = "MIT"; 52383 }; 52384 production = true; ··· 52536 buildInputs = globalBuildInputs; 52537 meta = { 52538 description = "The browser package manager"; 52539 - homepage = http://bower.io/; 52540 license = "MIT"; 52541 }; 52542 production = true; ··· 52666 buildInputs = globalBuildInputs; 52667 meta = { 52668 description = "Generate nix expressions to fetch bower dependencies"; 52669 - homepage = https://github.com/rvl/bower2nix; 52670 license = "GPL-3.0"; 52671 }; 52672 production = true; ··· 53275 buildInputs = globalBuildInputs; 53276 meta = { 53277 description = "A well-tested CSS minifier"; 53278 - homepage = https://github.com/jakubpawlowicz/clean-css; 53279 license = "MIT"; 53280 }; 53281 production = true; ··· 56498 buildInputs = globalBuildInputs; 56499 meta = { 56500 description = "Unfancy JavaScript"; 56501 - homepage = http://coffeescript.org/; 56502 license = "MIT"; 56503 }; 56504 production = true; ··· 57893 buildInputs = globalBuildInputs; 57894 meta = { 57895 description = "Create React Native apps with no build configuration."; 57896 - homepage = https://github.com/expo/create-react-native-app; 57897 license = "BSD-3-Clause"; 57898 }; 57899 production = true; ··· 57915 buildInputs = globalBuildInputs; 57916 meta = { 57917 description = "CSSLint"; 57918 - homepage = http://csslint.net/; 57919 license = "MIT"; 57920 }; 57921 production = true; ··· 58570 buildInputs = globalBuildInputs; 58571 meta = { 58572 description = "Dat is the package manager for data. Easily share and version control data."; 58573 - homepage = https://datproject.org/; 58574 license = "BSD-3-Clause"; 58575 }; 58576 production = true; ··· 58591 buildInputs = globalBuildInputs; 58592 meta = { 58593 description = "A DHCP server written in JavaScript"; 58594 - homepage = https://github.com/infusion/node-dhcp; 58595 license = "MIT OR GPL-2.0"; 58596 }; 58597 production = true; ··· 58736 buildInputs = globalBuildInputs; 58737 meta = { 58738 description = "A blockchain-based DNS + HTTPS server that fixes HTTPS security, and more!"; 58739 - homepage = https://github.com/okTurtles/dnschain; 58740 license = "MPL-2.0"; 58741 }; 58742 production = true; ··· 59269 buildInputs = globalBuildInputs; 59270 meta = { 59271 description = "EmojiOne is a complete set of emojis designed for the web. It includes libraries to easily convert unicode characters to shortnames (:smile:) and shortnames to our custom emoji images. PNG formats provided for the emoji images."; 59272 - homepage = https://www.emojione.com/; 59273 }; 59274 production = true; 59275 bypassCache = true; ··· 59445 buildInputs = globalBuildInputs; 59446 meta = { 59447 description = "An AST-based pattern checker for JavaScript."; 59448 - homepage = https://eslint.org/; 59449 license = "MIT"; 59450 }; 59451 production = true; ··· 59627 buildInputs = globalBuildInputs; 59628 meta = { 59629 description = "Makes eslint the fastest linter on the planet"; 59630 - homepage = https://github.com/mantoni/eslint_d.js; 59631 license = "MIT"; 59632 }; 59633 production = true; ··· 60652 buildInputs = globalBuildInputs; 60653 meta = { 60654 description = "git hosting on secure-scuttlebutt (ssb)"; 60655 - homepage = https://git-ssb.celehner.com/%25n92DiQh7ietE%2BR%2BX%2FI403LQoyf2DtR3WQfCkDKlheQU%3D.sha256; 60656 license = "Fair"; 60657 }; 60658 production = true; ··· 62504 buildInputs = globalBuildInputs; 62505 meta = { 62506 description = "The streaming build system."; 62507 - homepage = https://gulpjs.com/; 62508 license = "MIT"; 62509 }; 62510 production = true; ··· 62849 buildInputs = globalBuildInputs; 62850 meta = { 62851 description = "Command line interface for gulp"; 62852 - homepage = http://gulpjs.com/; 62853 license = "MIT"; 62854 }; 62855 production = true; ··· 62880 buildInputs = globalBuildInputs; 62881 meta = { 62882 description = "Highly configurable, well-tested, JavaScript-based HTML minifier."; 62883 - homepage = https://kangax.github.io/html-minifier/; 62884 license = "MIT"; 62885 }; 62886 production = true; ··· 63250 buildInputs = globalBuildInputs; 63251 meta = { 63252 description = "High precision scientific calculator with support for physical units"; 63253 - homepage = https://github.com/sharkdp/insect; 63254 license = "MIT"; 63255 }; 63256 production = true; ··· 63571 buildInputs = globalBuildInputs; 63572 meta = { 63573 description = "A tool for creating and developing Ionic Framework mobile apps."; 63574 - homepage = https://ionicframework.com/; 63575 license = "MIT"; 63576 }; 63577 production = true; ··· 64112 buildInputs = globalBuildInputs; 64113 meta = { 64114 description = "Implementation of the Language Server Protocol for JavaScript and TypeScript"; 64115 - homepage = https://github.com/sourcegraph/javascript-typescript-langserver; 64116 license = "Apache-2.0"; 64117 }; 64118 production = true; ··· 64962 buildInputs = globalBuildInputs; 64963 meta = { 64964 description = "beautifier.io for node"; 64965 - homepage = https://beautifier.io/; 64966 license = "MIT"; 64967 }; 64968 production = true; ··· 64985 buildInputs = globalBuildInputs; 64986 meta = { 64987 description = "YAML 1.2 parser and serializer"; 64988 - homepage = https://github.com/nodeca/js-yaml; 64989 license = "MIT"; 64990 }; 64991 production = true; ··· 65081 buildInputs = globalBuildInputs; 65082 meta = { 65083 description = "Static analysis tool for JavaScript"; 65084 - homepage = http://jshint.com/; 65085 license = "(MIT AND JSON)"; 65086 }; 65087 production = true; ··· 65124 buildInputs = globalBuildInputs; 65125 meta = { 65126 description = "JSON diff"; 65127 - homepage = https://github.com/andreyvit/json-diff; 65128 }; 65129 production = true; 65130 bypassCache = true; ··· 65179 buildInputs = globalBuildInputs; 65180 meta = { 65181 description = "Various utilities for JSON References (http://tools.ietf.org/html/draft-pbryan-zyp-json-ref-03)."; 65182 - homepage = https://github.com/whitlockjc/json-refs; 65183 license = "MIT"; 65184 }; 65185 production = true; ··· 65460 buildInputs = globalBuildInputs; 65461 meta = { 65462 description = "Get a full fake REST API with zero coding in less than 30 seconds"; 65463 - homepage = https://github.com/typicode/json-server; 65464 license = "MIT"; 65465 }; 65466 production = true; ··· 65487 buildInputs = globalBuildInputs; 65488 meta = { 65489 description = "Validate JSON"; 65490 - homepage = http://zaach.github.com/jsonlint/; 65491 }; 65492 production = true; 65493 bypassCache = true; ··· 65687 buildInputs = globalBuildInputs; 65688 meta = { 65689 description = "Spectacular Test Runner for JavaScript."; 65690 - homepage = http://karma-runner.github.io/; 65691 license = "MIT"; 65692 }; 65693 production = true; ··· 65781 buildInputs = globalBuildInputs; 65782 meta = { 65783 description = "Merges multiple lcov results into one"; 65784 - homepage = https://github.com/mweibel/lcov-result-merger; 65785 license = "MIT"; 65786 }; 65787 production = true; ··· 67083 buildInputs = globalBuildInputs; 67084 meta = { 67085 description = "Leaner CSS"; 67086 - homepage = http://lesscss.org/; 67087 license = "Apache-2.0"; 67088 }; 67089 production = true; ··· 67108 buildInputs = globalBuildInputs; 67109 meta = { 67110 description = "clean-css plugin for less.js"; 67111 - homepage = http://lesscss.org/; 67112 }; 67113 production = true; 67114 bypassCache = true; ··· 67949 buildInputs = globalBuildInputs; 67950 meta = { 67951 description = "Live Markdown previews for your favourite editor."; 67952 - homepage = https://github.com/shime/livedown; 67953 license = "MIT"; 67954 }; 67955 production = true; ··· 69107 buildInputs = globalBuildInputs; 69108 meta = { 69109 description = "Madoko is a fast scholarly Markdown processor written in Koka"; 69110 - homepage = http://madoko.codeplex.com/; 69111 }; 69112 production = true; 69113 bypassCache = true; ··· 69247 buildInputs = globalBuildInputs; 69248 meta = { 69249 description = "Meeting room kiosk app for displaying meeting room schedules and booking rooms in your organization. Built against Google Apps, but other sources can be defined."; 69250 - homepage = https://bitbucket.org/aahmed/meat; 69251 }; 69252 production = true; 69253 bypassCache = true; ··· 70105 buildInputs = globalBuildInputs; 70106 meta = { 70107 description = "simple, flexible, fun test framework"; 70108 - homepage = https://mochajs.org/; 70109 license = "MIT"; 70110 }; 70111 production = true; ··· 70229 buildInputs = globalBuildInputs; 70230 meta = { 70231 description = "Neovim client API and neovim remote plugin provider"; 70232 - homepage = https://github.com/neovim/node-client; 70233 license = "MIT"; 70234 }; 70235 production = true; ··· 70388 buildInputs = globalBuildInputs; 70389 meta = { 70390 description = "Build tool and bindings loader for node-gyp that supports prebuilds"; 70391 - homepage = https://github.com/prebuild/node-gyp-build; 70392 license = "MIT"; 70393 }; 70394 production = true; ··· 70684 buildInputs = globalBuildInputs; 70685 meta = { 70686 description = "Web Inspector based nodeJS debugger"; 70687 - homepage = http://github.com/node-inspector/node-inspector; 70688 }; 70689 production = true; 70690 bypassCache = true; ··· 71251 buildInputs = globalBuildInputs; 71252 meta = { 71253 description = "Low-code programming for event-driven applications"; 71254 - homepage = http://nodered.org/; 71255 license = "Apache-2.0"; 71256 }; 71257 production = true; ··· 71441 buildInputs = globalBuildInputs; 71442 meta = { 71443 description = "Generate Nix expressions to build NPM packages"; 71444 - homepage = https://github.com/svanderburg/node2nix; 71445 license = "MIT"; 71446 }; 71447 production = true; ··· 71605 buildInputs = globalBuildInputs; 71606 meta = { 71607 description = "Simple monitor script for use during development of a node.js app."; 71608 - homepage = http://nodemon.io/; 71609 license = "MIT"; 71610 }; 71611 production = true; ··· 71623 buildInputs = globalBuildInputs; 71624 meta = { 71625 description = "a package manager for JavaScript"; 71626 - homepage = https://docs.npmjs.com/; 71627 license = "Artistic-2.0"; 71628 }; 71629 production = true; ··· 71919 buildInputs = globalBuildInputs; 71920 meta = { 71921 description = "Find newer versions of dependencies than what your package.json or bower.json allows"; 71922 - homepage = https://github.com/tjunnone/npm-check-updates; 71923 license = "Apache-2.0"; 71924 }; 71925 production = true; ··· 72093 buildInputs = globalBuildInputs; 72094 meta = { 72095 description = "Generate nix expressions to build npm packages"; 72096 - homepage = https://github.com/NixOS/npm2nix; 72097 }; 72098 production = true; 72099 bypassCache = true; ··· 72134 buildInputs = globalBuildInputs; 72135 meta = { 72136 description = "OCaml language server"; 72137 - homepage = https://github.com/freebroccolo/ocaml-language-server; 72138 license = "Apache-2.0"; 72139 }; 72140 production = true; ··· 73695 buildInputs = globalBuildInputs; 73696 meta = { 73697 description = "Streaming torrent client for Node.js"; 73698 - homepage = https://github.com/mafintosh/peerflix; 73699 license = "MIT"; 73700 }; 73701 production = true; ··· 74084 buildInputs = globalBuildInputs; 74085 meta = { 74086 description = "Fast, disk space efficient package manager"; 74087 - homepage = https://pnpm.js.org/; 74088 license = "MIT"; 74089 }; 74090 production = true; ··· 74261 buildInputs = globalBuildInputs; 74262 meta = { 74263 description = "Prettier is an opinionated code formatter"; 74264 - homepage = https://prettier.io/; 74265 license = "MIT"; 74266 }; 74267 production = true; ··· 74648 buildInputs = globalBuildInputs; 74649 meta = { 74650 description = "A build system for PureScript projects"; 74651 - homepage = https://github.com/purescript-contrib/pulp; 74652 license = "LGPL-3.0+"; 74653 }; 74654 production = true; ··· 74820 buildInputs = globalBuildInputs; 74821 meta = { 74822 description = "A set of complementary tools to React, including the JSX transformer."; 74823 - homepage = https://facebook.github.io/react; 74824 license = "BSD-3-Clause"; 74825 }; 74826 production = true; ··· 74838 buildInputs = globalBuildInputs; 74839 meta = { 74840 description = "The HTML Presentation Framework"; 74841 - homepage = http://revealjs.com/; 74842 license = "MIT"; 74843 }; 74844 production = true; ··· 76486 buildInputs = globalBuildInputs; 76487 meta = { 76488 description = "Serverless Framework - Build web, mobile and IoT applications with serverless architectures using AWS Lambda, Azure Functions, Google CloudFunctions & more"; 76489 - homepage = https://serverless.com/framework/docs/; 76490 license = "MIT"; 76491 }; 76492 production = true; ··· 78588 buildInputs = globalBuildInputs; 78589 meta = { 78590 description = "network protocol layer for secure-scuttlebutt"; 78591 - homepage = https://github.com/ssbc/ssb-server; 78592 license = "MIT"; 78593 }; 78594 production = true; ··· 78606 buildInputs = globalBuildInputs; 78607 meta = { 78608 description = "Send metric data from statsd to Stackdriver"; 78609 - homepage = https://www.stackdriver.com/; 78610 license = "MIT"; 78611 }; 78612 production = true; ··· 79525 buildInputs = globalBuildInputs; 79526 meta = { 79527 description = "Nodejs-based tool for optimizing SVG vector graphics files"; 79528 - homepage = https://github.com/svg/svgo; 79529 license = "MIT"; 79530 }; 79531 production = true; ··· 80560 buildInputs = globalBuildInputs; 80561 meta = { 80562 description = "The pluggable linting tool for text and markdown."; 80563 - homepage = https://github.com/textlint/textlint/; 80564 license = "MIT"; 80565 }; 80566 production = true; ··· 80582 buildInputs = globalBuildInputs; 80583 meta = { 80584 description = "Latex plugin for [textlint](https://github.com/textlint/textlint &#34;textlint&#34;)."; 80585 - homepage = https://github.com/elzup/textlint-plugin-latex; 80586 license = "MIT"; 80587 }; 80588 production = true; ··· 80621 buildInputs = globalBuildInputs; 80622 meta = { 80623 description = "textlint rule check that abbreviations within parentheses."; 80624 - homepage = https://github.com/azu/textlint-rule-abbr-within-parentheses; 80625 license = "MIT"; 80626 }; 80627 production = true; ··· 80935 buildInputs = globalBuildInputs; 80936 meta = { 80937 description = "textlint rule for alex"; 80938 - homepage = https://github.com/textlint-rule/textlint-rule-alex; 80939 license = "MIT"; 80940 }; 80941 production = true; ··· 80960 buildInputs = globalBuildInputs; 80961 meta = { 80962 description = "textlint rule to check common misspellings"; 80963 - homepage = https://github.com/io-monad/textlint-rule-common-misspellings; 80964 license = "GPL-3.0"; 80965 }; 80966 production = true; ··· 80982 buildInputs = globalBuildInputs; 80983 meta = { 80984 description = "Textlint rule to check correct usage of diacritics"; 80985 - homepage = https://github.com/sapegin/textlint-rule-diacritics; 80986 license = "MIT"; 80987 }; 80988 production = true; ··· 81019 buildInputs = globalBuildInputs; 81020 meta = { 81021 description = "textlint rule that specify the maximum word count of a sentence."; 81022 - homepage = https://github.com/azu/textlint-rule-en-max-word-count; 81023 license = "MIT"; 81024 }; 81025 production = true; ··· 81112 buildInputs = globalBuildInputs; 81113 meta = { 81114 description = "textlint rule that check no start with duplicated conjunction."; 81115 - homepage = https://github.com/textlint-rule/textlint-rule-no-start-duplicated-conjunction; 81116 license = "MIT"; 81117 }; 81118 production = true; ··· 81153 buildInputs = globalBuildInputs; 81154 meta = { 81155 description = "textlint rule that check with or without period in list item."; 81156 - homepage = https://github.com/textlint-rule/textlint-rule-period-in-list-item; 81157 license = "MIT"; 81158 }; 81159 production = true; ··· 81183 buildInputs = globalBuildInputs; 81184 meta = { 81185 description = "Textlint rule to find filler words, buzzwords and chiches"; 81186 - homepage = https://github.com/sapegin/textlint-rule-stop-words; 81187 license = "MIT"; 81188 }; 81189 production = true; ··· 81213 buildInputs = globalBuildInputs; 81214 meta = { 81215 description = "TextLint rule to check correct terms spelling"; 81216 - homepage = https://github.com/sapegin/textlint-rule-terminology; 81217 license = "MIT"; 81218 }; 81219 production = true; ··· 81253 buildInputs = globalBuildInputs; 81254 meta = { 81255 description = "textlint rule that check unexpanded acronym word."; 81256 - homepage = https://github.com/textlint-rule/textlint-rule-unexpanded-acronym; 81257 license = "MIT"; 81258 }; 81259 production = true; ··· 81293 buildInputs = globalBuildInputs; 81294 meta = { 81295 description = "textlint rule to check your English style with write good"; 81296 - homepage = https://github.com/textlint-rule/textlint-rule-write-good; 81297 license = "MIT"; 81298 }; 81299 production = true; ··· 81728 buildInputs = globalBuildInputs; 81729 meta = { 81730 description = "The self-hosted Web IRC client"; 81731 - homepage = https://thelounge.chat/; 81732 license = "MIT"; 81733 }; 81734 production = true; ··· 81746 buildInputs = globalBuildInputs; 81747 meta = { 81748 description = "JavaScript 3D library"; 81749 - homepage = https://threejs.org/; 81750 license = "MIT"; 81751 }; 81752 production = true; ··· 82087 buildInputs = globalBuildInputs; 82088 meta = { 82089 description = "Joyent Triton CLI and client (https://www.joyent.com/triton)"; 82090 - homepage = https://github.com/joyent/node-triton; 82091 license = "MPL-2.0"; 82092 }; 82093 production = true; ··· 82136 buildInputs = globalBuildInputs; 82137 meta = { 82138 description = "TSUN: a repl for TypeScript Upgraded Node"; 82139 - homepage = https://github.com/HerringtonDarkholme/typescript-repl; 82140 license = "MIT"; 82141 }; 82142 production = true; ··· 82177 buildInputs = globalBuildInputs; 82178 meta = { 82179 description = "TypeScript is a language for application scale JavaScript development"; 82180 - homepage = https://www.typescriptlang.org/; 82181 license = "Apache-2.0"; 82182 }; 82183 production = true; ··· 83941 buildInputs = globalBuildInputs; 83942 meta = { 83943 description = "vue-language-server"; 83944 - homepage = https://github.com/vuejs/vetur/tree/master/server; 83945 license = "MIT"; 83946 }; 83947 production = true; ··· 85040 buildInputs = globalBuildInputs; 85041 meta = { 85042 description = "A command line tool to help build, run, and test web extensions"; 85043 - homepage = https://github.com/mozilla/web-ext; 85044 license = "MPL-2.0"; 85045 }; 85046 production = true; ··· 85516 buildInputs = globalBuildInputs; 85517 meta = { 85518 description = "Packs CommonJs/AMD modules for the browser. Allows to split your codebase into multiple bundles, which can be loaded on demand. Support loaders to preprocess files, i.e. json, jsx, es7, css, less, ... and your custom stuff."; 85519 - homepage = https://github.com/webpack/webpack; 85520 license = "MIT"; 85521 }; 85522 production = true; ··· 86581 buildInputs = globalBuildInputs; 86582 meta = { 86583 description = "Copy files && directories with webpack"; 86584 - homepage = https://github.com/webpack-contrib/copy-webpack-plugin; 86585 license = "MIT"; 86586 }; 86587 production = true; ··· 86878 buildInputs = globalBuildInputs; 86879 meta = { 86880 description = "WebTorrent, the streaming torrent client. For the command line."; 86881 - homepage = https://webtorrent.io/; 86882 license = "MIT"; 86883 }; 86884 production = true; ··· 87917 buildInputs = globalBuildInputs; 87918 meta = { 87919 description = "CLI tool for running Yeoman generators"; 87920 - homepage = http://yeoman.io/; 87921 license = "BSD-2-Clause"; 87922 }; 87923 production = true; 87924 bypassCache = true; 87925 reconstructLock = true; 87926 }; 87927 - }
··· 15293 version = "1.0.1"; 15294 src = fetchurl { 15295 name = "emitter-1.0.1.tar.gz"; 15296 + url = "https://codeload.github.com/component/emitter/tar.gz/1.0.1"; 15297 sha256 = "0eae744826723877457f7a7ac7f31d68a5a060673b3a883f6a8e325bf48f313d"; 15298 }; 15299 }; ··· 19632 version = "2.0.1"; 19633 src = fetchurl { 19634 name = "global-2.0.1.tar.gz"; 19635 + url = "https://codeload.github.com/component/global/tar.gz/v2.0.1"; 19636 sha256 = "42be02b7148745447f6ba21137c972ca82d2cad92d30d63bd4fc310623901785"; 19637 }; 19638 }; ··· 31657 version = "0.9.15"; 31658 src = fetchurl { 31659 name = "oauth-0.9.15.tar.gz"; 31660 + url = "https://codeload.github.com/ciaranj/node-oauth/legacy.tar.gz/master"; 31661 sha256 = "9341c28772841acde618c778e85e381976f425824b816100792f697e68aec947"; 31662 }; 31663 }; ··· 48868 version = "1.5.0"; 48869 src = fetchurl { 48870 name = "xmlhttprequest-1.5.0.tar.gz"; 48871 + url = "https://codeload.github.com/LearnBoost/node-XMLHttpRequest/tar.gz/0f36d0b5ebc03d85f860d42a64ae9791e1daa433"; 48872 sha256 = "28dd0394d85befe8be4e9cd9f6803102780c62cbb09298cb174b52ff9777624f"; 48873 }; 48874 }; ··· 49891 buildInputs = globalBuildInputs; 49892 meta = { 49893 description = "CLI tool for Angular"; 49894 + homepage = "https://github.com/angular/angular-cli"; 49895 license = "MIT"; 49896 }; 49897 production = true; ··· 49935 buildInputs = globalBuildInputs; 49936 meta = { 49937 description = "The command line interface for Antora."; 49938 + homepage = "https://antora.org/"; 49939 license = "MPL-2.0"; 49940 }; 49941 production = true; ··· 50264 buildInputs = globalBuildInputs; 50265 meta = { 50266 description = "The default site generator pipeline for producing and publishing static documentation sites with Antora."; 50267 + homepage = "https://antora.org/"; 50268 license = "MPL-2.0"; 50269 }; 50270 production = true; ··· 50427 buildInputs = globalBuildInputs; 50428 meta = { 50429 description = "A secure and free password manager for all of your devices."; 50430 + homepage = "https://bitwarden.com/"; 50431 license = "GPL-3.0"; 50432 }; 50433 production = true; ··· 52016 buildInputs = globalBuildInputs; 52017 meta = { 52018 description = "Command line interface for rapid Vue.js development"; 52019 + homepage = "https://cli.vuejs.org/"; 52020 license = "MIT"; 52021 }; 52022 production = true; ··· 52378 buildInputs = globalBuildInputs; 52379 meta = { 52380 description = "Creating Electron app packages"; 52381 + homepage = "https://github.com/electron/asar"; 52382 license = "MIT"; 52383 }; 52384 production = true; ··· 52536 buildInputs = globalBuildInputs; 52537 meta = { 52538 description = "The browser package manager"; 52539 + homepage = "http://bower.io/"; 52540 license = "MIT"; 52541 }; 52542 production = true; ··· 52666 buildInputs = globalBuildInputs; 52667 meta = { 52668 description = "Generate nix expressions to fetch bower dependencies"; 52669 + homepage = "https://github.com/rvl/bower2nix"; 52670 license = "GPL-3.0"; 52671 }; 52672 production = true; ··· 53275 buildInputs = globalBuildInputs; 53276 meta = { 53277 description = "A well-tested CSS minifier"; 53278 + homepage = "https://github.com/jakubpawlowicz/clean-css"; 53279 license = "MIT"; 53280 }; 53281 production = true; ··· 56498 buildInputs = globalBuildInputs; 56499 meta = { 56500 description = "Unfancy JavaScript"; 56501 + homepage = "http://coffeescript.org/"; 56502 license = "MIT"; 56503 }; 56504 production = true; ··· 57893 buildInputs = globalBuildInputs; 57894 meta = { 57895 description = "Create React Native apps with no build configuration."; 57896 + homepage = "https://github.com/expo/create-react-native-app"; 57897 license = "BSD-3-Clause"; 57898 }; 57899 production = true; ··· 57915 buildInputs = globalBuildInputs; 57916 meta = { 57917 description = "CSSLint"; 57918 + homepage = "http://csslint.net/"; 57919 license = "MIT"; 57920 }; 57921 production = true; ··· 58570 buildInputs = globalBuildInputs; 58571 meta = { 58572 description = "Dat is the package manager for data. Easily share and version control data."; 58573 + homepage = "https://datproject.org/"; 58574 license = "BSD-3-Clause"; 58575 }; 58576 production = true; ··· 58591 buildInputs = globalBuildInputs; 58592 meta = { 58593 description = "A DHCP server written in JavaScript"; 58594 + homepage = "https://github.com/infusion/node-dhcp"; 58595 license = "MIT OR GPL-2.0"; 58596 }; 58597 production = true; ··· 58736 buildInputs = globalBuildInputs; 58737 meta = { 58738 description = "A blockchain-based DNS + HTTPS server that fixes HTTPS security, and more!"; 58739 + homepage = "https://github.com/okTurtles/dnschain"; 58740 license = "MPL-2.0"; 58741 }; 58742 production = true; ··· 59269 buildInputs = globalBuildInputs; 59270 meta = { 59271 description = "EmojiOne is a complete set of emojis designed for the web. It includes libraries to easily convert unicode characters to shortnames (:smile:) and shortnames to our custom emoji images. PNG formats provided for the emoji images."; 59272 + homepage = "https://www.emojione.com/"; 59273 }; 59274 production = true; 59275 bypassCache = true; ··· 59445 buildInputs = globalBuildInputs; 59446 meta = { 59447 description = "An AST-based pattern checker for JavaScript."; 59448 + homepage = "https://eslint.org/"; 59449 license = "MIT"; 59450 }; 59451 production = true; ··· 59627 buildInputs = globalBuildInputs; 59628 meta = { 59629 description = "Makes eslint the fastest linter on the planet"; 59630 + homepage = "https://github.com/mantoni/eslint_d.js"; 59631 license = "MIT"; 59632 }; 59633 production = true; ··· 60652 buildInputs = globalBuildInputs; 60653 meta = { 60654 description = "git hosting on secure-scuttlebutt (ssb)"; 60655 + homepage = "https://git-ssb.celehner.com/%25n92DiQh7ietE%2BR%2BX%2FI403LQoyf2DtR3WQfCkDKlheQU%3D.sha256"; 60656 license = "Fair"; 60657 }; 60658 production = true; ··· 62504 buildInputs = globalBuildInputs; 62505 meta = { 62506 description = "The streaming build system."; 62507 + homepage = "https://gulpjs.com/"; 62508 license = "MIT"; 62509 }; 62510 production = true; ··· 62849 buildInputs = globalBuildInputs; 62850 meta = { 62851 description = "Command line interface for gulp"; 62852 + homepage = "http://gulpjs.com/"; 62853 license = "MIT"; 62854 }; 62855 production = true; ··· 62880 buildInputs = globalBuildInputs; 62881 meta = { 62882 description = "Highly configurable, well-tested, JavaScript-based HTML minifier."; 62883 + homepage = "https://kangax.github.io/html-minifier/"; 62884 license = "MIT"; 62885 }; 62886 production = true; ··· 63250 buildInputs = globalBuildInputs; 63251 meta = { 63252 description = "High precision scientific calculator with support for physical units"; 63253 + homepage = "https://github.com/sharkdp/insect"; 63254 license = "MIT"; 63255 }; 63256 production = true; ··· 63571 buildInputs = globalBuildInputs; 63572 meta = { 63573 description = "A tool for creating and developing Ionic Framework mobile apps."; 63574 + homepage = "https://ionicframework.com/"; 63575 license = "MIT"; 63576 }; 63577 production = true; ··· 64112 buildInputs = globalBuildInputs; 64113 meta = { 64114 description = "Implementation of the Language Server Protocol for JavaScript and TypeScript"; 64115 + homepage = "https://github.com/sourcegraph/javascript-typescript-langserver"; 64116 license = "Apache-2.0"; 64117 }; 64118 production = true; ··· 64962 buildInputs = globalBuildInputs; 64963 meta = { 64964 description = "beautifier.io for node"; 64965 + homepage = "https://beautifier.io/"; 64966 license = "MIT"; 64967 }; 64968 production = true; ··· 64985 buildInputs = globalBuildInputs; 64986 meta = { 64987 description = "YAML 1.2 parser and serializer"; 64988 + homepage = "https://github.com/nodeca/js-yaml"; 64989 license = "MIT"; 64990 }; 64991 production = true; ··· 65081 buildInputs = globalBuildInputs; 65082 meta = { 65083 description = "Static analysis tool for JavaScript"; 65084 + homepage = "http://jshint.com/"; 65085 license = "(MIT AND JSON)"; 65086 }; 65087 production = true; ··· 65124 buildInputs = globalBuildInputs; 65125 meta = { 65126 description = "JSON diff"; 65127 + homepage = "https://github.com/andreyvit/json-diff"; 65128 }; 65129 production = true; 65130 bypassCache = true; ··· 65179 buildInputs = globalBuildInputs; 65180 meta = { 65181 description = "Various utilities for JSON References (http://tools.ietf.org/html/draft-pbryan-zyp-json-ref-03)."; 65182 + homepage = "https://github.com/whitlockjc/json-refs"; 65183 license = "MIT"; 65184 }; 65185 production = true; ··· 65460 buildInputs = globalBuildInputs; 65461 meta = { 65462 description = "Get a full fake REST API with zero coding in less than 30 seconds"; 65463 + homepage = "https://github.com/typicode/json-server"; 65464 license = "MIT"; 65465 }; 65466 production = true; ··· 65487 buildInputs = globalBuildInputs; 65488 meta = { 65489 description = "Validate JSON"; 65490 + homepage = "http://zaach.github.com/jsonlint/"; 65491 }; 65492 production = true; 65493 bypassCache = true; ··· 65687 buildInputs = globalBuildInputs; 65688 meta = { 65689 description = "Spectacular Test Runner for JavaScript."; 65690 + homepage = "http://karma-runner.github.io/"; 65691 license = "MIT"; 65692 }; 65693 production = true; ··· 65781 buildInputs = globalBuildInputs; 65782 meta = { 65783 description = "Merges multiple lcov results into one"; 65784 + homepage = "https://github.com/mweibel/lcov-result-merger"; 65785 license = "MIT"; 65786 }; 65787 production = true; ··· 67083 buildInputs = globalBuildInputs; 67084 meta = { 67085 description = "Leaner CSS"; 67086 + homepage = "http://lesscss.org/"; 67087 license = "Apache-2.0"; 67088 }; 67089 production = true; ··· 67108 buildInputs = globalBuildInputs; 67109 meta = { 67110 description = "clean-css plugin for less.js"; 67111 + homepage = "http://lesscss.org/"; 67112 }; 67113 production = true; 67114 bypassCache = true; ··· 67949 buildInputs = globalBuildInputs; 67950 meta = { 67951 description = "Live Markdown previews for your favourite editor."; 67952 + homepage = "https://github.com/shime/livedown"; 67953 license = "MIT"; 67954 }; 67955 production = true; ··· 69107 buildInputs = globalBuildInputs; 69108 meta = { 69109 description = "Madoko is a fast scholarly Markdown processor written in Koka"; 69110 + homepage = "http://madoko.codeplex.com/"; 69111 }; 69112 production = true; 69113 bypassCache = true; ··· 69247 buildInputs = globalBuildInputs; 69248 meta = { 69249 description = "Meeting room kiosk app for displaying meeting room schedules and booking rooms in your organization. Built against Google Apps, but other sources can be defined."; 69250 + homepage = "https://bitbucket.org/aahmed/meat"; 69251 }; 69252 production = true; 69253 bypassCache = true; ··· 70105 buildInputs = globalBuildInputs; 70106 meta = { 70107 description = "simple, flexible, fun test framework"; 70108 + homepage = "https://mochajs.org/"; 70109 license = "MIT"; 70110 }; 70111 production = true; ··· 70229 buildInputs = globalBuildInputs; 70230 meta = { 70231 description = "Neovim client API and neovim remote plugin provider"; 70232 + homepage = "https://github.com/neovim/node-client"; 70233 license = "MIT"; 70234 }; 70235 production = true; ··· 70388 buildInputs = globalBuildInputs; 70389 meta = { 70390 description = "Build tool and bindings loader for node-gyp that supports prebuilds"; 70391 + homepage = "https://github.com/prebuild/node-gyp-build"; 70392 license = "MIT"; 70393 }; 70394 production = true; ··· 70684 buildInputs = globalBuildInputs; 70685 meta = { 70686 description = "Web Inspector based nodeJS debugger"; 70687 + homepage = "http://github.com/node-inspector/node-inspector"; 70688 }; 70689 production = true; 70690 bypassCache = true; ··· 71251 buildInputs = globalBuildInputs; 71252 meta = { 71253 description = "Low-code programming for event-driven applications"; 71254 + homepage = "http://nodered.org/"; 71255 license = "Apache-2.0"; 71256 }; 71257 production = true; ··· 71441 buildInputs = globalBuildInputs; 71442 meta = { 71443 description = "Generate Nix expressions to build NPM packages"; 71444 + homepage = "https://github.com/svanderburg/node2nix"; 71445 license = "MIT"; 71446 }; 71447 production = true; ··· 71605 buildInputs = globalBuildInputs; 71606 meta = { 71607 description = "Simple monitor script for use during development of a node.js app."; 71608 + homepage = "http://nodemon.io/"; 71609 license = "MIT"; 71610 }; 71611 production = true; ··· 71623 buildInputs = globalBuildInputs; 71624 meta = { 71625 description = "a package manager for JavaScript"; 71626 + homepage = "https://docs.npmjs.com/"; 71627 license = "Artistic-2.0"; 71628 }; 71629 production = true; ··· 71919 buildInputs = globalBuildInputs; 71920 meta = { 71921 description = "Find newer versions of dependencies than what your package.json or bower.json allows"; 71922 + homepage = "https://github.com/tjunnone/npm-check-updates"; 71923 license = "Apache-2.0"; 71924 }; 71925 production = true; ··· 72093 buildInputs = globalBuildInputs; 72094 meta = { 72095 description = "Generate nix expressions to build npm packages"; 72096 + homepage = "https://github.com/NixOS/npm2nix"; 72097 }; 72098 production = true; 72099 bypassCache = true; ··· 72134 buildInputs = globalBuildInputs; 72135 meta = { 72136 description = "OCaml language server"; 72137 + homepage = "https://github.com/freebroccolo/ocaml-language-server"; 72138 license = "Apache-2.0"; 72139 }; 72140 production = true; ··· 73695 buildInputs = globalBuildInputs; 73696 meta = { 73697 description = "Streaming torrent client for Node.js"; 73698 + homepage = "https://github.com/mafintosh/peerflix"; 73699 license = "MIT"; 73700 }; 73701 production = true; ··· 74084 buildInputs = globalBuildInputs; 74085 meta = { 74086 description = "Fast, disk space efficient package manager"; 74087 + homepage = "https://pnpm.js.org/"; 74088 license = "MIT"; 74089 }; 74090 production = true; ··· 74261 buildInputs = globalBuildInputs; 74262 meta = { 74263 description = "Prettier is an opinionated code formatter"; 74264 + homepage = "https://prettier.io/"; 74265 license = "MIT"; 74266 }; 74267 production = true; ··· 74648 buildInputs = globalBuildInputs; 74649 meta = { 74650 description = "A build system for PureScript projects"; 74651 + homepage = "https://github.com/purescript-contrib/pulp"; 74652 license = "LGPL-3.0+"; 74653 }; 74654 production = true; ··· 74820 buildInputs = globalBuildInputs; 74821 meta = { 74822 description = "A set of complementary tools to React, including the JSX transformer."; 74823 + homepage = "https://facebook.github.io/react"; 74824 license = "BSD-3-Clause"; 74825 }; 74826 production = true; ··· 74838 buildInputs = globalBuildInputs; 74839 meta = { 74840 description = "The HTML Presentation Framework"; 74841 + homepage = "http://revealjs.com/"; 74842 license = "MIT"; 74843 }; 74844 production = true; ··· 76486 buildInputs = globalBuildInputs; 76487 meta = { 76488 description = "Serverless Framework - Build web, mobile and IoT applications with serverless architectures using AWS Lambda, Azure Functions, Google CloudFunctions & more"; 76489 + homepage = "https://serverless.com/framework/docs/"; 76490 license = "MIT"; 76491 }; 76492 production = true; ··· 78588 buildInputs = globalBuildInputs; 78589 meta = { 78590 description = "network protocol layer for secure-scuttlebutt"; 78591 + homepage = "https://github.com/ssbc/ssb-server"; 78592 license = "MIT"; 78593 }; 78594 production = true; ··· 78606 buildInputs = globalBuildInputs; 78607 meta = { 78608 description = "Send metric data from statsd to Stackdriver"; 78609 + homepage = "https://www.stackdriver.com/"; 78610 license = "MIT"; 78611 }; 78612 production = true; ··· 79525 buildInputs = globalBuildInputs; 79526 meta = { 79527 description = "Nodejs-based tool for optimizing SVG vector graphics files"; 79528 + homepage = "https://github.com/svg/svgo"; 79529 license = "MIT"; 79530 }; 79531 production = true; ··· 80560 buildInputs = globalBuildInputs; 80561 meta = { 80562 description = "The pluggable linting tool for text and markdown."; 80563 + homepage = "https://github.com/textlint/textlint/"; 80564 license = "MIT"; 80565 }; 80566 production = true; ··· 80582 buildInputs = globalBuildInputs; 80583 meta = { 80584 description = "Latex plugin for [textlint](https://github.com/textlint/textlint &#34;textlint&#34;)."; 80585 + homepage = "https://github.com/elzup/textlint-plugin-latex"; 80586 license = "MIT"; 80587 }; 80588 production = true; ··· 80621 buildInputs = globalBuildInputs; 80622 meta = { 80623 description = "textlint rule check that abbreviations within parentheses."; 80624 + homepage = "https://github.com/azu/textlint-rule-abbr-within-parentheses"; 80625 license = "MIT"; 80626 }; 80627 production = true; ··· 80935 buildInputs = globalBuildInputs; 80936 meta = { 80937 description = "textlint rule for alex"; 80938 + homepage = "https://github.com/textlint-rule/textlint-rule-alex"; 80939 license = "MIT"; 80940 }; 80941 production = true; ··· 80960 buildInputs = globalBuildInputs; 80961 meta = { 80962 description = "textlint rule to check common misspellings"; 80963 + homepage = "https://github.com/io-monad/textlint-rule-common-misspellings"; 80964 license = "GPL-3.0"; 80965 }; 80966 production = true; ··· 80982 buildInputs = globalBuildInputs; 80983 meta = { 80984 description = "Textlint rule to check correct usage of diacritics"; 80985 + homepage = "https://github.com/sapegin/textlint-rule-diacritics"; 80986 license = "MIT"; 80987 }; 80988 production = true; ··· 81019 buildInputs = globalBuildInputs; 81020 meta = { 81021 description = "textlint rule that specify the maximum word count of a sentence."; 81022 + homepage = "https://github.com/azu/textlint-rule-en-max-word-count"; 81023 license = "MIT"; 81024 }; 81025 production = true; ··· 81112 buildInputs = globalBuildInputs; 81113 meta = { 81114 description = "textlint rule that check no start with duplicated conjunction."; 81115 + homepage = "https://github.com/textlint-rule/textlint-rule-no-start-duplicated-conjunction"; 81116 license = "MIT"; 81117 }; 81118 production = true; ··· 81153 buildInputs = globalBuildInputs; 81154 meta = { 81155 description = "textlint rule that check with or without period in list item."; 81156 + homepage = "https://github.com/textlint-rule/textlint-rule-period-in-list-item"; 81157 license = "MIT"; 81158 }; 81159 production = true; ··· 81183 buildInputs = globalBuildInputs; 81184 meta = { 81185 description = "Textlint rule to find filler words, buzzwords and chiches"; 81186 + homepage = "https://github.com/sapegin/textlint-rule-stop-words"; 81187 license = "MIT"; 81188 }; 81189 production = true; ··· 81213 buildInputs = globalBuildInputs; 81214 meta = { 81215 description = "TextLint rule to check correct terms spelling"; 81216 + homepage = "https://github.com/sapegin/textlint-rule-terminology"; 81217 license = "MIT"; 81218 }; 81219 production = true; ··· 81253 buildInputs = globalBuildInputs; 81254 meta = { 81255 description = "textlint rule that check unexpanded acronym word."; 81256 + homepage = "https://github.com/textlint-rule/textlint-rule-unexpanded-acronym"; 81257 license = "MIT"; 81258 }; 81259 production = true; ··· 81293 buildInputs = globalBuildInputs; 81294 meta = { 81295 description = "textlint rule to check your English style with write good"; 81296 + homepage = "https://github.com/textlint-rule/textlint-rule-write-good"; 81297 license = "MIT"; 81298 }; 81299 production = true; ··· 81728 buildInputs = globalBuildInputs; 81729 meta = { 81730 description = "The self-hosted Web IRC client"; 81731 + homepage = "https://thelounge.chat/"; 81732 license = "MIT"; 81733 }; 81734 production = true; ··· 81746 buildInputs = globalBuildInputs; 81747 meta = { 81748 description = "JavaScript 3D library"; 81749 + homepage = "https://threejs.org/"; 81750 license = "MIT"; 81751 }; 81752 production = true; ··· 82087 buildInputs = globalBuildInputs; 82088 meta = { 82089 description = "Joyent Triton CLI and client (https://www.joyent.com/triton)"; 82090 + homepage = "https://github.com/joyent/node-triton"; 82091 license = "MPL-2.0"; 82092 }; 82093 production = true; ··· 82136 buildInputs = globalBuildInputs; 82137 meta = { 82138 description = "TSUN: a repl for TypeScript Upgraded Node"; 82139 + homepage = "https://github.com/HerringtonDarkholme/typescript-repl"; 82140 license = "MIT"; 82141 }; 82142 production = true; ··· 82177 buildInputs = globalBuildInputs; 82178 meta = { 82179 description = "TypeScript is a language for application scale JavaScript development"; 82180 + homepage = "https://www.typescriptlang.org/"; 82181 license = "Apache-2.0"; 82182 }; 82183 production = true; ··· 83941 buildInputs = globalBuildInputs; 83942 meta = { 83943 description = "vue-language-server"; 83944 + homepage = "https://github.com/vuejs/vetur/tree/master/server"; 83945 license = "MIT"; 83946 }; 83947 production = true; ··· 85040 buildInputs = globalBuildInputs; 85041 meta = { 85042 description = "A command line tool to help build, run, and test web extensions"; 85043 + homepage = "https://github.com/mozilla/web-ext"; 85044 license = "MPL-2.0"; 85045 }; 85046 production = true; ··· 85516 buildInputs = globalBuildInputs; 85517 meta = { 85518 description = "Packs CommonJs/AMD modules for the browser. Allows to split your codebase into multiple bundles, which can be loaded on demand. Support loaders to preprocess files, i.e. json, jsx, es7, css, less, ... and your custom stuff."; 85519 + homepage = "https://github.com/webpack/webpack"; 85520 license = "MIT"; 85521 }; 85522 production = true; ··· 86581 buildInputs = globalBuildInputs; 86582 meta = { 86583 description = "Copy files && directories with webpack"; 86584 + homepage = "https://github.com/webpack-contrib/copy-webpack-plugin"; 86585 license = "MIT"; 86586 }; 86587 production = true; ··· 86878 buildInputs = globalBuildInputs; 86879 meta = { 86880 description = "WebTorrent, the streaming torrent client. For the command line."; 86881 + homepage = "https://webtorrent.io/"; 86882 license = "MIT"; 86883 }; 86884 production = true; ··· 87917 buildInputs = globalBuildInputs; 87918 meta = { 87919 description = "CLI tool for running Yeoman generators"; 87920 + homepage = "http://yeoman.io/"; 87921 license = "BSD-2-Clause"; 87922 }; 87923 production = true; 87924 bypassCache = true; 87925 reconstructLock = true; 87926 }; 87927 + }
+4 -4
pkgs/development/node-packages/node-packages-v12.nix
··· 2475 buildInputs = globalBuildInputs; 2476 meta = { 2477 description = "Unfancy JavaScript"; 2478 - homepage = http://coffeescript.org/; 2479 license = "MIT"; 2480 }; 2481 production = true; ··· 2953 buildInputs = globalBuildInputs; 2954 meta = { 2955 description = "Generate Nix expressions to build NPM packages"; 2956 - homepage = https://github.com/svanderburg/node2nix; 2957 license = "MIT"; 2958 }; 2959 production = true; ··· 3090 buildInputs = globalBuildInputs; 3091 meta = { 3092 description = "Build tool and bindings loader for node-gyp that supports prebuilds"; 3093 - homepage = https://github.com/prebuild/node-gyp-build; 3094 license = "MIT"; 3095 }; 3096 production = true; ··· 3182 bypassCache = true; 3183 reconstructLock = true; 3184 }; 3185 - }
··· 2475 buildInputs = globalBuildInputs; 2476 meta = { 2477 description = "Unfancy JavaScript"; 2478 + homepage = "http://coffeescript.org/"; 2479 license = "MIT"; 2480 }; 2481 production = true; ··· 2953 buildInputs = globalBuildInputs; 2954 meta = { 2955 description = "Generate Nix expressions to build NPM packages"; 2956 + homepage = "https://github.com/svanderburg/node2nix"; 2957 license = "MIT"; 2958 }; 2959 production = true; ··· 3090 buildInputs = globalBuildInputs; 3091 meta = { 3092 description = "Build tool and bindings loader for node-gyp that supports prebuilds"; 3093 + homepage = "https://github.com/prebuild/node-gyp-build"; 3094 license = "MIT"; 3095 }; 3096 production = true; ··· 3182 bypassCache = true; 3183 reconstructLock = true; 3184 }; 3185 + }
+2 -2
pkgs/development/node-packages/node-packages-v13.nix
··· 1441 buildInputs = globalBuildInputs; 1442 meta = { 1443 description = "Generate Nix expressions to build NPM packages"; 1444 - homepage = https://github.com/svanderburg/node2nix; 1445 license = "MIT"; 1446 }; 1447 production = true; 1448 bypassCache = true; 1449 reconstructLock = true; 1450 }; 1451 - }
··· 1441 buildInputs = globalBuildInputs; 1442 meta = { 1443 description = "Generate Nix expressions to build NPM packages"; 1444 + homepage = "https://github.com/svanderburg/node2nix"; 1445 license = "MIT"; 1446 }; 1447 production = true; 1448 bypassCache = true; 1449 reconstructLock = true; 1450 }; 1451 + }
+7 -1
pkgs/development/ocaml-modules/bistro/default.nix
··· 1 - { lib, fetchFromGitHub, buildDunePackage 2 , base64, bos, core, lwt_react, ocamlgraph, rresult, tyxml 3 }: 4 ··· 11 rev = "v${version}"; 12 sha256 = "114gq48cpj2mvycypa9lfyqqb26wa2gkdfwkcqhnx7m6sdwv9a38"; 13 }; 14 15 propagatedBuildInputs = [ base64 bos core lwt_react ocamlgraph rresult tyxml ]; 16
··· 1 + { lib, fetchFromGitHub, fetchpatch, buildDunePackage 2 , base64, bos, core, lwt_react, ocamlgraph, rresult, tyxml 3 }: 4 ··· 11 rev = "v${version}"; 12 sha256 = "114gq48cpj2mvycypa9lfyqqb26wa2gkdfwkcqhnx7m6sdwv9a38"; 13 }; 14 + 15 + # The following patch adds support for core.v0.13 16 + patches = [(fetchpatch { 17 + url = "https://github.com/pveber/bistro/commit/0931db43a146ad7829dff5120161a775f732a878.patch"; 18 + sha256 = "06y0sxbbab1mssc1xfjjv12lpv4rny5iqv9qkdqyzrvzpl1bdvnd"; 19 + })]; 20 21 propagatedBuildInputs = [ base64 bos core lwt_react ocamlgraph rresult tyxml ]; 22
+17
pkgs/development/ocaml-modules/dune-build-info/default.nix
···
··· 1 + { lib, buildDunePackage, dune_2 }: 2 + 3 + buildDunePackage rec { 4 + pname = "dune-build-info"; 5 + inherit (dune_2) src version; 6 + 7 + useDune2 = true; 8 + 9 + dontAddPrefix = true; 10 + 11 + meta = with lib; { 12 + inherit (dune_2.meta) homepage; 13 + description = "Embed build information inside executables"; 14 + maintainers = [ maintainers.bcdarwin ]; 15 + license = licenses.mit; 16 + }; 17 + }
+503
pkgs/development/ocaml-modules/janestreet/0.13.nix
···
··· 1 + { janePackage 2 + , ctypes 3 + , num 4 + , octavius 5 + , ppxlib 6 + , re 7 + , openssl 8 + }: 9 + 10 + rec { 11 + 12 + ocaml-compiler-libs = janePackage { 13 + pname = "ocaml-compiler-libs"; 14 + version = "0.12.1"; 15 + hash = "0hpk54fcsfcjp536fgwr80mjjf88hjk58q7jwnyrhk2ljd8xzgiv"; 16 + meta.description = "OCaml compiler libraries repackaged"; 17 + }; 18 + 19 + sexplib0 = janePackage { 20 + pname = "sexplib0"; 21 + hash = "1b1bk0xs1hqa12qs5y4h1yl3mq6xml4ya2570dyhdn1j0fbw4g3y"; 22 + meta.description = "Library containing the definition of S-expressions and some base converters"; 23 + }; 24 + 25 + base = janePackage { 26 + pname = "base"; 27 + version = "0.13.1"; 28 + hash = "08a5aymcgr5svvm8v0v20msd5cad64m6maakfbhz4172g7kd9jzw"; 29 + meta.description = "Full standard library replacement for OCaml"; 30 + propagatedBuildInputs = [ sexplib0 ]; 31 + }; 32 + 33 + stdio = janePackage { 34 + pname = "stdio"; 35 + hash = "1hkj9vh8n8p3n5pvx7053xis1pfmqd8p7shjyp1n555xzimfxzgh"; 36 + meta.description = "Standard IO library for OCaml"; 37 + propagatedBuildInputs = [ base ]; 38 + }; 39 + 40 + ppx_sexp_conv = janePackage { 41 + pname = "ppx_sexp_conv"; 42 + hash = "0jkhwmkrfq3ss6bv6i3m871alcr4xpngs6ci6bmzv3yfl7s8bwdf"; 43 + meta.description = "[@@deriving] plugin to generate S-expression conversion functions"; 44 + propagatedBuildInputs = [ ppxlib ]; 45 + }; 46 + 47 + ppx_here = janePackage { 48 + pname = "ppx_here"; 49 + hash = "1ahidrrjsyi0al06bhv5h6aqmdk7ryz8dybfhqjsn1zp9q056q35"; 50 + meta.description = "Expands [%here] into its location"; 51 + propagatedBuildInputs = [ ppxlib ]; 52 + }; 53 + 54 + ppx_compare = janePackage { 55 + pname = "ppx_compare"; 56 + hash = "14pnqa47gsvq93z1b8wb5pyq8zw90aaw71j4pwlyid4s86px454j"; 57 + meta.description = "Generation of comparison functions from types"; 58 + propagatedBuildInputs = [ ppxlib ]; 59 + }; 60 + 61 + ppx_cold = janePackage { 62 + pname = "ppx_cold"; 63 + hash = "0wnfwsgbzk4i5aqjlcaqp6lkvrq5345vazryvx2klbbrd4759h9f"; 64 + meta.description = "Expands [@cold] into [@inline never][@specialise never][@local never]"; 65 + propagatedBuildInputs = [ ppxlib ]; 66 + }; 67 + 68 + ppx_assert = janePackage { 69 + pname = "ppx_assert"; 70 + hash = "08dada2xcp3w5mir90z56qrdyd317lygml4qlfssj897534bwiqr"; 71 + meta.description = "Assert-like extension nodes that raise useful errors on failure"; 72 + propagatedBuildInputs = [ ppx_cold ppx_compare ppx_here ppx_sexp_conv ]; 73 + }; 74 + 75 + ppx_inline_test = janePackage { 76 + pname = "ppx_inline_test"; 77 + hash = "135qzbhqy33lmigbq1rakr9i3y59y3pczh4laanqjyss9b9kfs60"; 78 + meta.description = "Syntax extension for writing in-line tests in ocaml code"; 79 + propagatedBuildInputs = [ ppxlib ]; 80 + }; 81 + 82 + ppx_custom_printf = janePackage { 83 + pname = "ppx_custom_printf"; 84 + hash = "0kvfkdk4wg2z8x705bajvl1f8wiyy3aya203wdzc9425h73nqm5p"; 85 + meta.description = "Printf-style format-strings for user-defined string conversion"; 86 + propagatedBuildInputs = [ ppx_sexp_conv ]; 87 + }; 88 + 89 + fieldslib = janePackage { 90 + pname = "fieldslib"; 91 + hash = "0nsl0i9vjk73pr70ksxqa65rd5v84jzdaazryfdy6i4a5sfg7bxa"; 92 + meta.description = "Syntax extension to define first class values representing record fields, to get and set record fields, iterate and fold over all fields of a record and create new record values"; 93 + propagatedBuildInputs = [ base ]; 94 + }; 95 + 96 + ppx_fields_conv = janePackage { 97 + pname = "ppx_fields_conv"; 98 + hash = "0biw0fgphj522bj9wgjk263i2w92vnpaabzr5zn0grihp4yqy8w4"; 99 + meta.description = "Generation of accessor and iteration functions for ocaml records"; 100 + propagatedBuildInputs = [ fieldslib ppxlib ]; 101 + }; 102 + 103 + variantslib = janePackage { 104 + pname = "variantslib"; 105 + hash = "04nps65v1n0nv9n1c1kj5k9jyqsfsxb6h2w3vf6cibhjr5m7z8xc"; 106 + meta.description = "Part of Jane Street's Core library"; 107 + propagatedBuildInputs = [ base ]; 108 + }; 109 + 110 + ppx_variants_conv = janePackage { 111 + pname = "ppx_variants_conv"; 112 + hash = "1ssinizz11bws06qzjky486cj1zrflij1f7hi16d02j40qmyjz7b"; 113 + meta.description = "Generation of accessor and iteration functions for ocaml variant types"; 114 + propagatedBuildInputs = [ variantslib ppxlib ]; 115 + }; 116 + 117 + ppx_expect = janePackage { 118 + pname = "ppx_expect"; 119 + hash = "1hhcga960wjvhcx5pk7rcywl1p9n2ycvqa294n24m8dhzqia6i47"; 120 + meta.description = "Cram like framework for OCaml"; 121 + propagatedBuildInputs = [ ppx_assert ppx_custom_printf ppx_fields_conv ppx_inline_test ppx_variants_conv re ]; 122 + }; 123 + 124 + ppx_enumerate = janePackage { 125 + pname = "ppx_enumerate"; 126 + hash = "0hsg6f2nra1mb35jdgym5rf7spm642bs6qqifbikm9hg8f7z3ql4"; 127 + meta.description = "Generate a list containing all values of a finite type"; 128 + propagatedBuildInputs = [ ppxlib ]; 129 + }; 130 + 131 + ppx_hash = janePackage { 132 + pname = "ppx_hash"; 133 + hash = "1f7mfyx4wgk67hchi57w3142m61ka3vgy1969cbkwr3akv6ifly2"; 134 + meta.description = "A ppx rewriter that generates hash functions from type expressions and definitions"; 135 + propagatedBuildInputs = [ ppx_compare ppx_sexp_conv ]; 136 + }; 137 + 138 + ppx_js_style = janePackage { 139 + pname = "ppx_js_style"; 140 + hash = "1zlhcn0an5k9xjymk5z5m2vqi8zajy6nvcbl5sdn19pjl3zv645x"; 141 + meta.description = "Code style checker for Jane Street Packages"; 142 + propagatedBuildInputs = [ octavius ppxlib ]; 143 + }; 144 + 145 + ppx_base = janePackage { 146 + pname = "ppx_base"; 147 + hash = "0dkqc85x7bgbb6lgx9rghvj1q4dpdgy9qgjl88ywi4c8l9rgnnkz"; 148 + meta.description = "Base set of ppx rewriters"; 149 + propagatedBuildInputs = [ ppx_cold ppx_enumerate ppx_hash ppx_js_style ]; 150 + }; 151 + 152 + ppx_bench = janePackage { 153 + pname = "ppx_bench"; 154 + hash = "0snmy05d3jgihmppixx3dzamkykijqa2v43vpd7q4z8dpnip620g"; 155 + meta.description = "Syntax extension for writing in-line benchmarks in ocaml code"; 156 + propagatedBuildInputs = [ ppx_inline_test ]; 157 + }; 158 + 159 + ppx_sexp_message = janePackage { 160 + pname = "ppx_sexp_message"; 161 + hash = "03jhx3ajcv22iwxkg1jf1jjvd14gyrwi1yc6c5ryqi5ha0fywfw6"; 162 + meta.description = "A ppx rewriter for easy construction of s-expressions"; 163 + propagatedBuildInputs = [ ppx_here ppx_sexp_conv ]; 164 + }; 165 + 166 + splittable_random = janePackage { 167 + pname = "splittable_random"; 168 + hash = "1kgcd6k31vsd7638g8ip77bp1b7vzgkbvgvij4jm2igl09132r85"; 169 + meta.description = "PRNG that can be split into independent streams"; 170 + propagatedBuildInputs = [ base ppx_assert ppx_bench ppx_sexp_message ]; 171 + }; 172 + 173 + ppx_let = janePackage { 174 + pname = "ppx_let"; 175 + hash = "0qplsvbv10h7kwf6dhhgvi001gfphv1v66s83zjr5zbypyaarg5y"; 176 + meta.description = "Monadic let-bindings"; 177 + propagatedBuildInputs = [ ppxlib ]; 178 + }; 179 + 180 + base_quickcheck = janePackage { 181 + pname = "base_quickcheck"; 182 + hash = "0ik8llm01m2xap4gia0vpsh7yq311hph7a2kf5109ag4988s8p0w"; 183 + meta.description = "Randomized testing framework, designed for compatibility with Base"; 184 + propagatedBuildInputs = [ ppx_base ppx_fields_conv ppx_let splittable_random ]; 185 + }; 186 + 187 + ppx_stable = janePackage { 188 + pname = "ppx_stable"; 189 + hash = "0h7ls1bs0bsd8c4na4aj0nawwhvfy50ybm7sza7yz3qli9jammjk"; 190 + meta.description = "Stable types conversions generator"; 191 + propagatedBuildInputs = [ ppxlib ]; 192 + }; 193 + 194 + bin_prot = janePackage { 195 + pname = "bin_prot"; 196 + hash = "1nnr21rljlfglmhiji27d7c1d6gg5fk4cc5rl3750m98w28mfdjw"; 197 + meta.description = "A binary protocol generator"; 198 + propagatedBuildInputs = [ ppx_compare ppx_custom_printf ppx_fields_conv ppx_variants_conv ]; 199 + }; 200 + 201 + ppx_bin_prot = janePackage { 202 + pname = "ppx_bin_prot"; 203 + hash = "14nfjgqisdqqg8wg4qzvc859zil82y0qpr8fm4nhq05mgxp37iyc"; 204 + meta.description = "Generation of bin_prot readers and writers from types"; 205 + propagatedBuildInputs = [ bin_prot ppx_here ]; 206 + }; 207 + 208 + ppx_fail = janePackage { 209 + pname = "ppx_fail"; 210 + hash = "165mikjg4a1lahq3n9q9y2h36jbln5g3l2hapx17irvf0l0c3vn5"; 211 + meta.description = "Add location to calls to failwiths"; 212 + propagatedBuildInputs = [ ppx_here ]; 213 + }; 214 + 215 + jst-config = janePackage { 216 + pname = "jst-config"; 217 + hash = "15lj6f83hz555xhjy9aayl3adqwgl1blcjnja693a1ybi3ca8w0y"; 218 + meta.description = "Compile-time configuration for Jane Street libraries"; 219 + buildInputs = [ ppx_assert ]; 220 + }; 221 + 222 + ppx_optcomp = janePackage { 223 + pname = "ppx_optcomp"; 224 + hash = "13db395swqf7v87pgl9qiyj4igmvj57hpl8blx3kkrzj6ddh38a8"; 225 + meta.description = "Optional compilation for OCaml"; 226 + propagatedBuildInputs = [ ppxlib ]; 227 + }; 228 + 229 + jane-street-headers = janePackage { 230 + pname = "jane-street-headers"; 231 + hash = "1qjg2ari0xn40dlbk0h9xkwr37k97ldkxpkv792fbl6wc2jlv3x5"; 232 + meta.description = "Jane Street C header files"; 233 + }; 234 + 235 + time_now = janePackage { 236 + pname = "time_now"; 237 + hash = "1if234kz1ssmv22c0vh1cwhbivab6yy3xvy37ny1q4k5ibjc3v0n"; 238 + meta.description = "Reports the current time"; 239 + buildInputs = [ jst-config ppx_optcomp ]; 240 + propagatedBuildInputs = [ jane-street-headers base ppx_base ]; 241 + }; 242 + 243 + ppx_module_timer = janePackage { 244 + pname = "ppx_module_timer"; 245 + hash = "13kv5fzwf41wsaksj41hnvcpx8pnbmzcainlq6f5shj9671hpnhb"; 246 + meta.description = "Ppx rewriter that records top-level module startup times"; 247 + propagatedBuildInputs = [ time_now ]; 248 + }; 249 + 250 + ppx_optional = janePackage { 251 + pname = "ppx_optional"; 252 + hash = "1nwb9jvmszxddj9wxgv9g02qhr10yymm2q1w1gjfqd97m2m1mx4n"; 253 + meta.description = "Pattern matching on flat options"; 254 + propagatedBuildInputs = [ ppxlib ]; 255 + }; 256 + 257 + ppx_pipebang = janePackage { 258 + pname = "ppx_pipebang"; 259 + hash = "0ybj0flsi95pf13ayzz1lcrqhqvkv1lm2dz6y8w49f12583496mc"; 260 + meta.description = "A ppx rewriter that inlines reverse application operators `|>` and `|!`"; 261 + propagatedBuildInputs = [ ppxlib ]; 262 + }; 263 + 264 + ppx_sexp_value = janePackage { 265 + pname = "ppx_sexp_value"; 266 + hash = "18k5015awv9yjl44cvdmp3pn894cgsxmn5s7picxapm9675xqcg9"; 267 + meta.description = "A ppx rewriter that simplifies building s-expressions from ocaml values"; 268 + propagatedBuildInputs = [ ppx_here ppx_sexp_conv ]; 269 + }; 270 + 271 + typerep = janePackage { 272 + pname = "typerep"; 273 + hash = "116hlifww2cqq1i9vwpl7ziwkc1na7p9icqi9srpdxnvn8ibcsas"; 274 + meta.description = "Typerep is a library for runtime types"; 275 + propagatedBuildInputs = [ base ]; 276 + }; 277 + 278 + ppx_typerep_conv = janePackage { 279 + pname = "ppx_typerep_conv"; 280 + hash = "1jlmga9i79inr412l19n4vvmgafzp1bznqxwhy42x309wblbhxx9"; 281 + meta.description = "Generation of runtime types from type declarations"; 282 + propagatedBuildInputs = [ ppxlib typerep ]; 283 + }; 284 + 285 + ppx_jane = janePackage { 286 + pname = "ppx_jane"; 287 + hash = "1a86rvnry8lvjhsg2k73f5bgz7l2962k5i49yzmzn8w66kj0yz60"; 288 + meta.description = "Standard Jane Street ppx rewriters"; 289 + propagatedBuildInputs = [ base_quickcheck ppx_bench ppx_bin_prot ppx_expect ppx_fail ppx_module_timer ppx_optcomp ppx_optional ppx_pipebang ppx_sexp_value ppx_stable ppx_typerep_conv ]; 290 + }; 291 + 292 + base_bigstring = janePackage { 293 + pname = "base_bigstring"; 294 + hash = "1i3zr8bn71l442vl5rrvjpwphx20frp2vaw1qc05d348j76sxfp7"; 295 + meta.description = "String type based on [Bigarray], for use in I/O and C-bindings"; 296 + propagatedBuildInputs = [ ppx_jane ]; 297 + }; 298 + 299 + parsexp = janePackage { 300 + pname = "parsexp"; 301 + hash = "0fsxy5lpsvfadj8m2337j8iprs294dfikqxjcas7si74nskx6l38"; 302 + meta.description = "S-expression parsing library"; 303 + propagatedBuildInputs = [ base sexplib0 ]; 304 + }; 305 + 306 + sexplib = janePackage { 307 + pname = "sexplib"; 308 + hash = "059ypcyirw00x6dqa33x49930pwxcr3i72qz5pf220js2ai2nzhn"; 309 + meta.description = "Library for serializing OCaml values to and from S-expressions"; 310 + propagatedBuildInputs = [ num parsexp ]; 311 + }; 312 + 313 + core_kernel = janePackage { 314 + version = "0.13.1"; 315 + pname = "core_kernel"; 316 + hash = "1ynyz6jkf23q0cwbn6kv06mgyjd644qxb0qkrydq0cglcaa4kjhp"; 317 + meta.description = "System-independent part of Core"; 318 + buildInputs = [ jst-config ]; 319 + propagatedBuildInputs = [ base_bigstring sexplib ]; 320 + }; 321 + 322 + spawn = janePackage { 323 + pname = "spawn"; 324 + hash = "1w003k1kw1lmyiqlk58gkxx8rac7dchiqlz6ah7aj7bh49b36ppf"; 325 + meta.description = "Spawning sub-processes"; 326 + buildInputs = [ ppx_expect ]; 327 + }; 328 + 329 + core = janePackage { 330 + pname = "core"; 331 + hash = "1i5z9myl6i7axd8dz4b71gdsz9la6k07ib9njr4bn12yn0y76b1m"; 332 + meta.description = "System-independent part of Core"; 333 + buildInputs = [ jst-config ]; 334 + propagatedBuildInputs = [ core_kernel spawn ]; 335 + }; 336 + 337 + async_kernel = janePackage { 338 + pname = "async_kernel"; 339 + hash = "1rrbyy3pyh31qwv0jiarhpgdyq2z2gx6axmaplgpxshk4qx6gsld"; 340 + meta.description = "Monadic concurrency library"; 341 + propagatedBuildInputs = [ core_kernel ]; 342 + }; 343 + 344 + protocol_version_header = janePackage { 345 + pname = "protocol_version_header"; 346 + hash = "19wscd81jlj355f9din1sg21m3af456a0id2a37bx38r390wrghc"; 347 + meta.description = "Protocol versioning"; 348 + propagatedBuildInputs = [ core_kernel ]; 349 + }; 350 + 351 + async_rpc_kernel = janePackage { 352 + pname = "async_rpc_kernel"; 353 + hash = "1k3f2psyd1xcf7nkk0q1fq57yyhfqbzyynsz821n7mrnm37simac"; 354 + meta.description = "Platform-independent core of Async RPC library"; 355 + propagatedBuildInputs = [ async_kernel protocol_version_header ]; 356 + }; 357 + 358 + async_unix = janePackage { 359 + pname = "async_unix"; 360 + hash = "0n3jz3qjlphyhkqgnbjbwf2fqxaksws82dx1mk4m4wnw3275gdi5"; 361 + meta.description = "Monadic concurrency library"; 362 + propagatedBuildInputs = [ async_kernel core ]; 363 + }; 364 + 365 + async_extra = janePackage { 366 + pname = "async_extra"; 367 + hash = "06q1farx7dwi4h490xi1azq7ym57ih2d23sq17g2jfvw889kf4n1"; 368 + meta.description = "Monadic concurrency library"; 369 + propagatedBuildInputs = [ async_rpc_kernel async_unix ]; 370 + }; 371 + 372 + textutils = janePackage { 373 + pname = "textutils"; 374 + hash = "1wnyqj9dzfgl0kddmdl4n9rkl16hwy432dd2i4ksvk2z5g9kkb0d"; 375 + meta.description = "Text output utilities"; 376 + propagatedBuildInputs = [ core ]; 377 + }; 378 + 379 + async = janePackage { 380 + pname = "async"; 381 + hash = "002j9yxpw0ghi12a84163vaqa3n9h8j35f4i72nbxnilxwvy95sr"; 382 + meta.description = "Monadic concurrency library"; 383 + propagatedBuildInputs = [ async_rpc_kernel async_unix textutils ]; 384 + }; 385 + 386 + async_find = janePackage { 387 + pname = "async_find"; 388 + hash = "0l8cfhyrx2rb2avdcfx5m70aj6rx2d57qxqvfycad5afqz4xx2n9"; 389 + meta.description = "Directory traversal with Async"; 390 + propagatedBuildInputs = [ async ]; 391 + }; 392 + 393 + re2 = janePackage { 394 + pname = "re2"; 395 + hash = "0hmizznlzilynn5kh6149bbpkfw2l0xi7zi1y1fxfww2ma3wpim0"; 396 + meta.description = "OCaml bindings for RE2, Google's regular expression library"; 397 + propagatedBuildInputs = [ core_kernel ]; 398 + prePatch = '' 399 + substituteInPlace src/re2_c/dune --replace 'CXX=g++' 'CXX=c++' 400 + substituteInPlace src/dune --replace '(cxx_flags (:standard \ -pedantic) (-I re2_c/libre2))' '(cxx_flags (:standard \ -pedantic) (-I re2_c/libre2) (-x c++))' 401 + ''; 402 + }; 403 + 404 + shell = janePackage { 405 + pname = "shell"; 406 + hash = "190ymhm0z9b7hngbcpg88wwrfxwfcdh339d7rd2xhmrhi4z99r18"; 407 + meta.description = "Yet another implementation of fork&exec and related functionality"; 408 + buildInputs = [ jst-config ]; 409 + propagatedBuildInputs = [ re2 textutils ]; 410 + }; 411 + 412 + async_shell = janePackage { 413 + pname = "async_shell"; 414 + hash = "0bfxyvdmyv23zfr49pb4c3bgfkjr4s3nb3z07xrw6szia3j1kp4j"; 415 + meta.description = "Shell helpers for Async"; 416 + propagatedBuildInputs = [ async shell ]; 417 + }; 418 + 419 + core_bench = janePackage { 420 + pname = "core_bench"; 421 + hash = "1nk0i3z8rqrljbf4bc7ljp71g0a4361nh85s2ang0lgxri74zacm"; 422 + meta.description = "Benchmarking library"; 423 + propagatedBuildInputs = [ textutils ]; 424 + }; 425 + 426 + core_extended = janePackage { 427 + pname = "core_extended"; 428 + hash = "0zh1wwkg5cxkz633dl9zbbl65aksvzb5mss1q8f7w6i1sv3n0135"; 429 + meta.description = "Extra components that are not as closely vetted or as stable as Core"; 430 + propagatedBuildInputs = [ core ]; 431 + }; 432 + 433 + sexp_pretty = janePackage { 434 + pname = "sexp_pretty"; 435 + hash = "1a59xc9frmvi7n0i32dzs8gpf5ral80xkwv97a13zv5cyg8l6216"; 436 + meta.description = "S-expression pretty-printer"; 437 + propagatedBuildInputs = [ ppx_base re sexplib ]; 438 + }; 439 + 440 + expect_test_helpers_kernel = janePackage { 441 + pname = "expect_test_helpers_kernel"; 442 + hash = "11m0i7mj6b1cmqnwhmsrqdc814s0lk3sip8rh97k75grngazmjvn"; 443 + meta.description = "Helpers for writing expectation tests"; 444 + buildInputs = [ ppx_jane ]; 445 + propagatedBuildInputs = [ core_kernel sexp_pretty ]; 446 + }; 447 + 448 + expect_test_helpers = janePackage { 449 + pname = "expect_test_helpers"; 450 + hash = "0sw9yam8d9hdam8p194q0hgc4i26vvwj5qi2cba1jxfhdzhy8jdd"; 451 + meta.description = "Async helpers for writing expectation tests"; 452 + propagatedBuildInputs = [ async expect_test_helpers_kernel ]; 453 + }; 454 + 455 + patience_diff = janePackage { 456 + pname = "patience_diff"; 457 + hash = "012rlbnw21yq2lsbfk3f7l4m4qq3jdx238146z36v54vnhhs6r2r"; 458 + meta.description = "Diff library using Bram Cohen's patience diff algorithm"; 459 + propagatedBuildInputs = [ core_kernel ]; 460 + }; 461 + 462 + ecaml = janePackage { 463 + pname = "ecaml"; 464 + hash = "0jmmsi1m7d4cl5mnw6v9h4ng29anwxy73a6qfi28lgpzafn452bc"; 465 + meta.description = "Library for writing Emacs plugin in OCaml"; 466 + propagatedBuildInputs = [ async expect_test_helpers_kernel ]; 467 + }; 468 + 469 + ### Packages at version 0.11, with dependencies at version 0.12 470 + 471 + configurator = janePackage { 472 + pname = "configurator"; 473 + version = "0.11.0"; 474 + hash = "0h686630cscav7pil8c3w0gbh6rj4b41dvbnwmicmlkc746q5bfk"; 475 + propagatedBuildInputs = [ stdio ]; 476 + meta.description = "Helper library for gathering system configuration"; 477 + }; 478 + 479 + ppx_core = janePackage { 480 + pname = "ppx_core"; 481 + version = "0.11.0"; 482 + hash = "11hgm9mxig4cm3c827f6dns9mjv3pf8g6skf10x0gw9xnp1dmzmx"; 483 + propagatedBuildInputs = [ ppxlib ]; 484 + meta.description = "Deprecated (see ppxlib)"; 485 + }; 486 + 487 + ppx_driver = janePackage { 488 + pname = "ppx_driver"; 489 + version = "0.11.0"; 490 + hash = "00kfx6js2kxk57k4v7hiqvwk7h35whgjihnxf75m82rnaf4yzvfi"; 491 + propagatedBuildInputs = [ ppxlib ]; 492 + meta.description = "Deprecated (see ppxlib)"; 493 + }; 494 + 495 + ppx_type_conv = janePackage { 496 + pname = "ppx_type_conv"; 497 + version = "0.11.0"; 498 + hash = "04dbrglqqhkas25cpjz8xhjcbpk141c35qggzw66bn69izczfmaf"; 499 + propagatedBuildInputs = [ ppxlib ]; 500 + meta.description = "Deprecated (see ppxlib)"; 501 + }; 502 + 503 + }
-17
pkgs/development/ocaml-modules/janestreet/async_ssl.nix
··· 1 - { stdenv, buildOcamlJane, async, comparelib, core, ctypes 2 - , openssl, fieldslib, herelib, pipebang, sexplib, ocaml_oasis 3 - }: 4 - 5 - buildOcamlJane { 6 - name = "async_ssl"; 7 - version = "113.33.07"; 8 - hash = "0bhzpnmlx6dy4fli3i7ipjwqbsdi7fq171jrila5dr3ciy3841xs"; 9 - propagatedBuildInputs = [ ctypes async comparelib core fieldslib 10 - herelib pipebang sexplib openssl ocaml_oasis ]; 11 - meta = with stdenv.lib; { 12 - homepage = "https://github.com/janestreet/async_ssl"; 13 - description = "Async wrappers for ssl"; 14 - license = licenses.asl20; 15 - maintainers = [ maintainers.ericbmerritt ]; 16 - }; 17 - }
···
+19
pkgs/development/ocaml-modules/janestreet/janePackage_0_13.nix
···
··· 1 + { lib, fetchFromGitHub, buildDunePackage, defaultVersion ? "0.13.0" }: 2 + 3 + { pname, version ? defaultVersion, hash, ...}@args: 4 + 5 + buildDunePackage (args // { 6 + inherit version; 7 + 8 + minimumOCamlVersion = "4.08"; 9 + 10 + src = fetchFromGitHub { 11 + owner = "janestreet"; 12 + repo = pname; 13 + rev = "v${version}"; 14 + sha256 = hash; 15 + }; 16 + 17 + meta.license = lib.licenses.mit; 18 + meta.homepage = "https://github.com/janestreet/${pname}"; 19 + })
+2 -2
pkgs/development/ocaml-modules/linenoise/default.nix
··· 2 3 buildDunePackage rec { 4 pname = "linenoise"; 5 - version = "1.1.0"; 6 7 minimumOCamlVersion = "4.02"; 8 ··· 10 owner = "fxfactorial"; 11 repo = "ocaml-${pname}"; 12 rev = "v${version}"; 13 - sha256 = "1h6rqfgmhmd7p5z8yhk6zkbrk4yzw1v2fgwas2b7g3hqs6y0xj0q"; 14 }; 15 16 propagatedBuildInputs = [ result ];
··· 2 3 buildDunePackage rec { 4 pname = "linenoise"; 5 + version = "1.3.0"; 6 7 minimumOCamlVersion = "4.02"; 8 ··· 10 owner = "fxfactorial"; 11 repo = "ocaml-${pname}"; 12 rev = "v${version}"; 13 + sha256 = "0m9mm1arsawi5w5aqm57z41sy1wfxvhfgbdiw7hzy631i391144g"; 14 }; 15 16 propagatedBuildInputs = [ result ];
+3 -3
pkgs/development/ocaml-modules/phylogenetics/default.nix
··· 3 4 buildDunePackage rec { 5 pname = "phylogenetics"; 6 - version = "unstable-2020-01-05"; 7 8 useDune2 = true; 9 10 src = fetchFromGitHub { 11 owner = "biocaml"; 12 repo = pname; 13 - rev = "b55ef7d7322bd822be26d21339945d45487fb547"; 14 - sha256 = "0hzfjhs5w3a7hlzxs739k5ik3k1xn3dzyzziid765s74f638n4hj"; 15 }; 16 17 minimumOCamlVersion = "4.08"; # e.g., uses Float.min
··· 3 4 buildDunePackage rec { 5 pname = "phylogenetics"; 6 + version = "unstable-2020-01-25"; 7 8 useDune2 = true; 9 10 src = fetchFromGitHub { 11 owner = "biocaml"; 12 repo = pname; 13 + rev = "752a7d0324709ba919ef43630a270afd45d6b734"; 14 + sha256 = "1zsxpl1yjbw6y6n1q7qk3h0l7c0lxhh8yp8bkxlwnpzlkqq28ycg"; 15 }; 16 17 minimumOCamlVersion = "4.08"; # e.g., uses Float.min
+2 -2
pkgs/development/ocaml-modules/rpclib/default.nix
··· 2 3 buildDunePackage rec { 4 pname = "rpclib"; 5 - version = "6.0.0"; 6 7 minimumOCamlVersion = "4.04"; 8 ··· 10 owner = "mirage"; 11 repo = "ocaml-rpc"; 12 rev = "v${version}"; 13 - sha256 = "0bmr20sj7kybjjlwd42irj0f5zlnxcw7mxa1mdgxkki9bmhsqr51"; 14 }; 15 16 buildInputs = [ alcotest cmdliner yojson ];
··· 2 3 buildDunePackage rec { 4 pname = "rpclib"; 5 + version = "7.0.0"; 6 7 minimumOCamlVersion = "4.04"; 8 ··· 10 owner = "mirage"; 11 repo = "ocaml-rpc"; 12 rev = "v${version}"; 13 + sha256 = "0d8nb272mjxkq5ddn65cy9gjpa8yvd0v3jv3wp5xfh9gj29wd2jj"; 14 }; 15 16 buildInputs = [ alcotest cmdliner yojson ];
+3 -3
pkgs/development/ocaml-modules/sedlex/2.nix
··· 38 sha256 = "05f6qa8x3vhpdz1fcnpqk37fpnyyq13icqsk2gww5idjnh6kng26"; 39 }; 40 41 - buildInputs = [ ppx_tools_versioned ocaml-migrate-parsetree ]; 42 - 43 - propagatedBuildInputs = [ gen uchar ]; 44 45 preBuild = '' 46 ln -s ${DerivedCoreProperties} src/generator/data/DerivedCoreProperties.txt
··· 38 sha256 = "05f6qa8x3vhpdz1fcnpqk37fpnyyq13icqsk2gww5idjnh6kng26"; 39 }; 40 41 + propagatedBuildInputs = [ 42 + gen uchar ocaml-migrate-parsetree ppx_tools_versioned 43 + ]; 44 45 preBuild = '' 46 ln -s ${DerivedCoreProperties} src/generator/data/DerivedCoreProperties.txt
+8 -1
pkgs/development/python-modules/apptools/default.nix
··· 1 - { lib, fetchPypi, buildPythonPackage 2 , configobj, six, traitsui 3 , nose, tables, pandas 4 }: ··· 11 inherit pname version; 12 sha256 = "10h52ibhr2aw076pivqxiajr9rpcr1mancg6xlpxzckcm3if02i6"; 13 }; 14 15 propagatedBuildInputs = [ configobj six traitsui ]; 16
··· 1 + { lib, fetchPypi, buildPythonPackage, fetchpatch 2 , configobj, six, traitsui 3 , nose, tables, pandas 4 }: ··· 11 inherit pname version; 12 sha256 = "10h52ibhr2aw076pivqxiajr9rpcr1mancg6xlpxzckcm3if02i6"; 13 }; 14 + 15 + # PyTables issue; should be merged in next post-4.5.0 release (#117) 16 + patches = [ (fetchpatch { 17 + url = "https://github.com/enthought/apptools/commit/3734289d1a0ebd8513fa67f75288add31ed0113c.patch"; 18 + sha256 = "001012q1ib5cbib3nq1alh9ckzj588bfrywr8brkd1f6y1pgvngk"; 19 + }) 20 + ]; 21 22 propagatedBuildInputs = [ configobj six traitsui ]; 23
+21 -8
pkgs/development/python-modules/envisage/default.nix
··· 1 - { stdenv, fetchPypi, buildPythonPackage 2 , traits, apptools 3 - , ipykernel 4 }: 5 6 buildPythonPackage rec { 7 pname = "envisage"; 8 - version = "4.7.2"; 9 10 src = fetchPypi { 11 inherit pname version; 12 - sha256 = "0jb5nw0w9x97jij0hd3d7kfzcj58r1cqmplmdy56bj11dyc4wyc9"; 13 }; 14 15 propagatedBuildInputs = [ traits apptools ]; ··· 18 export HOME=$PWD/HOME 19 ''; 20 21 checkInputs = [ 22 - ipykernel 23 ]; 24 25 - doCheck = true; 26 27 - meta = with stdenv.lib; { 28 description = "Framework for building applications whose functionalities can be extended by adding 'plug-ins'"; 29 homepage = "https://github.com/enthought/envisage"; 30 - maintainers = with stdenv.lib.maintainers; [ knedlsepp ]; 31 license = licenses.bsdOriginal; 32 }; 33 }
··· 1 + { lib, fetchPypi, fetchpatch, isPy27 2 + , buildPythonPackage 3 , traits, apptools 4 + , python, ipykernel, ipython 5 }: 6 7 buildPythonPackage rec { 8 pname = "envisage"; 9 + version = "4.9.2"; 10 + 11 + disabled = isPy27; 12 13 src = fetchPypi { 14 inherit pname version; 15 + sha256 = "1srjmkhnz84nz5jd72vdsnc4fn7dd9jr8nyf3hzk6yx1dsn815gd"; 16 }; 17 18 propagatedBuildInputs = [ traits apptools ]; ··· 21 export HOME=$PWD/HOME 22 ''; 23 24 + # fix a test failure; should be merged in next release 25 + patches = [ (fetchpatch { 26 + url = "https://github.com/enthought/envisage/pull/248/commits/7b6d2dd615d5cb7455b200eb8f37e030bbf4df9e.patch"; 27 + sha256 = "0a3dmbpxwsn1bkjcjv9v7b751rcmppj6hc9wcgiayg4l9r2nrvyh"; 28 + }) ]; 29 + 30 checkInputs = [ 31 + ipykernel ipython 32 ]; 33 34 + checkPhase = '' 35 + runHook preCheck 36 + ${python.interpreter} -m unittest 37 + runHook postCheck 38 + ''; 39 40 + meta = with lib; { 41 description = "Framework for building applications whose functionalities can be extended by adding 'plug-ins'"; 42 homepage = "https://github.com/enthought/envisage"; 43 + maintainers = with lib.maintainers; [ knedlsepp ]; 44 license = licenses.bsdOriginal; 45 }; 46 }
+3 -1
pkgs/development/python-modules/howdoi/default.nix
··· 5 , requests-cache 6 , pygments 7 , pyquery 8 }: 9 10 buildPythonPackage rec { ··· 16 sha256 = "3b322668606d29d8a841c3b28c0574851f512b55c33a7ceb982b6a98d82fa3e3"; 17 }; 18 19 - propagatedBuildInputs = [ six requests-cache pygments pyquery ]; 20 21 preCheck = '' 22 export HOME=$(mktemp -d)
··· 5 , requests-cache 6 , pygments 7 , pyquery 8 + , cachelib 9 + , appdirs 10 }: 11 12 buildPythonPackage rec { ··· 18 sha256 = "3b322668606d29d8a841c3b28c0574851f512b55c33a7ceb982b6a98d82fa3e3"; 19 }; 20 21 + propagatedBuildInputs = [ six requests-cache pygments pyquery cachelib appdirs ]; 22 23 preCheck = '' 24 export HOME=$(mktemp -d)
+2 -1
pkgs/development/python-modules/lektor/default.nix
··· 19 , pytest-click 20 , isPy27 21 , functools32 22 }: 23 24 buildPythonPackage rec { ··· 34 35 propagatedBuildInputs = [ 36 click watchdog exifread requests mistune inifile Babel jinja2 37 - flask pyopenssl ndg-httpsclient 38 ] ++ lib.optionals isPy27 [ functools32 ]; 39 40 checkInputs = [
··· 19 , pytest-click 20 , isPy27 21 , functools32 22 + , setuptools 23 }: 24 25 buildPythonPackage rec { ··· 35 36 propagatedBuildInputs = [ 37 click watchdog exifread requests mistune inifile Babel jinja2 38 + flask pyopenssl ndg-httpsclient setuptools 39 ] ++ lib.optionals isPy27 [ functools32 ]; 40 41 checkInputs = [
+16 -29
pkgs/development/python-modules/matplotlib/2.nix
··· 7 # darwin has its own "MacOSX" backend 8 , enableTk ? !stdenv.isDarwin, tcl ? null, tk ? null, tkinter ? null, libX11 ? null 9 , enableQt ? false, pyqt4 10 - , libcxx 11 , Cocoa 12 , pythonOlder 13 }: ··· 29 sha256 = "7355bf757ecacd5f0ac9dd9523c8e1a1103faadf8d33c22664178e17533f8ce5"; 30 }; 31 32 - NIX_CFLAGS_COMPILE = stdenv.lib.optionalString stdenv.isDarwin "-I${libcxx}/include/c++/v1"; 33 34 XDG_RUNTIME_DIR = "/tmp"; 35 36 nativeBuildInputs = [ pkgconfig ]; 37 38 - buildInputs = [ python which sphinx stdenv ] 39 ++ stdenv.lib.optional enableGhostscript ghostscript 40 ++ stdenv.lib.optional stdenv.isDarwin [ Cocoa ]; 41 ··· 48 ++ stdenv.lib.optionals enableQt [ pyqt4 ] 49 ++ stdenv.lib.optionals python.isPy2 [ functools32 subprocess32 ]; 50 51 - patches = [ 52 - ./basedirlist.patch 53 - 54 - # https://github.com/matplotlib/matplotlib/pull/12478 55 - (fetchpatch { 56 - name = "numpy-1.16-compat.patch"; 57 - url = "https://github.com/matplotlib/matplotlib/commit/2980184d092382a40ab21f95b79582ffae6e19d6.patch"; 58 - sha256 = "1c0wj28zy8s5h6qiavx9zzbhlmhjwpzbc3fyyw9039mbnqk0spg2"; 59 - }) 60 - ]; 61 62 # Matplotlib tries to find Tcl/Tk by opening a Tk window and asking the 63 # corresponding interpreter object for its library paths. This fails if ··· 73 stdenv.lib.optionalString enableTk 74 "sed -i '/self.tcl_tk_cache = None/s|None|${tcl_tk_cache}|' setupext.py"; 75 76 - checkPhase = '' 77 - ${python.interpreter} tests.py 78 - ''; 79 - 80 - # Test data is not included in the distribution (the `tests` folder 81 - # is missing) 82 doCheck = false; 83 84 - prePatch = '' 85 - # Failing test: ERROR: matplotlib.tests.test_style.test_use_url 86 - sed -i 's/test_use_url/fails/' lib/matplotlib/tests/test_style.py 87 - # Failing test: ERROR: test suite for <class 'matplotlib.sphinxext.tests.test_tinypages.TestTinyPages'> 88 - sed -i 's/TestTinyPages/fails/' lib/matplotlib/sphinxext/tests/test_tinypages.py 89 - # Transient errors 90 - sed -i 's/test_invisible_Line_rendering/noop/' lib/matplotlib/tests/test_lines.py 91 - ''; 92 - 93 meta = with stdenv.lib; { 94 description = "Python plotting library, making publication quality plots"; 95 homepage = "https://matplotlib.org/"; 96 - maintainers = with maintainers; [ lovek323 ]; 97 }; 98 99 }
··· 7 # darwin has its own "MacOSX" backend 8 , enableTk ? !stdenv.isDarwin, tcl ? null, tk ? null, tkinter ? null, libX11 ? null 9 , enableQt ? false, pyqt4 10 , Cocoa 11 , pythonOlder 12 }: ··· 28 sha256 = "7355bf757ecacd5f0ac9dd9523c8e1a1103faadf8d33c22664178e17533f8ce5"; 29 }; 30 31 + patches = [ 32 + # https://github.com/matplotlib/matplotlib/pull/12478 33 + (fetchpatch { 34 + name = "numpy-1.16-compat.patch"; 35 + url = "https://github.com/matplotlib/matplotlib/commit/2980184d092382a40ab21f95b79582ffae6e19d6.patch"; 36 + sha256 = "1c0wj28zy8s5h6qiavx9zzbhlmhjwpzbc3fyyw9039mbnqk0spg2"; 37 + }) 38 + ]; 39 40 XDG_RUNTIME_DIR = "/tmp"; 41 42 nativeBuildInputs = [ pkgconfig ]; 43 44 + buildInputs = [ which sphinx ] 45 ++ stdenv.lib.optional enableGhostscript ghostscript 46 ++ stdenv.lib.optional stdenv.isDarwin [ Cocoa ]; 47 ··· 54 ++ stdenv.lib.optionals enableQt [ pyqt4 ] 55 ++ stdenv.lib.optionals python.isPy2 [ functools32 subprocess32 ]; 56 57 + setup_cfg = ./setup.cfg; 58 + preBuild = '' 59 + cp "$setup_cfg" ./setup.cfg 60 + ''; 61 62 # Matplotlib tries to find Tcl/Tk by opening a Tk window and asking the 63 # corresponding interpreter object for its library paths. This fails if ··· 73 stdenv.lib.optionalString enableTk 74 "sed -i '/self.tcl_tk_cache = None/s|None|${tcl_tk_cache}|' setupext.py"; 75 76 + # Matplotlib needs to be built against a specific version of freetype in 77 + # order for all of the tests to pass. 78 doCheck = false; 79 80 meta = with stdenv.lib; { 81 description = "Python plotting library, making publication quality plots"; 82 homepage = "https://matplotlib.org/"; 83 + maintainers = with maintainers; [ lovek323 veprbl ]; 84 }; 85 86 }
-8
pkgs/development/python-modules/matplotlib/basedirlist.patch
··· 1 - diff --git a/setup.cfg b/setup.cfg 2 - new file mode 100644 3 - index 0000000..6f81985 4 - --- /dev/null 5 - +++ b/setup.cfg 6 - @@ -0,0 +1,2 @@ 7 - +[directories] 8 - +basedirlist = .
···
+10 -25
pkgs/development/python-modules/matplotlib/default.nix
··· 6 # darwin has its own "MacOSX" backend 7 , enableTk ? !stdenv.isDarwin, tcl ? null, tk ? null, tkinter ? null, libX11 ? null 8 , enableQt ? false, pyqt5 ? null 9 - , libcxx 10 , Cocoa 11 , pythonOlder 12 }: ··· 20 assert enableQt -> pyqt5 != null; 21 22 buildPythonPackage rec { 23 - version = "3.1.3"; 24 pname = "matplotlib"; 25 26 disabled = !isPy3k; 27 28 src = fetchPypi { 29 inherit pname version; 30 - sha256 = "db3121f12fb9b99f105d1413aebaeb3d943f269f3d262b45586d12765866f0c6"; 31 }; 32 33 - NIX_CFLAGS_COMPILE = stdenv.lib.optionalString stdenv.isDarwin "-I${libcxx}/include/c++/v1"; 34 - 35 XDG_RUNTIME_DIR = "/tmp"; 36 37 nativeBuildInputs = [ pkgconfig ]; 38 39 - buildInputs = [ python which sphinx stdenv ] 40 ++ stdenv.lib.optional enableGhostscript ghostscript 41 ++ stdenv.lib.optional stdenv.isDarwin [ Cocoa ]; 42 43 propagatedBuildInputs = 44 [ cycler dateutil numpy pyparsing tornado freetype kiwisolver 45 libpng mock pytz ] 46 - ++ stdenv.lib.optional (pythonOlder "3.3") backports_functools_lru_cache 47 ++ stdenv.lib.optionals enableGtk3 [ cairo pycairo gtk3 gobject-introspection pygobject3 ] 48 ++ stdenv.lib.optionals enableTk [ tcl tk tkinter libX11 ] 49 ++ stdenv.lib.optionals enableQt [ pyqt5 ]; 50 51 - patches = 52 - [ ./basedirlist.patch ]; 53 54 # Matplotlib tries to find Tcl/Tk by opening a Tk window and asking the 55 # corresponding interpreter object for its library paths. This fails if ··· 65 stdenv.lib.optionalString enableTk 66 "sed -i '/self.tcl_tk_cache = None/s|None|${tcl_tk_cache}|' setupext.py"; 67 68 - checkPhase = '' 69 - ${python.interpreter} tests.py 70 - ''; 71 - 72 - # Test data is not included in the distribution (the `tests` folder 73 - # is missing) 74 doCheck = false; 75 76 - prePatch = '' 77 - # Failing test: ERROR: matplotlib.tests.test_style.test_use_url 78 - sed -i 's/test_use_url/fails/' lib/matplotlib/tests/test_style.py 79 - # Failing test: ERROR: test suite for <class 'matplotlib.sphinxext.tests.test_tinypages.TestTinyPages'> 80 - sed -i 's/TestTinyPages/fails/' lib/matplotlib/sphinxext/tests/test_tinypages.py 81 - # Transient errors 82 - sed -i 's/test_invisible_Line_rendering/noop/' lib/matplotlib/tests/test_lines.py 83 - ''; 84 - 85 meta = with stdenv.lib; { 86 description = "Python plotting library, making publication quality plots"; 87 homepage = "https://matplotlib.org/"; 88 - maintainers = with maintainers; [ lovek323 ]; 89 }; 90 91 }
··· 6 # darwin has its own "MacOSX" backend 7 , enableTk ? !stdenv.isDarwin, tcl ? null, tk ? null, tkinter ? null, libX11 ? null 8 , enableQt ? false, pyqt5 ? null 9 , Cocoa 10 , pythonOlder 11 }: ··· 19 assert enableQt -> pyqt5 != null; 20 21 buildPythonPackage rec { 22 + version = "3.2.1"; 23 pname = "matplotlib"; 24 25 disabled = !isPy3k; 26 27 src = fetchPypi { 28 inherit pname version; 29 + sha256 = "ffe2f9cdcea1086fc414e82f42271ecf1976700b8edd16ca9d376189c6d93aee"; 30 }; 31 32 XDG_RUNTIME_DIR = "/tmp"; 33 34 nativeBuildInputs = [ pkgconfig ]; 35 36 + buildInputs = [ which sphinx ] 37 ++ stdenv.lib.optional enableGhostscript ghostscript 38 ++ stdenv.lib.optional stdenv.isDarwin [ Cocoa ]; 39 40 propagatedBuildInputs = 41 [ cycler dateutil numpy pyparsing tornado freetype kiwisolver 42 libpng mock pytz ] 43 ++ stdenv.lib.optionals enableGtk3 [ cairo pycairo gtk3 gobject-introspection pygobject3 ] 44 ++ stdenv.lib.optionals enableTk [ tcl tk tkinter libX11 ] 45 ++ stdenv.lib.optionals enableQt [ pyqt5 ]; 46 47 + setup_cfg = ./setup.cfg; 48 + preBuild = '' 49 + cp "$setup_cfg" ./setup.cfg 50 + ''; 51 52 # Matplotlib tries to find Tcl/Tk by opening a Tk window and asking the 53 # corresponding interpreter object for its library paths. This fails if ··· 63 stdenv.lib.optionalString enableTk 64 "sed -i '/self.tcl_tk_cache = None/s|None|${tcl_tk_cache}|' setupext.py"; 65 66 + # Matplotlib needs to be built against a specific version of freetype in 67 + # order for all of the tests to pass. 68 doCheck = false; 69 70 meta = with stdenv.lib; { 71 description = "Python plotting library, making publication quality plots"; 72 homepage = "https://matplotlib.org/"; 73 + maintainers = with maintainers; [ lovek323 veprbl ]; 74 }; 75 76 }
+2
pkgs/development/python-modules/matplotlib/setup.cfg
···
··· 1 + [directories] 2 + basedirlist = .
+20 -12
pkgs/development/python-modules/mayavi/default.nix
··· 1 - { stdenv, fetchPypi, buildPythonPackage 2 - , wxPython, pygments, numpy, vtk, traitsui, envisage, apptools 3 - , nose, mock 4 - , isPy3k 5 }: 6 7 buildPythonPackage rec { 8 pname = "mayavi"; 9 version = "4.7.1"; 10 11 src = fetchPypi { 12 inherit pname version; ··· 14 sha256 = "095p7mds6kqqrp7xqv24iygr3mw85rm7x41wb5y4yc3gi1pznldy"; 15 }; 16 17 - # Discovery of 'vtk' in setuptools is not working properly, due to a missing 18 - # .egg-info in the vtk package. It does however import and run just fine. 19 postPatch = '' 20 substituteInPlace mayavi/__init__.py --replace "'vtk'" "" 21 - ''; 22 23 - propagatedBuildInputs = [ wxPython pygments numpy vtk traitsui envisage apptools ]; 24 25 - checkInputs = [ nose mock ]; 26 27 - disabled = isPy3k; # TODO: This would need pyqt5 instead of wxPython 28 29 doCheck = false; # Needs X server 30 31 - meta = with stdenv.lib; { 32 description = "3D visualization of scientific data in Python"; 33 homepage = "https://github.com/enthought/mayavi"; 34 - maintainers = with stdenv.lib.maintainers; [ knedlsepp ]; 35 license = licenses.bsdOriginal; 36 }; 37 }
··· 1 + { lib, buildPythonPackage, isPy27, fetchPypi, wrapQtAppsHook 2 + , pyface, pygments, numpy, vtk, traitsui, envisage, apptools, pyqt5 3 }: 4 5 buildPythonPackage rec { 6 pname = "mayavi"; 7 version = "4.7.1"; 8 + 9 + disabled = isPy27; 10 11 src = fetchPypi { 12 inherit pname version; ··· 14 sha256 = "095p7mds6kqqrp7xqv24iygr3mw85rm7x41wb5y4yc3gi1pznldy"; 15 }; 16 17 postPatch = '' 18 + # Discovery of 'vtk' in setuptools is not working properly, due to a missing 19 + # .egg-info in the vtk package. It does however import and run just fine. 20 substituteInPlace mayavi/__init__.py --replace "'vtk'" "" 21 22 + # building the docs fails with the usual Qt xcb error, so skip: 23 + substituteInPlace setup.py \ 24 + --replace "build.build.run(self)" "build.build.run(self); return" 25 + ''; 26 27 + nativeBuildInputs = [ wrapQtAppsHook ]; 28 29 + propagatedBuildInputs = [ 30 + pyface pygments numpy vtk traitsui envisage apptools pyqt5 31 + ]; 32 33 doCheck = false; # Needs X server 34 35 + preFixup = '' 36 + makeWrapperArgs+=("''${qtWrapperArgs[@]}") 37 + ''; 38 + 39 + meta = with lib; { 40 description = "3D visualization of scientific data in Python"; 41 homepage = "https://github.com/enthought/mayavi"; 42 + maintainers = with maintainers; [ knedlsepp ]; 43 license = licenses.bsdOriginal; 44 }; 45 }
+20
pkgs/development/python-modules/pdfposter/default.nix
···
··· 1 + { stdenv, buildPythonPackage, fetchPypi, pypdf2 }: 2 + 3 + buildPythonPackage rec { 4 + pname = "pdftools.pdfposter"; 5 + version = "0.7.post1"; 6 + 7 + propagatedBuildInputs = [ pypdf2 ]; 8 + 9 + src = fetchPypi { 10 + inherit pname version; 11 + sha256 = "0c1avpbr9q53yzq5ar2x485rmp9d0l3z27aham32bg7gplzd7w0j"; 12 + }; 13 + 14 + meta = with stdenv.lib; { 15 + description = "Split large pages of a PDF into smaller ones for poster printing"; 16 + homepage = "https://pdfposter.readthedocs.io"; 17 + license = licenses.gpl3; 18 + maintainers = with maintainers; [ wamserma ]; 19 + }; 20 + }
+26
pkgs/development/python-modules/publicsuffix2/default.nix
···
··· 1 + { stdenv, buildPythonPackage, fetchFromGitHub, requests }: 2 + 3 + buildPythonPackage rec { 4 + pname = "publicsuffix2"; 5 + version = "2.20191221"; 6 + 7 + # Tests are missing in the sdist 8 + # See: https://github.com/nexB/python-publicsuffix2/issues/12 9 + src = fetchFromGitHub { 10 + owner = "nexB"; 11 + repo = "python-publicsuffix2"; 12 + rev = "release-2.2019-12-21"; 13 + sha256 = "1dkvfvl0izq9hqzilnw8ipkbgjs9xyad9p21i3864hzinbh0wp9r"; 14 + }; 15 + 16 + nativeBuildInputs = [ requests ]; 17 + 18 + meta = with stdenv.lib; { 19 + description = '' 20 + Get a public suffix for a domain name using the Public Suffix 21 + List. Forked from and using the same API as the publicsuffix package. 22 + ''; 23 + homepage = "https://pypi.python.org/pypi/publicsuffix2/"; 24 + license = licenses.mpl20; 25 + }; 26 + }
+2 -2
pkgs/development/python-modules/pyface/default.nix
··· 1 { stdenv, fetchPypi, buildPythonPackage 2 - , setuptools, six, traits, wxPython 3 }: 4 5 buildPythonPackage rec { ··· 11 sha256 = "1g2g3za64rfffbivlihbf5njrqbv63ln62rv9d8fi1gcrgaw6akw"; 12 }; 13 14 - propagatedBuildInputs = [ setuptools six traits wxPython ]; 15 16 doCheck = false; # Needs X server 17
··· 1 { stdenv, fetchPypi, buildPythonPackage 2 + , setuptools, six, traits 3 }: 4 5 buildPythonPackage rec { ··· 11 sha256 = "1g2g3za64rfffbivlihbf5njrqbv63ln62rv9d8fi1gcrgaw6akw"; 12 }; 13 14 + propagatedBuildInputs = [ setuptools six traits ]; 15 16 doCheck = false; # Needs X server 17
+1 -1
pkgs/development/python-modules/pyopengl/default.nix
··· 15 sha256 = "0bdf5ed600df30c8830455702338902528717c0af85ac5914f1dc5aa0bfa6eee"; 16 }; 17 18 - propagatedBuildInputs = [ pkgs.libGLU pkgs.libGL pkgs.freeglut pillow ]; 19 20 patchPhase = let 21 ext = stdenv.hostPlatform.extensions.sharedLibrary; in ''
··· 15 sha256 = "0bdf5ed600df30c8830455702338902528717c0af85ac5914f1dc5aa0bfa6eee"; 16 }; 17 18 + propagatedBuildInputs = [ pillow ]; 19 20 patchPhase = let 21 ext = stdenv.hostPlatform.extensions.sharedLibrary; in ''
+2 -2
pkgs/development/python-modules/pytesseract/default.nix
··· 2 3 buildPythonPackage rec { 4 pname = "pytesseract"; 5 - version = "0.3.3"; 6 7 src = fetchPypi { 8 inherit pname version; 9 - sha256 = "0lml55jrvdzy9fm31zpw64fqc4d6p5djg1ax2kgnimzfscxghh8h"; 10 }; 11 12 patches = [
··· 2 3 buildPythonPackage rec { 4 pname = "pytesseract"; 5 + version = "0.3.4"; 6 7 src = fetchPypi { 8 inherit pname version; 9 + sha256 = "16l9b9f5v0a9j5jfgpd8irk9yhc9byzirrzv1rlkapdbz36sbn5g"; 10 }; 11 12 patches = [
+1 -1
pkgs/development/python-modules/requests_download/default.nix
··· 11 format = "wheel"; 12 13 #src = pkgs.fetchurl { 14 - # url = https://files.pythonhosted.org/packages/60/af/10f899f0574a81cbc511124c08d7c7dc46c20d4f956a6a3c793ad4330bb4/requests_download-0.1.2-py2.py3-none-any.whl; 15 # sha256 = "1ballx1hljpdpyvqzqn79m0dc21z2smrnxk2ylb6dbpg5crrskcr"; 16 #}; 17
··· 11 format = "wheel"; 12 13 #src = pkgs.fetchurl { 14 + # url = "https://files.pythonhosted.org/packages/60/af/10f899f0574a81cbc511124c08d7c7dc46c20d4f956a6a3c793ad4330bb4/requests_download-0.1.2-py2.py3-none-any.whl"; 15 # sha256 = "1ballx1hljpdpyvqzqn79m0dc21z2smrnxk2ylb6dbpg5crrskcr"; 16 #}; 17
+1 -2
pkgs/development/python-modules/secretstorage/default.nix
··· 1 - { lib, fetchPypi, buildPythonPackage, pythonOlder, cryptography, jeepney, pygobject3 }: 2 3 buildPythonPackage rec { 4 pname = "secretstorage"; ··· 15 propagatedBuildInputs = [ 16 cryptography 17 jeepney 18 - pygobject3 19 ]; 20 21 # Needs a D-Bus Sesison
··· 1 + { lib, fetchPypi, buildPythonPackage, pythonOlder, cryptography, jeepney }: 2 3 buildPythonPackage rec { 4 pname = "secretstorage"; ··· 15 propagatedBuildInputs = [ 16 cryptography 17 jeepney 18 ]; 19 20 # Needs a D-Bus Sesison
+4 -2
pkgs/development/tools/bazelisk/default.nix
··· 2 3 buildGoModule rec { 4 pname = "bazelisk"; 5 - version = "1.3.0"; 6 7 src = fetchFromGitHub { 8 owner = "bazelbuild"; 9 repo = pname; 10 rev = "v${version}"; 11 - sha256 = "15h4mbsfjwby4wq57rdj4dzsf595qjfgi3v5zw62yycn3m2w922p"; 12 }; 13 14 modSha256 = "1w8k659ifapcxbbim0nf7wd7w10bhlagc33q08izh84gcgsh0yyz"; 15 16 meta = with stdenv.lib; { 17 description = "A user-friendly launcher for Bazel";
··· 2 3 buildGoModule rec { 4 pname = "bazelisk"; 5 + version = "1.4.0"; 6 7 src = fetchFromGitHub { 8 owner = "bazelbuild"; 9 repo = pname; 10 rev = "v${version}"; 11 + sha256 = "14zp0bi0p1rfbx1pxi5y28ndxwbqbvfx0pvy3jh1mnx5qsii1gcq"; 12 }; 13 14 modSha256 = "1w8k659ifapcxbbim0nf7wd7w10bhlagc33q08izh84gcgsh0yyz"; 15 + 16 + buildFlagsArray = [ "-ldflags=-s -w -X main.BazeliskVersion=${version}" ]; 17 18 meta = with stdenv.lib; { 19 description = "A user-friendly launcher for Bazel";
+16 -7
pkgs/development/tools/buildah/default.nix
··· 1 - { stdenv, buildGoPackage, fetchFromGitHub 2 - , gpgme, libgpgerror, lvm2, btrfs-progs, pkg-config, libselinux, libseccomp 3 }: 4 5 buildGoPackage rec { ··· 7 version = "1.14.8"; 8 9 src = fetchFromGitHub { 10 - owner = "containers"; 11 - repo = "buildah"; 12 - rev = "v${version}"; 13 sha256 = "187cvb3i5cwm7cwxmzpl2ca7900yb6v6b6cybyz5mnd5ccy5ff1q"; 14 }; 15 ··· 18 goPackagePath = "github.com/containers/buildah"; 19 excludedPackages = [ "tests" ]; 20 21 - nativeBuildInputs = [ pkg-config ]; 22 buildInputs = [ gpgme libgpgerror lvm2 btrfs-progs libselinux libseccomp ]; 23 24 patches = [ ./disable-go-module-mode.patch ]; ··· 27 pushd go/src/${goPackagePath} 28 make GIT_COMMIT="unknown" 29 install -Dm755 buildah $bin/bin/buildah 30 - install -Dm444 contrib/completions/bash/buildah $bin/share/bash-completion/completions/buildah 31 ''; 32 33 postBuild = ''
··· 1 + { stdenv 2 + , buildGoPackage 3 + , fetchFromGitHub 4 + , installShellFiles 5 + , pkg-config 6 + , gpgme 7 + , libgpgerror 8 + , lvm2 9 + , btrfs-progs 10 + , libselinux 11 + , libseccomp 12 }: 13 14 buildGoPackage rec { ··· 16 version = "1.14.8"; 17 18 src = fetchFromGitHub { 19 + owner = "containers"; 20 + repo = "buildah"; 21 + rev = "v${version}"; 22 sha256 = "187cvb3i5cwm7cwxmzpl2ca7900yb6v6b6cybyz5mnd5ccy5ff1q"; 23 }; 24 ··· 27 goPackagePath = "github.com/containers/buildah"; 28 excludedPackages = [ "tests" ]; 29 30 + nativeBuildInputs = [ installShellFiles pkg-config ]; 31 buildInputs = [ gpgme libgpgerror lvm2 btrfs-progs libselinux libseccomp ]; 32 33 patches = [ ./disable-go-module-mode.patch ]; ··· 36 pushd go/src/${goPackagePath} 37 make GIT_COMMIT="unknown" 38 install -Dm755 buildah $bin/bin/buildah 39 + installShellCompletion --bash contrib/completions/bash/buildah 40 ''; 41 42 postBuild = ''
+2 -2
pkgs/development/tools/ocaml/dune/2.nix
··· 6 7 stdenv.mkDerivation rec { 8 pname = "dune"; 9 - version = "2.5.0"; 10 11 src = fetchurl { 12 url = "https://github.com/ocaml/dune/releases/download/${version}/dune-${version}.tbz"; 13 - sha256 = "1nnpg0fvmp4vf5mk203xk83pkkm953pgip3yhs1x2g8pkcdndhcw"; 14 }; 15 16 buildInputs = [ ocaml findlib ];
··· 6 7 stdenv.mkDerivation rec { 8 pname = "dune"; 9 + version = "2.5.1"; 10 11 src = fetchurl { 12 url = "https://github.com/ocaml/dune/releases/download/${version}/dune-${version}.tbz"; 13 + sha256 = "0az5ih18wadsp3ljagvws1i7vf0vpg24h75ariy0v3i0gyld6xwg"; 14 }; 15 16 buildInputs = [ ocaml findlib ];
+10 -13
pkgs/development/tools/skopeo/default.nix
··· 1 { stdenv 2 - , lib 3 , buildGoPackage 4 , fetchFromGitHub 5 , runCommand ··· 10 , pkg-config 11 , libselinux 12 , go-md2man 13 }: 14 - 15 - with stdenv.lib; 16 17 let 18 version = "0.2.0"; ··· 27 defaultPolicyFile = runCommand "skopeo-default-policy.json" {} "cp ${src}/default-policy.json $out"; 28 29 goPackagePath = "github.com/containers/skopeo"; 30 31 in 32 buildGoPackage { ··· 36 37 outputs = [ "bin" "man" "out" ]; 38 39 - excludedPackages = "integration"; 40 41 - nativeBuildInputs = [ pkg-config (lib.getBin go-md2man) ]; 42 - buildInputs = [ gpgme ] ++ lib.optionals stdenv.isLinux [ libgpgerror lvm2 btrfs-progs libselinux ]; 43 44 buildFlagsArray = '' 45 -ldflags= 46 - -X github.com/containers/skopeo/vendor/github.com/containers/image/v5/signature.systemDefaultPolicyPath=${defaultPolicyFile} 47 - -X github.com/containers/skopeo/vendor/github.com/containers/image/v5/internal/tmpdir.unixTempDirForBigFiles=/tmp 48 - ''; 49 - 50 - preBuild = '' 51 - export CGO_CFLAGS="$CFLAGS" 52 - export CGO_LDFLAGS="$LDFLAGS" 53 ''; 54 55 postBuild = '' 56 # depends on buildGoPackage not changing … 57 pushd ./go/src/${goPackagePath} 58 make install-docs MANINSTALLDIR="$man/share/man" 59 popd 60 ''; 61
··· 1 { stdenv 2 , buildGoPackage 3 , fetchFromGitHub 4 , runCommand ··· 9 , pkg-config 10 , libselinux 11 , go-md2man 12 + , installShellFiles 13 }: 14 15 let 16 version = "0.2.0"; ··· 25 defaultPolicyFile = runCommand "skopeo-default-policy.json" {} "cp ${src}/default-policy.json $out"; 26 27 goPackagePath = "github.com/containers/skopeo"; 28 + 29 + vendorPath = "${goPackagePath}/vendor/github.com/containers/image/v5"; 30 31 in 32 buildGoPackage { ··· 36 37 outputs = [ "bin" "man" "out" ]; 38 39 + excludedPackages = [ "integration" ]; 40 41 + nativeBuildInputs = [ pkg-config go-md2man installShellFiles ]; 42 + buildInputs = [ gpgme ] 43 + ++ stdenv.lib.optionals stdenv.isLinux [ libgpgerror lvm2 btrfs-progs libselinux ]; 44 45 buildFlagsArray = '' 46 -ldflags= 47 + -X ${vendorPath}/signature.systemDefaultPolicyPath=${defaultPolicyFile} 48 + -X ${vendorPath}/internal/tmpdir.unixTempDirForBigFiles=/tmp 49 ''; 50 51 postBuild = '' 52 # depends on buildGoPackage not changing … 53 pushd ./go/src/${goPackagePath} 54 make install-docs MANINSTALLDIR="$man/share/man" 55 + installShellCompletion --bash completions/bash/skopeo 56 popd 57 ''; 58
+3 -15
pkgs/games/cataclysm-dda/default.nix
··· 1 - { stdenv, callPackage, lua, CoreFoundation 2 , tiles ? true, Cocoa 3 , debug ? false 4 }: ··· 9 in 10 11 stdenv.mkDerivation (common // rec { 12 - version = "0.D"; 13 name = "cataclysm-dda-${version}"; 14 15 src = fetchFromCleverRaven { 16 rev = version; 17 - sha256 = "00zzhx1mh1qjq668cga5nbrxp2qk6b82j5ak65skhgnlr6ii4ysc"; 18 }; 19 20 - buildInputs = common.buildInputs ++ [ lua ]; 21 - 22 patches = [ ./patches/fix_locale_dir.patch ]; 23 - 24 - postPatch = common.postPatch + '' 25 - substituteInPlace lua/autoexec.lua --replace "/usr/share" "$out/share" 26 - ''; 27 - 28 - NIX_CFLAGS_COMPILE = stdenv.lib.optionalString stdenv.cc.isGNU "-Wno-error=deprecated-copy"; 29 - 30 - makeFlags = common.makeFlags ++ [ 31 - "LUA=1" 32 - ]; 33 34 meta = with stdenv.lib.maintainers; common.meta // { 35 maintainers = common.meta.maintainers ++ [ skeidel ];
··· 1 + { stdenv, callPackage, CoreFoundation 2 , tiles ? true, Cocoa 3 , debug ? false 4 }: ··· 9 in 10 11 stdenv.mkDerivation (common // rec { 12 + version = "0.E"; 13 name = "cataclysm-dda-${version}"; 14 15 src = fetchFromCleverRaven { 16 rev = version; 17 + sha256 = "0pbi0fw37zimzdklfj58s1ql0wlqq7dy6idkcsib3hn910ajaxan"; 18 }; 19 20 patches = [ ./patches/fix_locale_dir.patch ]; 21 22 meta = with stdenv.lib.maintainers; common.meta // { 23 maintainers = common.meta.maintainers ++ [ skeidel ];
+5 -7
pkgs/games/cataclysm-dda/patches/fix_locale_dir.patch
··· 1 - diff --git a/src/translations.cpp b/src/translations.cpp 2 - index 2585b7ec56..7bb005823c 100644 3 --- a/src/translations.cpp 4 +++ b/src/translations.cpp 5 - @@ -195,14 +195,12 @@ void set_language() 6 auto env = getenv( "LANGUAGE" ); 7 - locale_dir = std::string( FILENAMES["base_path"] + "lang/mo/" + ( env ? env : "none" ) + 8 "/LC_MESSAGES/cataclysm-dda.mo" ); 9 - -#elif (defined __linux__ || (defined MACOSX && !defined TILES)) 10 +#else 11 - if( !FILENAMES["base_path"].empty() ) { 12 - locale_dir = FILENAMES["base_path"] + "share/locale"; 13 } else { 14 locale_dir = "lang/mo"; 15 }
··· 1 --- a/src/translations.cpp 2 +++ b/src/translations.cpp 3 + @@ -212,14 +212,12 @@ void set_language() 4 auto env = getenv( "LANGUAGE" ); 5 + locale_dir = std::string( PATH_INFO::base_path() + "lang/mo/" + ( env ? env : "none" ) + 6 "/LC_MESSAGES/cataclysm-dda.mo" ); 7 + -#elif (defined(__linux__) || (defined(MACOSX) && !defined(TILES))) 8 +#else 9 + if( !PATH_INFO::base_path().empty() ) { 10 + locale_dir = PATH_INFO::base_path() + "share/locale"; 11 } else { 12 locale_dir = "lang/mo"; 13 }
+14 -8
pkgs/misc/cups/drivers/brlaser/default.nix
··· 2 3 stdenv.mkDerivation rec { 4 pname = "brlaser"; 5 - version = "5"; 6 7 src = fetchFromGitHub { 8 owner = "pdewacht"; 9 repo = "brlaser"; 10 rev = "v${version}"; 11 - sha256 = "133fx49wkg1v8r4kcishd035hlsscv8kc2q4jnln5qmyhpyygjyy"; 12 }; 13 14 nativeBuildInputs = [ cmake ]; ··· 34 Brother DCP-7065DN 35 Brother DCP-7080 36 Brother DCP-L2500D 37 Brother DCP-L2540DW 38 - Brother HL-1110 series 39 - Brother HL-1200 series 40 - Brother HL-L2300D series 41 - Brother HL-L2320D series 42 - Brother HL-L2340D series 43 - Brother HL-L2360D series 44 Brother MFC-1910W 45 Brother MFC-7240 46 Brother MFC-7360N
··· 2 3 stdenv.mkDerivation rec { 4 pname = "brlaser"; 5 + version = "6"; 6 7 src = fetchFromGitHub { 8 owner = "pdewacht"; 9 repo = "brlaser"; 10 rev = "v${version}"; 11 + sha256 = "1995s69ksq1fz0vb34v0ndiqncrinbrlpmp70rkl6az7kag99s80"; 12 }; 13 14 nativeBuildInputs = [ cmake ]; ··· 34 Brother DCP-7065DN 35 Brother DCP-7080 36 Brother DCP-L2500D 37 + Brother DCP-L2520D 38 Brother DCP-L2540DW 39 + Brother HL-1110 40 + Brother HL-1200 41 + Brother HL-2030 42 + Brother HL-2140 43 + Brother HL-2220 44 + Brother HL-2270DW 45 + Brother HL-5030 46 + Brother HL-L2300D 47 + Brother HL-L2320D 48 + Brother HL-L2340D 49 + Brother HL-L2360D 50 Brother MFC-1910W 51 Brother MFC-7240 52 Brother MFC-7360N
-2
pkgs/misc/emulators/wine/default.nix
··· 9 { lib, stdenv, callPackage, 10 wineRelease ? "stable", 11 wineBuild ? if stdenv.hostPlatform.system == "x86_64-linux" then "wineWow" else "wine32", 12 - libtxc_dxtn_Name ? "libtxc_dxtn_s2tc", 13 pngSupport ? false, 14 jpegSupport ? false, 15 tiffSupport ? false, ··· 63 64 in if wineRelease == "staging" then 65 callPackage ./staging.nix { 66 - inherit libtxc_dxtn_Name; 67 wineUnstable = wine-build wineBuild "unstable"; 68 } 69 else
··· 9 { lib, stdenv, callPackage, 10 wineRelease ? "stable", 11 wineBuild ? if stdenv.hostPlatform.system == "x86_64-linux" then "wineWow" else "wine32", 12 pngSupport ? false, 13 jpegSupport ? false, 14 tiffSupport ? false, ··· 62 63 in if wineRelease == "staging" then 64 callPackage ./staging.nix { 65 wineUnstable = wine-build wineBuild "unstable"; 66 } 67 else
+2 -2
pkgs/misc/emulators/wine/staging.nix
··· 1 - { stdenv, callPackage, wineUnstable, libtxc_dxtn_Name }: 2 3 with callPackage ./util.nix {}; 4 ··· 8 in assert stdenv.lib.getVersion wineUnstable == patch.version; 9 10 stdenv.lib.overrideDerivation wineUnstable (self: { 11 - buildInputs = build-inputs [ "perl" "utillinux" "autoconf" libtxc_dxtn_Name ] self.buildInputs; 12 13 name = "${self.name}-staging"; 14
··· 1 + { stdenv, callPackage, wineUnstable }: 2 3 with callPackage ./util.nix {}; 4 ··· 8 in assert stdenv.lib.getVersion wineUnstable == patch.version; 9 10 stdenv.lib.overrideDerivation wineUnstable (self: { 11 + buildInputs = build-inputs [ "perl" "utillinux" "autoconf" ] self.buildInputs; 12 13 name = "${self.name}-staging"; 14
+10 -4
pkgs/os-specific/linux/bbswitch/default.nix
··· 15 sha256 = "0xql1nv8dafnrcg54f3jsi3ny3cd2ca9iv73pxpgxd2gfczvvjkn"; 16 }; 17 18 - patches = [ (fetchpatch { 19 - url = "https://github.com/Bumblebee-Project/bbswitch/pull/102.patch"; 20 - sha256 = "1lbr6pyyby4k9rn2ry5qc38kc738d0442jhhq57vmdjb6hxjya7m"; 21 - }) ]; 22 23 nativeBuildInputs = kernel.moduleBuildDependencies; 24
··· 15 sha256 = "0xql1nv8dafnrcg54f3jsi3ny3cd2ca9iv73pxpgxd2gfczvvjkn"; 16 }; 17 18 + patches = [ 19 + (fetchpatch { 20 + url = "https://github.com/Bumblebee-Project/bbswitch/pull/102.patch"; 21 + sha256 = "1lbr6pyyby4k9rn2ry5qc38kc738d0442jhhq57vmdjb6hxjya7m"; 22 + }) 23 + (fetchpatch { 24 + url = "https://github.com/Bumblebee-Project/bbswitch/pull/196.patch"; 25 + sha256 = "02ihy3piws7783qbm9q0mb9s18ipn5ckdy1iar74xn31qjrsn99n"; 26 + }) 27 + ]; 28 29 nativeBuildInputs = kernel.moduleBuildDependencies; 30
+48 -38
pkgs/os-specific/linux/firmware/fwupd/add-option-for-installation-sysconfdir.patch
··· 1 diff --git a/data/meson.build b/data/meson.build 2 - index 0667bd78..92d6c7b9 100644 3 --- a/data/meson.build 4 +++ b/data/meson.build 5 @@ -17,7 +17,7 @@ endif ··· 12 endif 13 14 diff --git a/data/pki/meson.build b/data/pki/meson.build 15 - index eefcc914..dc801fa1 100644 16 --- a/data/pki/meson.build 17 +++ b/data/pki/meson.build 18 - @@ -4,14 +4,14 @@ if get_option('gpg') 19 - 'GPG-KEY-Linux-Foundation-Firmware', 20 - 'GPG-KEY-Linux-Vendor-Firmware-Service', 21 - ], 22 - - install_dir : join_paths(sysconfdir, 'pki', 'fwupd') 23 - + install_dir : join_paths(sysconfdir_install, 'pki', 'fwupd') 24 - ) 25 26 - install_data([ 27 - 'GPG-KEY-Linux-Foundation-Metadata', 28 - 'GPG-KEY-Linux-Vendor-Firmware-Service', 29 - ], 30 - - install_dir : join_paths(sysconfdir, 'pki', 'fwupd-metadata') 31 - + install_dir : join_paths(sysconfdir_install, 'pki', 'fwupd-metadata') 32 - ) 33 - endif 34 - 35 - @@ -19,12 +19,12 @@ if get_option('pkcs7') 36 - install_data([ 37 - 'LVFS-CA.pem', 38 - ], 39 - - install_dir : join_paths(sysconfdir, 'pki', 'fwupd') 40 - + install_dir : join_paths(sysconfdir_install, 'pki', 'fwupd') 41 - ) 42 - install_data([ 43 - 'LVFS-CA.pem', 44 - ], 45 - - install_dir : join_paths(sysconfdir, 'pki', 'fwupd-metadata') 46 - + install_dir : join_paths(sysconfdir_install, 'pki', 'fwupd-metadata') 47 - ) 48 - endif 49 50 diff --git a/data/remotes.d/meson.build b/data/remotes.d/meson.build 51 index 826a3c1d..b78db663 100644 52 --- a/data/remotes.d/meson.build ··· 76 + install_dir: join_paths(sysconfdir_install, 'fwupd', 'remotes.d'), 77 ) 78 diff --git a/meson.build b/meson.build 79 - index b1a523d2..aacb8e0a 100644 80 --- a/meson.build 81 +++ b/meson.build 82 - @@ -169,6 +169,12 @@ endif 83 mandir = join_paths(prefix, get_option('mandir')) 84 localedir = join_paths(prefix, get_option('localedir')) 85 ··· 93 gio = dependency('gio-2.0', version : '>= 2.45.8') 94 giounix = dependency('gio-unix-2.0', version : '>= 2.45.8', required: false) 95 diff --git a/meson_options.txt b/meson_options.txt 96 - index be0adfef..73983333 100644 97 --- a/meson_options.txt 98 +++ b/meson_options.txt 99 - @@ -26,6 +26,7 @@ option('plugin_coreboot', type : 'boolean', value : true, description : 'enable 100 option('systemd', type : 'boolean', value : true, description : 'enable systemd support') 101 option('systemdunitdir', type: 'string', value: '', description: 'Directory for systemd units') 102 option('elogind', type : 'boolean', value : false, description : 'enable elogind support') ··· 104 option('tests', type : 'boolean', value : true, description : 'enable tests') 105 option('udevdir', type: 'string', value: '', description: 'Directory for udev rules') 106 option('efi-cc', type : 'string', value : 'gcc', description : 'the compiler to use for EFI modules') 107 diff --git a/plugins/dell-esrt/meson.build b/plugins/dell-esrt/meson.build 108 index ed4eee70..76dbdb1d 100644 109 --- a/plugins/dell-esrt/meson.build ··· 142 # we use functions from 2.52 in the tests 143 if get_option('tests') and umockdev.found() and gio.version().version_compare('>= 2.52') 144 diff --git a/plugins/uefi/meson.build b/plugins/uefi/meson.build 145 - index 7252580d..7188d1c5 100644 146 --- a/plugins/uefi/meson.build 147 +++ b/plugins/uefi/meson.build 148 - @@ -104,7 +104,7 @@ if get_option('man') 149 endif 150 151 install_data(['uefi.conf'],
··· 1 diff --git a/data/meson.build b/data/meson.build 2 + index bb749fd4..b611875b 100644 3 --- a/data/meson.build 4 +++ b/data/meson.build 5 @@ -17,7 +17,7 @@ endif ··· 12 endif 13 14 diff --git a/data/pki/meson.build b/data/pki/meson.build 15 + index 94bb0b6f..1ea6a9ac 100644 16 --- a/data/pki/meson.build 17 +++ b/data/pki/meson.build 18 + @@ -3,24 +3,23 @@ install_data([ 19 + 'GPG-KEY-Linux-Foundation-Firmware', 20 + 'GPG-KEY-Linux-Vendor-Firmware-Service', 21 + ], 22 + - install_dir : join_paths(sysconfdir, 'pki', 'fwupd') 23 + + install_dir : join_paths(sysconfdir_install, 'pki', 'fwupd') 24 + ) 25 26 + install_data([ 27 + 'GPG-KEY-Linux-Foundation-Metadata', 28 + 'GPG-KEY-Linux-Vendor-Firmware-Service', 29 + ], 30 + - install_dir : join_paths(sysconfdir, 'pki', 'fwupd-metadata') 31 + + install_dir : join_paths(sysconfdir_install, 'pki', 'fwupd-metadata') 32 + ) 33 34 + install_data([ 35 + 'LVFS-CA.pem', 36 + ], 37 + - install_dir : join_paths(sysconfdir, 'pki', 'fwupd') 38 + + install_dir : join_paths(sysconfdir_install, 'pki', 'fwupd') 39 + ) 40 + install_data([ 41 + 'LVFS-CA.pem', 42 + ], 43 + - install_dir : join_paths(sysconfdir, 'pki', 'fwupd-metadata') 44 + + install_dir : join_paths(sysconfdir_install, 'pki', 'fwupd-metadata') 45 + ) 46 + - 47 diff --git a/data/remotes.d/meson.build b/data/remotes.d/meson.build 48 index 826a3c1d..b78db663 100644 49 --- a/data/remotes.d/meson.build ··· 73 + install_dir: join_paths(sysconfdir_install, 'fwupd', 'remotes.d'), 74 ) 75 diff --git a/meson.build b/meson.build 76 + index 87ea67e5..3a4374db 100644 77 --- a/meson.build 78 +++ b/meson.build 79 + @@ -175,6 +175,12 @@ endif 80 mandir = join_paths(prefix, get_option('mandir')) 81 localedir = join_paths(prefix, get_option('localedir')) 82 ··· 90 gio = dependency('gio-2.0', version : '>= 2.45.8') 91 giounix = dependency('gio-unix-2.0', version : '>= 2.45.8', required: false) 92 diff --git a/meson_options.txt b/meson_options.txt 93 + index 3da9b6c4..6c80275b 100644 94 --- a/meson_options.txt 95 +++ b/meson_options.txt 96 + @@ -24,6 +24,7 @@ option('plugin_coreboot', type : 'boolean', value : true, description : 'enable 97 option('systemd', type : 'boolean', value : true, description : 'enable systemd support') 98 option('systemdunitdir', type: 'string', value: '', description: 'Directory for systemd units') 99 option('elogind', type : 'boolean', value : false, description : 'enable elogind support') ··· 101 option('tests', type : 'boolean', value : true, description : 'enable tests') 102 option('udevdir', type: 'string', value: '', description: 'Directory for udev rules') 103 option('efi-cc', type : 'string', value : 'gcc', description : 'the compiler to use for EFI modules') 104 + diff --git a/plugins/ata/meson.build b/plugins/ata/meson.build 105 + index 8444bb8a..fa4a8ad1 100644 106 + --- a/plugins/ata/meson.build 107 + +++ b/plugins/ata/meson.build 108 + @@ -7,7 +7,7 @@ install_data([ 109 + ) 110 + 111 + install_data(['ata.conf'], 112 + - install_dir: join_paths(sysconfdir, 'fwupd') 113 + + install_dir: join_paths(sysconfdir_install, 'fwupd') 114 + ) 115 + 116 + shared_module('fu_plugin_ata', 117 diff --git a/plugins/dell-esrt/meson.build b/plugins/dell-esrt/meson.build 118 index ed4eee70..76dbdb1d 100644 119 --- a/plugins/dell-esrt/meson.build ··· 152 # we use functions from 2.52 in the tests 153 if get_option('tests') and umockdev.found() and gio.version().version_compare('>= 2.52') 154 diff --git a/plugins/uefi/meson.build b/plugins/uefi/meson.build 155 + index 5838cecc..9ba3d5cd 100644 156 --- a/plugins/uefi/meson.build 157 +++ b/plugins/uefi/meson.build 158 + @@ -101,7 +101,7 @@ if get_option('man') 159 endif 160 161 install_data(['uefi.conf'],
+46 -29
pkgs/os-specific/linux/firmware/fwupd/default.nix
··· 2 3 { stdenv 4 , fetchurl 5 , substituteAll 6 , gtk-doc 7 , pkgconfig ··· 16 , glib-networking 17 , libsoup 18 , help2man 19 - , gpgme 20 , libxslt 21 , elfutils 22 , libsmbios ··· 31 , docbook_xsl 32 , ninja 33 , gcab 34 - , gnutls 35 , python3 36 , wrapGAppsHook 37 , json-glib ··· 87 88 stdenv.mkDerivation rec { 89 pname = "fwupd"; 90 - version = "1.3.9"; 91 92 src = fetchurl { 93 url = "https://people.freedesktop.org/~hughsient/releases/fwupd-${version}.tar.xz"; 94 - sha256 = "ZuRG+UN8ebXv5Z8fOYWT0eCtHykGXoB8Ysu3wAeqx0A="; 95 }; 96 97 # libfwupd goes to lib ··· 130 libyaml 131 libgudev 132 colord 133 - gpgme 134 libuuid 135 - gnutls 136 glib-networking 137 json-glib 138 umockdev ··· 151 ./fix-paths.patch 152 ./add-option-for-installation-sysconfdir.patch 153 154 - # install plug-ins and libfwupdplugin to out, 155 - # they are not really part of the library 156 ./install-fwupdplugin-to-out.patch 157 158 - # installed tests are installed to different output 159 - # we also cannot have fwupd-tests.conf in $out/etc since it would form a cycle 160 (substituteAll { 161 src = ./installed-tests-path.patch; 162 - # needs a different set of modules than po/make-images 163 inherit installedTestsPython; 164 }) 165 ]; ··· 172 po/make-images \ 173 po/make-images.sh \ 174 po/test-deps 175 - 176 - # we cannot use placeholder in substituteAll 177 - # https://github.com/NixOS/nix/issues/1846 178 - substituteInPlace data/installed-tests/meson.build --subst-var installedTests 179 - 180 - substituteInPlace data/meson.build --replace \ 181 - "install_dir: systemd.get_pkgconfig_variable('systemdshutdowndir')" \ 182 - "install_dir: '${placeholder "out"}/lib/systemd/system-shutdown'" 183 ''; 184 185 # /etc/os-release not available in sandbox ··· 203 "-Dgtkdoc=true" 204 "-Dplugin_dummy=true" 205 "-Dudevdir=lib/udev" 206 - "-Dsystemdunitdir=lib/systemd/system" 207 "-Defi-libdir=${gnu-efi}/lib" 208 "-Defi-ldsdir=${gnu-efi}/lib" 209 "-Defi-includedir=${gnu-efi}/include/efi" ··· 224 ] ++ stdenv.lib.optionals haveFlashrom [ 225 "-Dplugin_flashrom=true" 226 ]; 227 - 228 - postInstall = '' 229 - moveToOutput share/installed-tests "$installedTests" 230 - wrapProgram $installedTests/share/installed-tests/fwupd/hardware.py \ 231 - --prefix GI_TYPELIB_PATH : "$out/lib/girepository-1.0:${libsoup}/lib/girepository-1.0" 232 - ''; 233 234 FONTCONFIG_FILE = fontsConf; # Fontconfig error: Cannot load default config file 235 ··· 237 # https://github.com/NixOS/nixpkgs/pull/67625#issuecomment-525788428 238 PKG_CONFIG_POLKIT_GOBJECT_1_ACTIONDIR = "/run/current-system/sw/share/polkit-1/actions"; 239 240 - # cannot install to systemd prefix 241 - PKG_CONFIG_SYSTEMD_SYSTEMDSYSTEMPRESETDIR = "${placeholder "out"}/lib/systemd/system-preset"; 242 - 243 # TODO: wrapGAppsHook wraps efi capsule even though it is not elf 244 dontWrapGApps = true; 245 # so we need to wrap the executables manually 246 postFixup = '' 247 find -L "$out/bin" "$out/libexec" -type f -executable -print0 \ ··· 256 # /etc/fwupd/uefi.conf is created by the services.hardware.fwupd NixOS module 257 passthru = { 258 filesInstalledToEtc = [ 259 # "fwupd/daemon.conf" # already created by the module 260 "fwupd/redfish.conf" 261 "fwupd/remotes.d/dell-esrt.conf"
··· 2 3 { stdenv 4 , fetchurl 5 + , fetchpatch 6 , substituteAll 7 , gtk-doc 8 , pkgconfig ··· 17 , glib-networking 18 , libsoup 19 , help2man 20 + , libjcat 21 , libxslt 22 , elfutils 23 , libsmbios ··· 32 , docbook_xsl 33 , ninja 34 , gcab 35 , python3 36 , wrapGAppsHook 37 , json-glib ··· 87 88 stdenv.mkDerivation rec { 89 pname = "fwupd"; 90 + version = "1.4.0"; 91 92 src = fetchurl { 93 url = "https://people.freedesktop.org/~hughsient/releases/fwupd-${version}.tar.xz"; 94 + sha256 = "V131/l05FKYFavRMXRaiW1bQkTCEn7MTyyD+bqYClU4="; 95 }; 96 97 # libfwupd goes to lib ··· 130 libyaml 131 libgudev 132 colord 133 + libjcat 134 libuuid 135 glib-networking 136 json-glib 137 umockdev ··· 150 ./fix-paths.patch 151 ./add-option-for-installation-sysconfdir.patch 152 153 + # Install plug-ins and libfwupdplugin to out, 154 + # they are not really part of the library. 155 ./install-fwupdplugin-to-out.patch 156 157 + # Make it easier to patch installed-tests directory. 158 + # https://github.com/fwupd/fwupd/pull/2002 159 + (fetchpatch { 160 + url = "https://github.com/fwupd/fwupd/commit/2f12e38e61d982dea63778736e2b71d16f0e9925.patch"; 161 + sha256 = "goTyDj0v50FOQYCS+LhPjo0AEugubr6aBIGfO9ztZOA="; 162 + }) 163 + 164 + # Install systemd files to our prefix. 165 + # https://github.com/fwupd/fwupd/pull/2006 166 + (fetchpatch { 167 + url = "https://github.com/fwupd/fwupd/commit/463db5162fe4f6fea417973ff95a44ed51ec6402.patch"; 168 + sha256 = "I0TIfnCca83QpINABUINtl8nIB78dG8OR9MC/hP2hg8="; 169 + }) 170 + 171 + # Fix installed tests. 172 + # https://github.com/fwupd/fwupd/issues/2007 173 + (fetchpatch { 174 + url = "https://github.com/fwupd/fwupd/commit/c727742df3702fc934e2d9488c883dcbdfa59e9c.patch"; 175 + sha256 = "b9D2Xblf1VbpS5XZpHtwEJhzuq7+840l7skW5w0NMBU="; 176 + }) 177 + 178 + # Fix build with bash-completion 2.10 179 + # https://github.com/fwupd/fwupd/pull/2014 180 + (fetchpatch { 181 + url = "https://github.com/fwupd/fwupd/commit/0f035013dfb150c2c3fc7f51090103ba84bd1c06.patch"; 182 + sha256 = "VXRf5N3inaWThudk6pc4mtp6cMEIyybkdfqKin+9XSw="; 183 + }) 184 + 185 + # Installed tests are installed to different output 186 + # we also cannot have fwupd-tests.conf in $out/etc since it would form a cycle. 187 (substituteAll { 188 src = ./installed-tests-path.patch; 189 + # Needs a different set of modules than po/make-images. 190 inherit installedTestsPython; 191 }) 192 ]; ··· 199 po/make-images \ 200 po/make-images.sh \ 201 po/test-deps 202 ''; 203 204 # /etc/os-release not available in sandbox ··· 222 "-Dgtkdoc=true" 223 "-Dplugin_dummy=true" 224 "-Dudevdir=lib/udev" 225 + "-Dsystemd_root_prefix=${placeholder "out"}" 226 + "-Dinstalled_test_prefix=${placeholder "installedTests"}" 227 "-Defi-libdir=${gnu-efi}/lib" 228 "-Defi-ldsdir=${gnu-efi}/lib" 229 "-Defi-includedir=${gnu-efi}/include/efi" ··· 244 ] ++ stdenv.lib.optionals haveFlashrom [ 245 "-Dplugin_flashrom=true" 246 ]; 247 248 FONTCONFIG_FILE = fontsConf; # Fontconfig error: Cannot load default config file 249 ··· 251 # https://github.com/NixOS/nixpkgs/pull/67625#issuecomment-525788428 252 PKG_CONFIG_POLKIT_GOBJECT_1_ACTIONDIR = "/run/current-system/sw/share/polkit-1/actions"; 253 254 # TODO: wrapGAppsHook wraps efi capsule even though it is not elf 255 dontWrapGApps = true; 256 + 257 + preCheck = '' 258 + addToSearchPath XDG_DATA_DIRS "${shared-mime-info}/share" 259 + ''; 260 + 261 # so we need to wrap the executables manually 262 postFixup = '' 263 find -L "$out/bin" "$out/libexec" -type f -executable -print0 \ ··· 272 # /etc/fwupd/uefi.conf is created by the services.hardware.fwupd NixOS module 273 passthru = { 274 filesInstalledToEtc = [ 275 + "fwupd/ata.conf" 276 # "fwupd/daemon.conf" # already created by the module 277 "fwupd/redfish.conf" 278 "fwupd/remotes.d/dell-esrt.conf"
+16 -11
pkgs/os-specific/linux/firmware/fwupd/installed-tests-path.patch
··· 1 - --- a/data/installed-tests/hardware.py 2 - +++ b/data/installed-tests/hardware.py 3 @@ -1,4 +1,4 @@ 4 -#!/usr/bin/python3 5 +#!@installedTestsPython@/bin/python3 ··· 8 # Copyright (C) 2017 Richard Hughes <richard@hughsie.com> 9 --- a/data/installed-tests/meson.build 10 +++ b/data/installed-tests/meson.build 11 - @@ -1,6 +1,6 @@ 12 con2 = configuration_data() 13 - con2.set('installedtestsdir', 14 - - join_paths(datadir, 'installed-tests', 'fwupd')) 15 - + join_paths('@installedTests@', 'share', 'installed-tests', 'fwupd')) 16 - con2.set('bindir', bindir) 17 - 18 - configure_file( 19 - @@ -52,5 +52,5 @@ 20 output : 'fwupd-tests.conf', 21 configuration : con2, 22 install: true, 23 - install_dir: join_paths(sysconfdir, 'fwupd', 'remotes.d'), 24 - + install_dir: join_paths('@installedTests@', 'etc', 'fwupd', 'remotes.d'), 25 )
··· 1 + --- a/data/device-tests/hardware.py 2 + +++ b/data/device-tests/hardware.py 3 @@ -1,4 +1,4 @@ 4 -#!/usr/bin/python3 5 +#!@installedTestsPython@/bin/python3 ··· 8 # Copyright (C) 2017 Richard Hughes <richard@hughsie.com> 9 --- a/data/installed-tests/meson.build 10 +++ b/data/installed-tests/meson.build 11 + @@ -1,4 +1,4 @@ 12 + -installed_test_datadir = join_paths(datadir, 'installed-tests', 'fwupd') 13 + +installed_test_datadir = join_paths(get_option('installed_test_prefix'), 'share', 'installed-tests', 'fwupd') 14 + 15 con2 = configuration_data() 16 + con2.set('installedtestsdir', installed_test_datadir) 17 + @@ -52,5 +52,5 @@ configure_file( 18 output : 'fwupd-tests.conf', 19 configuration : con2, 20 install: true, 21 - install_dir: join_paths(sysconfdir, 'fwupd', 'remotes.d'), 22 + + install_dir: join_paths(get_option('installed_test_prefix'), 'etc', 'fwupd', 'remotes.d'), 23 ) 24 + --- a/meson_options.txt 25 + +++ b/meson_options.txt 26 + @@ -1,3 +1,4 @@ 27 + +option('installed_test_prefix', type: 'string', value: '', description: 'Prefix for installed tests') 28 + option('build', type : 'combo', choices : ['all', 'standalone', 'library'], value : 'all', description : 'build type') 29 + option('agent', type : 'boolean', value : true, description : 'enable the fwupd agent') 30 + option('consolekit', type : 'boolean', value : true, description : 'enable ConsoleKit support')
+1 -1
pkgs/os-specific/linux/gogoclient/default.nix
··· 8 name = "${baseName}-${version}"; 9 10 src = fetchurl { 11 - #url = http://gogo6.com/downloads/gogoc-1_2-RELEASE.tar.gz; 12 url = "https://src.fedoraproject.org/repo/pkgs/gogoc/gogoc-1_2-RELEASE.tar.gz/41177ed683cf511cc206c7782c37baa9/gogoc-1_2-RELEASE.tar.gz"; 13 sha256 = "a0ef45c0bd1fc9964dc8ac059b7d78c12674bf67ef641740554e166fa99a2f49"; 14 };
··· 8 name = "${baseName}-${version}"; 9 10 src = fetchurl { 11 + #url = "http://gogo6.com/downloads/gogoc-1_2-RELEASE.tar.gz"; 12 url = "https://src.fedoraproject.org/repo/pkgs/gogoc/gogoc-1_2-RELEASE.tar.gz/41177ed683cf511cc206c7782c37baa9/gogoc-1_2-RELEASE.tar.gz"; 13 sha256 = "a0ef45c0bd1fc9964dc8ac059b7d78c12674bf67ef641740554e166fa99a2f49"; 14 };
+325
pkgs/os-specific/linux/kernel/anthraxx.asc
···
··· 1 + -----BEGIN PGP PUBLIC KEY BLOCK----- 2 + Version: GnuPG v2 3 + 4 + mQINBE64OEUBEADPS1v+zoCdKA6zyfUtVIaBoIwMhCibqurXi30tVoC9LgM6W1ve 5 + HwPFukWq7DAS0mZUPE3mSV63JFLaTy0bY/6GO1D4wLdWZx4ppH7XKNCvKCbsi70k 6 + UozFykNVf+83WEskuF1oYzXlF3aB5suz2IWJl7ey1EXgIpehwQaTJUA5JIWYFp9A 7 + 566LRNJefYMzUR33xc4dRKj6Etg0xdLVq7/vZoo8HpLCBGNWiP0AKqFWEwTg0xQL 8 + 7nsJA5tfJJdwAJvrzjpFsvb63PKG6waAtdHhON4q7E2Udak9fz2tRjxA5l9l2zXk 9 + aqsysUzkxPhNjwMENoQ04KZg4aT+ZhhBzTowSWLp3KV2uaZ66kdPUO3s+/1bPp5/ 10 + N/IlykaUwyL773iYOZ5dOY/9hIuX/zssihcrGEMW6yIyZR5uKhzYdaM9ExTXP637 11 + UccgNS9/pskPGPx/xK23NDCfeHzL9YHS5KokA2wb/b9hqpwvLaeblbMl2pt79F1R 12 + ac+rZlrRyX3NvlTQP4hqM9Ei2YBAU7QFDJEjH8pVIceL7grxi1Ju1iD5QiSK+je5 13 + Jj5EAikfwSeAttSzsqNvaXJHfABrv5mkkVt1z3icP3HIHTYnG+uj+t8kvW+o9/1i 14 + pD6e6LUh4w5v1aY9kaK/M3+eBH59yNYI99crPUKUBVfW4gv4DBUJAQTWRQARAQAB 15 + tDVMZXZlbnRlIFBvbHlhayAoYW50aHJheHgpIDxsZXZlbnRlQGxldmVudGVwb2x5 16 + YWsubmV0PokCQQQTAQIAKwIbAwYLCQgHAwIGFQgCCQoLBBYCAwECHgECF4ACGQEF 17 + AlSXU9QFCQfATw8ACgkQ/BtUfI2BcsjPbxAAs+UR/bJz/HeYTpPy+HnKwDJgI9GP 18 + AZlNvp+QSIhOTtKCYkQ/Iu+5scY5J0Qyv0pcJW5Rxjx+l7KGovw84jzVznnYsJoy 19 + UQ5H3Ev9T2xW1nrZT3abJ7j6ZIck+Q+WFHu5Plsq6doSXOXmJNoehvT3BVolvc6w 20 + S1+CAoyA5Wm1yfocZgVOvWPWQaa1T4XA7OwxFWrvNWEZwAzTSjkGHkwmji+DxdBd 21 + RPam9+qm/rcN1IJTu6xJPr38a9LydWonsUpTR2Qn7Bo4EJp8yHJLaiLEMV/Nmgrr 22 + 1orBYw/OzDzhbdMl+2zzwEBLUMPABdgnPM6ZCZ5PWyWnCU4jsBGyVd0IC5xEu3Eg 23 + a0EtIdvx2lXiLfh2dulpMn52uJY5iNwaTleO+z9CENQVhh5R4FuN9H0BLiyAxf1+ 24 + MkD3jLT+DGl02hQghtxz18iTkRk7KOw/NFn4z0is+TRl4/ocNt1LiWQXt8dr7qdx 25 + zvUpDnxCSYZkeutzopo1TA4lKpnsS2mHabx6CbrUmF+wOIr8gHUfpBFeEQ8BHebU 26 + 5X0JrFF5mjeNl4uK9l9lD9ng74rsSpKPr15DU41jIuQDHJYd6H3TXQ4K1z7Ciivy 27 + r4vgsruAFX/GduKseOx1obWW3GfIQzLAIuVdjldgREl61GWoLiGFqlcveiAIkN5p 28 + Bxc20hSrHgZP9ZyIRgQQEQIABgUCTrg/KAAKCRC+dA9BPyK7GTK7AKC8Sd1ndNvc 29 + 1ispBaECbHT/JPfGrQCgvkfGBsFn/KBrgC5hTm0mSxdy942JAkEEEwECACsCGwMF 30 + CQIchwAGCwkIBwMCBhUIAgkKCwQWAgMBAh4BAheABQJOuD2qAhkBAAoJEPwbVHyN 31 + gXLIXL4QAJtbs62EpOIFld0N+tTEFn1qQPPaExAXmH/RF5Epf+0rSS6B0OXEZBXz 32 + cWtMPbHxoLjN1iY8o0QC1ex7/KDfYq8Ho18M9P+Lf6XfW0sJ9d021U5MJWGPs4zA 33 + lNFXJqeMgfJZAno2N6dO/azcYHq1wmSgUbTb9Oyi1PHfn3g0UAW59dfkB8d2jEvY 34 + Yed1X0mBPPXcbgnYNZ514JQtm9wuDdVWrh/Si9EhKg6+MPcbv18G4lpPGR+yNq9y 35 + 3Jze4vmmWen0ceDJEp06IAeTfJzzD80Oui2WXtLfaQxgf9uuZtGjrMX5l+mq7rBS 36 + VH/dsHP1VYI0efKIs7qbmiLcMRVWYIGix9I1C3UYr3ImYiCGlBG/uQ929xbjWAHa 37 + hy4W6rzruUWjyi/Kz7QRnyBgtHfhDO7hYziTr5hoGhd4VeUpcbxL+MegXFZsWJlE 38 + kz8TOOsZ/4XxXHVoalg8fYOcA7j/aoszsPMQUOL/5jsVRhyP3evtVxb3m1EwvYDK 39 + Lii4IkVxGztlBOIgeT4kwXgoJEASSZHgcd6tDv9q7o33n2I1DGL8X3axcHES2/C7 40 + cP+li3KL3Hc9vjgaJ9HfcQLuMcHqfoHn+YzVfbG5XeFcxhgQpwpYsZv3MTbXAQwI 41 + fRHXRuIfOiFwqUXahi5N1WSIXNBGSyI7pu9ht5I7gIIOINE+VS7FiQJBBBMBAgAr 42 + AhsDBgsJCAcDAgYVCAIJCgsEFgIDAQIeAQIXgAIZAQUCUNol8QUJA/yTqwAKCRD8 43 + G1R8jYFyyIqUD/9yWw7WBQiWyIMpVuX9c2Ov1fAkDya43fDm0gqIgNsdaxCt5ATh 44 + XaXZ/p2jglWwon5jDLDNsVR0/Q/t8ugdcP3bcwRtW2YYQ2F1PaNjfr5WsuPEadyc 45 + J62DIobY4IzqBpDuqGLYdbzZeKr49VwbRRvIJpphrk3+CekFvdIs1ofEpA2Kn2oA 46 + DXfYuaWoVBF7fTwAZmc3hYPOI1jK7nrFZbCnAT4WZPzZ4IY9lsaNTF/4mQ8vV1xF 47 + De6HjfslHURlZWsWtQIKhIPBKoZC1nP5VRK3IHYgKw8toq780kalLH8ofv9BkSrs 48 + t98JOoJX4etdmE8Ta/+Wg5C9EzR+909tQfdWdkaRbhvbtl/x7X76HU4ItefLR5pW 49 + d0OSo488QZMQjCUWlzgPMsmnYMQm6ckNOp0B/RtMfbJV7t5H+JE3PLfFG55jcz3w 50 + uNGhfZyl/ZhV9fvGLU/sPyhIW7ewuIwd+7i12fH9r4NAGB/mkSKK+tHGcTZvXxux 51 + 5QMKE+a9u6NMJRrbsIiTFwhrCLMgzLYL0mtX8FZXNFFZzGFYkiXymBR0ze4LKzRo 52 + dMFpyP/w/IIjYBhVpgboT2EMMIgJHSsMJDCdDjI+9cAykVF6ccSiUQ11devHL6Pv 53 + WwlT2Ub4TP4yCScHDPyfWq+tfdQlWFVRZMRJ7kmq0VagqomdRHgLPyPgDYkCHAQQ 54 + AQIABgUCUtgrXgAKCRBH1QFsQv98LACcEACFq3Oz8nHAa6KsyspIWo0+HjzCtTv0 55 + G6TB+svf3fl24C93IfFhpSyxNf8XVa9h9kCU5ZImYN+LaoUGiz3lcYxjdOeFYDc4 56 + GU5TFrJwY9eOYYCsr+z+NLn7wlLZEO772lGUDPJMWxSGqR9yOGhQCTIADLLcp6mt 57 + 07zdejESYxMT6IjYR+rX6miWG5Hr9/lBdh/X4XhGpHEY64IL8vVB3C+FQfG3hiMB 58 + bHbvJ4/S/cjfNM1T9oKiA0H6jklRHIdstj+2eeWA7lS+GE3Mpkra+8KmkEjV4O03 59 + izcRpMm1yTGoTjp9UddTNYErb/sha5YigYAqK8bj3gh6tTFNJHbN4RWgtPDyc5Va 60 + 1u+sH2ob6JS5tez8/Z6pMarGpTQujIGAlntP4igi0Q4hxyLof6Vtc6XF80uSwTvN 61 + RRmQrcq+kLPwX0NbyZCBCI+kjBPu2b932JDTfVBKwJCLF3e1zvQqN0C7EZnIzveX 62 + r7VtJ4WHIfSyi/HQP7xm5L0uQj+KRr+/LMaxkCDgrlqoWTgAoxCAPYH1XCvBoJRc 63 + DHjNikyEAS8WUGl9ZHQyAoFngi/jqH6WoDAmfBUKRoBMR2hXLOKUBmObw0DHgauM 64 + kk4kD6CW4UEy0SM/i9JD7sk9KiKoHMip1jguKRJkHJ1WSkNl7nZpeo+KG0WbGHXN 65 + b7hnrQsNyqJkUokCQQQTAQIAKwIbAwYLCQgHAwIGFQgCCQoLBBYCAwECHgECF4AC 66 + GQEFAlLV0QIFCQXdHmsACgkQ/BtUfI2Bcsj8DA//b8wZrFY/Fj/iR5ZaO0AjmMV1 67 + hM7lAFWLfDiLyYofuiGLUg9rqFWj+Ks2kedVN7+22Bjgi5fvpXv3Uy4trZKKw8Xs 68 + FJ/s8HQ6jzIv6pFdIYPLFQBqS2tEgfsanPZWIqJI9fbhOrRGN7WV5tXiksCaRO+u 69 + rLjIhAYmsDb//BD2xqsY54ouRdrz5nRG3qG2odq2Lw8XquW6srouGaSm+BI3sow6 70 + l2eAW8UjbxwICQg2ZPZYCBc9ArbgLS1ha+yPhp65nGpVbqDA8rUKC11op1ArAbY3 71 + Yt6xzLg+RCuCHBa1gNPpDoYV9V8Zve03mEIcsK10X0RhJQ+z4INvrjtelPRCOLpN 72 + 179JmsyxwOzwAPg773SK1Z31jSirsiEke/q8j13PGNDBCb4ZKpm/KOht+4d0jJLK 73 + GLqD85cv3/uAeSh2zWkoKcVW6uVZpiz3KA3i4YMWnteOlrlZH28nIrDXevPzkOxo 74 + pZlhuLboCD6g6yuZI4Wm9fEiga8xmRDw4RrOIuDXWjNW6IVaeFGvnYaNf0wnmBD+ 75 + FE1SMWwcmqgB1yIylmKqH0lYce8SVAMLkkOlaijhWrfCO5iS7zjWaVz98HCqFfwR 76 + gHuJTxOwwlf9Qb6cyC3bGsfILBUuE0L5vUAZUAc61H+6Sv88CDDUO1EOKaqAAYhR 77 + plvoyYZ3xiSMgzYKGZ+0OkxldmVudGUgUG9seWFrIChKYWJiZXIvWE1QUCBvbmx5 78 + KSA8YW50aHJheHhAamFiYmVyLmNjYy5kZT6JAj4EEwECACgCGwMGCwkIBwMCBhUI 79 + AgkKCwQWAgMBAh4BAheABQJUl1PaBQkHwE8PAAoJEPwbVHyNgXLIQokQAKxJB9/F 80 + TfBae6eqcT+izxGSnsvbc2bcrtsmKkhu9HwpsJ4IDutphXFB0wFalI40BL0o1k54 81 + Wlfv5GHbq7Ju3kW2dmTMP0WpfFytV7rr2yqSmik+skJw27BDk74rP0v4TNOHaTrP 82 + nokfTnlaKuv1bqlwbIwV7rJ5jbAtw5hueeN4jghGU8SGlCOEZ/xGxYYsvtyPhZhn 83 + kmsAzcPr/BpW4NkSb2SnRIO8KzcPnzxz7JDdeIusq/YW7P5OlhDx4ejdh0Wg6ISl 84 + zxB5VoqFqNuKTBQNz4HHpqDVQqEDE4JngMerDr+4qAiDYI4w6kN3Ce2LqciRyMVh 85 + YYnTqyyjXYY3C1WwXIa1tZb2Cw2DorshNFdACr7wKQMOoJtAFpdd3d/DRKQWCc3x 86 + jkBERqZ+55unTY0/0uyNPoK0noAcGydiU8WGh6wyi+Do+Zxq4QJEcqL/FHrhlaiw 87 + LTmgDS+XDl7zRtQia7ykpi/xqe74ujOHcJO8tpY0ZCdR2A13xiOi+11wndbOkBFv 88 + dQ0vgih9ROzwe3hBbBQQOdF4hkA9vEd2Ks4gF8IR+5ixWAIyZAVbnDiLelWgQgnE 89 + aeEwTtfcXRNAxuj+MgMPQhXQ2/cK0dPD4z51DchVRIf9G3hAuBT/CEhTqNkkm5F0 90 + og7azwd75+vh5RxwVld3ES6CMXKaiV4csQkdiEYEEBECAAYFAk64PygACgkQvnQP 91 + QT8iuxlligCeNgfNE4w1AQuOC4ef3HNNY0GXgVMAnjmtCVIUJv/w6PDimvf20rgF 92 + GVHxiQI+BBMBAgAoBQJOuD0KAhsDBQkCHIcABgsJCAcDAgYVCAIJCgsEFgIDAQIe 93 + AQIXgAAKCRD8G1R8jYFyyPv3D/wJ+sYXqSxoo8OriGMUzG5LXs2Hf1YULdlysGa8 94 + mxWTwCIEMSSx8AoOKf/FyXglDVl9msfOgv6jRiN+UyNCQEv+6a5ZCL7BlAVU0Q4W 95 + w2/UUlOUlLMC1QAodGcC3kiPSy41jnDVswKYRrICuiW1Pqgad3h7u7caqvqG1D/A 96 + YOR2Q8JjY15j6Qf62Xx+YANx2tPWKeDyPUAN/x1W6RrEDbN5F+1qOpPFuTnpPmqH 97 + q4zxm4Dz4szypmAKsN+5/q8T6DJtSnP7COtsY467oX2XtNTTuCIsU79lBVo/yan9 98 + ofB6hu12KyXwJIl1OK34g9VEP5suU3hcEw7uVAvxyMYJQlxORUCG0DAFc/oPm3d0 99 + ypRdbxXJMjoS3pmCf7kwnEA9PIAjZDYuVHGZkAdmYYInTIH6ipjkVxDHEF1en0h2 100 + zHJEZC7NIYgPyzHXmH7Xy3VZVhhKKKM12VDOuIOOecQPuFIw3hG7dymjn5e9dMzv 101 + +DMkbEZzoFahLYkbVGG1FGzhE6Uvb/IG0UJCC4nDz0pzZpV++QHvgEvbY/HLbHJ4 102 + o3CT5aVE0YIhTP+zqXNFMOao8yZy+AzdMzdX+Y3ADZfY0oiZ+JH1Zo++rdrgXUhg 103 + Y98QgMwVwESbwaBKjsC0JnlmWyNivhIOS6NRyqR75E7j7JSvgJdxhvpQXXkQ/BzL 104 + FM1Ej4kCPgQTAQIAKAIbAwYLCQgHAwIGFQgCCQoLBBYCAwECHgECF4AFAlDaJfoF 105 + CQP8k6sACgkQ/BtUfI2BcsiEahAArZfD1yJK385eqgCZ5LryVLRXrocuF1zlHl/6 106 + ugRy2TEe43ex4eTOY+mv4ZJVSxbDzUqMbBv0m3IETbM0CSESjGD+i5I7K3IToZO9 107 + ZgIXDbpoy9x2KWjU+R5oaxCTmZ9jk1p+f4zHxc8lJdgOXPwcIIT5Euwk4LAFN+wn 108 + CUHkO/D0xzP2ivTrM+VHNWqSUcNInAGRx+R0NvdSryIAsdA/5E3ql786WQhPy6L6 109 + 1d7cmxaLsfAKIOf8ydNyoiqmJkT62omLLnqyERfLZRa9RKt5EgnxX6kR2BA+h/Gn 110 + KVV18bCIJjF3Gjnh3qjJehKRaw9nmzrB9KtGQAHdIp8ivNvjMitc1ijRIECfidWd 111 + lGxgmuI/gX58eaV3scjbs5YUFmGhcZIgjCxWWxFSwmzJTUVT5XqBpXFQB4dokj9m 112 + NNMpM3YH8T9QaaS/m9j7cmCJ4gxp7i1bJsqsVG5BjRLiZv701eVKVmU6vqhubR0R 113 + eSZghqho9e44ZMbn4rJ5kTQhGc7ZGNsIyChMSaYVreB8IBLDC7rg8dB/umg1OYOp 114 + 8EqRLJyXdtpa4DN3X0e4WcWb0Toj4QuyCh/es1CtBldhdqHr0aLZYCX4i/KuGTXI 115 + kA8LTOJmZsE+K+/NCux1VHK9DADKcNjhSV0QTf+8ntGlNW6i2Mlt34thZK5eeB6W 116 + Bbo1zl6JAhwEEAECAAYFAlLYK14ACgkQR9UBbEL/fCyyQBAA0931q8dBD/6COmat 117 + 8S+JSgcuIpylukFxU2vySBWSGRHFmFzwbokUE4bbNyutwNO2cNBa9zcxRPrkIg+7 118 + d65QjdZNDV2zWTjv5GwzEMjWxhP7VpTwTouYgx9j2d2KpFo2jfhTtZ7OU7DDF9YT 119 + FsaRiZHHZT+W/JHuB9Lxc55HkSagu00yTaZURc0olBui5c/hqBte1b3OWTjCmysG 120 + mwDL2FwdmFi9mbEm77sdD8PSVfkZaBv5rIaet+Xe/JMZoz0WUkZRCFXMr6B7aOdS 121 + WeB7kUsPh2J5dhf4x4YaxKLOHod9JQF/DGJsdexKqMTqM/xOMSQ1FTUMCQ5SBWJc 122 + 3PywqMB/0eqlteHydlk7bb9HLCT3M6vVxTkpj834wGRsoVXPqWKzAHPpO2kjxXtc 123 + 4DBh7T88YGE2k5rxdJHb3MjWVJQzHGhrO5Ji8CQaHjUJ4BTyim++RDisDi4C/QJ4 124 + qPOrafw/+KyJoWyfmAUpxplPvY/LKJlvKaKxmpwlildYjH7HjoYvCjagbSCUOnzo 125 + uM//YIJ8/o8QdxEDdYiTd7cwskYWphrAlV8+vCl/Y0lepRf+hsUS+uZi/NX4qYMx 126 + CTsewnnqJQduuehQl9/RnoBX9T04kS64cWNaPZ4dxZUYJm3us5QFcQJMysZ4tT1Y 127 + A0oEUX1KUTDzTQXT/kFi8MtmXauJAj4EEwECACgCGwMGCwkIBwMCBhUIAgkKCwQW 128 + AgMBAh4BAheABQJS1dELBQkF3R5rAAoJEPwbVHyNgXLIV98P/jcu/DiP/muH2Qsy 129 + FtjscyLu1NzBbSFB9q1jMVfx3VbaIT22Ly6BIQNHF7L2fpjf36EWpdJzpfR+Glp5 130 + 1+KqZgIMAW5CGguSy8v7iHs6Rh5hzChiF48wCqxUmMdQ0ITTrnAXIYq6H6s8ytKF 131 + Y31znXmne1XYBg8e4yb3pcBhkzIPeVU7rMz9PjPB0+Q2jWCpqPA4eUSV8rL2TxFR 132 + KbEt8XlkZ6yuCLnkN84aLZFxfZA1tIGifi0PpeaO2z/IwOmftbQRiljMdnsPye49 133 + j4wlJS7yRIpnH3nH9Zku/MrDV/M0z7BVwKfF2F95/2QX4Tdyd/UESTdLqGtXpX4c 134 + axahZKrOhNr+k60qSBxoBqKauZkSbZunRnbYmVa3nA2kQuIPF9/QmoZgDUfdkKZJ 135 + u1RjwcRUGKd1XV19QjUvBMD3oHA4G6Jbi5vWKQZ40KVcL78YIL7C8dUOiPIasA45 136 + olaGpCSsGsfrMp5ngegxM+uh9Tc2kTFC9bTqp17VYI96cAqGrEBUQrmLmZLk0HUm 137 + a6MNZO/+vKN4UTlgjpjxZon+/yK8bsmT/VNie5hzqZim6tfztl3rpJ9jPUeLgr5x 138 + oGePYV02inapzNHdWFHk0L9zR/3KKfJ3IRJwUXp00Eya28hEepIvdxgLYcN1UqVn 139 + VuFuMY8zYSl/VXtPxySCLENJHxvdtClMZXZlbnRlIFBvbHlhayA8bGV2ZW50ZUBs 140 + ZXZlbnRlcG9seWFrLmRlPokCPgQTAQIAKAIbAwYLCQgHAwIGFQgCCQoLBBYCAwEC 141 + HgECF4AFAlSXU9oFCQfATw8ACgkQ/BtUfI2BcsiPxw//X2xUctIrd1O7UOk7LHBX 142 + /xI7xXoWQcA7l/1XMuZhM8yC8yIoAgvFrWBP1a29I0P3/yigkQXs+eTDTdvb0QP2 143 + q72q7Azt852v5u8+dHzoOXDpbo+4lfX+0OBDWimwJuChD8LQH7b7jO0oqWIV0AzM 144 + vegFJVp3cDbyqw08lBz3xZ79A9JtBeewf6PLpXKjEVS8bEAZjZKjsjAY+5ShtJAf 145 + PsD8r353dmkaHgC5Aji74ijZeY3PUCvGVVCGeN9isLnRpTEn7qUvN2DfHJU4w6aw 146 + sXu7m7zidISo6dQLUzo54dHKWPGFy6INNkzXPOgrlbYnjt7v0Ou21/R6HrhdmsSw 147 + lt7GALJcgAUxrcT/ljB3SZhSB0BdH0DXPcUziEdfhgMhhrXYpMjwH2XFBD1MLusW 148 + GaVDbpPrSoEnmPVePcDUonDHePcuLjfOl13mOER1Kf6WFapOCa+4HCLakfKcPnGY 149 + eyfD7Dbz3/046MmfQ8/Iyf8ipFXN6tI2WkRKj8uq9IFYrX3yoCBxZJN837DM3Grq 150 + h48/T3pYU1f9LiekxbsgXmcHoGNdXX5+EsuO+QILZPttlG5QLuqFdJHei77uvW+B 151 + 4u8mgzi1Zhh0hRLm4K6UaJ/fBJ87BZSHShPKI9PI073U1O/CcYXnb8cdPLu3UgSQ 152 + FM/bxT70TSYKI01Dt4KXRfWIRgQQEQIABgUCTrg/KAAKCRC+dA9BPyK7GT9FAJ47 153 + X5+0dQaOFkfy3WnMgX3AmIXJYQCfR4XL47rZ9a66jWaD0IbcXMK4oE2JAj4EEwEC 154 + ACgFAk64PJ4CGwMFCQIchwAGCwkIBwMCBhUIAgkKCwQWAgMBAh4BAheAAAoJEPwb 155 + VHyNgXLI2U8QAJGKPv1gWLn7P1KeHVsKkfRf+zgdsoY4mF3bUjX/03z1h1OKp+S7 156 + gZD/ZI80ckw/ElgFt9sr8J+pOgHk+aGHW+V0cZNgDHXCINb17s+Ra7SA/SWeJOrr 157 + d4IpvTnjGc88C/j+bzRFagfnGXU601PeJdXIe6H75xVGIb0DgQBfPB9m+7p3sq/R 158 + 6UigzLwwhIQRW/l77hq79v5Rm77e0GTfcYHSuKu2Itim8p5OYCNchr4ZpBzrv5cF 159 + /nH+HyD0AnM1q4a3mT9y4abNgtxJMGJBoIUEDT5vaTRpPowVHIGg9QroHkrYkMWA 160 + ffIBzoq38WLnPjvjNtTncyP7sjbP8KS7NfjxZ6RAcNO6m6BTDYG/lM9jwCcOma90 161 + RZDVYD8hy+z1hXWFfB7zB+5TYuuKV5SXZpS9/JUR1BuI44WkY0hLHUa7inpqLlqc 162 + b9O7KYikgyaeUKAN5LkF8A7rMVzuhrSItNzJVOs7WLnNAe9+Frzqx/jZ9aU04avS 163 + r5OlWLdL7k9JNDnsLFqNtG/XQ7Hc8CPl0HvY3YXYGD3xwW6Ua6+ykxZGmQGPB68W 164 + 6a7G5EX+MEWKZgMQYsl1HgU49/sOD6QnCG3m2IB7bRAf5Kd527BnSgAaYHjVug8G 165 + +X9opDwUW1b73Ut5tWfZJqQ4XBjl0Hc7Zi7OtlqdBeKGu/65QU+N9x33iQI+BBMB 166 + AgAoAhsDBgsJCAcDAgYVCAIJCgsEFgIDAQIeAQIXgAUCUNol+gUJA/yTqwAKCRD8 167 + G1R8jYFyyPv+D/9lA9yMXPBROLaCRab8Ca2QJBEtpT6lGVlkQ5Am2C8xdoLGiuJF 168 + E7Cn/lS1j4RSVDK6DELeaBMXaY2g1eun8g2ERJIUGC98zrPjZXs/ZtCZtX8vYr1X 169 + Bf9U8Ty6N3rKgt1XHc1oMgzkKLUc72RC+P/fkDsiAg62nVcmOFFykyTXnpM/5Ux/ 170 + 9kaahjf4LwGeRqkDIoLrXdZ7FHPjei8VlKSiHTkl4F+UCzEySxiInV+BWAhL5Lvb 171 + zHxHaNDCquOb2zbgafVKON3oa8nCZoUw3iwpjrEy/JT+1BG6vxyT/LX7wPG3SKEw 172 + 8QTl8YBF8wvHS0JHW4KTc4grCMNWDwfkrlXnp6ZzTpy4JXZfYs/ltR4FH3atDG2C 173 + xRCSAWXkGyTPMZkougdDbJ3jjViYcWO6B//LE1qDjeC05O9G3MXVxu16M5U8nVA2 174 + B3bo5cVv7+ECBTKaAvG3ZV6eOaeJ63gHRY8qI7y5OgzuNfxUXMTIAjHfO2mvSy5M 175 + qFgDI10F8rYevGOKxvPVE1F8aiD1uRAOMCcLTy3oUKHIdaskSytL1D/bT9WqWzii 176 + OXhLhSjMzkdPSUWVABeC6KM+Jcll0A0sHTkKWS3mavx3dUacB+O4efuTKNhSvo7n 177 + XhUvSOOikRityipE5Ma5WlXBiu54DdIMGFzANHFdb5GmC7da9F1aALkshokCHAQQ 178 + AQIABgUCUtgrXgAKCRBH1QFsQv98LMmaD/9W2qJyFlZAsjOWgNQPwUU4vV9/Ursj 179 + kt4RI/oS0Gzovw2bmL0a+Q/dp6wM4PBMuYQXCepF8V+o4uKzL2OjVZDVtU/KqGCY 180 + rEigiAhG0gHxgF1ukc9JQzhShFeq7/wkY+FQ4MOhuhuUsSMlvFzAd1hY+xlvckol 181 + DEeS54loDspUh4EwxsWlopaA1rs5dzVXrYcinz9iDzLj6ujb6uJzCQVogk9w3dv8 182 + smKn81TVhtR4RFecqL9mURZcGnj7NV3n2Lrl2Pe0u/DiTtpavCkzVx7v9qiB/2Di 183 + dqWR7OtYcywUr6lZeZsNabNwntPxSP7V6EcNXF3Qpi2IkAcwdJKb+aIG1v7/Wx77 184 + GhpBhbtdgKEebttzO4EVVeE8a2kmgqc8VXeAeqI89egU53dUdAinejFVDyemxHnJ 185 + L4L6uVnSxbk/vRzu+fr6EaPyBsqORGXj2OuwxlWcnWs/N9XzNaiq6funedUSYtbP 186 + trdpt7ogvzrQew7wetcwfxSB3IWcVwA9QvGDIBHTWPrb87jKV153w9I+cSfz9jg8 187 + qTIOw4qad7VOC4L1oaoRsLq6VFgnoW5DLsuhaVd6fgdY/byL6H5q2FPYJ+F8ovhR 188 + 2yPlQm8UYIFwmnwzpnuGBaPtU0bP7C+SNMK+G/9+b5q4psh1MnK8sg1RfSr1w7sw 189 + b+Tur045QrUDu4kCPgQTAQIAKAIbAwYLCQgHAwIGFQgCCQoLBBYCAwECHgECF4AF 190 + AlLV0QsFCQXdHmsACgkQ/BtUfI2BcsitRA/7BbFuuAXPJMA4XtPhlYbfhNkYQ7+v 191 + vx9HIZ1SgJfhpYwt/vbNTVclO79XD65v5JSWx+0gVJfHNolP5umB0++giIw9NCIx 192 + uVa5eh3kS5NFfJ0YHrYgpFDdZPHRA9wI+oZgJBC/Cm40kafgTUoPFqXb0Sdlcz3R 193 + hciLZBgYXV/uYubczfmAaJpmrVI1UuUWYrdPnmUkgitp9e6IePYiKVDeIGhBW8Bc 194 + 7Nbs2hc9yH1zwv3Affs8m+4tQQiwQHsB29WEZcmBuFllTbA5g5bvTvhfCRmYVgWC 195 + Ti4SW+uA0B05a/aVP8fDXk82qCQ4cRB1BOwVNn+1/Aqcw+Zh8KKzH8gpPcsKGGP6 196 + uNg9uinuxYDneEY8cG7FSpm3XsXu4q4N6j5R63U6hz39pY/5Ib8mzYMEoLEZOLPu 197 + CkVH9OOQc8zuiRL/wGc0pbMiGPEp13rAI0WbIFahrWS60bwtM1YEM5Ep8vD3TLl1 198 + pTWlF/zWpM/uJ6n/4nDXGQsGzKQn5D5Nsu7+55C0du0d1VRvYd8oG3AaNqhtM46V 199 + C4eOqxH8XZtkJ3WMxhsHnV9acuDTpn5E5JKL7vEq0btN2UQ69lpKv7PmV/TgOJhf 200 + KKvHZ0dh6KYY7iKW7NUCouLGibBoxDa+K4reh0i0M5UcsNiPkCqDIHUAIxW6FrvQ 201 + xBr7NgCls+B9Kwu0JExldmVudGUgUG9seWFrIDxaM3IwLjB4MDBAZ21haWwuY29t 202 + PokCPgQTAQIAKAIbAwYLCQgHAwIGFQgCCQoLBBYCAwECHgECF4AFAlSXU9oFCQfA 203 + Tw8ACgkQ/BtUfI2Bcsg4cw/5Af5/cxr5s8qiPvcGDglJyzFj8VBk0d7hpgdxcOi3 204 + VCOJY4YRoliu8WKThwxt7sD03fSZurFDDx+X27y3zPtgH/qBohmcr51jbSNom4mH 205 + Gf8gpViFqbQlFh7tYz4kSQExgmpFx/FIaxmwFoEqiVrp6VpM2DZ6kg//4M+Ka2Mt 206 + nuzV3C631A0eoMCJhPWPTgkGGknURvzhw6m2aGFWC/HE1yzf7Ej7fQeaqIxIG4Wy 207 + Fk3lMV9rxMxGuUZTqIhvcU85JSriHowfX1VsAI2LXJYQ9c0jI737FcLwHv8VCa5s 208 + NKDkLkb5S83/4Ep8e9M+a7u4WvkAqzmPfSna7bLxdsTS5gKGqEtMvMP2YGWWQxSR 209 + GRSttiMmIC8Cnd45S8cASA2mR/ebNcrYOpa48cjYpBKDG2BIYU7oSLNulsM1qbxL 210 + WJ0QM/g7iKHcrXhyIBaI22GS9hvmYcS960cox9oPCvNZcOKA6FBklnUg/ReJ3JTj 211 + 6D6v9SUxOOfXPQIon8EzB7BNKGedHxCFgniZnl10k+pP34YGyphMZTYGdhtAm6zq 212 + T7PlraHQaFgQ3ba78lJcn3cWVZYpbCNJiH+Nna/Akm3/qQKTst3eW1lqopffCs1m 213 + F6G6wjiHCw2bio5uX1c/gDr4Peh0E28heAqKopjultPXPZbSZL4D3fJIGP2j6e1B 214 + wvmIRgQQEQIABgUCTrg/KAAKCRC+dA9BPyK7GcYrAKCgKW+qFwbMNeh4ikFg9fJx 215 + 4/lH9wCdGevT7dwBzPe6L+aWZxipEXYmjx6JAj4EEwECACgFAk64PN0CGwMFCQIc 216 + hwAGCwkIBwMCBhUIAgkKCwQWAgMBAh4BAheAAAoJEPwbVHyNgXLIThYP/AnoLpQl 217 + whEEKaIhOSOKXegfdUHK6cL4cHRACzRIbBk/S4G2Vg/bnUW8tvWZDQLZ3CGL8Z0F 218 + tNQ6GusUxt7mcYdSj7xynbi7bZiurgYp7B7hh1hVG3pAXEwlDnJgfoc0YZHrHZwt 219 + HnNVYOfGEQF4zyplmUUxDyp/ZMYcXMr3PVJkYBJhYKCHOkMUtzzNjSSginaqZY1p 220 + fgbP+Gou/9qgotkYiH84oUG9yTSKLIO5x0WzQYuoPNJyOdSHaLPfEqCC435vCYT5 221 + YLZB1YI5xzQiGsAL//cUCe267oiFmO9Ioky/azeX1Ouy2DH8uEDQPQFTJYXt3CbL 222 + i10HkoBWdmncPC6+b0IJjDUo8Iv4yk0xFt2/DGkGK3h6jJxJ9pzx5KBT46iLfU50 223 + iTWMTguXn9ud/UJV0MpKgKjvO9hB4fae60n2UootknzEw6Y5W55PfGkT14WcrGGo 224 + WHLSbpR6+gA9apU1cdoOC8nXlf3Eb2No6LP3X7RJXqiRsdP0s6QXkZGfR/qyNXI9 225 + S5j6wIyqNFU0cX21UgI9oJSKEKIKEFacgyD9za0gswEI+DZr8/p3cJE89ZX8ySgO 226 + FG148wgaakTNGyGwR6aogGZ8IAHc83bnwGCgTeK6ZPSKNLSE/sImcTOrxIN1/x39 227 + r8o0TxuZjqFH+zKWfpdHX+sJLyi8Gs29CsUhiQI+BBMBAgAoAhsDBgsJCAcDAgYV 228 + CAIJCgsEFgIDAQIeAQIXgAUCUNol+gUJA/yTqwAKCRD8G1R8jYFyyLl/EACG6QRV 229 + kKVBoI2Ycr4UISk2+gCD2r4xSK/QLEhDFcZRgMctvPVnhod3uJOsMGJCk3aPGu91 230 + Jtwuj0CkeURa/cVzOjC+f7baveTuWQaAqW+r70m6F4gYHU0aDD/uQ75rTCcrsmt2 231 + pnZCyA9jLJxQGG11AvbOcV+7K7BuIvXs4iAactZ0hRvDVuGXuup2LnUbxyBU2oj7 232 + OWCXKTpZcJ0KGTWapMf8ClYYsEgS0wvMWotJzAov7ijkoP2DyEQVOPTnGWcfjsTk 233 + QgbyqiFeBl+3IT4+xSzkPsd75dCYhsHBvCoT8cfUH4wvDXzU2CwpC1CDfHit6Hw5 234 + UigvZ8HXyn00Bm0UjLHGW+haS3kyOoz+z09gVFYd33cpjSnFr5is8ZMBPW31PE15 235 + q9/l6G/o6OGJCtOax3Yi6ttqn+KbDXIooZoRPZlayOSghyjoD40+ErevmqZPfJ3E 236 + o1kHz62B1YpoXmhUm2Ihf2SbjWJRaW9Hp2nd81kAAXjr+8k4yvOuHxwYPFnpBjfV 237 + cfYNQ3Zf5xF4nfszFuZMc5JYrIR3EYVgEk+n8VpulAqd0rXUEODwGy7rPjdxLY7w 238 + DhUEZMQN3xweIb4vjPDBb0Ax3ACyfWKIdT0kC3rGOy9xyCzxWO2CjHMjrbxy4jL7 239 + B0WIQ5fpRcV2+wozs2WYgJKVKJgJZGYsW8dDLYkCHAQQAQIABgUCUtgrXgAKCRBH 240 + 1QFsQv98LIX0EADVefJUEMGKiTFLwUmWNF2X4oCzEZEMsQ6NliiQFvtNkKrT+OzZ 241 + zggxfINUr0XEKgjjoGZ03Hmm7xAFc1Y51QZEr25H18PuSixz2YSHPqYwwVgLUh0v 242 + u2AqaP0mQckssK+ZAQVvoZ7ZOI22ZXIZ6CPEPY6aJawHov8Strlm8oTbFgLfZ5Wo 243 + 3NCxMkkq3NFNHuwesccelNPefgnFZWhwr1mkUeX+rCAbQF/QHYEAi7KjfKyY+XKs 244 + ccjYS+RWxpte21ejngp7pRYli3M8cZoaWKCzLTrD8gKztlo3op9Zc2+hjOY9gZtG 245 + CaXkN8lchJ1yMyWju61ZO++AJq6S2OdBVxgsj9xPm+x91RbZRHQmUuq8mefUzaEm 246 + NHE29udVFfuV//Fpabi04IrOuabkrSvP27eX9FT1y25tKFHuJdL5fDUFGnNnTvcR 247 + X51lJmvnuIKJQ+Lthup7npS0L06+dPIDoqyxF8hmdu3RtwEsvkboPaxx5XTB5d8y 248 + 3wzBFWd4ePwBIumrY1YHSzdJCvyyLRXZbSOsHXgZfhfQ1LVgxxebP7E+stWqGLLC 249 + Fry0WGG8f/UUgVr1QpluT6NjioUnuI/ZmKR/aKewqVYWAnr54fF+np4VdxPfYwci 250 + lpbXpkamORZqPfq/nyoWgnp+y4AptDdDkSWnFxfcJ1wnFFcrHVUSFQ1wBYkCPgQT 251 + AQIAKAIbAwYLCQgHAwIGFQgCCQoLBBYCAwECHgECF4AFAlLV0QsFCQXdHmsACgkQ 252 + /BtUfI2BcsjV6w/9Fe1+3Mc6wG3R9VbxiYo13/JV4t+tA9/tcJ1R/Y96eAqVajoK 253 + c2ZQ7FrimmlzvLIvxpH4Z76h3NmPWfOQ6qEumZQ5BM3QwBfQQ3Tmj10gfiL5vOZJ 254 + 6dUaJjwXgjz0Qyk1G3gw7K1xmtnXgBPyGT9T9q3OAhHHdV2b6xS9dWoNKhUV8GUn 255 + HfIKwq+87aZqexjFE7ubZdOAe+5nrqnlMEfJKgDjXbazES9IYvPQiSjwR3xaIPOa 256 + ma5WfQV0SHg3Vkhtv2PjuoYWNfNy17N7u+dfg7nAtKLIQCPht45uKk66BYWYBoDI 257 + VQfg6zcFLpdNcFzzwmgrYRZvEvBf5aSG3KFD7UReT0695/lHheRxEAA3thsx8gaM 258 + CCavtVxbVUluEfYZ7TgXLMuIO9OBKhi7MwB3iL5qacrNShMB+1J5FxieJBmWXdla 259 + +kCdCdS+9kIZH+mnQ8daGEJ5R9mNcVwcWasI0o9NObqIZwhKw4obrC5Q7m2NfXL6 260 + FUScfA7yn7+/icdQB9fH2ZXGJVuNm1b8OBN6Nbz0QauaCystWzKXKwpVb/5M623v 261 + Vw75RfnqCFiAf4tX58nL/QalJc4C0E+TvQ2pXC47VQvHmiAB31vKvU0nbo+lzi64 262 + hAPWJnhr2pmTvglquTFzLwEsWfO4zDtUwFo8KM1XFsonaoX5UzGTXPmIN5+0J0xl 263 + dmVudGUgUG9seWFrIDxhbnRocmF4eEBhcmNobGludXgub3JnPokCPwQTAQIAKQIb 264 + AwcLCQgHAwIBBhUIAgkKCwQWAgMBAh4BAheABQJUl1PbBQkHwE8PAAoJEPwbVHyN 265 + gXLIdGAP/0ch1NeFyXWszqA5ow+itBn6iyUaplXB5I56Q77cTIFB6LqJ5+2kdUuO 266 + UqPvOilGS3dxbyDsSdWDLs+bHRFG4uqZyGUDhmu2mvS+uDqPFwcKJUNDlgdccxph 267 + sA5HJFGg1ca0TWWg8vjwANdU4sL9Ujbaw93v0Mx/1+aSIxyEJBNxc6DJWEfCjpSy 268 + R9JB8WTHgvxEAImVNsT1OGNTvd2DN+17WBhxBktLHDocIGJ/fttzFgKkv6NTPwt+ 269 + y4QyP3UgeYRZR21B6MVckk2/UuCuCY7gAGruTFVoINa/Wqn2YPPZhJYrTX7ysDaV 270 + QLObxlepeo0UWC7wFEiuqu5OM75MWLUX8j/1OAIE6my85vrlcWSf0Z3jOAgPTjJw 271 + VT5h7T/7NPP2azoIlOE2bh5UcKXFkT0xDYPcMr2hV2Ih+jU+Ygiyg/1yIIxearmm 272 + PFjfIHMLepa+7RPtTlHwu4fpNPXzL13W6PXSoCTTi/suGlYmSyLtOwxq15GGT3vg 273 + 1Xh8wfkuWwbWJnBKXtt8HkteQRgDngDnRSJwsO2nnQ7+sr+F8J3rQDdlVdVcolic 274 + ekup8ZgSjJYinfcpF+H+qy2kK2jOYyyHI/+zHQtwy1R7MbLwPJe7WNWrBmEvmazB 275 + 2//Iu5EVIfFX3flPjeRQbKX4B/SuXF48uo0/8WfdgaMW8glRWJnbiQI/BBMBAgAp 276 + BQJUSwOnAhsDBQkF3R5rBwsJCAcDAgEGFQgCCQoLBBYCAwECHgECF4AACgkQ/BtU 277 + fI2Bcsj5ihAAg0d0A8OUsNWG7TiPQTuC/D4e/5JTkJARmQ5xO6gMPxTpjSZCyWEl 278 + 7gQOg/liU8nz5HZGaJgg4HuBwTs6euqdnVi6zhW1c1wye2thGTQ7DeSPJnhju3Qe 279 + mPS1jEdC34lXCo6eGjdKnGb7TV7hkptHKHh7XCU9n6qcXQ2cNQQbdqSCRsfVm1XD 280 + +p+mM/FGOz8uFOrhERAUl99WkVZ4NKTdws8U6FXulbdWrWwI4eRggIdwI/Tl7zuy 281 + ja7KxBCCeJ/gFY6g+iOYmIo6//bJITgmAG60hFHJ9JigcN6xglYFI28TCdNqM0+C 282 + hgbZUner0vLmaxRNoXqV9Xw8ihNMQa7fUFYkX8VrXOdLdVvee7OaeLuWWE8x6usQ 283 + NzgLDQQx9fmxtrQY+dC6Y25IPMm094z0nrbM1wtfG2+8Vw4mQ2U099fT5t3Yl7fE 284 + PlanhgQxRZE78PxezyYxms4HV+wqvrhlBzFnWAd6H27uDPfUfO9cLgbmFTUlwFhg 285 + gsDeIFRFx8+h4/0xAIPqUODmTiN0mj5sLRW7zvqZW6zhsGIMdPd+IkhHiGjeJqme 286 + Ai0iOjpV3tRteoW51/+/ajPmyUBbvOxiFJNADHH2NvqoBMU1pkTvpc7Wy+2J9VcF 287 + 4TFdWBbwjU8BoC3ZgixTrT0zCSwabnKriglOhA5Ik/n5HsR7S76V13y0KExldmVu 288 + dGUgUG9seWFrIDxhbnRocmF4eEBoYW1idXJnLmNjYy5kZT6JAj0EEwEIACcFAlSX 289 + VHICGwMFCQfATw8FCwkIBwIGFQgJCgsCBBYCAwECHgECF4AACgkQ/BtUfI2Bcsia 290 + Wg//SKLFNUTEBQG11cV/AljxmI2s8y+cPKs3VqlwEjiuRMu4DRkFVaZNEuPq0b8q 291 + 8pwcHIJ5/nZvOticm9M/g7TrTp3pOxmSYf7WG31vVrprig22dz8WxQAy76srNn1z 292 + stg0TFO7nKNVjZOFz5D0RpWazwnXyDed3l2/7RZ1CMv7ue/rZez8FnDHN7Di3daX 293 + AJ5XkvDAsD6AITYQd+4XEbh2rt9p8G6qUUjwzoVU/aGVgo1CGZydYMJQVccNL7kv 294 + fumnwkAED8u9j0ZI+xfaD3c1rP98bnqk9u8rJPCAeIkA4ppisDb7noz0NaO7dDyM 295 + ywBK4OR478fw5h7GfiIwZdVAHkCoEHNvF1ON8JnYgyplLvZvxZ0dtYGDYDiFdORN 296 + gVgGMU12kemPws4hEx3WMgUu/BBkF58XyQyqcwt7q+WGI2lQ88UzZ/FAsu8i8r/J 297 + jkV8FsiCJ2rSHEMddmOHoaTM+6oB2i9kZo7KmToSZu7DxuemlHpuOO3kG/iRga2y 298 + NeancRJwbxgZhNGBbhrA/7k5UOcXkmfW74oBkbCci0ncVhHu12dsJXhk+eprkOXv 299 + nD1vEIeuzL4V/SMDar3SxFlfLFwQk4cn9+pdeP3LxwHKBn74pABsbEBhEY4IjUEL 300 + YOTEVoP6s+Ou1NcLxFl3elmniwL2+GV5rDM8pctkKNemtZa5Ag0ETrg4RQEQALfu 301 + qEihKS+DTVlWUujzSq5zK/5oQ1ZL8AiTUTZuVtrRWCq0HE8tWaVxEP3Vt9FCo7yF 302 + afXigokChzHOgzczg80tctrlv+vbFyaZnjGQH20Nlz8EnZP102zudx/RdFXG/up8 303 + PX50Eck2lH+IvvosMLdvrZTkFJ4SgqMGSoAgMhJHZdZB5N0y8yPPAjcEnSXp8L2A 304 + mo9e0egCrEuqBrCZld00nIoipyDlYNZkLjPf0JRgFPO/AWWgBZLvLlteLu0emq8N 305 + 96bT3QTdXpRVPM0qeX94+2gIj+0V1uQ9+k5Xkslbbii9TnOzMnLRO6dBAONVTTb3 306 + ajzdXK71iv2a8Y9lKShxhYWP9JNOFlXkAp+ZoD7EZex4dgu6giV3PrTDJLyWSu41 307 + WfqOz6cJGpJSTacrenC542ynAaSVKXH+1plqB9kq/M7HtE/P4GveQXIVT9Sho394 308 + 4hwkuETo20KwCgFPMmiNaBysnOykIcDsDutBOyygdovzdGEyHVsM8/kz007QFgJf 309 + hKy91H6O/Cg7VH+yaUKllRZ+kFsoSy8/E0IqLzqBHG3sUGM6lJ0Q9fgSnpzIZsdE 310 + jRhczNCvlovGLa/kBHcEUWQ2zrjnfjsLkxvamKJ8N6LLIXIDRv5dE2smpdi3oiVg 311 + XdOKshyXB+obhRFlWtirK4udX5yYzUpcB0zBoo1hABEBAAGJAiUEGAECAA8CGwwF 312 + AlSXVAEFCQfATzwACgkQ/BtUfI2Bcsj0Tw//dyDYwcnh0BIb+nDCXFC91KiPUILa 313 + f+wI5w6c9YYEo6TR89q6Wsq8EDiqcqSJcztuNvw3MZGHWA25nNB/0046CGM/tUBd 314 + Jyudd3TxQBi6XMMSTbG1EMtSN1UMV4guuUfYcAGW38oZ+YJACCBFFz/Kt0aa/hhi 315 + /hBNyvI73vZfQ/fsScFDewkxikUEspRsLVmX6gaEmumOxOhJP3HBoxeBCM4Z3IXo 316 + dON2SiiMxt9BPIPJOyKNkFQGQ3dqJIag3GnsZ1s0CEoi8iqF7uS4RjC7uOJtvn74 317 + CODxg1Ibl1IweyAuBEA80wUh9DGLAdRJpxWy1B2fDhIROvpcg0R5p6j9UX0b0esc 318 + jKLQEiE1wRswjXhWpZhe7Pjl38KhwqMyaeR3OnDtP7JXazIG6HiBIp4cx4k5A2TT 319 + X+LhvG3NHCeuxIyjLTRTWgv241kf7uAu+qgjHDSKXQqpjvo+cUYQgSxQZZXnmlz0 320 + sz/tEeiWl+i8kW/RNKQvNNR8ghWDW3YRak/zS+WFNoLZchecIzMj+je1vSg411o4 321 + Xd3LHDur6boCetaq7ZkqoS+NcX9n8MnKhHKYJblvXyc1h67s90+wSwhlumA8WqlM 322 + yqn99m13aF8GuGZbw5B2/x/Cd7WW5wZV6ioola/yqDXB1XtDFBy2Hxr/VMRlE3Cu 323 + kekzzVjVTZxOgZE= 324 + =yRuG 325 + -----END PGP PUBLIC KEY BLOCK-----
+2
pkgs/os-specific/linux/kernel/common-config.nix
··· 608 MODULE_COMPRESS_XZ = yes; 609 KERNEL_XZ = yes; 610 611 UNIX = yes; # Unix domain sockets. 612 613 MD = yes; # Device mapper (RAID, LVM, etc.)
··· 608 MODULE_COMPRESS_XZ = yes; 609 KERNEL_XZ = yes; 610 611 + SYSVIPC = yes; # System-V IPC 612 + 613 UNIX = yes; # Unix domain sockets. 614 615 MD = yes; # Device mapper (RAID, LVM, etc.)
+1 -42
pkgs/os-specific/linux/kernel/hardened-config.nix
··· 16 17 assert (versionAtLeast version "4.9"); 18 19 - optionalAttrs (stdenv.hostPlatform.platform.kernelArch == "x86_64") { 20 - DEFAULT_MMAP_MIN_ADDR = freeform "65536"; # Prevent allocation of first 64K of memory 21 - 22 - # Reduce attack surface by disabling X32 23 - X86_X32 = no; 24 - # Note: this config depends on EXPERT y and so will not take effect, hence 25 - # it is left "optional" for now. 26 - MODIFY_LDT_SYSCALL = option no; 27 - VMAP_STACK = yes; # Catch kernel stack overflows 28 - 29 - # Randomize position of kernel and memory. 30 - RANDOMIZE_BASE = yes; 31 - RANDOMIZE_MEMORY = yes; 32 - 33 - # Disable legacy virtual syscalls by default (modern glibc use vDSO instead). 34 - # 35 - # Note that the vanilla default is to *emulate* the legacy vsyscall mechanism, 36 - # which is supposed to be safer than the native variant (wrt. ret2libc), so 37 - # disabling it mainly helps reduce surface. 38 - LEGACY_VSYSCALL_NONE = yes; 39 - } // { 40 # Report BUG() conditions and kill the offending process. 41 BUG = yes; 42 43 - BUG_ON_DATA_CORRUPTION = whenAtLeast "4.10" yes; 44 - 45 # Safer page access permissions (wrt. code injection). Default on >=4.11. 46 DEBUG_RODATA = whenOlder "4.11" yes; 47 DEBUG_SET_MODULE_RONX = whenOlder "4.11" yes; ··· 57 SECURITY_SELINUX_DISABLE = whenAtLeast "4.12" no; 58 SECURITY_WRITABLE_HOOKS = whenAtLeast "4.12" (option no); 59 60 - DEBUG_WX = yes; # boot-time warning on RWX mappings 61 STRICT_KERNEL_RWX = whenAtLeast "4.11" yes; 62 63 - # Stricter /dev/mem 64 - STRICT_DEVMEM = option yes; 65 - IO_STRICT_DEVMEM = option yes; 66 - 67 # Perform additional validation of commonly targeted structures. 68 DEBUG_CREDENTIALS = yes; 69 DEBUG_NOTIFIERS = yes; 70 - DEBUG_LIST = yes; 71 DEBUG_PI_LIST = yes; # doesn't BUG() 72 DEBUG_SG = yes; 73 SCHED_STACK_END_CHECK = yes; 74 75 REFCOUNT_FULL = whenAtLeast "4.13" yes; 76 77 - # Perform usercopy bounds checking. 78 - HARDENED_USERCOPY = yes; 79 - HARDENED_USERCOPY_FALLBACK = whenAtLeast "4.16" no; # for full whitelist enforcement 80 - 81 - # Randomize allocator freelists. 82 - SLAB_FREELIST_RANDOM = yes; 83 - 84 - SLAB_FREELIST_HARDENED = whenAtLeast "4.14" yes; 85 - 86 # Randomize page allocator when page_alloc.shuffle=1 87 SHUFFLE_PAGE_ALLOCATOR = whenAtLeast "5.2" yes; 88 ··· 98 SECURITY_SAFESETID = whenAtLeast "5.1" yes; 99 100 # Reboot devices immediately if kernel experiences an Oops. 101 - PANIC_ON_OOPS = yes; 102 PANIC_TIMEOUT = freeform "-1"; 103 104 GCC_PLUGINS = yes; # Enable gcc plugin options ··· 119 # Use -fstack-protector-strong (gcc 4.9+) for best stack canary coverage. 120 CC_STACKPROTECTOR_REGULAR = whenOlder "4.18" no; 121 CC_STACKPROTECTOR_STRONG = whenOlder "4.18" yes; 122 - 123 - # Enable compile/run-time buffer overflow detection ala glibc's _FORTIFY_SOURCE 124 - FORTIFY_SOURCE = whenAtLeast "4.13" yes; 125 126 }
··· 16 17 assert (versionAtLeast version "4.9"); 18 19 + { 20 # Report BUG() conditions and kill the offending process. 21 BUG = yes; 22 23 # Safer page access permissions (wrt. code injection). Default on >=4.11. 24 DEBUG_RODATA = whenOlder "4.11" yes; 25 DEBUG_SET_MODULE_RONX = whenOlder "4.11" yes; ··· 35 SECURITY_SELINUX_DISABLE = whenAtLeast "4.12" no; 36 SECURITY_WRITABLE_HOOKS = whenAtLeast "4.12" (option no); 37 38 STRICT_KERNEL_RWX = whenAtLeast "4.11" yes; 39 40 # Perform additional validation of commonly targeted structures. 41 DEBUG_CREDENTIALS = yes; 42 DEBUG_NOTIFIERS = yes; 43 DEBUG_PI_LIST = yes; # doesn't BUG() 44 DEBUG_SG = yes; 45 SCHED_STACK_END_CHECK = yes; 46 47 REFCOUNT_FULL = whenAtLeast "4.13" yes; 48 49 # Randomize page allocator when page_alloc.shuffle=1 50 SHUFFLE_PAGE_ALLOCATOR = whenAtLeast "5.2" yes; 51 ··· 61 SECURITY_SAFESETID = whenAtLeast "5.1" yes; 62 63 # Reboot devices immediately if kernel experiences an Oops. 64 PANIC_TIMEOUT = freeform "-1"; 65 66 GCC_PLUGINS = yes; # Enable gcc plugin options ··· 81 # Use -fstack-protector-strong (gcc 4.9+) for best stack canary coverage. 82 CC_STACKPROTECTOR_REGULAR = whenOlder "4.18" no; 83 CC_STACKPROTECTOR_STRONG = whenOlder "4.18" yes; 84 85 }
+27
pkgs/os-specific/linux/kernel/hardened-patches.json
···
··· 1 + { 2 + "4.14.176": { 3 + "sha256": "0pr3m2j63mc746fcbzg1hlwv85im9f87qkl6r4033gwnpa9brcgk", 4 + "url": "https://github.com/anthraxx/linux-hardened/releases/download/4.14.176.a/linux-hardened-4.14.176.a.patch", 5 + "version_suffix": "a" 6 + }, 7 + "4.19.116": { 8 + "sha256": "00y4i905gzs9w9kckrn1frh2vw32fsndz03g2psl1gk17snc3q7c", 9 + "url": "https://github.com/anthraxx/linux-hardened/releases/download/4.19.116.a/linux-hardened-4.19.116.a.patch", 10 + "version_suffix": "a" 11 + }, 12 + "5.4.33": { 13 + "sha256": "1hjfvhyvz5kyvx25809brhsvfv9mjv9q1mw6ydb71gfwhw6q8d8b", 14 + "url": "https://github.com/anthraxx/linux-hardened/releases/download/5.4.33.a/linux-hardened-5.4.33.a.patch", 15 + "version_suffix": "a" 16 + }, 17 + "5.5.18": { 18 + "sha256": "0v7vla784sf1fk6d8qa5x8hkyhjb1jkw4lxxcgvvlqbmxl8md8ld", 19 + "url": "https://github.com/anthraxx/linux-hardened/releases/download/5.5.18.a/linux-hardened-5.5.18.a.patch", 20 + "version_suffix": "a" 21 + }, 22 + "5.6.5": { 23 + "sha256": "19cdpygm5zx3szxl456lfjg5sffqcmn18470wv7prm8rf6liqdj3", 24 + "url": "https://github.com/anthraxx/linux-hardened/releases/download/5.6.5.a/linux-hardened-5.6.5.a.patch", 25 + "version_suffix": "a" 26 + } 27 + }
+2 -2
pkgs/os-specific/linux/kernel/linux-5.5.nix
··· 3 with stdenv.lib; 4 5 buildLinux (args // rec { 6 - version = "5.5.17"; 7 8 # modDirVersion needs to be x.y.z, will automatically add .0 if needed 9 modDirVersion = if (modDirVersionArg == null) then concatStringsSep "." (take 3 (splitVersion "${version}.0")) else modDirVersionArg; ··· 13 14 src = fetchurl { 15 url = "mirror://kernel/linux/kernel/v5.x/linux-${version}.tar.xz"; 16 - sha256 = "06aqhlysa7zdj6c69hyii3hfqlfa9751ivga38rbqw1lr2gbbnj0"; 17 }; 18 } // (args.argsOverride or {}))
··· 3 with stdenv.lib; 4 5 buildLinux (args // rec { 6 + version = "5.5.18"; 7 8 # modDirVersion needs to be x.y.z, will automatically add .0 if needed 9 modDirVersion = if (modDirVersionArg == null) then concatStringsSep "." (take 3 (splitVersion "${version}.0")) else modDirVersionArg; ··· 13 14 src = fetchurl { 15 url = "mirror://kernel/linux/kernel/v5.x/linux-${version}.tar.xz"; 16 + sha256 = "01iiiq4dsyyc5y6b52wax9as6dzhdi172vd1423sc1yp4rrk8178"; 17 }; 18 } // (args.argsOverride or {}))
+2 -2
pkgs/os-specific/linux/kernel/linux-5.6.nix
··· 3 with stdenv.lib; 4 5 buildLinux (args // rec { 6 - version = "5.6.4"; 7 8 # modDirVersion needs to be x.y.z, will automatically add .0 if needed 9 modDirVersion = if (modDirVersionArg == null) then concatStringsSep "." (take 3 (splitVersion "${version}.0")) else modDirVersionArg; ··· 13 14 src = fetchurl { 15 url = "mirror://kernel/linux/kernel/v5.x/linux-${version}.tar.xz"; 16 - sha256 = "14cxbc9xi4s3xwx4yb1yd4z0kidsk3d443skf5sgmdhcalg79wax"; 17 }; 18 } // (args.argsOverride or {}))
··· 3 with stdenv.lib; 4 5 buildLinux (args // rec { 6 + version = "5.6.5"; 7 8 # modDirVersion needs to be x.y.z, will automatically add .0 if needed 9 modDirVersion = if (modDirVersionArg == null) then concatStringsSep "." (take 3 (splitVersion "${version}.0")) else modDirVersionArg; ··· 13 14 src = fetchurl { 15 url = "mirror://kernel/linux/kernel/v5.x/linux-${version}.tar.xz"; 16 + sha256 = "1rjjkcmzsj9azggh960qnk2x44ns475b8nbd4nxazrz1rgdx76zp"; 17 }; 18 } // (args.argsOverride or {}))
+16 -1
pkgs/os-specific/linux/kernel/patches.nix
··· 1 - { fetchpatch }: 2 3 { 4 bridge_stp_helper = ··· 37 name = "tag-hardened"; 38 patch = ./tag-hardened.patch; 39 }; 40 41 # https://bugzilla.kernel.org/show_bug.cgi?id=197591#c6 42 iwlwifi_mvm_support_version_7_scan_req_umac_fw_command = rec {
··· 1 + { lib, fetchpatch, fetchurl }: 2 3 { 4 bridge_stp_helper = ··· 37 name = "tag-hardened"; 38 patch = ./tag-hardened.patch; 39 }; 40 + 41 + hardened = let 42 + mkPatch = kernelVersion: patch: let 43 + fullVersion = "${kernelVersion}.${patch.version_suffix}"; 44 + name = "linux-hardened-${fullVersion}"; 45 + in { 46 + inherit name; 47 + patch = fetchurl { 48 + name = "${name}.patch"; 49 + inherit (patch) url sha256; 50 + meta.maintainers = with lib.maintainers; [ emily ]; 51 + }; 52 + }; 53 + patches = builtins.fromJSON (builtins.readFile ./hardened-patches.json); 54 + in lib.mapAttrs mkPatch patches; 55 56 # https://bugzilla.kernel.org/show_bug.cgi?id=197591#c6 57 iwlwifi_mvm_support_version_7_scan_req_umac_fw_command = rec {
+200
pkgs/os-specific/linux/kernel/update-hardened.py
···
··· 1 + #! /usr/bin/env nix-shell 2 + #! nix-shell -i python -p "python3.withPackages (ps: [ps.PyGithub])" git gnupg 3 + 4 + # This is automatically called by ./update.sh. 5 + 6 + import re 7 + import json 8 + import sys 9 + import os.path 10 + from glob import glob 11 + import subprocess 12 + from tempfile import TemporaryDirectory 13 + 14 + from github import Github 15 + 16 + HERE = os.path.dirname(os.path.realpath(__file__)) 17 + HARDENED_GITHUB_REPO = 'anthraxx/linux-hardened' 18 + HARDENED_TRUSTED_KEY = os.path.join(HERE, 'anthraxx.asc') 19 + HARDENED_PATCHES_PATH = os.path.join(HERE, 'hardened-patches.json') 20 + MIN_KERNEL = (4, 14) 21 + 22 + HARDENED_VERSION_RE = re.compile(r''' 23 + (?P<kernel_version> [\d.]+) \. 24 + (?P<version_suffix> [a-z]+) 25 + ''', re.VERBOSE) 26 + 27 + def parse_version(version): 28 + match = HARDENED_VERSION_RE.fullmatch(version) 29 + if match: 30 + return match.groups() 31 + 32 + def run(*args, **kwargs): 33 + try: 34 + return subprocess.run( 35 + args, **kwargs, 36 + check=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE, 37 + ) 38 + except subprocess.CalledProcessError as err: 39 + print( 40 + f'error: `{err.cmd}` failed unexpectedly\n' 41 + f'status code: {err.returncode}\n' 42 + f'stdout:\n{err.stdout.decode("utf-8").strip()}\n' 43 + f'stderr:\n{err.stderr.decode("utf-8").strip()}', 44 + file=sys.stderr, 45 + ) 46 + sys.exit(1) 47 + 48 + def nix_prefetch_url(url): 49 + output = run('nix-prefetch-url', '--print-path', url).stdout 50 + return output.decode('utf-8').strip().split('\n') 51 + 52 + def verify_openpgp_signature(*, name, trusted_key, sig_path, data_path): 53 + with TemporaryDirectory(suffix='.nixpkgs-gnupg-home') as gnupg_home: 54 + run('gpg', '--homedir', gnupg_home, '--import', trusted_key) 55 + keyring = os.path.join(gnupg_home, 'pubring.kbx') 56 + try: 57 + subprocess.run( 58 + ('gpgv', '--keyring', keyring, sig_path, data_path), 59 + check=True, stderr=subprocess.PIPE, 60 + ) 61 + return True 62 + except subprocess.CalledProcessError as err: 63 + print( 64 + f'error: signature for {name} failed to verify!', 65 + file=sys.stderr, 66 + ) 67 + print(err.stderr.decode('utf-8'), file=sys.stderr, end='') 68 + return False 69 + 70 + def fetch_patch(*, name, release): 71 + def find_asset(filename): 72 + try: 73 + return next( 74 + asset.browser_download_url 75 + for asset in release.get_assets() 76 + if asset.name == filename 77 + ) 78 + except StopIteration: 79 + raise KeyError(filename) 80 + 81 + try: 82 + patch_url = find_asset(f'{name}.patch') 83 + sig_url = find_asset(f'{name}.patch.sig') 84 + except KeyError: 85 + print(f'error: {name}.patch{{,sig}} not present', file=sys.stderr) 86 + return None 87 + 88 + sha256, patch_path = nix_prefetch_url(patch_url) 89 + _, sig_path = nix_prefetch_url(sig_url) 90 + sig_ok = verify_openpgp_signature( 91 + name=name, 92 + trusted_key=HARDENED_TRUSTED_KEY, 93 + sig_path=sig_path, 94 + data_path=patch_path, 95 + ) 96 + if not sig_ok: 97 + return None 98 + 99 + return { 100 + 'url': patch_url, 101 + 'sha256': sha256, 102 + } 103 + 104 + def commit_patches(*, kernel_version, message): 105 + with open(HARDENED_PATCHES_PATH + '.new', 'w') as new_patches_file: 106 + json.dump(patches, new_patches_file, indent=4, sort_keys=True) 107 + new_patches_file.write('\n') 108 + os.rename(HARDENED_PATCHES_PATH + '.new', HARDENED_PATCHES_PATH) 109 + message = f'linux/hardened-patches/{kernel_version}: {message}' 110 + print(message) 111 + if os.environ.get('COMMIT'): 112 + run( 113 + 'git', '-C', HERE, 'commit', f'--message={message}', 114 + 'hardened-patches.json', 115 + ) 116 + 117 + # Load the existing patches. 118 + with open(HARDENED_PATCHES_PATH) as patches_file: 119 + patches = json.load(patches_file) 120 + 121 + NIX_VERSION_RE = re.compile(r''' 122 + \s* version \s* = 123 + \s* " (?P<version> [^"]*) " 124 + \s* ; \s* \n 125 + ''', re.VERBOSE) 126 + 127 + # Get the set of currently packaged kernel versions. 128 + kernel_versions = set() 129 + for filename in os.listdir(HERE): 130 + filename_match = re.fullmatch(r'linux-(\d+)\.(\d+)\.nix', filename) 131 + if filename_match: 132 + if tuple(int(v) for v in filename_match.groups()) < MIN_KERNEL: 133 + continue 134 + with open(os.path.join(HERE, filename)) as nix_file: 135 + for nix_line in nix_file: 136 + match = NIX_VERSION_RE.fullmatch(nix_line) 137 + if match: 138 + kernel_versions.add(match.group('version')) 139 + 140 + # Remove patches for old kernel versions. 141 + for kernel_version in patches.keys() - kernel_versions: 142 + del patches[kernel_version] 143 + commit_patches(kernel_version=kernel_version, message='remove') 144 + 145 + g = Github(os.environ.get('GITHUB_TOKEN')) 146 + repo = g.get_repo(HARDENED_GITHUB_REPO) 147 + releases = repo.get_releases() 148 + 149 + found_kernel_versions = set() 150 + failures = False 151 + 152 + for release in releases: 153 + remaining_kernel_versions = kernel_versions - found_kernel_versions 154 + 155 + if not remaining_kernel_versions: 156 + break 157 + 158 + version = release.tag_name 159 + name = f'linux-hardened-{version}' 160 + version_info = parse_version(version) 161 + if not version_info: 162 + continue 163 + kernel_version, version_suffix = version_info 164 + 165 + if kernel_version in remaining_kernel_versions: 166 + found_kernel_versions.add(kernel_version) 167 + try: 168 + old_version_suffix = patches[kernel_version]['version_suffix'] 169 + old_version = f'{kernel_version}.{old_version_suffix}' 170 + update = old_version_suffix < version_suffix 171 + except KeyError: 172 + update = True 173 + old_version = None 174 + 175 + if update: 176 + patch = fetch_patch(name=name, release=release) 177 + if patch is None: 178 + failures = True 179 + else: 180 + patch['version_suffix'] = version_suffix 181 + patches[kernel_version] = patch 182 + if old_version: 183 + message = f'{old_version} -> {version}' 184 + else: 185 + message = f'init at {version}' 186 + commit_patches(kernel_version=kernel_version, message=message) 187 + 188 + missing_kernel_versions = kernel_versions - patches.keys() 189 + 190 + if missing_kernel_versions: 191 + print( 192 + f'warning: no patches for kernel versions ' + 193 + ', '.join(missing_kernel_versions) + 194 + '\nwarning: consider manually backporting older patches (bump ' 195 + 'JSON key, set version_suffix to "NixOS-a")', 196 + file=sys.stderr, 197 + ) 198 + 199 + if failures: 200 + sys.exit(1)
+3
pkgs/os-specific/linux/kernel/update.sh
··· 60 61 # Update linux-libre 62 COMMIT=1 $NIXPKGS/pkgs/os-specific/linux/kernel/update-libre.sh
··· 60 61 # Update linux-libre 62 COMMIT=1 $NIXPKGS/pkgs/os-specific/linux/kernel/update-libre.sh 63 + 64 + # Update linux-hardened 65 + COMMIT=1 $NIXPKGS/pkgs/os-specific/linux/kernel/update-hardened.py
+2 -2
pkgs/os-specific/linux/lxc/default.nix
··· 9 with stdenv.lib; 10 stdenv.mkDerivation rec { 11 pname = "lxc"; 12 - version = "4.0.1"; 13 14 src = fetchurl { 15 url = "https://linuxcontainers.org/downloads/lxc/lxc-${version}.tar.gz"; 16 - sha256 = "178kqjz0n5nnjw0z8ac5lbfpqprna9xfd9ckakp34zq9vz0smfvh"; 17 }; 18 19 nativeBuildInputs = [
··· 9 with stdenv.lib; 10 stdenv.mkDerivation rec { 11 pname = "lxc"; 12 + version = "4.0.2"; 13 14 src = fetchurl { 15 url = "https://linuxcontainers.org/downloads/lxc/lxc-${version}.tar.gz"; 16 + sha256 = "1c2wbbcvs58slyq0skxizx61q1lb4yvak28x4gzsbzh3yg6nscya"; 17 }; 18 19 nativeBuildInputs = [
+2 -2
pkgs/servers/asterisk/default.nix
··· 141 # # provided here verbatim for the convenience of anyone wanting to build 142 # # Asterisk from other sources. Include in externals. 143 # "sounds/asterisk-core-sounds-en-gsm-1.5.tar.gz" = fetchurl { 144 - # url = http://downloads.asterisk.org/pub/telephony/sounds/releases/asterisk-core-sounds-en-gsm-1.5.tar.gz; 145 # sha256 = "01xzbg7xy0c5zg7sixjw5025pvr4z64kfzi9zvx19im0w331h4cd"; 146 # }; 147 # "sounds/asterisk-moh-opsound-wav-2.03.tar.gz" = fetchurl { 148 - # url = http://downloads.asterisk.org/pub/telephony/sounds/releases/asterisk-moh-opsound-wav-2.03.tar.gz; 149 # sha256 = "449fb810d16502c3052fedf02f7e77b36206ac5a145f3dacf4177843a2fcb538"; 150 # }; 151 # # TODO: Sounds for other languages could be added here
··· 141 # # provided here verbatim for the convenience of anyone wanting to build 142 # # Asterisk from other sources. Include in externals. 143 # "sounds/asterisk-core-sounds-en-gsm-1.5.tar.gz" = fetchurl { 144 + # url = "http://downloads.asterisk.org/pub/telephony/sounds/releases/asterisk-core-sounds-en-gsm-1.5.tar.gz"; 145 # sha256 = "01xzbg7xy0c5zg7sixjw5025pvr4z64kfzi9zvx19im0w331h4cd"; 146 # }; 147 # "sounds/asterisk-moh-opsound-wav-2.03.tar.gz" = fetchurl { 148 + # url = "http://downloads.asterisk.org/pub/telephony/sounds/releases/asterisk-moh-opsound-wav-2.03.tar.gz"; 149 # sha256 = "449fb810d16502c3052fedf02f7e77b36206ac5a145f3dacf4177843a2fcb538"; 150 # }; 151 # # TODO: Sounds for other languages could be added here
+34
pkgs/servers/dns/https-dns-proxy/default.nix
···
··· 1 + { stdenv, fetchFromGitHub, cmake, gtest, c-ares, curl, libev }: 2 + 3 + stdenv.mkDerivation rec { 4 + pname = "https-dns-proxy"; 5 + # there are no stable releases (yet?) 6 + version = "unstable-20200419"; 7 + 8 + src = fetchFromGitHub { 9 + owner = "aarond10"; 10 + repo = "https_dns_proxy"; 11 + rev = "79fc7b085e3b1ad64c8332f7115dfe2bf5f1f3e4"; 12 + sha256 = "1cdfswfjby4alp6gy7yyjm76kfyclh5ax0zadnqs2pyigg9plh0b"; 13 + }; 14 + 15 + nativeBuildInputs = [ cmake gtest ]; 16 + 17 + buildInputs = [ c-ares curl libev ]; 18 + 19 + installPhase = '' 20 + install -Dm555 -t $out/bin https_dns_proxy 21 + install -Dm444 -t $out/share/doc/${pname} ../{LICENSE,README}.* 22 + ''; 23 + 24 + # upstream wants to add tests and the gtest framework is in place, so be ready 25 + # for when that happens despite there being none as of right now 26 + doCheck = true; 27 + 28 + meta = with stdenv.lib; { 29 + description = "DNS to DNS over HTTPS (DoH) proxy"; 30 + license = licenses.mit; 31 + maintainers = with maintainers; [ peterhoeg ]; 32 + platforms = platforms.linux; 33 + }; 34 + }
+2 -2
pkgs/servers/sql/postgresql/ext/timescaledb.nix
··· 8 9 stdenv.mkDerivation rec { 10 pname = "timescaledb"; 11 - version = "1.6.1"; 12 13 nativeBuildInputs = [ cmake ]; 14 buildInputs = [ postgresql openssl ]; ··· 17 owner = "timescale"; 18 repo = "timescaledb"; 19 rev = "refs/tags/${version}"; 20 - sha256 = "0k03aqpc1faqlpw46wazv0dy0xja57cv1sr1zwmizw3j3p3s0zdq"; 21 }; 22 23 cmakeFlags = [ "-DSEND_TELEMETRY_DEFAULT=OFF" "-DREGRESS_CHECKS=OFF" ];
··· 8 9 stdenv.mkDerivation rec { 10 pname = "timescaledb"; 11 + version = "1.7.0"; 12 13 nativeBuildInputs = [ cmake ]; 14 buildInputs = [ postgresql openssl ]; ··· 17 owner = "timescale"; 18 repo = "timescaledb"; 19 rev = "refs/tags/${version}"; 20 + sha256 = "0n234ard9sldpbdqvbq2i48xyiyj8ljirsbspsax11f8yzy9ziac"; 21 }; 22 23 cmakeFlags = [ "-DSEND_TELEMETRY_DEFAULT=OFF" "-DREGRESS_CHECKS=OFF" ];
+4 -4
pkgs/tools/admin/pebble/default.nix
··· 4 }: 5 6 let 7 - version = "v2.2.2"; 8 pname = "pebble"; 9 in buildGoPackage { 10 inherit pname version; ··· 14 owner = "letsencrypt"; 15 repo = pname; 16 rev = version; 17 - sha256 = "10g6ivdxxp3632wk0gvmp75v9x668kchhmlczbsq8qnsc8sb8pwf"; 18 }; 19 20 meta = { 21 - homepage = "https://github.com/letsencrypt/boulder"; 22 description = "A miniature version of Boulder, Pebble is a small RFC 8555 ACME test server not suited for a production CA"; 23 license = [ lib.licenses.mpl20 ]; 24 - maintainers = [ ]; 25 }; 26 }
··· 4 }: 5 6 let 7 + version = "v2.3.0"; 8 pname = "pebble"; 9 in buildGoPackage { 10 inherit pname version; ··· 14 owner = "letsencrypt"; 15 repo = pname; 16 rev = version; 17 + sha256 = "1piwzzfqsdx6s2niczzp4mf4r3qn9nfdgpn7882g52cmmm0vzks2"; 18 }; 19 20 meta = { 21 + homepage = "https://github.com/letsencrypt/pebble"; 22 description = "A miniature version of Boulder, Pebble is a small RFC 8555 ACME test server not suited for a production CA"; 23 license = [ lib.licenses.mpl20 ]; 24 + maintainers = with lib.maintainers; [ emily ]; 25 }; 26 }
+4 -4
pkgs/tools/admin/procs/default.nix
··· 2 3 rustPlatform.buildRustPackage rec { 4 pname = "procs"; 5 - version = "0.9.20"; 6 7 src = fetchFromGitHub { 8 owner = "dalance"; 9 repo = pname; 10 rev = "v${version}"; 11 - sha256 = "00qqn8nwv791bs88n302hy67dpas5hcacnkakn7law567klnzxfz"; 12 }; 13 14 - cargoSha256 = "09ib1nlqhzq3mc5wc16mgqbyr652asrwdpbwaax54fm1gd334prl"; 15 16 buildInputs = stdenv.lib.optional stdenv.isDarwin Security; 17 ··· 19 description = "A modern replacement for ps written in Rust"; 20 homepage = "https://github.com/dalance/procs"; 21 license = licenses.mit; 22 - maintainers = with maintainers; [ dalance filalex77 ]; 23 platforms = with platforms; linux ++ darwin; 24 }; 25 }
··· 2 3 rustPlatform.buildRustPackage rec { 4 pname = "procs"; 5 + version = "0.10.0"; 6 7 src = fetchFromGitHub { 8 owner = "dalance"; 9 repo = pname; 10 rev = "v${version}"; 11 + sha256 = "1bgsxvb9wxi4sz8jfamhdwaq9f2q2k7c3cdkk60k86mkmas8ibxz"; 12 }; 13 14 + cargoSha256 = "0zf41clf3rqxmal894gqp9fn9bnas99wna13fc43fxdlvh92v4yh"; 15 16 buildInputs = stdenv.lib.optional stdenv.isDarwin Security; 17 ··· 19 description = "A modern replacement for ps written in Rust"; 20 homepage = "https://github.com/dalance/procs"; 21 license = licenses.mit; 22 + maintainers = with maintainers; [ dalance filalex77 ]; 23 platforms = with platforms; linux ++ darwin; 24 }; 25 }
+4 -4
pkgs/tools/filesystems/fuse-overlayfs/default.nix
··· 1 - { stdenv, lib, fetchFromGitHub, autoreconfHook, pkg-config, fuse3 }: 2 3 stdenv.mkDerivation rec { 4 pname = "fuse-overlayfs"; 5 - version = "0.7.8"; 6 7 src = fetchFromGitHub { 8 owner = "containers"; 9 repo = pname; 10 rev = "v${version}"; 11 - sha256 = "10wsssf9mxgkgcqks3z02y9ya8xh4wd45lsb1jrvw31wmz9zpalc"; 12 }; 13 14 nativeBuildInputs = [ autoreconfHook pkg-config ]; 15 16 buildInputs = [ fuse3 ]; 17 18 - meta = with lib; { 19 description = "FUSE implementation for overlayfs"; 20 longDescription = "An implementation of overlay+shiftfs in FUSE for rootless containers."; 21 license = licenses.gpl3;
··· 1 + { stdenv, fetchFromGitHub, autoreconfHook, pkg-config, fuse3 }: 2 3 stdenv.mkDerivation rec { 4 pname = "fuse-overlayfs"; 5 + version = "1.0.0"; 6 7 src = fetchFromGitHub { 8 owner = "containers"; 9 repo = pname; 10 rev = "v${version}"; 11 + sha256 = "0h1ay2l7zyiqplh8whanw68mcfri79lc03wjjrhqji5ddwznv6fa"; 12 }; 13 14 nativeBuildInputs = [ autoreconfHook pkg-config ]; 15 16 buildInputs = [ fuse3 ]; 17 18 + meta = with stdenv.lib; { 19 description = "FUSE implementation for overlayfs"; 20 longDescription = "An implementation of overlay+shiftfs in FUSE for rootless containers."; 21 license = licenses.gpl3;
+16 -2
pkgs/tools/graphics/mscgen/default.nix
··· 1 - { stdenv, fetchurl, flex, bison, gd, libpng, libjpeg, freetype, zlib, libwebp, runtimeShell }: 2 3 let 4 version = "0.20"; ··· 12 sha256 = "3c3481ae0599e1c2d30b7ed54ab45249127533ab2f20e768a0ae58d8551ddc23"; 13 }; 14 15 - buildInputs = [ flex bison gd libjpeg libpng freetype zlib libwebp ]; 16 17 doCheck = true; 18 preCheck = '' 19 sed -i -e "s|#!/bin/bash|#!${runtimeShell}|" test/renderercheck.sh 20 ''; 21 22 meta = { 23 homepage = "http://www.mcternan.me.uk/mscgen/";
··· 1 + { stdenv 2 + , bison 3 + , fetchurl 4 + , flex 5 + , gd 6 + , libjpeg 7 + , libpng 8 + , libwebp 9 + , pkg-config 10 + , runtimeShell 11 + , zlib 12 + }: 13 14 let 15 version = "0.20"; ··· 23 sha256 = "3c3481ae0599e1c2d30b7ed54ab45249127533ab2f20e768a0ae58d8551ddc23"; 24 }; 25 26 + nativeBuildInputs = [ bison flex pkg-config ]; 27 + buildInputs = [ gd libjpeg libpng libwebp zlib ]; 28 29 doCheck = true; 30 preCheck = '' 31 sed -i -e "s|#!/bin/bash|#!${runtimeShell}|" test/renderercheck.sh 32 ''; 33 + 34 + outputs = [ "out" "man" ]; 35 36 meta = { 37 homepage = "http://www.mcternan.me.uk/mscgen/";
+24
pkgs/tools/misc/3mux/default.nix
···
··· 1 + { stdenv, buildGoModule, fetchFromGitHub }: 2 + 3 + buildGoModule rec { 4 + pname = "3mux"; 5 + version = "0.2.0"; 6 + 7 + src = fetchFromGitHub { 8 + owner = "aaronjanse"; 9 + repo = pname; 10 + rev = "v${version}"; 11 + sha256 = "02ry066psvlqdyhimci7nskw4sfb70dw5z7ag7s7rz36gmx1vnmr"; 12 + }; 13 + 14 + modSha256 = "1ag9lx8xcp2z9lrg404914zin45n8f4s08365yk71q5vyiwxjj3i"; 15 + 16 + meta = with stdenv.lib; { 17 + description = "Terminal multiplexer inspired by i3"; 18 + homepage = "https://github.com/aaronjanse/3mux"; 19 + license = licenses.mit; 20 + maintainers = with maintainers; [ aaronjanse filalex77 ]; 21 + # TODO: fix modules build on darwin 22 + broken = stdenv.isDarwin; 23 + }; 24 + }
+2 -2
pkgs/tools/misc/html-proofer/Gemfile.lock
··· 6 ethon (0.12.0) 7 ffi (>= 1.3.0) 8 ffi (1.12.2) 9 - html-proofer (3.15.2) 10 addressable (~> 2.3) 11 mercenary (~> 0.3) 12 nokogumbo (~> 2.0) ··· 21 nokogumbo (2.0.2) 22 nokogiri (~> 1.8, >= 1.8.4) 23 parallel (1.19.1) 24 - public_suffix (4.0.3) 25 rainbow (3.0.0) 26 typhoeus (1.3.1) 27 ethon (>= 0.9.0)
··· 6 ethon (0.12.0) 7 ffi (>= 1.3.0) 8 ffi (1.12.2) 9 + html-proofer (3.15.3) 10 addressable (~> 2.3) 11 mercenary (~> 0.3) 12 nokogumbo (~> 2.0) ··· 21 nokogumbo (2.0.2) 22 nokogiri (~> 1.8, >= 1.8.4) 23 parallel (1.19.1) 24 + public_suffix (4.0.4) 25 rainbow (3.0.0) 26 typhoeus (1.3.1) 27 ethon (>= 0.9.0)
+4 -4
pkgs/tools/misc/html-proofer/gemset.nix
··· 37 platforms = []; 38 source = { 39 remotes = ["https://rubygems.org"]; 40 - sha256 = "1b7wx2hnwnml3y10x6yxybl3hy973n2ifq3hbqh0jd72bqs615wp"; 41 type = "gem"; 42 }; 43 - version = "3.15.2"; 44 }; 45 mercenary = { 46 groups = ["default"]; ··· 99 platforms = []; 100 source = { 101 remotes = ["https://rubygems.org"]; 102 - sha256 = "1c6kq6s13idl2036b5lch8r7390f8w82cal8hcp4ml76fm2vdac7"; 103 type = "gem"; 104 }; 105 - version = "4.0.3"; 106 }; 107 rainbow = { 108 groups = ["default"];
··· 37 platforms = []; 38 source = { 39 remotes = ["https://rubygems.org"]; 40 + sha256 = "18afz6rz72j8hnfgzhyr21wh1rfy1x41iyhbcgaq0r1bd7ng1vni"; 41 type = "gem"; 42 }; 43 + version = "3.15.3"; 44 }; 45 mercenary = { 46 groups = ["default"]; ··· 99 platforms = []; 100 source = { 101 remotes = ["https://rubygems.org"]; 102 + sha256 = "1l1kqw75asziwmzrig8rywxswxz8l91sc3pvns02ffsqac1a3wiz"; 103 type = "gem"; 104 }; 105 + version = "4.0.4"; 106 }; 107 rainbow = { 108 groups = ["default"];
+1 -1
pkgs/tools/misc/patdiff/default.nix
··· 4 5 janePackage { 6 pname = "patdiff"; 7 - hash = "04krzn6rj2r81z55pms5ayk6bxhlxrm006cbhy0m6rc69a0h00lh"; 8 buildInputs = [ core_extended expect_test_helpers patience_diff ocaml_pcre shell ]; 9 meta = { 10 description = "File Diff using the Patience Diff algorithm";
··· 4 5 janePackage { 6 pname = "patdiff"; 7 + hash = "1yqvxdmkgcwgx3npgncpdqwkpdxiqr1q41wci7589s8z7xi5nwyz"; 8 buildInputs = [ core_extended expect_test_helpers patience_diff ocaml_pcre shell ]; 9 meta = { 10 description = "File Diff using the Patience Diff algorithm";
+44
pkgs/tools/misc/statserial/default.nix
···
··· 1 + { stdenv, fetchurl, ncurses, glibc }: 2 + 3 + stdenv.mkDerivation rec { 4 + pname = "statserial"; 5 + version = "1.1"; 6 + 7 + src = fetchurl { 8 + url = "http://www.ibiblio.org/pub/Linux/system/serial/${pname}-${version}.tar.gz"; 9 + sha256 = "0rrrmxfba5yn836zlgmr8g9xnrpash7cjs7lk2m44ac50vakpks0"; 10 + }; 11 + 12 + postPatch = '' 13 + substituteInPlace Makefile \ 14 + --replace '-lcurses' '-lncurses' 15 + 16 + substituteInPlace Makefile \ 17 + --replace 'LDFLAGS = -s -N' '#LDFLAGS = -s -N' 18 + ''; 19 + 20 + buildInputs = [ ncurses glibc stdenv ]; 21 + 22 + installPhase = '' 23 + mkdir -p $out/bin 24 + cp statserial $out/bin 25 + 26 + mkdir -p $out/share/man/man1 27 + cp statserial.1 $out/share/man/man1 28 + ''; 29 + 30 + meta = with stdenv.lib; { 31 + homepage = "https://sites.google.com/site/tranter/software"; 32 + description = "Display serial port modem status lines."; 33 + license = licenses.gpl2; 34 + 35 + longDescription = 36 + '' Statserial displays a table of the signals on a standard 9-pin or 37 + 25-pin serial port, and indicates the status of the handshaking lines. It 38 + can be useful for debugging problems with serial ports or modems. 39 + ''; 40 + 41 + platforms = platforms.unix; 42 + maintainers = with maintainers; [ rps ]; 43 + }; 44 + }
+6 -4
pkgs/tools/networking/ferm/default.nix
··· 1 { stdenv, fetchurl, makeWrapper, perl, ebtables, ipset, iptables, nixosTests }: 2 3 - stdenv.mkDerivation rec { 4 - version = "2.4.1"; 5 pname = "ferm"; 6 7 src = fetchurl { 8 - url = "http://ferm.foo-projects.org/download/2.4/ferm-${version}.tar.xz"; 9 - sha256 = "1fv8wk513yysp4q0i65rl2m0hg2lxwwgk9ppprsca1xcxrdpsvwa"; 10 }; 11 12 buildInputs = [ perl ipset ebtables iptables makeWrapper ];
··· 1 { stdenv, fetchurl, makeWrapper, perl, ebtables, ipset, iptables, nixosTests }: 2 3 + let 4 + inherit (stdenv.lib.versions) majorMinor; 5 + in stdenv.mkDerivation rec { 6 + version = "2.5"; 7 pname = "ferm"; 8 9 src = fetchurl { 10 + url = "http://ferm.foo-projects.org/download/${majorMinor version}/ferm-${version}.tar.xz"; 11 + sha256 = "0lxqcpirphihpvdqrh5kq0621aqq0h2vdy9q2v85gqdhd52js20p"; 12 }; 13 14 buildInputs = [ perl ipset ebtables iptables makeWrapper ];
+2 -2
pkgs/tools/networking/httpie/default.nix
··· 2 3 python3Packages.buildPythonApplication rec { 4 pname = "httpie"; 5 - version = "2.0.0"; 6 7 src = fetchFromGitHub { 8 owner = "jakubroztocil"; 9 repo = "httpie"; 10 rev = version; 11 - sha256 = "0d0rsn5i973l9y0ws3xmnzaw4jwxdlryyjbasnlddph5mvkf7dq0"; 12 }; 13 14 outputs = [ "out" "doc" "man" ];
··· 2 3 python3Packages.buildPythonApplication rec { 4 pname = "httpie"; 5 + version = "2.1.0"; 6 7 src = fetchFromGitHub { 8 owner = "jakubroztocil"; 9 repo = "httpie"; 10 rev = version; 11 + sha256 = "1vwjlzx830q4dcm3r7j9cl8yzka37dw42rl1r05m5ysb1081cbj2"; 12 }; 13 14 outputs = [ "out" "doc" "man" ];
+11 -39
pkgs/tools/networking/mitmproxy/default.nix
··· 4 5 buildPythonPackage rec { 6 pname = "mitmproxy"; 7 - version = "4.0.4"; 8 9 src = fetchFromGitHub { 10 owner = pname; 11 repo = pname; 12 rev = "v${version}"; 13 - sha256 = "14i9dkafvyl15rq2qa8xldscn5lmkk2g52kbi2hl63nzx9yibx6r"; 14 }; 15 16 - patches = [ 17 - (fetchpatch { 18 - # Tests failed due to expired test certificates, 19 - # https://github.com/mitmproxy/mitmproxy/issues/3316 20 - # TODO: remove on next update 21 - name = "test-certificates.patch"; 22 - url = "https://github.com/mitmproxy/mitmproxy/commit/1b6a8d6acd3d70f9b9627ad4ae9def08103f8250.patch"; 23 - sha256 = "03y79c25yir7d8xj79czdc81y3irqq1i3ks9ca0mv1az8b7xsvfv"; 24 - }) 25 - (fetchpatch { 26 - # 0.13 <= wsproto < 0.14 patch 27 - # https://github.com/mitmproxy/mitmproxy/issues/3459 28 - # TODO: remove on next update 29 - name = "wsproto-0.13.patch"; 30 - url = "https://github.com/mitmproxy/mitmproxy/commit/70777a1b6ed64af9cafcdef223a8a260ecc96864.patch"; 31 - sha256 = "1ddxdr7js510kzyq3gyks4k5k1n8zb1i9amxw7wzmi1dcg8kqw9a"; 32 - # We strip these bounds anyway 33 - excludes = [ "setup.py" ]; 34 - }) 35 - (fetchpatch { 36 - # Fix for newer pytest disallowing calling fixtures 37 - # https://github.com/mitmproxy/mitmproxy/issues/3403 38 - # TODO: remove on next update 39 - name = "dont-call-fixtures.patch"; 40 - url = "https://github.com/mitmproxy/mitmproxy/commit/ce28721458c8cc71de86513a5110676e9763041b.patch"; 41 - sha256 = "05pljr28lx7l1xgswqr9sz8dnhvc7npzh8xg2p9hignf159kd54d"; 42 - # Irrelevant in nixpkgs 43 - excludes = [ "setup.py" "setup.cfg" "release/docker/*" ]; 44 - }) 45 - ./pytest5.patch 46 - ]; 47 - 48 postPatch = '' 49 # remove dependency constraints 50 sed 's/>=\([0-9]\.\?\)\+\( \?, \?<\([0-9]\.\?\)\+\)\?//' -i setup.py ··· 61 ''; 62 63 propagatedBuildInputs = [ 64 - blinker click certifi cryptography 65 - h2 hyperframe kaitaistruct passlib 66 - pyasn1 pyopenssl pyparsing pyperclip 67 - ruamel_yaml tornado urwid brotlipy 68 - sortedcontainers ldap3 wsproto setuptools 69 ]; 70 71 checkInputs = [ 72 beautifulsoup4 flask pytest 73 requests glibcLocales 74 asynctest parver pytest-asyncio 75 ]; 76 77 meta = with stdenv.lib; {
··· 4 5 buildPythonPackage rec { 6 pname = "mitmproxy"; 7 + version = "5.1.1"; 8 9 src = fetchFromGitHub { 10 owner = pname; 11 repo = pname; 12 rev = "v${version}"; 13 + sha256 = "1lirlckpvd3c6s6q3p32w4k4yfna5mlgr1x9g39lhzzq0sdiz3lk"; 14 }; 15 16 postPatch = '' 17 # remove dependency constraints 18 sed 's/>=\([0-9]\.\?\)\+\( \?, \?<\([0-9]\.\?\)\+\)\?//' -i setup.py ··· 29 ''; 30 31 propagatedBuildInputs = [ 32 + blinker brotli certifi cffi 33 + click cryptography flask h11 34 + h2 hpack hyperframe itsdangerous 35 + jinja2 kaitaistruct ldap3 markupsafe 36 + passlib protobuf publicsuffix2 pyasn1 37 + pycparser pyopenssl pyparsing pyperclip 38 + ruamel_yaml setuptools six sortedcontainers 39 + tornado urwid werkzeug wsproto zstandard 40 ]; 41 42 checkInputs = [ 43 beautifulsoup4 flask pytest 44 requests glibcLocales 45 asynctest parver pytest-asyncio 46 + hypothesis 47 ]; 48 49 meta = with stdenv.lib; {
-31
pkgs/tools/networking/mitmproxy/pytest5.patch
··· 1 - diff --git a/test/mitmproxy/net/test_tls.py b/test/mitmproxy/net/test_tls.py 2 - index 489bf89f..c78472e3 100644 3 - --- a/test/mitmproxy/net/test_tls.py 4 - +++ b/test/mitmproxy/net/test_tls.py 5 - @@ -87,14 +87,16 @@ def test_get_client_hello(): 6 - rfile = io.BufferedReader(io.BytesIO( 7 - FULL_CLIENT_HELLO_NO_EXTENSIONS[:30] 8 - )) 9 - - with pytest.raises(exceptions.TlsProtocolException, message="Unexpected EOF"): 10 - + with pytest.raises(exceptions.TlsProtocolException): 11 - tls.get_client_hello(rfile) 12 - + pytest.fail("Unexpected EOF") 13 - 14 - rfile = io.BufferedReader(io.BytesIO( 15 - b"GET /" 16 - )) 17 - - with pytest.raises(exceptions.TlsProtocolException, message="Expected TLS record"): 18 - + with pytest.raises(exceptions.TlsProtocolException): 19 - tls.get_client_hello(rfile) 20 - + pytest.fail("Expected TLS record") 21 - 22 - 23 - class TestClientHello: 24 - @@ -153,5 +155,6 @@ class TestClientHello: 25 - b"\x01\x00\x00\x03" + # handshake header 26 - b"foo" 27 - )) 28 - - with pytest.raises(exceptions.TlsProtocolException, message='Cannot parse Client Hello'): 29 - + with pytest.raises(exceptions.TlsProtocolException): 30 - tls.ClientHello.from_file(rfile) 31 - + pytest.fail('Cannot parse Client Hello')
···
+2
pkgs/tools/networking/modem-manager/default.nix
··· 30 export G_TEST_DBUS_DAEMON="${dbus.daemon}/bin/dbus-daemon" 31 ''; 32 33 doCheck = true; 34 35 meta = with stdenv.lib; {
··· 30 export G_TEST_DBUS_DAEMON="${dbus.daemon}/bin/dbus-daemon" 31 ''; 32 33 + enableParallelBuilding = true; 34 + 35 doCheck = true; 36 37 meta = with stdenv.lib; {
+6 -13
pkgs/tools/networking/mu/default.nix
··· 5 6 stdenv.mkDerivation rec { 7 pname = "mu"; 8 - version = "1.2"; 9 10 src = fetchFromGitHub { 11 owner = "djcb"; 12 repo = "mu"; 13 rev = version; 14 - sha256 = "0yhjlj0z23jw3cf2wfnl98y8q6gikvmhkb8vdm87bd7jw0bdnrfz"; 15 }; 16 17 - # test-utils coredumps so don't run those 18 - postPatch = '' 19 - sed -i -e '/test-utils/d' lib/parser/Makefile.am 20 - ''; 21 - 22 buildInputs = [ 23 sqlite xapian glib gmime3 texinfo emacs guile libsoup icu 24 ] ++ stdenv.lib.optionals withMug [ gtk3 webkitgtk ]; ··· 27 28 enableParallelBuilding = true; 29 30 preBuild = '' 31 # Fix mu4e-builddir (set it to $out) 32 substituteInPlace mu4e/mu4e-meta.el.in \ 33 --replace "@abs_top_builddir@" "$out" 34 - 35 - # We install msg2pdf to bin/msg2pdf, fix its location in elisp 36 - substituteInPlace mu4e/mu4e-actions.el \ 37 - --replace "/toys/msg2pdf/" "/bin/" 38 ''; 39 40 - # Install mug and msg2pdf 41 postInstall = stdenv.lib.optionalString withMug '' 42 - for f in msg2pdf mug ; do 43 install -m755 toys/$f/$f $out/bin/$f 44 done 45 '';
··· 5 6 stdenv.mkDerivation rec { 7 pname = "mu"; 8 + version = "1.4.1"; 9 10 src = fetchFromGitHub { 11 owner = "djcb"; 12 repo = "mu"; 13 rev = version; 14 + sha256 = "0q2ik7fj5k9i76js4ijyxbgrwqff437lass0sd5if2r40rqh0as0"; 15 }; 16 17 buildInputs = [ 18 sqlite xapian glib gmime3 texinfo emacs guile libsoup icu 19 ] ++ stdenv.lib.optionals withMug [ gtk3 webkitgtk ]; ··· 22 23 enableParallelBuilding = true; 24 25 + preConfigure = "./autogen.sh"; 26 + 27 preBuild = '' 28 # Fix mu4e-builddir (set it to $out) 29 substituteInPlace mu4e/mu4e-meta.el.in \ 30 --replace "@abs_top_builddir@" "$out" 31 ''; 32 33 + # Install mug 34 postInstall = stdenv.lib.optionalString withMug '' 35 + for f in mug ; do 36 install -m755 toys/$f/$f $out/bin/$f 37 done 38 '';
+23
pkgs/tools/networking/rshijack/default.nix
···
··· 1 + { lib, fetchFromGitHub, rustPlatform }: 2 + 3 + rustPlatform.buildRustPackage rec { 4 + pname = "rshijack"; 5 + version = "0.3.0"; 6 + 7 + src = fetchFromGitHub { 8 + owner = "kpcyrd"; 9 + repo = pname; 10 + rev = "v${version}"; 11 + sha256 = "0y01hi3jpfawqlqs8ka0vwfhjw5j5gkhk2nz5m13ns2h27bw20v7"; 12 + }; 13 + 14 + cargoSha256 = "0l1kavacnjvi22l6pawgkqqxnjaizi3pddqkhwjshw4pzzixzvli"; 15 + 16 + meta = with lib; { 17 + description = "TCP connection hijacker"; 18 + homepage = "https://github.com/kpcyrd/rshijack"; 19 + license = licenses.gpl3; 20 + maintainers = with maintainers; [ xrelkd ]; 21 + platforms = platforms.linux; 22 + }; 23 + }
+27
pkgs/tools/networking/sniffglue/default.nix
···
··· 1 + { lib, fetchFromGitHub, rustPlatform, libpcap, libseccomp, pkgconfig }: 2 + 3 + rustPlatform.buildRustPackage rec { 4 + pname = "sniffglue"; 5 + version = "0.10.1"; 6 + 7 + src = fetchFromGitHub { 8 + owner = "kpcyrd"; 9 + repo = pname; 10 + rev = "v${version}"; 11 + sha256 = "0vyxlqwh90shihp80fk0plnkjix9i37n2dnypzyz6nx44xd5737s"; 12 + }; 13 + 14 + cargoSha256 = "162p3a696k281cygqpl6gg4makwk2v0g2jnf1gd108dnz4jya11l"; 15 + 16 + nativeBuildInputs = [ pkgconfig ]; 17 + 18 + buildInputs = [ libpcap libseccomp ]; 19 + 20 + meta = with lib; { 21 + description = "Secure multithreaded packet sniffer"; 22 + homepage = "https://github.com/kpcyrd/sniffglue"; 23 + license = licenses.gpl3; 24 + maintainers = with maintainers; [ xrelkd ]; 25 + platforms = platforms.linux; 26 + }; 27 + }
+2 -2
pkgs/tools/networking/wifite2/default.nix
··· 3 , hcxdumptool, pyrit, which }: 4 5 python3.pkgs.buildPythonApplication rec { 6 - version = "2.5.2"; 7 pname = "wifite2"; 8 9 src = fetchFromGitHub { 10 owner = "kimocoder"; 11 repo = "wifite2"; 12 rev = version; 13 - sha256 = "0hsb59d86szn27s3hynpzkp49rmw4g692vrl67nal7rfcdvpp8hb"; 14 }; 15 16 patches = [
··· 3 , hcxdumptool, pyrit, which }: 4 5 python3.pkgs.buildPythonApplication rec { 6 + version = "2.5.3"; 7 pname = "wifite2"; 8 9 src = fetchFromGitHub { 10 owner = "kimocoder"; 11 repo = "wifite2"; 12 rev = version; 13 + sha256 = "080hbjpbgdnzr6jkmg5cb8dvzxm57zpi4c9x0y92yy472vqll3ax"; 14 }; 15 16 patches = [
+4 -4
pkgs/tools/security/age/default.nix
··· 2 3 buildGoModule rec { 4 pname = "age"; 5 - version = "1.0.0-beta2"; 6 goPackagePath = "github.com/FiloSottile/age"; 7 - modSha256 = "0kwdwhkxgqjd8h1p7pm4h4xidp2vk840h1j4qya4qz8bjf9vskl9"; 8 9 subPackages = [ 10 "cmd/age" ··· 14 src = fetchFromGitHub { 15 owner = "FiloSottile"; 16 repo = "age"; 17 - rev = "v${version}"; 18 - sha256 = "1n1ww8yjw0mg00dvnfmggww9kwp1hls0a85iv6vx9k89mzv8mdrq"; 19 }; 20 21 meta = with lib; {
··· 2 3 buildGoModule rec { 4 pname = "age"; 5 + version = "unstable-2020-03-25"; 6 goPackagePath = "github.com/FiloSottile/age"; 7 + modSha256 = "00yhn1894ni8bvkqm1vr0rqkky52pkhvdzbi2sqx3czlgb5ibw3h"; 8 9 subPackages = [ 10 "cmd/age" ··· 14 src = fetchFromGitHub { 15 owner = "FiloSottile"; 16 repo = "age"; 17 + rev = "f0f8092d60bb96737fa096c29ec6d8adb5810390"; 18 + sha256 = "079kfc8d1pr39hr4qnx48kviyzwg4p8m4pz0bdkypns4aq8ppbfk"; 19 }; 20 21 meta = with lib; {
+32
pkgs/tools/security/sn0int/default.nix
···
··· 1 + { lib, fetchFromGitHub, rustPlatform, 2 + libsodium, libseccomp, sqlite, pkgconfig }: 3 + 4 + rustPlatform.buildRustPackage rec { 5 + pname = "sn0int"; 6 + version = "0.18.2"; 7 + 8 + src = fetchFromGitHub { 9 + owner = "kpcyrd"; 10 + repo = pname; 11 + rev = "v${version}"; 12 + sha256 = "0b21b0ryq03zrhqailg2iajirn30l358aj3k44lfnravr4h9zwkj"; 13 + }; 14 + 15 + cargoSha256 = "1pvn0sc325b5fh29m2l6cack4qfssa4lp3zhyb1qzkb3fmw3lgcy"; 16 + 17 + nativeBuildInputs = [ pkgconfig ]; 18 + 19 + buildInputs = [ libsodium libseccomp sqlite ]; 20 + 21 + # One of the dependencies (chrootable-https) tries to read "/etc/resolv.conf" 22 + # in "checkPhase", hence fails in sandbox of "nix". 23 + doCheck = false; 24 + 25 + meta = with lib; { 26 + description = "Semi-automatic OSINT framework and package manager"; 27 + homepage = "https://github.com/kpcyrd/sn0int"; 28 + license = licenses.gpl3; 29 + maintainers = with maintainers; [ xrelkd ]; 30 + platforms = platforms.linux; 31 + }; 32 + }
+3 -3
pkgs/tools/system/kmon/default.nix
··· 2 3 rustPlatform.buildRustPackage rec { 4 pname = "kmon"; 5 - version = "1.0.1"; 6 7 src = fetchFromGitHub { 8 owner = "orhun"; 9 repo = pname; 10 rev = "v${version}"; 11 - sha256 = "0kmkcs13cccmjjfbl25bs3m54zcjcs38fiv84q0vy09a4dnx3gn8"; 12 }; 13 14 - cargoSha256 = "0l1yq9k6lyk0ww1nzk93axylgrwipkmmqh9r6fq4a31wjlblrkkb"; 15 16 nativeBuildInputs = [ python3 ]; 17
··· 2 3 rustPlatform.buildRustPackage rec { 4 pname = "kmon"; 5 + version = "1.1.0"; 6 7 src = fetchFromGitHub { 8 owner = "orhun"; 9 repo = pname; 10 rev = "v${version}"; 11 + sha256 = "0lpwp5fzlf037bn03x1dldw8nfa5pyqi4qsqbscwn42idvs94mhx"; 12 }; 13 14 + cargoSha256 = "1g5k6dkv0zznh8q359n7sg9wf0gcix6m36pg9ql8wi5hnlsvg1s1"; 15 16 nativeBuildInputs = [ python3 ]; 17
+4 -5
pkgs/tools/system/plan9port/default.nix
··· 11 12 stdenv.mkDerivation { 13 pname = "plan9port"; 14 - version = "2019-02-25"; 15 16 src = fetchFromGitHub { 17 owner = "9fans"; 18 repo = "plan9port"; 19 - rev = "047fd921744f39a82a86d9370e03f7af511e6e84"; 20 - sha256 = "1lp17948q7vpl8rc2bf5a45bc8jqyj0s3zffmks9r25ai42vgb43"; 21 }; 22 23 patches = [ 24 - ./tmpdir.patch 25 ./darwin-sw_vers.patch 26 ./darwin-cfframework.patch 27 ]; ··· 90 license = licenses.lpl-102; 91 maintainers = with maintainers; [ AndersonTorres bbarker 92 ftrvxmtrx kovirobi ]; 93 - platforms = platforms.unix; 94 }; 95 } 96 # TODO: investigate the mouse chording support patch
··· 11 12 stdenv.mkDerivation { 13 pname = "plan9port"; 14 + version = "2020-01-08"; 15 16 src = fetchFromGitHub { 17 owner = "9fans"; 18 repo = "plan9port"; 19 + rev = "cc3d97d52a72d7eaceb5b636bcdf81c3e19f7a2e"; 20 + sha256 = "0gb55kj0gzx1kdhiwcrbr7xcgz1im21dyxgxhfhh6d0q9rw0c17g"; 21 }; 22 23 patches = [ 24 ./darwin-sw_vers.patch 25 ./darwin-cfframework.patch 26 ]; ··· 89 license = licenses.lpl-102; 90 maintainers = with maintainers; [ AndersonTorres bbarker 91 ftrvxmtrx kovirobi ]; 92 + platforms = remove "aarch64-linux" platforms.unix; 93 }; 94 } 95 # TODO: investigate the mouse chording support patch
-41
pkgs/tools/system/plan9port/tmpdir.patch
··· 1 - From c762625549ff367b54bcd8281d1ce248a69b4401 Mon Sep 17 00:00:00 2001 2 - From: Jason Felice <jason.m.felice@gmail.com> 3 - Date: Mon, 1 Jul 2019 15:01:21 -0400 4 - Subject: [PATCH] Use $TMPDIR if available 5 - 6 - NixOS sandboxed builds (at least on Mac) don't have access to /tmp, 7 - and this should be better POSIX. 8 - --- 9 - bin/9c | 2 +- 10 - bin/9l | 2 +- 11 - 2 files changed, 2 insertions(+), 2 deletions(-) 12 - 13 - diff --git a/bin/9c b/bin/9c 14 - index 3ffb716c..88c47887 100755 15 - --- a/bin/9c 16 - +++ b/bin/9c 17 - @@ -133,7 +133,7 @@ case "$tag" in 18 - esac 19 - 20 - # N.B. Must use temp file to avoid pipe; pipe loses status. 21 - -xtmp=/tmp/9c.$$.$USER.out 22 - +xtmp=${TMPDIR-/tmp}/9c.$$.$USER.out 23 - $cc -DPLAN9PORT -I$PLAN9/include $cflags "$@" 2>$xtmp 24 - status=$? 25 - quiet $xtmp 26 - diff --git a/bin/9l b/bin/9l 27 - index 6195815f..717a540a 100755 28 - --- a/bin/9l 29 - +++ b/bin/9l 30 - @@ -346,7 +346,7 @@ then 31 - echo $ld -L$PLAN9/lib "$@" $libsl $extralibs $frameworks 32 - fi 33 - 34 - -xtmp=/tmp/9l.$$.$USER.out 35 - +xtmp="${TMPDIR-/tmp}/9l.$$.$USER.out" 36 - xxout() { 37 - sed 's/.*: In function `[^:]*: *//' $xtmp | egrep . | 38 - egrep -v 'is (often|almost always) misused|is dangerous, better use|text-based stub' 39 - -- 40 - 2.21.0 41 -
···
+35
pkgs/tools/system/tuptime/default.nix
···
··· 1 + { stdenv, fetchFromGitHub, python3 }: 2 + 3 + stdenv.mkDerivation rec { 4 + pname = "tuptime"; 5 + version = "4.1.0"; 6 + 7 + src = fetchFromGitHub { 8 + owner = "rfrail3"; 9 + repo = "tuptime"; 10 + rev = version; 11 + sha256 = "0p5v1jp6bl0hjv04q3gh11q6dx9z0x61h6svcbvwp5ni0h1bkz1a"; 12 + }; 13 + 14 + buildInputs = [ python3 ]; 15 + 16 + installPhase = '' 17 + mkdir -p $out/bin 18 + install -m 755 src/tuptime $out/bin/ 19 + 20 + mkdir -p $out/share/man/man1 21 + cp src/man/tuptime.1 $out/share/man/man1/ 22 + 23 + # upstream only ships this, there are more scripts there... 24 + mkdir -p $out/usr/share/doc/tuptime/contrib 25 + cp misc/scripts/uptimed-to-tuptime.py $out/usr/share/doc/tuptime/contrib/ 26 + ''; 27 + 28 + meta = with stdenv.lib; { 29 + description = "Total uptime & downtime statistics utility"; 30 + homepage = "https://github.com/rfrail3/tuptime"; 31 + license = licenses.gpl2; 32 + platforms = platforms.all; 33 + maintainers = [ maintainers.evils ]; 34 + }; 35 + }
+9
pkgs/top-level/aliases.nix
··· 152 gettextWithExpat = gettext; # 2016-02-19 153 git-hub = gitAndTools.git-hub; # added 2016-04-29 154 glib_networking = glib-networking; # added 2018-02-25 155 gnome-mpv = celluloid; # added 2019-08-22 156 gnome15 = throw "gnome15 has been removed from nixpkgs, as it's unmaintained and depends on deprecated libraries."; # added 2019-12-10 157 gmic_krita_qt = gmic-qt-krita; # added 2019-09-07 ··· 215 keymon = throw "keymon has been removed from nixpkgs, as it's abandoned and archived."; # 2019-12-10 216 kvm = qemu_kvm; # added 2018-04-25 217 latinmodern-math = lmmath; 218 letsencrypt = certbot; # added 2016-05-16 219 libaudit = audit; # added 2018-04-25 220 libcanberra_gtk2 = libcanberra-gtk2; # added 2018-02-25 ··· 244 librecad2 = librecad; # backwards compatibility alias, added 2015-10 245 libsysfs = sysfsutils; # added 2018-04-25 246 libtidy = html-tidy; # added 2014-12-21 247 libudev = udev; # added 2018-04-25 248 libsexy = throw "libsexy has been removed from nixpkgs, as it's abandoned and no package needed it."; # 2019-12-10 249 links = links2; # added 2016-01-31 250 linux_rpi0 = linux_rpi1; 251 linuxPackages_rpi0 = linuxPackages_rpi1; 252 loadcaffe = throw "loadcaffe has been removed, as the upstream project has been abandoned"; # added 2020-03-28 253 lttngTools = lttng-tools; # added 2014-07-31 254 lttngUst = lttng-ust; # added 2014-07-31
··· 152 gettextWithExpat = gettext; # 2016-02-19 153 git-hub = gitAndTools.git-hub; # added 2016-04-29 154 glib_networking = glib-networking; # added 2018-02-25 155 + gmailieer = lieer; # added 2020-04-19 156 gnome-mpv = celluloid; # added 2019-08-22 157 gnome15 = throw "gnome15 has been removed from nixpkgs, as it's unmaintained and depends on deprecated libraries."; # added 2019-12-10 158 gmic_krita_qt = gmic-qt-krita; # added 2019-09-07 ··· 216 keymon = throw "keymon has been removed from nixpkgs, as it's abandoned and archived."; # 2019-12-10 217 kvm = qemu_kvm; # added 2018-04-25 218 latinmodern-math = lmmath; 219 + ldc2 = ldc; # added 2020-04-18 220 letsencrypt = certbot; # added 2016-05-16 221 libaudit = audit; # added 2018-04-25 222 libcanberra_gtk2 = libcanberra-gtk2; # added 2018-02-25 ··· 246 librecad2 = librecad; # backwards compatibility alias, added 2015-10 247 libsysfs = sysfsutils; # added 2018-04-25 248 libtidy = html-tidy; # added 2014-12-21 249 + libtxc_dxtn = throw "removed 2020-03-16, now integrated in Mesa"; 250 + libtxc_dxtn_s2tc = throw "removed 2020-03-16, now integrated in Mesa"; 251 libudev = udev; # added 2018-04-25 252 libsexy = throw "libsexy has been removed from nixpkgs, as it's abandoned and no package needed it."; # 2019-12-10 253 links = links2; # added 2016-01-31 254 linux_rpi0 = linux_rpi1; 255 linuxPackages_rpi0 = linuxPackages_rpi1; 256 + 257 + # added 2020-04-04 258 + linuxPackages_testing_hardened = throw "linuxPackages_testing_hardened has been removed, please use linuxPackages_latest_hardened"; 259 + linux_testing_hardened = throw "linux_testing_hardened has been removed, please use linux_latest_hardened"; 260 + 261 loadcaffe = throw "loadcaffe has been removed, as the upstream project has been abandoned"; # added 2020-03-28 262 lttngTools = lttng-tools; # added 2014-07-31 263 lttngUst = lttng-ust; # added 2014-07-31
+32 -16
pkgs/top-level/all-packages.nix
··· 510 511 _3llo = callPackage ../tools/misc/3llo { }; 512 513 _1password = callPackage ../applications/misc/1password { }; 514 515 _6tunnel = callPackage ../tools/networking/6tunnel { }; ··· 2140 socklog = callPackage ../tools/system/socklog { }; 2141 2142 stagit = callPackage ../development/tools/stagit { }; 2143 2144 step-ca = callPackage ../tools/security/step-ca { }; 2145 ··· 6343 6344 rrdtool = callPackage ../tools/misc/rrdtool { }; 6345 6346 rsibreak = libsForQt5.callPackage ../applications/misc/rsibreak { }; 6347 6348 rss2email = callPackage ../applications/networking/feedreaders/rss2email { ··· 6625 6626 smugline = python3Packages.smugline; 6627 6628 snabb = callPackage ../tools/networking/snabb { } ; 6629 6630 snapcast = callPackage ../applications/audio/snapcast { }; ··· 6632 sng = callPackage ../tools/graphics/sng { 6633 libpng = libpng12; 6634 }; 6635 6636 snort = callPackage ../applications/networking/ids/snort { }; 6637 ··· 7107 ipbt = callPackage ../tools/misc/ipbt { }; 7108 7109 tuir = callPackage ../applications/misc/tuir { }; 7110 7111 turses = callPackage ../applications/networking/instant-messengers/turses { }; 7112 ··· 9139 tinycc = callPackage ../development/compilers/tinycc { }; 9140 9141 tinygo = callPackage ../development/compilers/tinygo { 9142 - inherit (llvmPackages_9) llvm clang-unwrapped lld; 9143 avrgcc = pkgsCross.avr.buildPackages.gcc; 9144 }; 9145 ··· 12984 12985 libiptcdata = callPackage ../development/libraries/libiptcdata { }; 12986 12987 libjpeg_original = callPackage ../development/libraries/libjpeg { }; 12988 libjpeg_turbo = callPackage ../development/libraries/libjpeg-turbo { }; 12989 libjpeg_drop = callPackage ../development/libraries/libjpeg-drop { }; ··· 13265 libtgvoip = callPackage ../development/libraries/libtgvoip { }; 13266 13267 libtsm = callPackage ../development/libraries/libtsm { }; 13268 - 13269 - libtxc_dxtn = callPackage ../development/libraries/libtxc_dxtn { }; 13270 - 13271 - libtxc_dxtn_s2tc = callPackage ../development/libraries/libtxc_dxtn_s2tc { }; 13272 13273 libgeotiff = callPackage ../development/libraries/libgeotiff { }; 13274 ··· 15517 15518 home-assistant-cli = callPackage ../servers/home-assistant/cli.nix { }; 15519 15520 hydron = callPackage ../servers/hydron { }; 15521 15522 icingaweb2 = callPackage ../servers/icingaweb2 { }; ··· 16462 fxload = callPackage ../os-specific/linux/fxload { }; 16463 16464 gfxtablet = callPackage ../os-specific/linux/gfxtablet {}; 16465 - 16466 - gmailieer = callPackage ../applications/networking/gmailieer {}; 16467 16468 gmailctl = callPackage ../applications/networking/gmailctl {}; 16469 ··· 16571 16572 libnl = callPackage ../os-specific/linux/libnl { }; 16573 16574 linuxConsoleTools = callPackage ../os-specific/linux/consoletools { }; 16575 16576 openelec-dvb-firmware = callPackage ../os-specific/linux/firmware/openelec-dvb-firmware { }; ··· 16983 inherit stdenv; 16984 inherit (kernel) version; 16985 }; 16986 - kernelPatches = kernel.kernelPatches ++ [ kernelPatches.tag_hardened ]; 16987 modDirVersionArg = kernel.modDirVersion + "-hardened"; 16988 }); 16989 ··· 16992 16993 linuxPackages_latest_hardened = recurseIntoAttrs (hardenedLinuxPackagesFor pkgs.linux_latest); 16994 linux_latest_hardened = linuxPackages_latest_hardened.kernel; 16995 - 16996 - linuxPackages_testing_hardened = recurseIntoAttrs (hardenedLinuxPackagesFor pkgs.linux_testing); 16997 - linux_testing_hardened = linuxPackages_testing_hardened.kernel; 16998 16999 linuxPackages_xen_dom0_hardened = recurseIntoAttrs (hardenedLinuxPackagesFor (pkgs.linux.override { features.xen_dom0=true; })); 17000 ··· 18531 autopanosiftc = callPackage ../applications/graphics/autopanosiftc { }; 18532 18533 aesop = callPackage ../applications/office/aesop { }; 18534 18535 avidemux = libsForQt5.callPackage ../applications/video/avidemux { }; 18536 ··· 19846 hugo = callPackage ../applications/misc/hugo { }; 19847 19848 hydrogen = callPackage ../applications/audio/hydrogen { }; 19849 19850 hydroxide = callPackage ../applications/networking/hydroxide { }; 19851 ··· 21428 qtbitcointrader = libsForQt5.callPackage ../applications/misc/qtbitcointrader { }; 21429 21430 qtchan = libsForQt5.callPackage ../applications/networking/browsers/qtchan { }; 21431 21432 qtox = libsForQt5.callPackage ../applications/networking/instant-messengers/qtox { }; 21433 ··· 23603 23604 openclonk = callPackage ../games/openclonk { }; 23605 23606 - openjk = callPackage ../games/openjk { 23607 - # segfaults when built with gcc9 23608 - stdenv = gcc8Stdenv; 23609 - }; 23610 23611 openmw = libsForQt5.callPackage ../games/openmw { }; 23612 ··· 25834 25835 sanoid = callPackage ../tools/backup/sanoid { }; 25836 25837 - satysfi = callPackage ../tools/typesetting/satysfi { }; 25838 25839 sc-controller = pythonPackages.callPackage ../misc/drivers/sc-controller { 25840 inherit libusb1; # Shadow python.pkgs.libusb1.
··· 510 511 _3llo = callPackage ../tools/misc/3llo { }; 512 513 + _3mux = callPackage ../tools/misc/3mux { }; 514 + 515 _1password = callPackage ../applications/misc/1password { }; 516 517 _6tunnel = callPackage ../tools/networking/6tunnel { }; ··· 2142 socklog = callPackage ../tools/system/socklog { }; 2143 2144 stagit = callPackage ../development/tools/stagit { }; 2145 + 2146 + statserial = callPackage ../tools/misc/statserial { }; 2147 2148 step-ca = callPackage ../tools/security/step-ca { }; 2149 ··· 6347 6348 rrdtool = callPackage ../tools/misc/rrdtool { }; 6349 6350 + rshijack = callPackage ../tools/networking/rshijack { }; 6351 + 6352 rsibreak = libsForQt5.callPackage ../applications/misc/rsibreak { }; 6353 6354 rss2email = callPackage ../applications/networking/feedreaders/rss2email { ··· 6631 6632 smugline = python3Packages.smugline; 6633 6634 + sn0int = callPackage ../tools/security/sn0int { }; 6635 + 6636 snabb = callPackage ../tools/networking/snabb { } ; 6637 6638 snapcast = callPackage ../applications/audio/snapcast { }; ··· 6640 sng = callPackage ../tools/graphics/sng { 6641 libpng = libpng12; 6642 }; 6643 + 6644 + sniffglue = callPackage ../tools/networking/sniffglue { }; 6645 6646 snort = callPackage ../applications/networking/ids/snort { }; 6647 ··· 7117 ipbt = callPackage ../tools/misc/ipbt { }; 7118 7119 tuir = callPackage ../applications/misc/tuir { }; 7120 + 7121 + tuptime = callPackage ../tools/system/tuptime { }; 7122 7123 turses = callPackage ../applications/networking/instant-messengers/turses { }; 7124 ··· 9151 tinycc = callPackage ../development/compilers/tinycc { }; 9152 9153 tinygo = callPackage ../development/compilers/tinygo { 9154 + inherit (llvmPackages_10) llvm clang-unwrapped lld; 9155 avrgcc = pkgsCross.avr.buildPackages.gcc; 9156 }; 9157 ··· 12996 12997 libiptcdata = callPackage ../development/libraries/libiptcdata { }; 12998 12999 + libjcat = callPackage ../development/libraries/libjcat { }; 13000 + 13001 libjpeg_original = callPackage ../development/libraries/libjpeg { }; 13002 libjpeg_turbo = callPackage ../development/libraries/libjpeg-turbo { }; 13003 libjpeg_drop = callPackage ../development/libraries/libjpeg-drop { }; ··· 13279 libtgvoip = callPackage ../development/libraries/libtgvoip { }; 13280 13281 libtsm = callPackage ../development/libraries/libtsm { }; 13282 13283 libgeotiff = callPackage ../development/libraries/libgeotiff { }; 13284 ··· 15527 15528 home-assistant-cli = callPackage ../servers/home-assistant/cli.nix { }; 15529 15530 + https-dns-proxy = callPackage ../servers/dns/https-dns-proxy { }; 15531 + 15532 hydron = callPackage ../servers/hydron { }; 15533 15534 icingaweb2 = callPackage ../servers/icingaweb2 { }; ··· 16474 fxload = callPackage ../os-specific/linux/fxload { }; 16475 16476 gfxtablet = callPackage ../os-specific/linux/gfxtablet {}; 16477 16478 gmailctl = callPackage ../applications/networking/gmailctl {}; 16479 ··· 16581 16582 libnl = callPackage ../os-specific/linux/libnl { }; 16583 16584 + lieer = callPackage ../applications/networking/lieer {}; 16585 + 16586 linuxConsoleTools = callPackage ../os-specific/linux/consoletools { }; 16587 16588 openelec-dvb-firmware = callPackage ../os-specific/linux/firmware/openelec-dvb-firmware { }; ··· 16995 inherit stdenv; 16996 inherit (kernel) version; 16997 }; 16998 + kernelPatches = kernel.kernelPatches ++ [ 16999 + kernelPatches.tag_hardened 17000 + kernelPatches.hardened.${kernel.version} 17001 + ]; 17002 modDirVersionArg = kernel.modDirVersion + "-hardened"; 17003 }); 17004 ··· 17007 17008 linuxPackages_latest_hardened = recurseIntoAttrs (hardenedLinuxPackagesFor pkgs.linux_latest); 17009 linux_latest_hardened = linuxPackages_latest_hardened.kernel; 17010 17011 linuxPackages_xen_dom0_hardened = recurseIntoAttrs (hardenedLinuxPackagesFor (pkgs.linux.override { features.xen_dom0=true; })); 17012 ··· 18543 autopanosiftc = callPackage ../applications/graphics/autopanosiftc { }; 18544 18545 aesop = callPackage ../applications/office/aesop { }; 18546 + 18547 + AusweisApp2 = libsForQt5.callPackage ../applications/misc/ausweisapp2 { }; 18548 18549 avidemux = libsForQt5.callPackage ../applications/video/avidemux { }; 18550 ··· 19860 hugo = callPackage ../applications/misc/hugo { }; 19861 19862 hydrogen = callPackage ../applications/audio/hydrogen { }; 19863 + hydrogen-unstable = qt5.callPackage ../applications/audio/hydrogen/unstable.nix { }; 19864 19865 hydroxide = callPackage ../applications/networking/hydroxide { }; 19866 ··· 21443 qtbitcointrader = libsForQt5.callPackage ../applications/misc/qtbitcointrader { }; 21444 21445 qtchan = libsForQt5.callPackage ../applications/networking/browsers/qtchan { }; 21446 + 21447 + qtemu = libsForQt5.callPackage ../applications/virtualization/qtemu { }; 21448 21449 qtox = libsForQt5.callPackage ../applications/networking/instant-messengers/qtox { }; 21450 ··· 23620 23621 openclonk = callPackage ../games/openclonk { }; 23622 23623 + openjk = callPackage ../games/openjk { }; 23624 23625 openmw = libsForQt5.callPackage ../games/openmw { }; 23626 ··· 25848 25849 sanoid = callPackage ../tools/backup/sanoid { }; 25850 25851 + satysfi = callPackage ../tools/typesetting/satysfi { 25852 + ocamlPackages = ocaml-ng.ocamlPackages_4_07; 25853 + }; 25854 25855 sc-controller = pythonPackages.callPackage ../misc/drivers/sc-controller { 25856 inherit libusb1; # Shadow python.pkgs.libusb1.
+12 -7
pkgs/top-level/ocaml-packages.nix
··· 234 235 dune_2 = callPackage ../development/tools/ocaml/dune/2.nix { }; 236 237 dune-configurator = callPackage ../development/ocaml-modules/dune-configurator { }; 238 239 dune-private-libs = callPackage ../development/ocaml-modules/dune-private-libs { }; ··· 978 # Jane Street 979 980 janePackage = 981 - if lib.versionOlder "4.07" ocaml.version 982 then callPackage ../development/ocaml-modules/janestreet/janePackage_0_12.nix {} 983 else callPackage ../development/ocaml-modules/janestreet/janePackage.nix {}; 984 985 janeStreet = 986 - if lib.versionOlder "4.07" ocaml.version 987 then import ../development/ocaml-modules/janestreet/0.12.nix { 988 inherit ctypes janePackage num octavius ppxlib re; 989 inherit (pkgs) openssl; ··· 1231 else if lib.versionOlder "4.02" ocaml.version 1232 then callPackage ../development/ocaml-modules/janestreet/async.nix {} 1233 else async_p4; 1234 - 1235 - async_ssl = 1236 - if lib.versionOlder "4.03" ocaml.version 1237 - then janeStreet.async_ssl 1238 - else callPackage ../development/ocaml-modules/janestreet/async_ssl.nix { }; 1239 1240 # Apps / from all-packages 1241
··· 234 235 dune_2 = callPackage ../development/tools/ocaml/dune/2.nix { }; 236 237 + dune-build-info = callPackage ../development/ocaml-modules/dune-build-info { }; 238 + 239 dune-configurator = callPackage ../development/ocaml-modules/dune-configurator { }; 240 241 dune-private-libs = callPackage ../development/ocaml-modules/dune-private-libs { }; ··· 980 # Jane Street 981 982 janePackage = 983 + if lib.versionOlder "4.08" ocaml.version 984 + then callPackage ../development/ocaml-modules/janestreet/janePackage_0_13.nix {} 985 + else if lib.versionOlder "4.07" ocaml.version 986 then callPackage ../development/ocaml-modules/janestreet/janePackage_0_12.nix {} 987 else callPackage ../development/ocaml-modules/janestreet/janePackage.nix {}; 988 989 janeStreet = 990 + if lib.versionOlder "4.08" ocaml.version 991 + then import ../development/ocaml-modules/janestreet/0.13.nix { 992 + inherit ctypes janePackage num octavius re; 993 + inherit (pkgs) openssl; 994 + ppxlib = ppxlib.override { version = "0.12.0"; }; 995 + } 996 + else if lib.versionOlder "4.07" ocaml.version 997 then import ../development/ocaml-modules/janestreet/0.12.nix { 998 inherit ctypes janePackage num octavius ppxlib re; 999 inherit (pkgs) openssl; ··· 1241 else if lib.versionOlder "4.02" ocaml.version 1242 then callPackage ../development/ocaml-modules/janestreet/async.nix {} 1243 else async_p4; 1244 1245 # Apps / from all-packages 1246
+1 -1
pkgs/top-level/perl-packages.nix
··· 16811 sha256 = "f98a10c625640170cdda408cccc72bdd7f66f8ebe5f59dec1b96185171ef11d0"; 16812 }; 16813 meta = { 16814 - #homepage = http://web-cpan.berlios.de/modules/Statistics-Descriptive/; # berlios shut down; I found no replacement 16815 description = "Module of basic descriptive statistical functions"; 16816 license = with stdenv.lib.licenses; [ artistic1 gpl1Plus ]; 16817 };
··· 16811 sha256 = "f98a10c625640170cdda408cccc72bdd7f66f8ebe5f59dec1b96185171ef11d0"; 16812 }; 16813 meta = { 16814 + #homepage = "http://web-cpan.berlios.de/modules/Statistics-Descriptive/"; # berlios shut down; I found no replacement 16815 description = "Module of basic descriptive statistical functions"; 16816 license = with stdenv.lib.licenses; [ artistic1 gpl1Plus ]; 16817 };
+8 -1
pkgs/top-level/python-packages.nix
··· 1025 1026 pdfminer = callPackage ../development/python-modules/pdfminer_six { }; 1027 1028 pdftotext = callPackage ../development/python-modules/pdftotext { }; 1029 1030 pdfx = callPackage ../development/python-modules/pdfx { }; ··· 4376 4377 maya = callPackage ../development/python-modules/maya { }; 4378 4379 - mayavi = callPackage ../development/python-modules/mayavi { }; 4380 4381 mccabe = callPackage ../development/python-modules/mccabe { }; 4382 ··· 5035 ptable = callPackage ../development/python-modules/ptable { }; 5036 5037 publicsuffix = callPackage ../development/python-modules/publicsuffix {}; 5038 5039 py = callPackage ../development/python-modules/py { }; 5040
··· 1025 1026 pdfminer = callPackage ../development/python-modules/pdfminer_six { }; 1027 1028 + pdfposter = callPackage ../development/python-modules/pdfposter { }; 1029 + 1030 pdftotext = callPackage ../development/python-modules/pdftotext { }; 1031 1032 pdfx = callPackage ../development/python-modules/pdfx { }; ··· 4378 4379 maya = callPackage ../development/python-modules/maya { }; 4380 4381 + mayavi = pkgs.libsForQt5.callPackage ../development/python-modules/mayavi { 4382 + inherit buildPythonPackage isPy27 fetchPypi; 4383 + inherit (self) pyface pygments numpy vtk traitsui envisage apptools pyqt5; 4384 + }; 4385 4386 mccabe = callPackage ../development/python-modules/mccabe { }; 4387 ··· 5040 ptable = callPackage ../development/python-modules/ptable { }; 5041 5042 publicsuffix = callPackage ../development/python-modules/publicsuffix {}; 5043 + 5044 + publicsuffix2 = callPackage ../development/python-modules/publicsuffix2 {}; 5045 5046 py = callPackage ../development/python-modules/py { }; 5047