Merge master into staging-next

+4691 -2316
+2 -2
.github/CONTRIBUTING.md
··· 53 53 To [backport a change into a release branch](https://nixos.org/nixpkgs/manual/#submitting-changes-stable-release-branches): 54 54 55 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`. 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 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`. 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 59 60 60 ## Reviewing contributions 61 61
+2 -2
README.md
··· 45 45 system, [Hydra](https://hydra.nixos.org/). 46 46 47 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) 48 + * [Continuous package builds for the NixOS 20.03 release](https://hydra.nixos.org/jobset/nixos/release-20.03) 49 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) 50 + * [Tests for the NixOS 20.03 release](https://hydra.nixos.org/job/nixos/release-20.03/tested#tabs-constituents) 51 51 52 52 Artifacts successfully built with Hydra are published to cache at 53 53 https://cache.nixos.org/. When successful build and test criteria are
+1 -1
doc/builders/images/appimagetools.xml
··· 63 63 appimageTools.wrapType2 { # or wrapType1 64 64 name = "patchwork"; <co xml:id='ex-appimageTools-wrapping-1' /> 65 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; 66 + url = "https://github.com/ssbc/patchwork/releases/download/v3.11.4/Patchwork-3.11.4-linux-x86_64.AppImage"; 67 67 sha256 = "1blsprpkvm0ws9b96gb36f0rbf8f5jgmw4x6dsb1kswr4ysf591s"; 68 68 }; 69 69 extraPkgs = pkgs: with pkgs; [ ]; <co xml:id='ex-appimageTools-wrapping-3' />
+1 -1
doc/languages-frameworks/python.section.md
··· 412 412 413 413 meta = with lib; { 414 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; 415 + homepage = "http://hgomersall.github.com/pyFFTW"; 416 416 license = with licenses; [ bsd2 bsd3 ]; 417 417 maintainers = with maintainers; [ fridh ]; 418 418 };
+2 -2
doc/languages-frameworks/ruby.xml
··· 32 32 33 33 meta = with lib; { 34 34 description = "A monitoring framework that aims to be simple, malleable, and scalable"; 35 - homepage = http://sensuapp.org/; 35 + homepage = "http://sensuapp.org/"; 36 36 license = with licenses; mit; 37 37 maintainers = with maintainers; [ theuni ]; 38 38 platforms = platforms.unix; ··· 69 69 70 70 meta = with lib; { 71 71 description = "Tool and libraries for maintaining Ruby gems."; 72 - homepage = https://github.com/nyarly/corundum; 72 + homepage = "https://github.com/nyarly/corundum"; 73 73 license = licenses.mit; 74 74 maintainers = [ maintainers.nyarly ]; 75 75 platforms = platforms.unix;
-27
doc/languages-frameworks/texlive.xml
··· 149 149 ]]></programlisting> 150 150 </para> 151 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 152 </section>
+2 -2
doc/old/cross.txt
··· 60 60 name = "binutils-2.16.1-arm"; 61 61 builder = ./builder.sh; 62 62 src = fetchurl { 63 - url = http://ftp.nluug.nl/gnu/binutils/binutils-2.16.1.tar.bz2; 63 + url = "http://ftp.nluug.nl/gnu/binutils/binutils-2.16.1.tar.bz2"; 64 64 sha256 = "1ian3kwh2vg6hr3ymrv48s04gijs539vzrq62xr76bxbhbwnz2np"; 65 65 }; 66 66 inherit noSysDirs; ··· 84 84 name = "linux-headers-2.6.13.1-arm"; 85 85 builder = ./builder.sh; 86 86 src = fetchurl { 87 - url = http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.13.1.tar.bz2; 87 + url = "http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.13.1.tar.bz2"; 88 88 sha256 = "12qxmc827fjhaz53kjy7vyrzsaqcg78amiqsb3qm20z26w705lma"; 89 89 }; 90 90 }
+1 -1
doc/release-notes.xml
··· 190 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 191 <programlisting> 192 192 fetchurl { 193 - url = http://releases.mozilla.org/<replaceable>...</replaceable>/firefox-2.0.0.6-source.tar.bz2; 193 + url = "http://releases.mozilla.org/<replaceable>...</replaceable>/firefox-2.0.0.6-source.tar.bz2"; 194 194 sha1 = "eb72f55e4a8bf08e8c6ef227c0ade3d068ba1082"; 195 195 }</programlisting> 196 196 <function>fetchurl</function> will first try to download this file from <link
+1 -1
doc/stdenv/stdenv.xml
··· 14 14 stdenv.mkDerivation { 15 15 name = "libfoo-1.2.3"; 16 16 src = fetchurl { 17 - url = http://example.org/libfoo-1.2.3.tar.bz2; 17 + url = "http://example.org/libfoo-1.2.3.tar.bz2"; 18 18 sha256 = "0x2g1jqygyr5wiwg4ma1nd7w4ydpy82z9gkcv8vh2v8dn3y58v5m"; 19 19 }; 20 20 }</programlisting>
+20 -15
lib/licenses.nix
··· 2 2 let 3 3 4 4 spdx = lic: lic // { 5 - url = "http://spdx.org/licenses/${lic.spdxId}.html"; 5 + url = "https://spdx.org/licenses/${lic.spdxId}.html"; 6 6 }; 7 7 8 8 in ··· 40 40 41 41 amazonsl = { 42 42 fullName = "Amazon Software License"; 43 - url = "http://aws.amazon.com/asl/"; 43 + url = "https://aws.amazon.com/asl/"; 44 44 free = false; 45 45 }; 46 46 47 47 amd = { 48 48 fullName = "AMD License Agreement"; 49 - url = "http://developer.amd.com/amd-license-agreement/"; 49 + url = "https://developer.amd.com/amd-license-agreement/"; 50 50 free = false; 51 51 }; 52 52 ··· 230 230 231 231 eapl = { 232 232 fullName = "EPSON AVASYS PUBLIC LICENSE"; 233 - url = "http://avasys.jp/hp/menu000000700/hpg000000603.htm"; 233 + url = "https://avasys.jp/hp/menu000000700/hpg000000603.htm"; 234 234 free = false; 235 235 }; 236 236 ··· 271 271 fullName = "European Union Public License 1.1"; 272 272 }; 273 273 274 + eupl12 = spdx { 275 + spdxId = "EUPL-1.2"; 276 + fullName = "European Union Public License 1.2"; 277 + }; 278 + 274 279 fdl12 = spdx { 275 280 spdxId = "GFDL-1.2-only"; 276 281 fullName = "GNU Free Documentation License v1.2 only"; ··· 293 298 294 299 ffsl = { 295 300 fullName = "Floodgap Free Software License"; 296 - url = "http://www.floodgap.com/software/ffsl/license.html"; 301 + url = "https://www.floodgap.com/software/ffsl/license.html"; 297 302 free = false; 298 303 }; 299 304 ··· 370 375 # Intel's license, seems free 371 376 iasl = { 372 377 fullName = "iASL"; 373 - url = "http://www.calculate-linux.org/packages/licenses/iASL"; 378 + url = "https://old.calculate-linux.org/packages/licenses/iASL"; 374 379 }; 375 380 376 381 ijg = spdx { ··· 385 390 386 391 inria-compcert = { 387 392 fullName = "INRIA Non-Commercial License Agreement for the CompCert verified compiler"; 388 - url = "http://compcert.inria.fr/doc/LICENSE"; 393 + url = "http://compcert.inria.fr/doc/LICENSE"; # https is broken 389 394 free = false; 390 395 }; 391 396 392 397 inria-icesl = { 393 398 fullName = "INRIA Non-Commercial License Agreement for IceSL"; 394 - url = "http://shapeforge.loria.fr/icesl/EULA_IceSL_binary.pdf"; 399 + url = "http://shapeforge.loria.fr/icesl/EULA_IceSL_binary.pdf"; # https is broken 395 400 free = false; 396 401 }; 397 402 ··· 469 474 470 475 llgpl21 = { 471 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"; 472 - url = "http://opensource.franz.com/preamble.html"; 477 + url = "https://opensource.franz.com/preamble.html"; 473 478 }; 474 479 475 480 lppl12 = spdx { ··· 493 498 }; 494 499 495 500 # 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 501 + # for details see https://en.wikipedia.org/wiki/MIT_License#Various_versions 497 502 mit = spdx { 498 503 spdxId = "MIT"; 499 504 fullName = "MIT License"; ··· 596 601 psfl = spdx { 597 602 spdxId = "Python-2.0"; 598 603 fullName = "Python Software Foundation License version 2"; 599 - #url = http://docs.python.org/license.html; 604 + url = "https://docs.python.org/license.html"; 600 605 }; 601 606 602 607 publicDomain = { ··· 620 625 621 626 qwt = { 622 627 fullName = "Qwt License, Version 1.0"; 623 - url = "http://qwt.sourceforge.net/qwtlicense.html"; 628 + url = "https://qwt.sourceforge.io/qwtlicense.html"; 624 629 }; 625 630 626 631 ruby = spdx { ··· 646 651 smail = { 647 652 shortName = "smail"; 648 653 fullName = "SMAIL General Public License"; 649 - url = "http://metadata.ftp-master.debian.org/changelogs/main/d/debianutils/debianutils_4.8.1_copyright"; 654 + url = "https://sources.debian.org/copyright/license/debianutils/4.9.1/"; 650 655 }; 651 656 652 657 sspl = { ··· 663 668 664 669 ufl = { 665 670 fullName = "Ubuntu Font License 1.0"; 666 - url = "http://font.ubuntu.com/ufl/ubuntu-font-licence-1.0.txt"; 671 + url = "https://ubuntu.com/legal/font-licence"; 667 672 }; 668 673 669 674 unfree = { ··· 740 745 741 746 xfig = { 742 747 fullName = "xfig"; 743 - url = "http://mcj.sourceforge.net/authors.html#xfig"; 748 + url = "http://mcj.sourceforge.net/authors.html#xfig"; # https is broken 744 749 }; 745 750 746 751 zlib = spdx {
+6
maintainers/maintainer-list.nix
··· 7816 7816 githubId = 563054; 7817 7817 name = "Thomas Tuegel"; 7818 7818 }; 7819 + turion = { 7820 + email = "programming@manuelbaerenz.de"; 7821 + github = "turion"; 7822 + githubId = 303489; 7823 + name = "Manuel Bärenz"; 7824 + }; 7819 7825 tv = { 7820 7826 email = "tv@krebsco.de"; 7821 7827 github = "4z3";
+8 -8
nixos/doc/manual/installation/upgrading.xml
··· 14 14 <para> 15 15 <emphasis>Stable channels</emphasis>, such as 16 16 <literal 17 - xlink:href="https://nixos.org/channels/nixos-19.09">nixos-19.09</literal>. 17 + xlink:href="https://nixos.org/channels/nixos-20.03">nixos-20.03</literal>. 18 18 These only get conservative bug fixes and package upgrades. For instance, 19 19 a channel update may cause the Linux kernel on your system to be upgraded 20 20 from 4.19.34 to 4.19.38 (a minor bug fix), but not from ··· 38 38 <para> 39 39 <emphasis>Small channels</emphasis>, such as 40 40 <literal 41 - xlink:href="https://nixos.org/channels/nixos-19.09-small">nixos-19.09-small</literal> 41 + xlink:href="https://nixos.org/channels/nixos-20.03-small">nixos-20.03-small</literal> 42 42 or 43 43 <literal 44 44 xlink:href="https://nixos.org/channels/nixos-unstable-small">nixos-unstable-small</literal>. ··· 63 63 <para> 64 64 When you first install NixOS, you’re automatically subscribed to the NixOS 65 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 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 68 subscribed to, run the following as root: 69 69 <screen> 70 70 # nix-channel --list | grep nixos ··· 75 75 # nix-channel --add https://nixos.org/channels/<replaceable>channel-name</replaceable> nixos 76 76 </screen> 77 77 (Be sure to include the <literal>nixos</literal> parameter at the end.) For 78 - instance, to use the NixOS 19.09 stable channel: 78 + instance, to use the NixOS 20.03 stable channel: 79 79 <screen> 80 - # nix-channel --add https://nixos.org/channels/nixos-19.09 nixos 80 + # nix-channel --add https://nixos.org/channels/nixos-20.03 nixos 81 81 </screen> 82 82 If you have a server, you may want to use the “small” channel instead: 83 83 <screen> 84 - # nix-channel --add https://nixos.org/channels/nixos-19.09-small nixos 84 + # nix-channel --add https://nixos.org/channels/nixos-20.03-small nixos 85 85 </screen> 86 86 And if you want to live on the bleeding edge: 87 87 <screen> ··· 132 132 kernel, initrd or kernel modules. 133 133 You can also specify a channel explicitly, e.g. 134 134 <programlisting> 135 - <xref linkend="opt-system.autoUpgrade.channel"/> = https://nixos.org/channels/nixos-19.09; 135 + <xref linkend="opt-system.autoUpgrade.channel"/> = https://nixos.org/channels/nixos-20.03; 136 136 </programlisting> 137 137 </para> 138 138 </section>
+1 -1
nixos/doc/manual/release-notes/rl-2003.xml
··· 3 3 xmlns:xi="http://www.w3.org/2001/XInclude" 4 4 version="5.0" 5 5 xml:id="sec-release-20.03"> 6 - <title>Release 20.03 (“Markhor”, 2020.03/??)</title> 6 + <title>Release 20.03 (“Markhor”, 2020.04/20)</title> 7 7 8 8 <section xmlns="http://docbook.org/ns/docbook" 9 9 xmlns:xlink="http://www.w3.org/1999/xlink"
+1
nixos/doc/manual/release-notes/rl-2009.xml
··· 255 255 # sudo /run/current-system/fine-tune/child-1/bin/switch-to-configuration test 256 256 </programlisting> 257 257 </para> 258 + </listitem> 258 259 </itemizedlist> 259 260 </section> 260 261
+5 -21
nixos/modules/hardware/opengl.nix
··· 10 10 11 11 videoDrivers = config.services.xserver.videoDrivers; 12 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 13 package = pkgs.buildEnv { 22 14 name = "opengl-drivers"; 23 15 paths = [ cfg.package ] ++ cfg.extraPackages; ··· 34 26 35 27 imports = [ 36 28 (mkRenamedOptionModule [ "services" "xserver" "vaapiDrivers" ] [ "hardware" "opengl" "extraPackages" ]) 29 + (mkRemovedOptionModule [ "hardware" "opengl" "s3tcSupport" ] '' 30 + S3TC support is now always enabled in Mesa. 31 + '') 37 32 ]; 38 33 39 34 options = { ··· 71 66 supported for the <literal>nvidia</literal> and 72 67 <literal>ati_unfree</literal> drivers, as well as 73 68 <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 69 ''; 86 70 }; 87 71 ··· 166 150 environment.sessionVariables.LD_LIBRARY_PATH = mkIf cfg.setLdLibraryPath 167 151 ([ "/run/opengl-driver/lib" ] ++ optional cfg.driSupport32Bit "/run/opengl-driver-32/lib"); 168 152 169 - hardware.opengl.package = mkDefault (makePackage pkgs); 170 - hardware.opengl.package32 = mkDefault (makePackage pkgs.pkgsi686Linux); 153 + hardware.opengl.package = mkDefault pkgs.mesa.drivers; 154 + hardware.opengl.package32 = mkDefault pkgs.pkgsi686Linux.mesa.drivers; 171 155 172 156 boot.extraModulePackages = optional (elem "virtualbox" videoDrivers) kernelPackages.virtualboxGuestAdditions; 173 157 };
+4 -4
nixos/modules/installer/tools/nixos-generate-config.pl
··· 180 180 ) ) 181 181 { 182 182 # we need e.g. brcmfmac43602-pcie.bin 183 - push @imports, "<nixpkgs/nixos/modules/hardware/network/broadcom-43xx.nix>"; 183 + push @imports, "(modulesPath + \"/hardware/network/broadcom-43xx.nix\")"; 184 184 } 185 185 186 186 # Can't rely on $module here, since the module may not be loaded ··· 279 279 280 280 # Likewise for QEMU. 281 281 if ($virt eq "qemu" || $virt eq "kvm" || $virt eq "bochs") { 282 - push @imports, "<nixpkgs/nixos/modules/profiles/qemu-guest.nix>"; 282 + push @imports, "(modulesPath + \"/profiles/qemu-guest.nix\")"; 283 283 } 284 284 285 285 # Also for Hyper-V. ··· 296 296 297 297 # Provide firmware for devices that are not detected by this script, 298 298 # unless we're in a VM/container. 299 - push @imports, "<nixpkgs/nixos/modules/installer/scan/not-detected.nix>" 299 + push @imports, "(modulesPath + \"/installer/scan/not-detected.nix\")" 300 300 if $virt eq "none"; 301 301 302 302 ··· 549 549 # Do not modify this file! It was generated by ‘nixos-generate-config’ 550 550 # and may be overwritten by future invocations. Please make changes 551 551 # to /etc/nixos/configuration.nix instead. 552 - { config, lib, pkgs, ... }: 552 + { config, lib, pkgs, modulesPath, ... }: 553 553 554 554 { 555 555 imports =${\multiLineList(" ", @imports)};
+1
nixos/modules/module-list.nix
··· 546 546 ./services/monitoring/teamviewer.nix 547 547 ./services/monitoring/telegraf.nix 548 548 ./services/monitoring/thanos.nix 549 + ./services/monitoring/tuptime.nix 549 550 ./services/monitoring/ups.nix 550 551 ./services/monitoring/uptime.nix 551 552 ./services/monitoring/vnstat.nix
+1 -38
nixos/modules/profiles/hardened.nix
··· 7 7 8 8 { 9 9 meta = { 10 - maintainers = [ maintainers.joachifm ]; 10 + maintainers = [ maintainers.joachifm maintainers.emily ]; 11 11 }; 12 12 13 13 boot.kernelPackages = mkDefault pkgs.linuxPackages_hardened; ··· 21 21 22 22 security.lockKernelModules = mkDefault true; 23 23 24 - security.allowUserNamespaces = mkDefault false; 25 - 26 24 security.protectKernelImage = mkDefault true; 27 25 28 26 security.allowSimultaneousMultithreading = mkDefault false; ··· 37 35 # Slab/slub sanity checks, redzoning, and poisoning 38 36 "slub_debug=FZP" 39 37 40 - # Disable slab merging to make certain heap overflow attacks harder 41 - "slab_nomerge" 42 - 43 38 # Overwrite free'd memory 44 39 "page_poison=1" 45 - 46 - # Disable legacy virtual syscalls 47 - "vsyscall=none" 48 40 49 41 # Enable page allocator randomization 50 42 "page_alloc.shuffle=1" ··· 82 74 # (e.g., parent/child) 83 75 boot.kernel.sysctl."kernel.yama.ptrace_scope" = mkOverride 500 1; 84 76 85 - # Restrict access to kernel ring buffer (information leaks) 86 - boot.kernel.sysctl."kernel.dmesg_restrict" = mkDefault true; 87 - 88 77 # Hide kptrs even for processes with CAP_SYSLOG 89 78 boot.kernel.sysctl."kernel.kptr_restrict" = mkOverride 500 2; 90 79 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 80 # Disable bpf() JIT (to eliminate spray attacks) 96 81 boot.kernel.sysctl."net.core.bpf_jit_enable" = mkDefault false; 97 82 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 83 # Disable ftrace debugging 118 84 boot.kernel.sysctl."kernel.ftrace_enabled" = mkDefault false; 119 85 ··· 140 106 # Ignore outgoing ICMP redirects (this is ipv4 only) 141 107 boot.kernel.sysctl."net.ipv4.conf.all.send_redirects" = mkDefault false; 142 108 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 109 }
+6 -1
nixos/modules/security/acme.nix
··· 343 343 344 344 # Test that existing cert is older than new cert 345 345 KEY=${spath}/certificates/${keyName}.key 346 + KEY_CHANGED=no 346 347 if [ -e $KEY -a $KEY -nt key.pem ]; then 348 + KEY_CHANGED=yes 347 349 cp -p ${spath}/certificates/${keyName}.key key.pem 348 350 cp -p ${spath}/certificates/${keyName}.crt fullchain.pem 349 351 cp -p ${spath}/certificates/${keyName}.issuer.crt chain.pem ··· 354 356 chmod ${fileMode} *.pem 355 357 chown '${data.user}:${data.group}' *.pem 356 358 357 - ${data.postRun} 359 + if [ "$KEY_CHANGED" = "yes" ]; then 360 + : # noop in case postRun is empty 361 + ${data.postRun} 362 + fi 358 363 ''; 359 364 in 360 365 "+${script}";
+1 -1
nixos/modules/services/databases/cockroachdb.nix
··· 153 153 defaultText = "pkgs.cockroachdb"; 154 154 description = '' 155 155 The CockroachDB derivation to use for running the service. 156 - 156 + 157 157 This would primarily be useful to enable Enterprise Edition features 158 158 in your own custom CockroachDB build (Nixpkgs CockroachDB binaries 159 159 only contain open source features and open source code).
+2
nixos/modules/services/mail/rss2email.nix
··· 91 91 }; 92 92 }; 93 93 94 + environment.systemPackages = with pkgs; [ rss2email ]; 95 + 94 96 services.rss2email.config.to = cfg.to; 95 97 96 98 systemd.tmpfiles.rules = [
+2 -2
nixos/modules/services/misc/redmine.nix
··· 132 132 example = literalExample '' 133 133 { 134 134 dkuk-redmine_alex_skin = builtins.fetchurl { 135 - url = https://bitbucket.org/dkuk/redmine_alex_skin/get/1842ef675ef3.zip; 135 + url = "https://bitbucket.org/dkuk/redmine_alex_skin/get/1842ef675ef3.zip"; 136 136 sha256 = "0hrin9lzyi50k4w2bd2b30vrf1i4fi1c0gyas5801wn8i7kpm9yl"; 137 137 }; 138 138 } ··· 146 146 example = literalExample '' 147 147 { 148 148 redmine_env_auth = builtins.fetchurl { 149 - url = https://github.com/Intera/redmine_env_auth/archive/0.6.zip; 149 + url = "https://github.com/Intera/redmine_env_auth/archive/0.6.zip"; 150 150 sha256 = "0yyr1yjd8gvvh832wdc8m3xfnhhxzk2pk3gm2psg5w9jdvd6skak"; 151 151 }; 152 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 92 93 93 systemd.services.systemd-timedated.environment = { SYSTEMD_TIMEDATED_NTP_SERVICES = "chronyd.service"; }; 94 94 95 + systemd.tmpfiles.rules = [ 96 + "d ${stateDir} 0755 chrony chrony - -" 97 + "f ${keyFile} 0640 chrony chrony -" 98 + ]; 99 + 95 100 systemd.services.chronyd = 96 101 { description = "chrony NTP daemon"; 97 102 ··· 103 108 104 109 path = [ pkgs.chrony ]; 105 110 106 - preStart = '' 107 - mkdir -m 0755 -p ${stateDir} 108 - touch ${keyFile} 109 - chmod 0640 ${keyFile} 110 - chown chrony:chrony ${stateDir} ${keyFile} 111 - ''; 112 - 113 111 unitConfig.ConditionCapability = "CAP_SYS_TIME"; 114 112 serviceConfig = 115 113 { Type = "simple"; ··· 118 116 ProtectHome = "yes"; 119 117 ProtectSystem = "full"; 120 118 PrivateTmp = "yes"; 121 - 119 + StateDirectory = "chrony"; 122 120 }; 123 121 124 122 };
+1 -1
nixos/modules/services/security/bitwarden_rs/default.nix
··· 58 58 default = {}; 59 59 example = literalExample '' 60 60 { 61 - domain = https://bw.domain.tld:8443; 61 + domain = "https://bw.domain.tld:8443"; 62 62 signupsAllowed = true; 63 63 rocketPort = 8222; 64 64 rocketLog = "critical";
+304 -188
nixos/modules/services/web-apps/dokuwiki.nix
··· 3 3 let 4 4 5 5 inherit (lib) mkEnableOption mkForce mkIf mkMerge mkOption optionalAttrs recursiveUpdate types; 6 + inherit (lib) concatMapStringsSep flatten mapAttrs mapAttrs' mapAttrsToList nameValuePair concatMapStringSep; 6 7 7 - cfg = config.services.dokuwiki; 8 + eachSite = config.services.dokuwiki; 8 9 9 - user = config.services.nginx.user; 10 + user = "dokuwiki"; 10 11 group = config.services.nginx.group; 11 12 12 - dokuwikiAclAuthConfig = pkgs.writeText "acl.auth.php" '' 13 + dokuwikiAclAuthConfig = cfg: pkgs.writeText "acl.auth.php" '' 13 14 # acl.auth.php 14 15 # <?php exit()?> 15 16 # ··· 18 19 ${toString cfg.acl} 19 20 ''; 20 21 21 - dokuwikiLocalConfig = pkgs.writeText "local.php" '' 22 + dokuwikiLocalConfig = cfg: pkgs.writeText "local.php" '' 22 23 <?php 23 24 $conf['savedir'] = '${cfg.stateDir}'; 24 25 $conf['superuser'] = '${toString cfg.superUser}'; 25 26 $conf['useacl'] = '${toString cfg.aclUse}'; 27 + $conf['disableactions'] = '${cfg.disableActions}'; 26 28 ${toString cfg.extraConfig} 27 29 ''; 28 30 29 - dokuwikiPluginsLocalConfig = pkgs.writeText "plugins.local.php" '' 31 + dokuwikiPluginsLocalConfig = cfg: pkgs.writeText "plugins.local.php" '' 30 32 <?php 31 33 ${cfg.pluginsConfig} 32 34 ''; 33 35 34 - in 35 - { 36 - options.services.dokuwiki = { 37 - enable = mkEnableOption "DokuWiki web application."; 36 + pkg = hostName: cfg: pkgs.stdenv.mkDerivation rec { 37 + pname = "dokuwiki-${hostName}"; 38 + version = src.version; 39 + src = cfg.package; 38 40 39 - hostName = mkOption { 40 - type = types.str; 41 - default = "localhost"; 42 - description = "FQDN for the instance."; 43 - }; 41 + installPhase = '' 42 + mkdir -p $out 43 + cp -r * $out/ 44 44 45 - stateDir = mkOption { 46 - type = types.path; 47 - default = "/var/lib/dokuwiki/data"; 48 - description = "Location of the dokuwiki state directory."; 49 - }; 45 + # symlink the dokuwiki config 46 + ln -s ${dokuwikiLocalConfig cfg} $out/share/dokuwiki/local.php 50 47 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 - }; 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 + }; 61 59 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 - }; 60 + siteOpts = { config, lib, name, ...}: { 61 + options = { 62 + enable = mkEnableOption "DokuWiki web application."; 72 63 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 - }; 64 + package = mkOption { 65 + type = types.package; 66 + default = pkgs.dokuwiki; 67 + description = "Which dokuwiki package to use."; 68 + }; 82 69 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 - }; 70 + hostName = mkOption { 71 + type = types.str; 72 + default = "localhost"; 73 + description = "FQDN for the instance."; 74 + }; 95 75 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 - }; 76 + stateDir = mkOption { 77 + type = types.path; 78 + default = "/var/lib/dokuwiki/${name}/data"; 79 + description = "Location of the dokuwiki state directory."; 80 + }; 105 81 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"/> 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. 114 93 ''; 115 - }; 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 + }; 116 107 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 - }; 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 + }; 130 140 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; 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"; 140 151 }; 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 152 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; 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 + ''; 163 162 }; 164 - description = '' 165 - With this option, you can customize the nginx virtualHost which already has sensible defaults for DokuWiki. 166 - ''; 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."; 167 280 }; 168 281 }; 169 282 170 283 # implementation 171 284 172 - config = mkIf cfg.enable { 285 + config = mkIf (eachSite != {}) { 173 286 174 - warnings = mkIf (cfg.superUser == null) ["Not setting services.dokuwiki.superUser will impair your ability to administer DokuWiki"]; 287 + warnings = mapAttrsToList (hostName: cfg: mkIf (cfg.superUser == null) "Not setting services.dokuwiki.${hostName} superUser will impair your ability to administer DokuWiki") eachSite; 175 288 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 - ]; 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); 186 299 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 - }; 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; 205 319 206 320 services.nginx = { 207 321 enable = true; 208 - 209 - virtualHosts = { 210 - ${cfg.hostName} = mkMerge [ cfg.nginx { 211 - root = mkForce "${pkgs.dokuwiki}/share/dokuwiki/"; 212 - extraConfig = "fastcgi_param HTTPS on;"; 322 + virtualHosts = mapAttrs (hostName: cfg: mkMerge [ cfg.nginx { 323 + root = mkForce "${pkg hostName cfg}/share/dokuwiki"; 324 + extraConfig = "fastcgi_param HTTPS on;"; 213 325 214 - locations."~ /(conf/|bin/|inc/|install.php)" = { 215 - extraConfig = "deny all;"; 216 - }; 326 + locations."~ /(conf/|bin/|inc/|install.php)" = { 327 + extraConfig = "deny all;"; 328 + }; 217 329 218 - locations."~ ^/data/" = { 219 - root = "${cfg.stateDir}"; 220 - extraConfig = "internal;"; 221 - }; 330 + locations."~ ^/data/" = { 331 + root = "${cfg.stateDir}"; 332 + extraConfig = "internal;"; 333 + }; 222 334 223 - locations."~ ^/lib.*\.(js|css|gif|png|ico|jpg|jpeg)$" = { 224 - extraConfig = "expires 365d;"; 225 - }; 335 + locations."~ ^/lib.*\.(js|css|gif|png|ico|jpg|jpeg)$" = { 336 + extraConfig = "expires 365d;"; 337 + }; 226 338 227 - locations."/" = { 228 - priority = 1; 229 - index = "doku.php"; 230 - extraConfig = ''try_files $uri $uri/ @dokuwiki;''; 231 - }; 339 + locations."/" = { 340 + priority = 1; 341 + index = "doku.php"; 342 + extraConfig = ''try_files $uri $uri/ @dokuwiki;''; 343 + }; 232 344 233 - locations."@dokuwiki" = { 234 - extraConfig = '' 345 + locations."@dokuwiki" = { 346 + extraConfig = '' 235 347 # rewrites "doku.php/" out of the URLs if you set the userwrite setting to .htaccess in dokuwiki config page 236 348 rewrite ^/_media/(.*) /lib/exe/fetch.php?media=$1 last; 237 349 rewrite ^/_detail/(.*) /lib/exe/detail.php?media=$1 last; 238 350 rewrite ^/_export/([^/]+)/(.*) /doku.php?do=export_$1&id=$2 last; 239 351 rewrite ^/(.*) /doku.php?id=$1&$args last; 240 - ''; 241 - }; 352 + ''; 353 + }; 242 354 243 - locations."~ \.php$" = { 244 - extraConfig = '' 355 + locations."~ \.php$" = { 356 + extraConfig = '' 245 357 try_files $uri $uri/ /doku.php; 246 358 include ${pkgs.nginx}/conf/fastcgi_params; 247 359 fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; 248 360 fastcgi_param REDIRECT_STATUS 200; 249 - fastcgi_pass unix:${config.services.phpfpm.pools.dokuwiki.socket}; 361 + fastcgi_pass unix:${config.services.phpfpm.pools."dokuwiki-${hostName}".socket}; 250 362 fastcgi_param HTTPS on; 251 - ''; 252 - }; 253 - }]; 254 - }; 255 - 363 + ''; 364 + }; 365 + }]) eachSite; 256 366 }; 257 367 258 - systemd.tmpfiles.rules = [ 368 + systemd.tmpfiles.rules = flatten (mapAttrsToList (hostName: cfg: [ 259 369 "d ${cfg.stateDir}/attic 0750 ${user} ${group} - -" 260 370 "d ${cfg.stateDir}/cache 0750 ${user} ${group} - -" 261 371 "d ${cfg.stateDir}/index 0750 ${user} ${group} - -" ··· 266 376 "d ${cfg.stateDir}/meta 0750 ${user} ${group} - -" 267 377 "d ${cfg.stateDir}/pages 0750 ${user} ${group} - -" 268 378 "d ${cfg.stateDir}/tmp 0750 ${user} ${group} - -" 269 - ]; 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); 270 382 383 + users.users.${user} = { 384 + group = group; 385 + isSystemUser = true; 386 + }; 271 387 }; 272 388 }
+2 -2
nixos/modules/services/web-apps/wordpress.nix
··· 105 105 name = "embed-pdf-viewer-plugin"; 106 106 # Download the theme from the wordpress site 107 107 src = pkgs.fetchurl { 108 - url = https://downloads.wordpress.org/plugin/embed-pdf-viewer.2.0.3.zip; 108 + url = "https://downloads.wordpress.org/plugin/embed-pdf-viewer.2.0.3.zip"; 109 109 sha256 = "1rhba5h5fjlhy8p05zf0p14c9iagfh96y91r36ni0rmk6y891lyd"; 110 110 }; 111 111 # We need unzip to build this package ··· 132 132 name = "responsive-theme"; 133 133 # Download the theme from the wordpress site 134 134 src = pkgs.fetchurl { 135 - url = https://downloads.wordpress.org/theme/responsive.3.14.zip; 135 + url = "https://downloads.wordpress.org/theme/responsive.3.14.zip"; 136 136 sha256 = "0rjwm811f4aa4q43r77zxlpklyb85q08f9c8ns2akcarrvj5ydx3"; 137 137 }; 138 138 # We need unzip to build this package
+7 -7
nixos/modules/system/boot/systemd.nix
··· 894 894 "sysctl.d/50-coredump.conf".source = "${systemd}/example/sysctl.d/50-coredump.conf"; 895 895 "sysctl.d/50-default.conf".source = "${systemd}/example/sysctl.d/50-default.conf"; 896 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 + 897 904 "tmpfiles.d/home.conf".source = "${systemd}/example/tmpfiles.d/home.conf"; 898 905 "tmpfiles.d/journal-nocow.conf".source = "${systemd}/example/tmpfiles.d/journal-nocow.conf"; 899 906 "tmpfiles.d/portables.conf".source = "${systemd}/example/tmpfiles.d/portables.conf"; ··· 905 912 "tmpfiles.d/tmp.conf".source = "${systemd}/example/tmpfiles.d/tmp.conf"; 906 913 "tmpfiles.d/var.conf".source = "${systemd}/example/tmpfiles.d/var.conf"; 907 914 "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 915 916 916 "systemd/system-generators" = { source = hooks "generators" cfg.generators; }; 917 917 "systemd/system-shutdown" = { source = hooks "shutdown" cfg.shutdown; };
+16 -2
nixos/modules/virtualisation/containers.nix
··· 463 463 A specification of the desired configuration of this 464 464 container, as a NixOS module. 465 465 ''; 466 - type = lib.mkOptionType { 466 + type = let 467 + confPkgs = if config.pkgs == null then pkgs else config.pkgs; 468 + in lib.mkOptionType { 467 469 name = "Toplevel NixOS config"; 468 - merge = loc: defs: (import ../../lib/eval-config.nix { 470 + merge = loc: defs: (import (confPkgs.path + "/nixos/lib/eval-config.nix") { 469 471 inherit system; 472 + pkgs = confPkgs; 473 + baseModules = import (confPkgs.path + "/nixos/modules/module-list.nix"); 474 + inherit (confPkgs) lib; 470 475 modules = 471 476 let 472 477 extraConfig = { ··· 512 517 Grant additional capabilities to the container. See the 513 518 capabilities(7) and systemd-nspawn(1) man pages for more 514 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. 515 529 ''; 516 530 }; 517 531
+3
nixos/release-combined.nix
··· 75 75 (onFullSupported "nixos.tests.fontconfig-default-fonts") 76 76 (onFullSupported "nixos.tests.gnome3") 77 77 (onFullSupported "nixos.tests.gnome3-xorg") 78 + (onFullSupported "nixos.tests.hardened") 78 79 (onSystems ["x86_64-linux"] "nixos.tests.hibernate") 79 80 (onFullSupported "nixos.tests.i3wm") 80 81 (onSystems ["x86_64-linux"] "nixos.tests.installer.btrfsSimple") ··· 96 97 (onFullSupported "nixos.tests.keymap.dvp") 97 98 (onFullSupported "nixos.tests.keymap.neo") 98 99 (onFullSupported "nixos.tests.keymap.qwertz") 100 + (onFullSupported "nixos.tests.latestKernel.hardened") 101 + (onFullSupported "nixos.tests.latestKernel.login") 99 102 (onFullSupported "nixos.tests.lightdm") 100 103 (onFullSupported "nixos.tests.login") 101 104 (onFullSupported "nixos.tests.misc")
+48 -54
nixos/tests/acme.nix
··· 1 1 let 2 - commonConfig = ./common/letsencrypt/common.nix; 2 + commonConfig = ./common/acme/client; 3 3 4 4 dnsScript = {writeScript, dnsAddress, bash, curl}: writeScript "dns-hook.sh" '' 5 5 #!${bash}/bin/bash ··· 16 16 name = "acme"; 17 17 18 18 nodes = rec { 19 - letsencrypt = { nodes, lib, ... }: { 20 - imports = [ ./common/letsencrypt ]; 19 + acme = { nodes, lib, ... }: { 20 + imports = [ ./common/acme/server ]; 21 21 networking.nameservers = lib.mkForce [ 22 22 nodes.dnsserver.config.networking.primaryIPAddress 23 23 ]; ··· 33 33 serviceConfig = { 34 34 ExecStart = "${pkgs.pebble}/bin/pebble-challtestsrv -dns01 ':53' -defaultIPv6 '' -defaultIPv4 '${nodes.webserver.config.networking.primaryIPAddress}'"; 35 35 # Required to bind on privileged ports. 36 - User = "root"; 37 - Group = "root"; 36 + AmbientCapabilities = [ "CAP_NET_BIND_SERVICE" ]; 38 37 }; 39 38 }; 40 39 }; ··· 45 44 nodes.dnsserver.config.networking.primaryIPAddress 46 45 ]; 47 46 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 - }; 47 + security.acme.certs."standalone.test" = { 48 + webroot = "/var/lib/acme/acme-challenges"; 53 49 }; 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" ]; 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" ]; 58 54 }; 59 55 services.nginx.enable = true; 60 - services.nginx.virtualHosts."standalone.com" = { 56 + services.nginx.virtualHosts."standalone.test" = { 61 57 locations."/.well-known/acme-challenge".root = "/var/lib/acme/acme-challenges"; 62 58 }; 63 59 }; ··· 71 67 72 68 # A target remains active. Use this to probe the fact that 73 69 # 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" ]; 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" ]; 78 74 after = [ "nginx.service" ]; 79 75 }; 80 76 81 77 services.nginx.enable = true; 82 78 83 - services.nginx.virtualHosts."a.example.com" = { 79 + services.nginx.virtualHosts."a.example.test" = { 84 80 enableACME = true; 85 81 forceSSL = true; 86 82 locations."/".root = pkgs.runCommand "docroot" {} '' ··· 89 85 ''; 90 86 }; 91 87 92 - security.acme.server = "https://acme-v02.api.letsencrypt.org/dir"; 88 + security.acme.server = "https://acme.test/dir"; 93 89 94 90 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" ]; 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" ]; 99 95 after = [ "nginx.service" ]; 100 96 }; 101 - services.nginx.virtualHosts."b.example.com" = { 97 + services.nginx.virtualHosts."b.example.test" = { 102 98 enableACME = true; 103 99 forceSSL = true; 104 100 locations."/".root = pkgs.runCommand "docroot" {} '' ··· 108 104 }; 109 105 }; 110 106 specialisation.dns-01.configuration = {pkgs, config, nodes, lib, ...}: { 111 - security.acme.certs."example.com" = { 112 - domain = "*.example.com"; 107 + security.acme.certs."example.test" = { 108 + domain = "*.example.test"; 113 109 dnsProvider = "exec"; 114 110 dnsPropagationCheck = false; 115 111 credentialsFile = with pkgs; writeText "wildcard.env" '' ··· 118 114 user = config.services.nginx.user; 119 115 group = config.services.nginx.group; 120 116 }; 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" ]; 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" ]; 125 121 wantedBy = [ "nginx.service" ]; 126 122 }; 127 - services.nginx.virtualHosts."c.example.com" = { 123 + services.nginx.virtualHosts."c.example.test" = { 128 124 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"; 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"; 132 128 locations."/".root = pkgs.runCommand "docroot" {} '' 133 129 mkdir -p "$out" 134 130 echo hello world > "$out/index.html" ··· 159 155 client.start() 160 156 dnsserver.start() 161 157 162 - letsencrypt.wait_for_unit("default.target") 158 + acme.wait_for_unit("default.target") 163 159 dnsserver.wait_for_unit("pebble-challtestsrv.service") 164 160 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' 161 + 'curl --data \'{"host": "acme.test", "addresses": ["${nodes.acme.config.networking.primaryIPAddress}"]}\' http://${nodes.dnsserver.config.networking.primaryIPAddress}:8055/add-a' 166 162 ) 167 163 client.succeed( 168 - 'curl --data \'{"host": "standalone.com", "addresses": ["${nodes.acmeStandalone.config.networking.primaryIPAddress}"]}\' http://${nodes.dnsserver.config.networking.primaryIPAddress}:8055/add-a' 164 + 'curl --data \'{"host": "standalone.test", "addresses": ["${nodes.acmeStandalone.config.networking.primaryIPAddress}"]}\' http://${nodes.dnsserver.config.networking.primaryIPAddress}:8055/add-a' 169 165 ) 170 166 171 - letsencrypt.start() 167 + acme.start() 172 168 acmeStandalone.start() 173 169 174 - letsencrypt.wait_for_unit("default.target") 175 - letsencrypt.wait_for_unit("pebble.service") 170 + acme.wait_for_unit("default.target") 171 + acme.wait_for_unit("pebble.service") 176 172 177 173 with subtest("can request certificate with HTTPS-01 challenge"): 178 174 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") 175 + acmeStandalone.succeed("systemctl start acme-standalone.test.service") 176 + acmeStandalone.wait_for_unit("acme-finished-standalone.test.target") 181 177 182 178 client.wait_for_unit("default.target") 183 179 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 - ) 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") 188 182 189 183 with subtest("Can request certificate for nginx service"): 190 - webserver.wait_for_unit("acme-finished-a.example.com.target") 184 + webserver.wait_for_unit("acme-finished-a.example.test.target") 191 185 client.succeed( 192 - "curl --cacert /tmp/ca.crt https://a.example.com/ | grep -qF 'hello world'" 186 + "curl --cacert /tmp/ca.crt https://a.example.test/ | grep -qF 'hello world'" 193 187 ) 194 188 195 189 with subtest("Can add another certificate for nginx service"): 196 190 webserver.succeed( 197 191 "/run/current-system/specialisation/second-cert/bin/switch-to-configuration test" 198 192 ) 199 - webserver.wait_for_unit("acme-finished-b.example.com.target") 193 + webserver.wait_for_unit("acme-finished-b.example.test.target") 200 194 client.succeed( 201 - "curl --cacert /tmp/ca.crt https://b.example.com/ | grep -qF 'hello world'" 195 + "curl --cacert /tmp/ca.crt https://b.example.test/ | grep -qF 'hello world'" 202 196 ) 203 197 204 198 with subtest("Can request wildcard certificates using DNS-01 challenge"): ··· 208 202 webserver.succeed( 209 203 "/run/current-system/specialisation/dns-01/bin/switch-to-configuration test" 210 204 ) 211 - webserver.wait_for_unit("acme-finished-example.com.target") 205 + webserver.wait_for_unit("acme-finished-example.test.target") 212 206 client.succeed( 213 - "curl --cacert /tmp/ca.crt https://c.example.com/ | grep -qF 'hello world'" 207 + "curl --cacert /tmp/ca.crt https://c.example.test/ | grep -qF 'hello world'" 214 208 ) 215 209 ''; 216 210 }
+5 -1
nixos/tests/all-tests.nix
··· 22 22 in 23 23 { 24 24 _3proxy = handleTest ./3proxy.nix {}; 25 - acme = handleTestOn ["x86_64-linux"] ./acme.nix {}; 25 + acme = handleTest ./acme.nix {}; 26 26 atd = handleTest ./atd.nix {}; 27 27 automysqlbackup = handleTest ./automysqlbackup.nix {}; 28 28 avahi = handleTest ./avahi.nix {}; ··· 51 51 cloud-init = handleTest ./cloud-init.nix {}; 52 52 codimd = handleTest ./codimd.nix {}; 53 53 consul = handleTest ./consul.nix {}; 54 + cockroachdb = handleTestOn ["x86_64-linux"] ./cockroachdb.nix {}; 54 55 containers-bridge = handleTest ./containers-bridge.nix {}; 56 + containers-custom-pkgs.nix = handleTest ./containers-custom-pkgs.nix {}; 55 57 containers-ephemeral = handleTest ./containers-ephemeral.nix {}; 56 58 containers-extra_veth = handleTest ./containers-extra_veth.nix {}; 57 59 containers-hosts = handleTest ./containers-hosts.nix {}; ··· 160 162 # kubernetes.e2e should eventually replace kubernetes.rbac when it works 161 163 #kubernetes.e2e = handleTestOn ["x86_64-linux"] ./kubernetes/e2e.nix {}; 162 164 kubernetes.rbac = handleTestOn ["x86_64-linux"] ./kubernetes/rbac.nix {}; 165 + latestKernel.hardened = handleTest ./hardened.nix { latestKernel = true; }; 163 166 latestKernel.login = handleTest ./login.nix { latestKernel = true; }; 164 167 ldap = handleTest ./ldap.nix {}; 165 168 leaps = handleTest ./leaps.nix {}; ··· 311 314 trilium-server = handleTestOn ["x86_64-linux"] ./trilium-server.nix {}; 312 315 trezord = handleTest ./trezord.nix {}; 313 316 trickster = handleTest ./trickster.nix {}; 317 + tuptime = handleTest ./tuptime.nix {}; 314 318 udisks2 = handleTest ./udisks2.nix {}; 315 319 upnp = handleTest ./upnp.nix {}; 316 320 uwsgi = handleTest ./uwsgi.nix {};
+13 -15
nixos/tests/cockroachdb.nix
··· 1 1 # This performs a full 'end-to-end' test of a multi-node CockroachDB cluster 2 2 # using the built-in 'cockroach workload' command, to simulate a semi-realistic 3 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) 4 + # RAM (though each of 3 workers gets 2GB allocated) 5 5 # 6 6 # CockroachDB requires synchronized system clocks within a small error window 7 7 # (~500ms by default) on each node in order to maintain a multi-node cluster. ··· 55 55 56 56 { 57 57 # Bank/TPC-C benchmarks take some memory to complete 58 - virtualisation.memorySize = 1024; 58 + virtualisation.memorySize = 2048; 59 59 60 60 # Install the KVM PTP "Virtualized Clock" driver. This allows a /dev/ptp0 61 61 # device to appear as a reference clock, synchronized to the host clock. ··· 88 88 services.cockroachdb.listen.address = myAddr; 89 89 services.cockroachdb.join = lib.mkIf (joinNode != null) joinNode; 90 90 91 + systemd.services.chronyd.unitConfig.ConditionPathExists = "/dev/ptp0"; 92 + 91 93 # Hold startup until Chrony has performed its first measurement (which 92 94 # will probably result in a full timeskip, thanks to makestep) 93 95 systemd.services.cockroachdb.preStart = '' ··· 95 97 ''; 96 98 }; 97 99 98 - in import ./make-test.nix ({ pkgs, ...} : { 100 + in import ./make-test-python.nix ({ pkgs, ...} : { 99 101 name = "cockroachdb"; 100 102 meta.maintainers = with pkgs.stdenv.lib.maintainers; 101 103 [ thoughtpolice ]; ··· 110 112 # there's otherwise no way to guarantee that node1 will start before the others try 111 113 # to join it. 112 114 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'"); 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 + ) 125 123 ''; 126 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 1 # The certificate for the ACME service is exported as: 2 2 # 3 - # config.test-support.letsencrypt.caCert 3 + # config.test-support.acme.caCert 4 4 # 5 5 # This value can be used inside the configuration of other test nodes to inject 6 6 # the snakeoil certificate into security.pki.certificateFiles or into package 7 7 # overlays. 8 8 # 9 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 10 + # notes on that) is to add the acme node as a nameserver to every node 11 11 # that needs to acquire certificates using ACME, because otherwise the API host 12 - # for letsencrypt.org can't be resolved. 12 + # for acme.test can't be resolved. 13 13 # 14 14 # A configuration example of a full node setup using this would be this: 15 15 # 16 16 # { 17 - # letsencrypt = import ./common/letsencrypt; 17 + # acme = import ./common/acme/server; 18 18 # 19 19 # example = { nodes, ... }: { 20 20 # networking.nameservers = [ 21 - # nodes.letsencrypt.config.networking.primaryIPAddress 21 + # nodes.acme.config.networking.primaryIPAddress 22 22 # ]; 23 23 # security.pki.certificateFiles = [ 24 - # nodes.letsencrypt.config.test-support.letsencrypt.caCert 24 + # nodes.acme.config.test-support.acme.caCert 25 25 # ]; 26 26 # }; 27 27 # } ··· 33 33 # override networking.nameservers like this: 34 34 # 35 35 # { 36 - # letsencrypt = { nodes, ... }: { 37 - # imports = [ ./common/letsencrypt ]; 38 - # networking.nameservers = [ 36 + # acme = { nodes, lib, ... }: { 37 + # imports = [ ./common/acme/server ]; 38 + # networking.nameservers = lib.mkForce [ 39 39 # nodes.myresolver.config.networking.primaryIPAddress 40 40 # ]; 41 41 # }; ··· 55 55 let 56 56 snakeOilCerts = import ./snakeoil-certs.nix; 57 57 58 - wfeDomain = "acme-v02.api.letsencrypt.org"; 58 + wfeDomain = "acme.test"; 59 59 wfeCertFile = snakeOilCerts.${wfeDomain}.cert; 60 60 wfeKeyFile = snakeOilCerts.${wfeDomain}.key; 61 61 62 - siteDomain = "letsencrypt.org"; 62 + siteDomain = "acme.test"; 63 63 siteCertFile = snakeOilCerts.${siteDomain}.cert; 64 64 siteKeyFile = snakeOilCerts.${siteDomain}.key; 65 65 pebble = pkgs.pebble; 66 66 resolver = let 67 - message = "You need to define a resolver for the letsencrypt test module."; 67 + message = "You need to define a resolver for the acme test module."; 68 68 firstNS = lib.head config.networking.nameservers; 69 69 in if config.networking.nameservers == [] then throw message else firstNS; 70 70 ··· 76 76 httpPort = 80; 77 77 tlsPort = 443; 78 78 ocspResponderURL = "http://0.0.0.0:4002"; 79 + strict = true; 79 80 }; 80 81 81 82 pebbleConfFile = pkgs.writeText "pebble.conf" (builtins.toJSON pebbleConf); 82 83 pebbleDataDir = "/root/pebble"; 83 84 84 85 in { 85 - imports = [ ../resolver.nix ]; 86 + imports = [ ../../resolver.nix ]; 86 87 87 - options.test-support.letsencrypt.caCert = lib.mkOption { 88 + options.test-support.acme.caCert = lib.mkOption { 88 89 type = lib.types.path; 89 90 description = '' 90 91 A certificate file to use with the <literal>nodes</literal> attribute to ··· 98 99 resolver.enable = let 99 100 isLocalResolver = config.networking.nameservers == [ "127.0.0.1" ]; 100 101 in lib.mkOverride 900 isLocalResolver; 101 - letsencrypt.caCert = snakeOilCerts.ca.cert; 102 + acme.caCert = snakeOilCerts.ca.cert; 102 103 }; 103 104 104 105 # This has priority 140, because modules/testing/test-instrumentation.nix ··· 126 127 ''; 127 128 serviceConfig = { 128 129 # Required to bind on privileged ports. 129 - User = "root"; 130 - Group = "root"; 130 + AmbientCapabilities = [ "CAP_NET_BIND_SERVICE" ]; 131 131 }; 132 132 }; 133 133 };
+2 -3
nixos/tests/common/letsencrypt/mkcerts.nix nixos/tests/common/acme/server/mkcerts.nix
··· 1 1 { pkgs ? import <nixpkgs> {} 2 2 , lib ? pkgs.lib 3 - 4 - , domains ? [ "acme-v02.api.letsencrypt.org" "letsencrypt.org" ] 3 + , domains ? [ "acme.test" ] 5 4 }: 6 5 7 - pkgs.runCommand "letsencrypt-snakeoil-ca" { 6 + pkgs.runCommand "acme-snakeoil-ca" { 8 7 nativeBuildInputs = [ pkgs.openssl ]; 9 8 } '' 10 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 18 defining this option needs to be explicitly imported. 19 19 20 20 The reason this option exists is for the 21 - <filename>nixos/tests/common/letsencrypt</filename> module, which 21 + <filename>nixos/tests/common/acme/server</filename> module, which 22 22 needs that option to disable the resolver once the user has set its own 23 23 resolver. 24 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, ... }: 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 + }; 2 16 3 - with lib; 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 + }; 4 32 5 - { 33 + in { 6 34 name = "dokuwiki"; 7 - meta.maintainers = with maintainers; [ maintainers."1000101" ]; 35 + meta.maintainers = with pkgs.lib.maintainers; [ "1000101" ]; 8 36 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 - }; 37 + machine = { ... }: { 38 + services.dokuwiki."site1.local" = { 39 + aclUse = false; 40 + superUser = "admin"; 41 + nginx = { 42 + forceSSL = false; 43 + enableACME = false; 44 + }; 20 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 + }; 21 58 22 59 testScript = '' 23 - machine.start() 24 - machine.wait_for_unit("phpfpm-dokuwiki.service") 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 + 25 67 machine.wait_for_unit("nginx.service") 68 + 26 69 machine.wait_for_open_port(80) 27 - machine.succeed("curl -sSfL http://localhost/ | grep 'DokuWiki'") 70 + 71 + machine.succeed("curl -sSfL http://site1.local/ | grep 'DokuWiki'") 72 + machine.succeed("curl -sSfL http://site2.local/ | grep 'DokuWiki'") 28 73 ''; 29 74 })
+8 -3
nixos/tests/hardened.nix
··· 1 - import ./make-test.nix ({ pkgs, ...} : { 1 + import ./make-test.nix ({ pkgs, latestKernel ? false, ... } : { 2 2 name = "hardened"; 3 3 meta = with pkgs.stdenv.lib.maintainers; { 4 4 maintainers = [ joachifm ]; ··· 10 10 { users.users.alice = { isNormalUser = true; extraGroups = [ "proc" ]; }; 11 11 users.users.sybil = { isNormalUser = true; group = "wheel"; }; 12 12 imports = [ ../modules/profiles/hardened.nix ]; 13 + boot.kernelPackages = 14 + lib.mkIf latestKernel pkgs.linuxPackages_latest_hardened; 13 15 environment.memoryAllocator.provider = "graphene-hardened"; 14 16 nix.useSandbox = false; 15 17 virtualisation.emptyDiskImages = [ 4096 ]; ··· 23 25 options = [ "noauto" ]; 24 26 }; 25 27 }; 26 - boot.extraModulePackages = [ config.boot.kernelPackages.wireguard ]; 28 + boot.extraModulePackages = 29 + optional (versionOlder config.boot.kernelPackages.kernel.version "5.6") 30 + config.boot.kernelPackages.wireguard; 27 31 boot.kernelModules = [ "wireguard" ]; 28 32 }; 29 33 ··· 76 80 77 81 # Test userns 78 82 subtest "userns", sub { 79 - $machine->fail("unshare --user"); 83 + $machine->succeed("unshare --user true"); 84 + $machine->fail("su -l alice -c 'unshare --user true'"); 80 85 }; 81 86 82 87 # Test dmesg restriction
+1
nixos/tests/installed-tests/default.nix
··· 91 91 ibus = callInstalledTest ./ibus.nix {}; 92 92 libgdata = callInstalledTest ./libgdata.nix {}; 93 93 glib-testing = callInstalledTest ./glib-testing.nix {}; 94 + libjcat = callInstalledTest ./libjcat.nix {}; 94 95 libxmlb = callInstalledTest ./libxmlb.nix {}; 95 96 malcontent = callInstalledTest ./malcontent.nix {}; 96 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 19 20 20 rustPlatform.buildRustPackage rec { 21 21 pname = "contrast"; 22 - version = "0.0.2"; 22 + version = "0.0.3"; 23 23 24 24 src = fetchFromGitLab { 25 25 domain = "gitlab.gnome.org"; ··· 27 27 owner = "design"; 28 28 repo = "contrast"; 29 29 rev = version; 30 - sha256 = "0rm705zrk9rfv31pwbqxrswi5v6vhnghxa8dgxjmcrh00l8dm6j9"; 30 + sha256 = "0kk3mv7a6y258109xvgicmsi0lw0rcs00gfyivl5hdz7qh47iccy"; 31 31 }; 32 32 33 - cargoSha256 = "0qj0vmxa1d6war1vb3zgkf1drvk7awm970fw6692hd9msa9c1kkf"; 33 + cargoSha256 = "0vi8nv4hkhsgqgz36xacwkk5cxirg6li44nbmk3x7vx7c64hzybq"; 34 34 35 35 nativeBuildInputs = [ 36 36 desktop-file-utils
+3 -3
pkgs/applications/audio/gbsplay/default.nix
··· 11 11 }; 12 12 13 13 buildInputs = [ libpulseaudio ]; 14 - 15 - configureFlagsArray = 14 + 15 + configureFlags = 16 16 [ "--without-test" "--without-contrib" "--disable-devdsp" 17 17 "--enable-pulse" "--disable-alsa" "--disable-midi" 18 18 "--disable-nas" "--disable-dsound" "--disable-i18n" ]; 19 19 20 - makeFlagsArray = [ "tests=" ]; 20 + makeFlags = [ "tests=" ]; 21 21 22 22 meta = with stdenv.lib; { 23 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 23 24 24 python3.pkgs.buildPythonApplication rec { 25 25 pname = "lollypop"; 26 - version = "1.2.32"; 26 + version = "1.2.35"; 27 27 28 28 format = "other"; 29 29 doCheck = false; ··· 32 32 url = "https://gitlab.gnome.org/World/lollypop"; 33 33 rev = "refs/tags/${version}"; 34 34 fetchSubmodules = true; 35 - sha256 = "03x6qihd349pq5lmgahb77sys60g16v5v6qkdlzf8k88451k8p7n"; 35 + sha256 = "19nw9qh17yyi9ih1nwngbbwjx1vr26haqhmzsdqf0yjgsgf9vldx"; 36 36 }; 37 37 38 38 nativeBuildInputs = [
+2 -2
pkgs/applications/audio/lsp-plugins/default.nix
··· 5 5 6 6 stdenv.mkDerivation rec { 7 7 pname = "lsp-plugins"; 8 - version = "1.1.15"; 8 + version = "1.1.19"; 9 9 10 10 src = fetchFromGitHub { 11 11 owner = "sadko4u"; 12 12 repo = pname; 13 13 rev = "${pname}-${version}"; 14 - sha256 = "0lynyjs5zp27gnzcv8a23pvb7c1ghzc2dspypca3ciq40bfpfzik"; 14 + sha256 = "1wiph3vxhydc6mr9hn2c6crd4cx592l2zv0wrzgmpnlm1lflzpbg"; 15 15 }; 16 16 17 17 nativeBuildInputs = [ pkgconfig php makeWrapper ];
+1 -1
pkgs/applications/audio/musescore/default.nix
··· 33 33 description = "Music notation and composition software"; 34 34 homepage = "https://musescore.org/"; 35 35 license = licenses.gpl2; 36 - maintainers = with maintainers; [ vandenoever ]; 36 + maintainers = with maintainers; [ vandenoever turion ]; 37 37 platforms = platforms.linux; 38 38 repositories.git = "https://github.com/musescore/MuseScore"; 39 39 };
+1 -1
pkgs/applications/audio/polyphone/default.nix
··· 41 41 42 42 meta = with stdenv.lib; { 43 43 description = "A soundfont editor for creating musical instruments"; 44 - homepage = https://www.polyphone-soundfonts.com/; 44 + homepage = "https://www.polyphone-soundfonts.com/"; 45 45 license = licenses.gpl3; 46 46 maintainers = [ maintainers.maxdamantus ]; 47 47 platforms = platforms.linux;
+6 -2
pkgs/applications/audio/spotifyd/default.nix
··· 2 2 , withALSA ? true, alsaLib ? null 3 3 , withPulseAudio ? false, libpulseaudio ? null 4 4 , withPortAudio ? false, portaudio ? null 5 + , withMpris ? false 6 + , withKeyring ? false 7 + , dbus ? null 5 8 }: 6 9 7 10 rustPlatform.buildRustPackage rec { ··· 20 23 cargoBuildFlags = [ 21 24 "--no-default-features" 22 25 "--features" 23 - "${stdenv.lib.optionalString withALSA "alsa_backend,"}${stdenv.lib.optionalString withPulseAudio "pulseaudio_backend,"}${stdenv.lib.optionalString withPortAudio "portaudio_backend,"}" 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,"}" 24 27 ]; 25 28 26 29 nativeBuildInputs = [ pkgconfig ]; ··· 28 31 buildInputs = [ openssl ] 29 32 ++ stdenv.lib.optional withALSA alsaLib 30 33 ++ stdenv.lib.optional withPulseAudio libpulseaudio 31 - ++ stdenv.lib.optional withPortAudio portaudio; 34 + ++ stdenv.lib.optional withPortAudio portaudio 35 + ++ stdenv.lib.optional (withMpris || withKeyring) dbus; 32 36 33 37 doCheck = false; 34 38
+4 -3
pkgs/applications/blockchains/go-ethereum.nix
··· 2 2 3 3 buildGoModule rec { 4 4 pname = "go-ethereum"; 5 - version = "1.9.12"; 5 + version = "1.9.13"; 6 6 7 7 src = fetchFromGitHub { 8 8 owner = "ethereum"; 9 9 repo = pname; 10 10 rev = "v${version}"; 11 - sha256 = "143imiphyzk3009cfnqj7q013pb1wva13zq63byfj3d204b58cg6"; 11 + sha256 = "1yqqflp73yvjy6bp05xd1nv5fc6p1nx7g4spbssxf3ws96pdh425"; 12 12 }; 13 13 14 - modSha256 = "15a8if5gx361nrqgv201jy8saq1ir1g18rpqzdmavg4ic75si5x1"; 14 + modSha256 = "07xrw3fivfpbkg4mp8ghrj1bishfas82dbd780fymgs2h74iigf3"; 15 15 16 16 subPackages = [ 17 + "cmd/abidump" 17 18 "cmd/abigen" 18 19 "cmd/bootnode" 19 20 "cmd/checkpoint-admin"
+6 -6
pkgs/applications/editors/android-studio/default.nix
··· 8 8 inherit (gnome2) GConf gnome_vfs; 9 9 }; 10 10 stableVersion = { 11 - version = "3.6.2.0"; # "Android Studio 3.6.2" 12 - build = "192.6308749"; 13 - sha256Hash = "04r4iwlmns1lf3wfd32cqmndbdz9rf7hfbi5r6qmvpi8j83fghvr"; 11 + version = "3.6.3.0"; # "Android Studio 3.6.3" 12 + build = "192.6392135"; 13 + sha256Hash = "0apxmp341m7mbpm2df3qvsbaifwy6yqq746kbhbwlw8bn9hrzv1k"; 14 14 }; 15 15 betaVersion = { 16 16 version = "4.0.0.13"; # "Android Studio 4.0 Beta 4" ··· 18 18 sha256Hash = "0lchi3l50826n1af1z24yclpf27v2q5p1zjbvcmn37wz46d4s4g2"; 19 19 }; 20 20 latestVersion = { # canary & dev 21 - version = "4.1.0.5"; # "Android Studio 4.1 Canary 5" 22 - build = "193.6362631"; 23 - sha256Hash = "1q9wbqnwpq0mz8rz4c0v7mfaazymq6xv20dv4fll6p2q63qk71qp"; 21 + version = "4.1.0.6"; # "Android Studio 4.1 Canary 6" 22 + build = "193.6381907"; 23 + sha256Hash = "0sa5plr96m90wv5hi9bqwa11j6k8k9wa0ji8qmlimdhnpyzhsdrx"; 24 24 }; 25 25 in { 26 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 1 + { stdenv, lib, fetchurl, fetchpatch, ncurses, xlibsWrapper, libXaw, libXpm 2 2 , Xaw3d, libXcursor, pkgconfig, gettext, libXft, dbus, libpng, libjpeg, libungif 3 3 , libtiff, librsvg, gconf, libxml2, imagemagick, gnutls, libselinux 4 4 , alsaLib, cairo, acl, gpm, AppKit, GSS, ImageIO, m17n_lib, libotf ··· 44 44 patches = [ 45 45 ./clean-env.patch 46 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 + }) 47 52 ]; 48 53 49 54 postPatch = lib.optionalString srcRepo ''
+5 -3
pkgs/applications/editors/micro/default.nix
··· 2 2 3 3 buildGoPackage rec { 4 4 pname = "micro"; 5 - version = "1.4.1"; 5 + version = "2.0.3"; 6 6 7 7 goPackagePath = "github.com/zyedidia/micro"; 8 8 ··· 10 10 owner = "zyedidia"; 11 11 repo = "micro"; 12 12 rev = "v${version}"; 13 - sha256 = "0m9p6smb5grdazsgr3m1x4rry9ihhlgl9ildhvfp53czrifbx0m5"; 13 + sha256 = "017m9kb3gfrgzd06f1nma1i3m5rb0hzpgdikb86lsyv8ik18y12z"; 14 14 fetchSubmodules = true; 15 15 }; 16 16 17 17 subPackages = [ "cmd/micro" ]; 18 18 19 - buildFlagsArray = [ "-ldflags=" "-X main.Version=${version}" ]; 19 + buildFlagsArray = [ "-ldflags=" "-X ${goPackagePath}/internal/util.Version=${version}" ]; 20 + 21 + goDeps = ./deps.nix; 20 22 21 23 meta = with stdenv.lib; { 22 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 54 homepage = "https://github.com/VSCodium/vscodium"; 55 55 downloadPage = "https://github.com/VSCodium/vscodium/releases"; 56 56 license = licenses.mit; 57 - maintainers = with maintainers; [ synthetica ]; 57 + maintainers = with maintainers; [ synthetica turion ]; 58 58 platforms = [ "x86_64-linux" "x86_64-darwin" ]; 59 59 }; 60 60 }
+1 -1
pkgs/applications/kde/konsole.nix
··· 11 11 name = "konsole"; 12 12 meta = { 13 13 license = with lib.licenses; [ gpl2 lgpl21 fdl12 ]; 14 - maintainers = [ lib.maintainers.ttuegel ]; 14 + maintainers = with lib.maintainers; [ ttuegel turion ]; 15 15 }; 16 16 nativeBuildInputs = [ extra-cmake-modules kdoctools ]; 17 17 buildInputs = [
+1 -1
pkgs/applications/kde/okular.nix
··· 21 21 meta = with lib; { 22 22 homepage = "http://www.kde.org"; 23 23 license = with licenses; [ gpl2 lgpl21 fdl12 bsd3 ]; 24 - maintainers = with maintainers; [ ttuegel ]; 24 + maintainers = with maintainers; [ ttuegel turion ]; 25 25 platforms = lib.platforms.linux; 26 26 }; 27 27 }
+6
pkgs/applications/misc/alacritty/default.nix
··· 104 104 '' else '' 105 105 install -D extra/linux/Alacritty.desktop -t $out/share/applications/ 106 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 + 107 113 patchelf --set-rpath "${lib.makeLibraryPath rpathLibs}" $out/bin/alacritty 108 114 '' 109 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 7 , qtbase 8 8 , qttools 9 9 , qtx11extras 10 - , sqlite 11 10 }: 12 11 13 12 mkDerivation rec { 14 13 pname = "birdtray"; 15 - version = "1.7.0"; 14 + version = "1.8.0"; 16 15 17 16 src = fetchFromGitHub { 18 17 owner = "gyunaev"; 19 18 repo = pname; 20 - rev = "RELEASE_${version}"; 21 - sha256 = "0wj2lq5bz1p0cf6yj43v3ifxschcrh5amwx30wqw2m4bb8syzjw1"; 19 + rev = version; 20 + sha256 = "15d0gz889vf9b2a046m93s5kdi6lw2sqjd5gaxgjkjrs20x5vr18"; 22 21 }; 23 22 24 23 nativeBuildInputs = [ cmake pkgconfig ]; 25 24 buildInputs = [ 26 - qtbase qtx11extras sqlite 25 + qtbase qttools qtx11extras 27 26 ]; 28 - 29 - installPhase = '' 30 - install -Dm755 birdtray $out/bin/birdtray 31 - ''; 32 27 33 28 meta = with lib; { 34 29 description = "Mail system tray notification icon for Thunderbird";
+4 -4
pkgs/applications/misc/joplin-desktop/default.nix
··· 2 2 3 3 let 4 4 pname = "joplin-desktop"; 5 - version = "1.0.179"; 5 + version = "1.0.200"; 6 6 desktopItem = makeDesktopItem { 7 7 name = "Joplin"; 8 8 exec = "joplin-desktop"; ··· 13 13 name = "${pname}-${version}"; 14 14 src = fetchurl { 15 15 url = "https://github.com/laurent22/joplin/releases/download/v${version}/Joplin-${version}.AppImage"; 16 - sha256 = "0v7d5wzwiznl755pl6jfg33g6jxr1cbm9j13jpbmfi497hj8w82k"; 16 + sha256 = "14gwv8i6dprvl96mifadq0zj77a82rww8xd5bmzm8ql6sidi2216"; 17 17 }; 18 18 19 19 ··· 40 40 applications directly or from your own text editor. The notes are in 41 41 Markdown format. 42 42 ''; 43 - homepage = "https://joplin.cozic.net/"; 43 + homepage = "https://joplinapp.org"; 44 44 license = licenses.mit; 45 - maintainers = with maintainers; [ rafaelgg raquelgb ]; 45 + maintainers = with maintainers; [ hugoreeves rafaelgg raquelgb ]; 46 46 platforms = [ "x86_64-linux" ]; 47 47 }; 48 48 }
+17 -5
pkgs/applications/misc/keepassx/community.nix
··· 1 - { stdenv, fetchFromGitHub, cmake, makeWrapper, qttools, darwin 1 + { stdenv 2 + , fetchFromGitHub 3 + , fetchpatch 4 + , cmake 5 + , makeWrapper 6 + , qttools 7 + , darwin 2 8 3 9 , curl 4 10 , glibcLocales ··· 33 39 34 40 stdenv.mkDerivation rec { 35 41 pname = "keepassxc"; 36 - version = "2.5.2"; 42 + version = "2.5.4"; 37 43 38 44 src = fetchFromGitHub { 39 45 owner = "keepassxreboot"; 40 46 repo = "keepassxc"; 41 47 rev = version; 42 - sha256 = "0z5bd17qaq7zpv96gw6qwv6rb4xx7xjq86ss6wm5zskcrraf7r7n"; 48 + sha256 = "1xih9q1pxszalc0l29fmjxwn1vrrrrbnhc8gmi8brw5sclhbs6bh"; 43 49 }; 44 50 45 51 NIX_CFLAGS_COMPILE = stdenv.lib.optionalString stdenv.cc.isClang [ ··· 57 63 58 64 patches = [ 59 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 + }) 60 71 ]; 61 72 62 73 cmakeFlags = [ ··· 79 90 export LC_ALL="en_US.UTF-8" 80 91 export QT_QPA_PLATFORM=offscreen 81 92 export QT_PLUGIN_PATH="${qtbase.bin}/${qtbase.qtPluginPrefix}" 82 - make test ARGS+="-E testgui --output-on-failure" 93 + # testcli and testgui are flaky - skip them both 94 + make test ARGS+="-E 'testcli|testgui' --output-on-failure" 83 95 ''; 84 96 85 97 nativeBuildInputs = [ cmake wrapQtAppsHook qttools ]; ··· 116 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)."; 117 129 homepage = "https://keepassxc.org/"; 118 130 license = licenses.gpl2; 119 - maintainers = with maintainers; [ jonafato ]; 131 + maintainers = with maintainers; [ jonafato turion ]; 120 132 platforms = platforms.linux ++ platforms.darwin; 121 133 }; 122 134 }
+2 -2
pkgs/applications/misc/keepassx/darwin.patch
··· 6 6 set(PLUGIN_INSTALL_DIR ".") 7 7 set(DATA_INSTALL_DIR "share") 8 8 elseif(APPLE AND WITH_APP_BUNDLE) 9 - + set(CMAKE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}/Applications") 9 + + set(CMAKE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}/Applications") 10 + set(BUNDLE_INSTALL_DIR "${PROGNAME}.app/Contents") 10 11 set(CMAKE_INSTALL_MANDIR "${PROGNAME}.app/Contents/Resources/man") 11 12 set(CLI_INSTALL_DIR "${PROGNAME}.app/Contents/MacOS") 12 - set(PROXY_INSTALL_DIR "${PROGNAME}.app/Contents/MacOS") 13 13 @@ -369,12 +370,6 @@ set(CMAKE_AUTORCC ON) 14 14 15 15 if(APPLE)
+1 -1
pkgs/applications/misc/krusader/default.nix
··· 20 20 description = "Norton/Total Commander clone for KDE"; 21 21 license = licenses.gpl2; 22 22 homepage = "http://www.krusader.org"; 23 - maintainers = with maintainers; [ sander ]; 23 + maintainers = with maintainers; [ sander turion ]; 24 24 }; 25 25 26 26 nativeBuildInputs = [ extra-cmake-modules kdoctools wrapGAppsHook ];
+1 -1
pkgs/applications/misc/lutris/chrootenv.nix
··· 94 94 libsndfile libtheora libogg libvorbis libopus libGLU libpcap libpulseaudio 95 95 libao libusb libevdev udev libgcrypt libxml2 libusb libpng libmpeg2 libv4l 96 96 libjpeg libxkbcommon libass libcdio libjack2 libsamplerate libzip libmad libaio 97 - libcap libtiff libva libgphoto2 libxslt libtxc_dxtn libsndfile giflib zlib glib 97 + libcap libtiff libva libgphoto2 libxslt libsndfile giflib zlib glib 98 98 alsaLib zziplib bash dbus keyutils zip cabextract freetype unzip coreutils 99 99 readline gcc SDL SDL2 curl graphite2 gtk2 gtk3 udev ncurses wayland libglvnd 100 100 vulkan-loader xdg_utils sqlite gnutls libbsd
+1 -1
pkgs/applications/misc/termpdf.py/default.nix
··· 44 44 A graphical pdf (and epub, cbz, ...) reader that works 45 45 inside the kitty terminal. 46 46 ''; 47 - homepage = https://github.com/dsanson/termpdf.py; 47 + homepage = "https://github.com/dsanson/termpdf.py"; 48 48 maintainers = with maintainers; [ teto ]; 49 49 license = licenses.mit; 50 50 };
+2 -2
pkgs/applications/networking/browsers/brave/default.nix
··· 82 82 83 83 stdenv.mkDerivation rec { 84 84 pname = "brave"; 85 - version = "1.5.123"; 85 + version = "1.7.92"; 86 86 87 87 src = fetchurl { 88 88 url = "https://github.com/brave/brave-browser/releases/download/v${version}/brave-browser_${version}_amd64.deb"; 89 - sha256 = "1yv6hfjqzcd60b0bjpfbj8d4s2yf10swanxhbmnslcqp6ajb2nqr"; 89 + sha256 = "1f262xh88c83m6ixqxc69z8kvkl3qbjc6jnv2g8n0flw8s70hs7z"; 90 90 }; 91 91 92 92 dontConfigure = true;
+11 -6
pkgs/applications/networking/browsers/chromium/common.nix
··· 24 24 , libdrm ? null, wayland ? null, mesa_drivers ? null, libxkbcommon ? null # useOzone 25 25 26 26 # package customization 27 - , useVaapi ? false 28 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) 29 34 , gnomeSupport ? false, gnome ? null 30 35 , gnomeKeyringSupport ? false, libgnome-keyring3 ? null 31 36 , proprietaryCodecs ? true ··· 127 132 libXScrnSaver libXcursor libXtst libGLU libGL 128 133 pciutils protobuf speechd libXdamage at-spi2-core 129 134 jre 130 - ] ++ optional gnomeKeyringSupport libgnome-keyring3 135 + ] ++ optional useVaapi libva 136 + ++ optional gnomeKeyringSupport libgnome-keyring3 131 137 ++ optionals gnomeSupport [ gnome.GConf libgcrypt ] 132 138 ++ optionals cupsSupport [ libgcrypt cups ] 133 - ++ optional useVaapi libva 134 139 ++ optional pulseSupport libpulseaudio 135 140 ++ optionals useOzone [ libdrm wayland mesa_drivers libxkbcommon ]; 136 141 ··· 149 154 # 150 155 # ++ optionals (channel == "dev") [ ( githubPatch "<patch>" "0000000000000000000000000000000000000000000000000000000000000000" ) ] 151 156 # ++ 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 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) 155 160 ] ++ optionals (versionRange "81" "82") [ 156 161 (githubPatch "5b2ff215473e0526b5b24aeff4ad90d369b21c75" "0n00vh8wfpn2ay5fqsxcsx0zadnv7mihm72bcvnrfzh75nzbg902") 157 162 (githubPatch "98e343ab369e4262511b5fce547728e3e5eefba8" "00wwp653jk0k0yvix00vr7ymgck9dj7fxjwx4nc67ynn84dh6064")
+14 -5
pkgs/applications/networking/browsers/chromium/default.nix
··· 6 6 , lib 7 7 8 8 # package customization 9 + # Note: enable* flags should not require full rebuilds (i.e. only affect the wrapper) 9 10 , channel ? "stable" 10 11 , gnomeSupport ? false, gnome ? null 11 12 , gnomeKeyringSupport ? false 12 13 , proprietaryCodecs ? true 13 14 , enablePepperFlash ? false 14 15 , enableWideVine ? false 15 - , useVaapi ? false # test video on radeon, before enabling this 16 + , useVaapi ? false # Deprecated, use enableVaapi instead! 17 + , enableVaapi ? false # Disabled by default due to unofficial support and issues on radeon 16 18 , useOzone ? false 17 19 , cupsSupport ? true 18 20 , pulseSupport ? config.pulseaudio or stdenv.isLinux ··· 33 35 upstream-info = (callPackage ./update.nix {}).getChannel channel; 34 36 35 37 mkChromiumDerivation = callPackage ./common.nix ({ 36 - inherit gnome gnomeSupport gnomeKeyringSupport proprietaryCodecs cupsSupport pulseSupport useVaapi useOzone; 38 + inherit gnome gnomeSupport gnomeKeyringSupport proprietaryCodecs cupsSupport pulseSupport useOzone; 37 39 gnChromium = gn; 38 40 } // lib.optionalAttrs (channel != "stable") { 39 41 # TODO: Remove after we can update gn for the stable channel (backward incompatible changes): ··· 127 129 cp -a ${widevineCdm}/WidevineCdm $out/libexec/chromium/ 128 130 '' 129 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"; 130 140 in stdenv.mkDerivation { 131 141 name = "chromium${suffix}-${version}"; 132 142 inherit version; ··· 146 156 buildCommand = let 147 157 browserBinary = "${chromiumWV}/libexec/chromium/chromium"; 148 158 getWrapperFlags = plugin: "$(< \"${plugin}/nix-support/wrapper-flags\")"; 149 - libPath = stdenv.lib.makeLibraryPath ([] 150 - ++ stdenv.lib.optional useVaapi libva 151 - ); 159 + libPath = stdenv.lib.makeLibraryPath [ libva ]; 152 160 153 161 in with stdenv.lib; '' 154 162 mkdir -p "$out/bin" 155 163 156 164 eval makeWrapper "${browserBinary}" "$out/bin/chromium" \ 157 165 --add-flags ${escapeShellArg (escapeShellArg commandLineArgs)} \ 166 + ${optionalVaapiFlags} \ 158 167 ${concatMapStringsSep " " getWrapperFlags chromium.plugins.enabled} 159 168 160 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 45 46 46 flash = stdenv.mkDerivation rec { 47 47 pname = "flashplayer-ppapi"; 48 - version = "32.0.0.344"; 48 + version = "32.0.0.363"; 49 49 50 50 src = fetchzip { 51 51 url = "https://fpdownload.adobe.com/pub/flashplayer/pdc/${version}/flash_player_ppapi_linux.x86_64.tar.gz"; 52 - sha256 = "05ijlgsby9zxx0qs6f3vav1z0p6xr1cg6idl4akxvfmsl6hn6hkq"; 52 + sha256 = "0znk8an892mykgbz56hyv3gz65vc9mhb3vn96c6bsvicwl1fn460"; 53 53 stripRoot = false; 54 54 }; 55 55
-1
pkgs/applications/networking/browsers/firefox/wrapper.nix
··· 46 46 "icedtea" 47 47 "enableGoogleTalkPlugin" 48 48 "enableFriBIDPlugin" 49 - "enableGnomeExtensions" 50 49 "enableBluejeans" 51 50 "enableAdobeReader" 52 51 ];
+5 -5
pkgs/applications/networking/browsers/mozilla-plugins/flashplayer/default.nix
··· 74 74 in 75 75 stdenv.mkDerivation rec { 76 76 pname = "flashplayer"; 77 - version = "32.0.0.344"; 77 + version = "32.0.0.363"; 78 78 79 79 src = fetchurl { 80 80 url = ··· 85 85 sha256 = 86 86 if debug then 87 87 if arch == "x86_64" then 88 - "1kkwijxlcs1rlqxr1vj51h95fwwrp5m0c9lngqpncgmmhh8v9dyr" 88 + "06711k4vbn6mqfd8gvx2snsxyalhw15hn5b64sja8726z5rxvzy7" 89 89 else 90 - "0r47s19fw7gsph73rd5jb2zfsjwz7mjawm6c49rir9rsa0zxrsks" 90 + "0v584aqhy4xk08afi3ypkq4mqjq57y136z82i5ixyim88dqbaf4f" 91 91 else 92 92 if arch == "x86_64" then 93 - "1ki3i7zw0q48xf01xjfm1mpizc5flk768p9hqxpg881r4h65dh6b" 93 + "1g1ijxypm8a8mfc1x58gksmaakqpp7xmf277wiir8zqjn3vd6c64" 94 94 else 95 - "1v527i60sljwyvv4l1kg9ml05skjgm3naynlswd35hsz258jnxl4"; 95 + "13nbxmqmbxqvdhdwdqimim2f9fz3y2vrsx6b3pck6352m4i4wzh8"; 96 96 }; 97 97 98 98 nativeBuildInputs = [ unzip ];
+3 -3
pkgs/applications/networking/browsers/mozilla-plugins/flashplayer/standalone.nix
··· 50 50 51 51 stdenv.mkDerivation { 52 52 pname = "flashplayer-standalone"; 53 - version = "32.0.0.344"; 53 + version = "32.0.0.363"; 54 54 55 55 src = fetchurl { 56 56 url = ··· 60 60 "https://fpdownload.macromedia.com/pub/flashplayer/updaters/32/flash_player_sa_linux.x86_64.tar.gz"; 61 61 sha256 = 62 62 if debug then 63 - "1ymsk07xmnanyv86r58ar1l4wgjarlq0fc111ajc76pp8dsxnfx8" 63 + "03zhza8lvc1nvz3racwfsajfd6rnbw3g56dp5wvr1qmaps8xaaqg" 64 64 else 65 - "0wiwpn4a0jxslw4ahalq74rksn82y0aqa3lrjr9qs7kdcak74vky"; 65 + "0bhp7jv2l2agfzr8m564k749a5g75dw1390phlwvf49n1h8ldap2"; 66 66 }; 67 67 68 68 nativeBuildInputs = [ unzip ];
+5 -4
pkgs/applications/networking/cluster/cni/default.nix
··· 1 - { stdenv, fetchFromGitHub, buildGoPackage }: 1 + { lib, fetchFromGitHub, buildGoPackage }: 2 2 3 3 buildGoPackage rec { 4 4 pname = "cni"; 5 - version = "0.7.0"; 5 + version = "0.7.1"; 6 6 7 7 src = fetchFromGitHub { 8 8 owner = "containernetworking"; 9 9 repo = pname; 10 10 rev = "v${version}"; 11 - sha256 = "15ad323dw44k82bfx9r8w5q2kn7jix60p9v4ciyzx2p5pip36wp8"; 11 + sha256 = "02qn1br8164d99978acalisy1sx294g1axnii4yh1wji0fc735xz"; 12 12 }; 13 13 14 14 goPackagePath = "github.com/containernetworking/cni"; 15 - meta = with stdenv.lib; { 15 + 16 + meta = with lib; { 16 17 description = "Container Network Interface - networking for Linux containers"; 17 18 license = licenses.asl20; 18 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 }: 1 + { lib, fetchFromGitHub, buildGoPackage }: 2 + 2 3 buildGoPackage rec { 3 4 pname = "cni-plugins"; 4 - version = "0.8.4"; 5 + version = "0.8.5"; 5 6 6 7 src = fetchFromGitHub { 7 8 owner = "containernetworking"; 8 9 repo = "plugins"; 9 10 rev = "v${version}"; 10 - sha256 = "02kz6y3klhbriybsskn4hmldwli28cycnp2klsm2x0y9c73iczdp"; 11 + sha256 = "17c8pvpn0dpda6ah7irr9hhd8sk7mnm32zv72nc5pxg1xvfpaipi"; 11 12 }; 12 13 13 - goDeps = ./plugins-deps.nix; 14 14 goPackagePath = "github.com/containernetworking/plugins"; 15 + 15 16 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" 17 + "plugins/ipam/dhcp" 18 + "plugins/ipam/host-local" 19 + "plugins/ipam/static" 22 20 "plugins/main/bridge" 23 21 "plugins/main/host-device" 24 22 "plugins/main/ipvlan" ··· 26 24 "plugins/main/macvlan" 27 25 "plugins/main/ptp" 28 26 "plugins/main/vlan" 29 - "plugins/ipam/dhcp" 30 - "plugins/ipam/host-local" 31 - "plugins/ipam/static" 27 + "plugins/meta/bandwidth" 28 + "plugins/meta/firewall" 29 + "plugins/meta/flannel" 30 + "plugins/meta/portmap" 31 + "plugins/meta/sbr" 32 + "plugins/meta/tuning" 32 33 ]; 34 + 33 35 meta = with lib; { 34 36 description = "Some standard networking plugins, maintained by the CNI team"; 35 37 homepage = "https://github.com/containernetworking/plugins";
+7 -1
pkgs/applications/networking/cluster/terraform/default.nix
··· 1 - { stdenv, lib, buildEnv, buildGoPackage, fetchFromGitHub, makeWrapper 1 + { stdenv, lib, buildEnv, buildGoPackage, fetchFromGitHub, makeWrapper, coreutils 2 2 , runCommand, writeText, terraform-providers }: 3 3 4 4 let ··· 17 17 rev = "v${version}"; 18 18 inherit sha256; 19 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 + ''; 20 26 21 27 postInstall = '' 22 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 1 { stdenv, fetchFromGitHub, python3Packages }: 2 2 3 3 python3Packages.buildPythonApplication rec { 4 - name = "gmailieer-${version}"; 5 - version = "1.0"; 4 + pname = "lieer"; 5 + version = "1.1"; 6 6 7 7 src = fetchFromGitHub { 8 8 owner = "gauteh"; 9 - repo = "gmailieer"; 9 + repo = "lieer"; 10 10 rev = "v${version}"; 11 - sha256 = "1zzylv8xbcrh34bz0s29dawzcyx39lai8y8wk0bl4x75v1jfynvf"; 11 + sha256 = "19jx3sm925nrzl26km1bxbp6y5gk1mzwadd79vip2jl70b3xk9f8"; 12 12 }; 13 13 14 14 propagatedBuildInputs = with python3Packages; [ ··· 27 27 tags in the notmuch database may be pushed back remotely to your 28 28 GMail account. 29 29 ''; 30 - homepage = "https://github.com/gauteh/gmailieer"; 31 - repositories.git = "https://github.com/gauteh/gmailieer.git"; 30 + homepage = "https://lieer.gaute.vetsj.com/"; 31 + repositories.git = "https://github.com/gauteh/lieer.git"; 32 32 license = licenses.gpl3Plus; 33 33 maintainers = with maintainers; [ kaiha ]; 34 34 };
+3 -3
pkgs/applications/networking/ids/zeek/default.nix
··· 5 5 in 6 6 stdenv.mkDerivation rec { 7 7 pname = "zeek"; 8 - version = "3.1.1"; 8 + version = "3.1.2"; 9 9 10 10 src = fetchurl { 11 - url = "https://old.zeek.org/downloads/zeek-${version}.tar.gz"; 12 - sha256 = "0siybzdp8w62jqk5vdi5fxwvj6cn4r6c2d4z2axd4rj5vhv5zvx2"; 11 + url = "https://download.zeek.org/zeek-${version}.tar.gz"; 12 + sha256 = "18aa4pfwav8m6vq7cr4bhfg243da54ak933rqbriljnhsrgp4n0q"; 13 13 }; 14 14 15 15 nativeBuildInputs = [ cmake flex bison file ];
+2 -2
pkgs/applications/networking/msmtp/default.nix
··· 9 9 10 10 in stdenv.mkDerivation rec { 11 11 pname = "msmtp"; 12 - version = "1.8.7"; 12 + version = "1.8.8"; 13 13 14 14 src = fetchurl { 15 15 url = "https://marlam.de/${pname}/releases/${pname}-${version}.tar.xz"; 16 - sha256 = "1waiiksa57byb7gvx1zmh6srvl6r8rvwqklk0slb3iaf4kfbqlws"; 16 + sha256 = "1rarck61mz3mwg0l30vjj6j9fq6gc7gic0r1c1ppwpq2izj57jzc"; 17 17 }; 18 18 19 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 15 16 16 stdenv.mkDerivation rec { 17 17 pname = "elementary-planner"; 18 - version = "2.2.14"; 18 + version = "2.3.2"; 19 19 20 20 src = fetchFromGitHub { 21 21 owner = "alainm23"; 22 22 repo = "planner"; 23 23 rev = version; 24 - sha256 = "14k5kiknr0d3my17p4v20iiqzifpz3y80gdzj8vdxic8yk2yr1ap"; 24 + sha256 = "1kjk1zafx71zmax3whzpx6mzl037wlxri30bl2k9y9rg3fd09arr"; 25 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 + ]; 26 36 27 37 nativeBuildInputs = [ 28 38 desktop-file-utils
+5
pkgs/applications/office/libreoffice/default.nix
··· 62 62 63 63 patches = [ 64 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 + }) 65 70 ]; 66 71 67 72 tarballPath = "external/tarballs";
+4 -4
pkgs/applications/office/libreoffice/src-fresh/download.nix
··· 728 728 md5name = "a754c02f7051c2f21e52f8669a421b50485afcde9a581674d6106326b189d126-postgresql-9.2.24.tar.bz2"; 729 729 } 730 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"; 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 734 md5 = ""; 735 - md5name = "55a2cce72049f0794e9a11a84862e9039af9183603b78bc60d89539f82cf533f-Python-3.7.6.tar.xz"; 735 + md5name = "06a0a9f1bf0d8cd1e4121194d666c4e28ddae4dd54346de6c343206599f02136-Python-3.7.7.tar.xz"; 736 736 } 737 737 { 738 738 name = "QR-Code-generator-1.4.0.tar.gz";
+5 -5
pkgs/applications/office/libreoffice/src-fresh/primary.nix
··· 8 8 9 9 major = "6"; 10 10 minor = "4"; 11 - patch = "1"; 12 - tweak = "1"; 11 + patch = "3"; 12 + tweak = "2"; 13 13 14 14 subdir = "${major}.${minor}.${patch}"; 15 15 ··· 17 17 18 18 src = fetchurl { 19 19 url = "https://download.documentfoundation.org/libreoffice/src/${subdir}/libreoffice-${version}.tar.xz"; 20 - sha256 = "03fqpkilz4yi35l447hb9r8gjwj23l61bpdkwg21jm8blm8kkvyj"; 20 + sha256 = "1cmbrhha7mlflnlbpla8fix07cxcgkdb7krnrgs1bylf31y5855w"; 21 21 }; 22 22 23 23 # FIXME rename 24 24 translations = fetchSrc { 25 25 name = "translations"; 26 - sha256 = "0a7arjlxxy7hjm1brxwd124bf1gkbl92bgygi3sbbhbsv07pjdcr"; 26 + sha256 = "06z9hz4m3kdcljjc6y5s18001axjibj9xiyakdndkl9pmnnhn9h3"; 27 27 }; 28 28 29 29 # the "dictionaries" archive is not used for LO build because we already build hunspellDicts packages from ··· 31 31 32 32 help = fetchSrc { 33 33 name = "help"; 34 - sha256 = "1hfllrdyxrg5mgqry3dcrhjbdrd0d27k5mvv4sfj7nwjlmjh8rqq"; 34 + sha256 = "0mpgrwg8z1q38j03l6m1sdpcplyjd5nz1nqaa13vfkryj2lflw45"; 35 35 }; 36 36 }
+2 -2
pkgs/applications/science/electronics/verilator/default.nix
··· 2 2 3 3 stdenv.mkDerivation rec { 4 4 pname = "verilator"; 5 - version = "4.030"; 5 + version = "4.032"; 6 6 7 7 src = fetchurl { 8 8 url = "https://www.veripool.org/ftp/${pname}-${version}.tgz"; 9 - sha256 = "07ldkf7xkr31n1dmx82bmzam8bvc1vsp32k76vd7yzn7r853qyky"; 9 + sha256 = "1l3rhgw7pk59dz7dyhcl0iygn6c9rv9bv131rfzg66asxfwbfq1s"; 10 10 }; 11 11 12 12 enableParallelBuilding = true;
+22 -16
pkgs/applications/science/logic/beluga/default.nix
··· 1 - { stdenv, fetchFromGitHub, ocamlPackages, omake }: 1 + { lib, fetchFromGitHub, ocamlPackages, rsync }: 2 2 3 - stdenv.mkDerivation { 4 - name = "beluga-20180403"; 3 + ocamlPackages.buildDunePackage { 4 + pname = "beluga"; 5 + version = "unstable-2020-03-11"; 5 6 6 7 src = fetchFromGitHub { 7 8 owner = "Beluga-lang"; 8 9 repo = "Beluga"; 9 - rev = "046aa59f008be70a7c4700b723bed0214ea8b687"; 10 - sha256 = "0m68y0r0wdw3mg2jks68bihaww7sg305zdfnic1rkndq2cxv0mld"; 10 + rev = "6133b2f572219333f304bb4f77c177592324c55b"; 11 + sha256 = "0sy6mi50z3mvs5z7dx38piydapk89all81rh038x3559b5fsk68q"; 11 12 }; 12 13 13 - nativeBuildInputs = with ocamlPackages; [ findlib ocamlbuild omake ]; 14 - buildInputs = with ocamlPackages; [ ocaml ulex ocaml_extlib ]; 14 + useDune2 = true; 15 15 16 - installPhase = '' 17 - mkdir -p $out 18 - cp -r bin $out/ 16 + buildInputs = with ocamlPackages; [ 17 + gen sedlex_2 ocaml_extlib dune-build-info linenoise 18 + ]; 19 19 20 - mkdir -p $out/share/beluga 21 - cp -r tools/ examples/ $out/share/beluga 20 + postPatch = '' 21 + patchShebangs ./TEST ./run_harpoon_test.sh 22 + ''; 23 + 24 + checkPhase = "./TEST"; 25 + checkInputs = [ rsync ]; 26 + doCheck = true; 22 27 28 + postInstall = '' 23 29 mkdir -p $out/share/emacs/site-lisp/beluga/ 24 30 cp -r tools/beluga-mode.el $out/share/emacs/site-lisp/beluga 25 31 ''; 26 32 27 - meta = { 33 + meta = with lib; { 28 34 description = "A functional language for reasoning about formal systems"; 29 35 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; 36 + license = licenses.gpl3Plus; 37 + maintainers = [ maintainers.bcdarwin ]; 38 + platforms = platforms.unix; 33 39 }; 34 40 }
+2 -2
pkgs/applications/science/logic/lean/default.nix
··· 2 2 3 3 stdenv.mkDerivation rec { 4 4 pname = "lean"; 5 - version = "3.8.0"; 5 + version = "3.9.0"; 6 6 7 7 src = fetchFromGitHub { 8 8 owner = "leanprover-community"; 9 9 repo = "lean"; 10 10 rev = "v${version}"; 11 - sha256 = "0frs2vhxlzdliyydb462c1886dn585zd7yp7hdxzsri2v6gdh89g"; 11 + sha256 = "0sklw211cmqp4y0c6nycfavpdxdpfwhq9a4sbwdlqd5agyf85h1j"; 12 12 }; 13 13 14 14 nativeBuildInputs = [ cmake ];
+7 -4
pkgs/applications/version-management/git-and-tools/delta/default.nix
··· 1 - { lib, fetchFromGitHub, rustPlatform }: 1 + { lib, fetchFromGitHub, rustPlatform, llvmPackages }: 2 2 3 3 rustPlatform.buildRustPackage rec { 4 4 pname = "delta"; 5 - version = "0.0.17"; 5 + version = "0.0.18"; 6 6 7 7 src = fetchFromGitHub { 8 8 owner = "dandavison"; 9 9 repo = pname; 10 10 rev = version; 11 - sha256 = "1j01h60snciqp4psyxf67j3gbmi02c1baprsg9frzjacawbx8cz7"; 11 + sha256 = "0cpd60861k9nd2gbzyb2hg5npnkgvsnyrvv7mlm30vb1833gz94z"; 12 12 }; 13 13 14 - cargoSha256 = "176bfd57gc9casvk0p10ilvzw3q3rkkv7qflja778vrwr9zrmkzq"; 14 + LLVM_CONFIG_PATH = "${llvmPackages.llvm}/bin/llvm-config"; 15 + LIBCLANG_PATH = "${llvmPackages.libclang.lib}/lib"; 16 + 17 + cargoSha256 = "12gl50q5hf6nq571fqxfv61z4mwfjyw4jb2yqyqbsinwj2frwaxn"; 15 18 16 19 meta = with lib; { 17 20 homepage = "https://github.com/dandavison/delta";
+3 -1
pkgs/applications/version-management/redmine/Gemfile
··· 1 1 source 'https://rubygems.org' 2 2 3 + ruby '>= 2.3.0', '< 2.7.0' if Bundler::VERSION >= '1.12.0' 3 4 gem "bundler", ">= 1.5.0" 4 5 5 - gem "rails", "5.2.4.1" 6 + gem 'rails', '5.2.4.2' 7 + gem 'sprockets', '~> 3.7.2' if RUBY_VERSION < '2.5' 6 8 gem "rouge", "~> 3.12.0" 7 9 gem "request_store", "~> 1.4.1" 8 10 gem "mini_mime", "~> 1.0.1"
+62 -59
pkgs/applications/version-management/redmine/Gemfile.lock
··· 1 1 GEM 2 2 remote: https://rubygems.org/ 3 3 specs: 4 - actioncable (5.2.4.1) 5 - actionpack (= 5.2.4.1) 4 + actioncable (5.2.4.2) 5 + actionpack (= 5.2.4.2) 6 6 nio4r (~> 2.0) 7 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) 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 12 mail (~> 2.5, >= 2.5.4) 13 13 rails-dom-testing (~> 2.0) 14 - actionpack (5.2.4.1) 15 - actionview (= 5.2.4.1) 16 - activesupport (= 5.2.4.1) 14 + actionpack (5.2.4.2) 15 + actionview (= 5.2.4.2) 16 + activesupport (= 5.2.4.2) 17 17 rack (~> 2.0, >= 2.0.8) 18 18 rack-test (>= 0.6.3) 19 19 rails-dom-testing (~> 2.0) ··· 21 21 actionpack-xml_parser (2.0.1) 22 22 actionpack (>= 5.0) 23 23 railties (>= 5.0) 24 - actionview (5.2.4.1) 25 - activesupport (= 5.2.4.1) 24 + actionview (5.2.4.2) 25 + activesupport (= 5.2.4.2) 26 26 builder (~> 3.1) 27 27 erubi (~> 1.4) 28 28 rails-dom-testing (~> 2.0) 29 29 rails-html-sanitizer (~> 1.0, >= 1.0.3) 30 - activejob (5.2.4.1) 31 - activesupport (= 5.2.4.1) 30 + activejob (5.2.4.2) 31 + activesupport (= 5.2.4.2) 32 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) 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 38 arel (>= 9.0) 39 - activestorage (5.2.4.1) 40 - actionpack (= 5.2.4.1) 41 - activerecord (= 5.2.4.1) 39 + activestorage (5.2.4.2) 40 + actionpack (= 5.2.4.2) 41 + activerecord (= 5.2.4.2) 42 42 marcel (~> 0.3.1) 43 - activesupport (5.2.4.1) 43 + activesupport (5.2.4.2) 44 44 concurrent-ruby (~> 1.0, >= 1.0.2) 45 45 i18n (>= 0.7, < 2) 46 46 minitest (~> 5.1) ··· 59 59 regexp_parser (~> 1.5) 60 60 xpath (~> 3.2) 61 61 childprocess (3.0.0) 62 - concurrent-ruby (1.1.5) 63 - crass (1.0.5) 62 + concurrent-ruby (1.1.6) 63 + crass (1.0.6) 64 64 css_parser (1.7.1) 65 65 addressable 66 66 csv (3.1.2) ··· 73 73 concurrent-ruby (~> 1.0) 74 74 jaro_winkler (1.5.4) 75 75 json (2.3.0) 76 - loofah (2.4.0) 76 + loofah (2.5.0) 77 77 crass (~> 1.0.2) 78 78 nokogiri (>= 1.5.9) 79 79 mail (2.7.1) 80 80 mini_mime (>= 0.1.1) 81 81 marcel (0.3.3) 82 82 mimemagic (~> 0.3.2) 83 - method_source (0.9.2) 84 - mimemagic (0.3.3) 83 + method_source (1.0.0) 84 + mimemagic (0.3.4) 85 85 mini_magick (4.9.5) 86 86 mini_mime (1.0.2) 87 87 mini_portile2 (2.4.0) 88 - minitest (5.13.0) 89 - mocha (1.11.1) 88 + minitest (5.14.0) 89 + mocha (1.11.2) 90 90 mysql2 (0.5.3) 91 91 net-ldap (0.16.2) 92 92 nio4r (2.5.2) 93 - nokogiri (1.10.7) 93 + nokogiri (1.10.9) 94 94 mini_portile2 (~> 2.4.0) 95 95 parallel (1.19.1) 96 - parser (2.6.5.0) 96 + parser (2.7.1.0) 97 97 ast (~> 2.4.0) 98 98 pg (1.1.4) 99 - public_suffix (4.0.1) 100 - puma (3.12.2) 101 - rack (2.0.8) 99 + public_suffix (4.0.4) 100 + puma (3.12.4) 101 + rack (2.2.2) 102 102 rack-openid (1.4.2) 103 103 rack (>= 1.1.0) 104 104 ruby-openid (>= 2.1.8) 105 105 rack-test (1.1.0) 106 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) 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 117 bundler (>= 1.3.0) 118 - railties (= 5.2.4.1) 118 + railties (= 5.2.4.2) 119 119 sprockets-rails (>= 2.0.0) 120 120 rails-dom-testing (2.0.3) 121 121 activesupport (>= 4.2.0) 122 122 nokogiri (>= 1.6) 123 123 rails-html-sanitizer (1.3.0) 124 124 loofah (~> 2.3) 125 - railties (5.2.4.1) 126 - actionpack (= 5.2.4.1) 127 - activesupport (= 5.2.4.1) 125 + railties (5.2.4.2) 126 + actionpack (= 5.2.4.2) 127 + activesupport (= 5.2.4.2) 128 128 method_source 129 129 rake (>= 0.8.7) 130 130 thor (>= 0.19.0, < 2.0) ··· 135 135 rbpdf-font (~> 1.19.0) 136 136 rbpdf-font (1.19.1) 137 137 redcarpet (3.5.0) 138 - regexp_parser (1.6.0) 138 + regexp_parser (1.7.0) 139 139 request_store (1.4.1) 140 140 rack (>= 1.4) 141 - roadie (3.5.1) 141 + roadie (4.0.0) 142 142 css_parser (~> 1.4) 143 143 nokogiri (~> 1.8) 144 - roadie-rails (2.1.0) 144 + roadie-rails (2.1.1) 145 145 railties (>= 5.1, < 6.1) 146 - roadie (~> 3.1) 146 + roadie (>= 3.1, < 5.0) 147 147 rouge (3.12.0) 148 148 rubocop (0.76.0) 149 149 jaro_winkler (~> 1.5.1) ··· 152 152 rainbow (>= 2.2.2, < 4.0) 153 153 ruby-progressbar (~> 1.7) 154 154 unicode-display_width (>= 1.4.0, < 1.7) 155 - rubocop-performance (1.5.1) 155 + rubocop-performance (1.5.2) 156 156 rubocop (>= 0.71.0) 157 157 rubocop-rails (2.3.2) 158 158 rack (>= 1.1) 159 159 rubocop (>= 0.72.0) 160 160 ruby-openid (2.9.2) 161 161 ruby-progressbar (1.10.1) 162 - rubyzip (2.0.0) 163 - selenium-webdriver (3.142.6) 162 + rubyzip (2.3.0) 163 + selenium-webdriver (3.142.7) 164 164 childprocess (>= 0.5, < 4.0) 165 165 rubyzip (>= 1.2.2) 166 166 simplecov (0.17.1) ··· 177 177 sprockets (>= 3.0.0) 178 178 thor (1.0.1) 179 179 thread_safe (0.3.6) 180 - tzinfo (1.2.5) 180 + tzinfo (1.2.7) 181 181 thread_safe (~> 0.1) 182 - unicode-display_width (1.6.0) 182 + unicode-display_width (1.6.1) 183 183 websocket-driver (0.7.1) 184 184 websocket-extensions (>= 0.1.0) 185 185 websocket-extensions (0.1.4) 186 186 xpath (3.2.0) 187 187 nokogiri (~> 1.8) 188 - yard (0.9.20) 188 + yard (0.9.24) 189 189 190 190 PLATFORMS 191 191 ruby ··· 208 208 pg (~> 1.1.4) 209 209 puma (~> 3.7) 210 210 rack-openid 211 - rails (= 5.2.4.1) 211 + rails (= 5.2.4.2) 212 212 rails-dom-testing 213 213 rbpdf (~> 1.20.0) 214 214 redcarpet (~> 3.5.0) ··· 223 223 simplecov (~> 0.17.0) 224 224 tzinfo-data 225 225 yard 226 + 227 + RUBY VERSION 228 + ruby 2.6.6p146 226 229 227 230 BUNDLED WITH 228 231 2.1.4
+3 -3
pkgs/applications/version-management/redmine/default.nix
··· 1 1 { stdenv, fetchurl, bundlerEnv, ruby }: 2 2 3 3 let 4 - version = "4.1.0"; 4 + version = "4.1.1"; 5 5 rubyEnv = bundlerEnv { 6 6 name = "redmine-env-${version}"; 7 7 8 8 inherit ruby; 9 9 gemdir = ./.; 10 - groups = [ "ldap" "openid" ]; 10 + groups = [ "development" "ldap" "markdown" "minimagick" "openid" "test" ]; 11 11 }; 12 12 in 13 13 stdenv.mkDerivation rec { ··· 16 16 17 17 src = fetchurl { 18 18 url = "https://www.redmine.org/releases/${pname}-${version}.tar.gz"; 19 - sha256 = "1fxc0xql54cfvj4g8v31vsv19jbij326qkgdz2h5xlp09r821wli"; 19 + sha256 = "1nndy5hz8zvfglxf1f3bsb1pkrfwinfxzkdan1vjs3rkckkszyh5"; 20 20 }; 21 21 22 22 buildInputs = [ rubyEnv rubyEnv.wrappedRuby rubyEnv.bundler ];
+244 -64
pkgs/applications/version-management/redmine/gemset.nix
··· 1 1 { 2 2 actioncable = { 3 3 dependencies = ["actionpack" "nio4r" "websocket-driver"]; 4 + groups = ["default"]; 5 + platforms = []; 4 6 source = { 5 7 remotes = ["https://rubygems.org"]; 6 - sha256 = "1yz5mcjl4is99650vq6rkv539xccq8mp5zsbvzh43wqzfga1llwm"; 8 + sha256 = "0q4by8d41n972j8cdcddrwsh7qphcki50xvgm1syrawyck6w1f5v"; 7 9 type = "gem"; 8 10 }; 9 - version = "5.2.4.1"; 11 + version = "5.2.4.2"; 10 12 }; 11 13 actionmailer = { 12 14 dependencies = ["actionpack" "actionview" "activejob" "mail" "rails-dom-testing"]; 15 + groups = ["default"]; 16 + platforms = []; 13 17 source = { 14 18 remotes = ["https://rubygems.org"]; 15 - sha256 = "1dbw3q3yyh7m7wgc4196hc3v86v123z0xz40llmic8iwx3d9vnda"; 19 + sha256 = "0kg2nayy8wmxhfp52217h80yqr0mcg793xw3cjlfg9lkvdh0nb5z"; 16 20 type = "gem"; 17 21 }; 18 - version = "5.2.4.1"; 22 + version = "5.2.4.2"; 19 23 }; 20 24 actionpack = { 21 25 dependencies = ["actionview" "activesupport" "rack" "rack-test" "rails-dom-testing" "rails-html-sanitizer"]; 26 + groups = ["default"]; 27 + platforms = []; 22 28 source = { 23 29 remotes = ["https://rubygems.org"]; 24 - sha256 = "0f5pm62y08j679k3vhcml8436f92kripd6j3v5dyvn760kwzz72z"; 30 + sha256 = "1w1l9i6q9xns4yl41l582pyc5i1xi40yyyq802drm58gwylv3wax"; 25 31 type = "gem"; 26 32 }; 27 - version = "5.2.4.1"; 33 + version = "5.2.4.2"; 28 34 }; 29 35 actionpack-xml_parser = { 30 36 dependencies = ["actionpack" "railties"]; 37 + groups = ["default"]; 38 + platforms = []; 31 39 source = { 32 40 remotes = ["https://rubygems.org"]; 33 41 sha256 = "1rnm6jrw3mzcf2g3q498igmhsn0kfkxq79w0nm532iclx4g4djs0"; ··· 37 45 }; 38 46 actionview = { 39 47 dependencies = ["activesupport" "builder" "erubi" "rails-dom-testing" "rails-html-sanitizer"]; 48 + groups = ["default"]; 49 + platforms = []; 40 50 source = { 41 51 remotes = ["https://rubygems.org"]; 42 - sha256 = "0hnkyx268czfb6ljv6ipcnz9dbgsb1z9n1gcr6279z9wx9550zij"; 52 + sha256 = "0fp3my6216lb9gp800s46y0404jwfl6xb3j9rvx4zf087497q8lp"; 43 53 type = "gem"; 44 54 }; 45 - version = "5.2.4.1"; 55 + version = "5.2.4.2"; 46 56 }; 47 57 activejob = { 48 58 dependencies = ["activesupport" "globalid"]; 59 + groups = ["default"]; 60 + platforms = []; 49 61 source = { 50 62 remotes = ["https://rubygems.org"]; 51 - sha256 = "0k4j3fcfc8m4hxwhs8xnbxazra760j3amn5r2zm2d5r1a1nqfh91"; 63 + sha256 = "1qsvb89rwqrp779mvpn67qbzidg2q6d1fa8kwybvpc93nzb9zpvi"; 52 64 type = "gem"; 53 65 }; 54 - version = "5.2.4.1"; 66 + version = "5.2.4.2"; 55 67 }; 56 68 activemodel = { 57 69 dependencies = ["activesupport"]; 70 + groups = ["default"]; 71 + platforms = []; 58 72 source = { 59 73 remotes = ["https://rubygems.org"]; 60 - sha256 = "0sg1yyz710pxhq9z0jsbpbgn666y8iv4aj7pywglydipp4i0bpx1"; 74 + sha256 = "0jcfdv00kmifj86d0z347nw55q1f8vwzr1aa9jrfnwz47ndi22di"; 61 75 type = "gem"; 62 76 }; 63 - version = "5.2.4.1"; 77 + version = "5.2.4.2"; 64 78 }; 65 79 activerecord = { 66 80 dependencies = ["activemodel" "activesupport" "arel"]; 81 + groups = ["default"]; 82 + platforms = []; 67 83 source = { 68 84 remotes = ["https://rubygems.org"]; 69 - sha256 = "1p35d6pj1370mnlppqq9lhr7m1ck82xvv621wq6hy12v41qfdnrg"; 85 + sha256 = "1yaqrh23c8krrjw6rvxv7pvnkpp46nk5aq9z2daby640si4xpmp5"; 70 86 type = "gem"; 71 87 }; 72 - version = "5.2.4.1"; 88 + version = "5.2.4.2"; 73 89 }; 74 90 activestorage = { 75 91 dependencies = ["actionpack" "activerecord" "marcel"]; 92 + groups = ["default"]; 93 + platforms = []; 76 94 source = { 77 95 remotes = ["https://rubygems.org"]; 78 - sha256 = "0dd8k91b88b875mypwqific2jilgzj5bx1637cwmzi4c0cy1v17f"; 96 + sha256 = "1d51zp17c9k4brivm8y46rszcz07s5rb75gmkm0dpzg3rz3v38s9"; 79 97 type = "gem"; 80 98 }; 81 - version = "5.2.4.1"; 99 + version = "5.2.4.2"; 82 100 }; 83 101 activesupport = { 84 102 dependencies = ["concurrent-ruby" "i18n" "minitest" "tzinfo"]; 103 + groups = ["default" "test"]; 104 + platforms = []; 85 105 source = { 86 106 remotes = ["https://rubygems.org"]; 87 - sha256 = "0lmlnx79sv18xv1ddm4vq7z3mwdfa4468mq5186av0k8n1k471sp"; 107 + sha256 = "0y1397g5xxinjyxjsdmp8c92yn0y3bd2hl4wbmmrpd08bggy6flc"; 88 108 type = "gem"; 89 109 }; 90 - version = "5.2.4.1"; 110 + version = "5.2.4.2"; 91 111 }; 92 112 addressable = { 93 113 dependencies = ["public_suffix"]; 114 + groups = ["default" "test"]; 115 + platforms = []; 94 116 source = { 95 117 remotes = ["https://rubygems.org"]; 96 118 sha256 = "1fvchp2rhp2rmigx7qglf69xvjqvzq7x0g49naliw29r2bz656sy"; ··· 99 121 version = "2.7.0"; 100 122 }; 101 123 arel = { 124 + groups = ["default"]; 125 + platforms = []; 102 126 source = { 103 127 remotes = ["https://rubygems.org"]; 104 128 sha256 = "1jk7wlmkr61f6g36w9s2sn46nmdg6wn2jfssrhbhirv5x9n95nk0"; ··· 107 131 version = "9.0.0"; 108 132 }; 109 133 ast = { 134 + groups = ["default" "test"]; 135 + platforms = []; 110 136 source = { 111 137 remotes = ["https://rubygems.org"]; 112 138 sha256 = "184ssy3w93nkajlz2c70ifm79jp3j737294kbc5fjw69v1w0n9x7"; ··· 115 141 version = "2.4.0"; 116 142 }; 117 143 builder = { 144 + groups = ["default"]; 145 + platforms = []; 118 146 source = { 119 147 remotes = ["https://rubygems.org"]; 120 148 sha256 = "045wzckxpwcqzrjr353cxnyaxgf0qg22jh00dcx7z38cys5g1jlr"; ··· 124 152 }; 125 153 capybara = { 126 154 dependencies = ["addressable" "mini_mime" "nokogiri" "rack" "rack-test" "regexp_parser" "xpath"]; 155 + groups = ["test"]; 156 + platforms = []; 127 157 source = { 128 158 remotes = ["https://rubygems.org"]; 129 159 sha256 = "1bq1y3gy98rqgw8z69b42isc2klb75fvlwvpi36vycf1yk0sfmmx"; ··· 132 162 version = "3.25.0"; 133 163 }; 134 164 childprocess = { 165 + groups = ["default" "test"]; 166 + platforms = []; 135 167 source = { 136 168 remotes = ["https://rubygems.org"]; 137 169 sha256 = "1ic028k8xgm2dds9mqnvwwx3ibaz32j8455zxr9f4bcnviyahya5"; ··· 140 172 version = "3.0.0"; 141 173 }; 142 174 concurrent-ruby = { 175 + groups = ["default" "test"]; 176 + platforms = []; 143 177 source = { 144 178 remotes = ["https://rubygems.org"]; 145 - sha256 = "1x07r23s7836cpp5z9yrlbpljcxpax14yw4fy4bnp6crhr6x24an"; 179 + sha256 = "094387x4yasb797mv07cs3g6f08y56virc2rjcpb1k79rzaj3nhl"; 146 180 type = "gem"; 147 181 }; 148 - version = "1.1.5"; 182 + version = "1.1.6"; 149 183 }; 150 184 crass = { 185 + groups = ["default"]; 186 + platforms = []; 151 187 source = { 152 188 remotes = ["https://rubygems.org"]; 153 - sha256 = "030sc98kjrb36rh7g21qsbdfxrj6knsjkx0mn3b7gig8zknwhp2f"; 189 + sha256 = "0pfl5c0pyqaparxaqxi6s4gfl21bdldwiawrc0aknyvflli60lfw"; 154 190 type = "gem"; 155 191 }; 156 - version = "1.0.5"; 192 + version = "1.0.6"; 157 193 }; 158 194 css_parser = { 159 195 dependencies = ["addressable"]; 196 + groups = ["default"]; 197 + platforms = []; 160 198 source = { 161 199 remotes = ["https://rubygems.org"]; 162 200 sha256 = "04c4dl8cm5rjr50k9qa6yl9r05fk9zcb1zxh0y0cdahxlsgcydfw"; ··· 165 203 version = "1.7.1"; 166 204 }; 167 205 csv = { 206 + groups = ["default"]; 207 + platforms = []; 168 208 source = { 169 209 remotes = ["https://rubygems.org"]; 170 210 sha256 = "00szzw96bqz59r0kaab4p75qb0wq54iahmq37wpdg96bxc8y80f5"; ··· 173 213 version = "3.1.2"; 174 214 }; 175 215 docile = { 216 + groups = ["default" "test"]; 217 + platforms = []; 176 218 source = { 177 219 remotes = ["https://rubygems.org"]; 178 220 sha256 = "0qrwiyagxzl8zlx3dafb0ay8l14ib7imb2rsmx70i5cp420v8gif"; ··· 181 223 version = "1.3.2"; 182 224 }; 183 225 erubi = { 226 + groups = ["default"]; 227 + platforms = []; 184 228 source = { 185 229 remotes = ["https://rubygems.org"]; 186 230 sha256 = "1nwzxnqhr31fn7nbqmffcysvxjdfl3bhxi0bld5qqhcnfc1xd13x"; ··· 190 234 }; 191 235 globalid = { 192 236 dependencies = ["activesupport"]; 237 + groups = ["default"]; 238 + platforms = []; 193 239 source = { 194 240 remotes = ["https://rubygems.org"]; 195 241 sha256 = "1zkxndvck72bfw235bd9nl2ii0lvs5z88q14706cmn702ww2mxv1"; ··· 198 244 version = "0.4.2"; 199 245 }; 200 246 htmlentities = { 247 + groups = ["default"]; 248 + platforms = []; 201 249 source = { 202 250 remotes = ["https://rubygems.org"]; 203 251 sha256 = "1nkklqsn8ir8wizzlakncfv42i32wc0w9hxp00hvdlgjr7376nhj"; ··· 207 255 }; 208 256 i18n = { 209 257 dependencies = ["concurrent-ruby"]; 258 + groups = ["default" "test"]; 259 + platforms = []; 210 260 source = { 211 261 remotes = ["https://rubygems.org"]; 212 262 sha256 = "1hfxnlyr618s25xpafw9mypa82qppjccbh292c4l3bj36az7f6wl"; ··· 215 265 version = "1.6.0"; 216 266 }; 217 267 jaro_winkler = { 268 + groups = ["default" "test"]; 269 + platforms = []; 218 270 source = { 219 271 remotes = ["https://rubygems.org"]; 220 272 sha256 = "1y8l6k34svmdyqxya3iahpwbpvmn3fswhwsvrz0nk1wyb8yfihsh"; ··· 223 275 version = "1.5.4"; 224 276 }; 225 277 json = { 278 + groups = ["default" "test"]; 279 + platforms = []; 226 280 source = { 227 281 remotes = ["https://rubygems.org"]; 228 282 sha256 = "0nrmw2r4nfxlfgprfgki3hjifgrcrs3l5zvm3ca3gb4743yr25mn"; ··· 232 286 }; 233 287 loofah = { 234 288 dependencies = ["crass" "nokogiri"]; 289 + groups = ["default"]; 290 + platforms = []; 235 291 source = { 236 292 remotes = ["https://rubygems.org"]; 237 - sha256 = "1g7ps9m3s14cajhxrfgbzahv9i3gy47s4hqrv3mpybpj5cyr0srn"; 293 + sha256 = "0jk9fgn5ayzbqvzqm11gbkqvas77zdbpkvynlylyiwynclgrn040"; 238 294 type = "gem"; 239 295 }; 240 - version = "2.4.0"; 296 + version = "2.5.0"; 241 297 }; 242 298 mail = { 243 299 dependencies = ["mini_mime"]; 300 + groups = ["default"]; 301 + platforms = []; 244 302 source = { 245 303 remotes = ["https://rubygems.org"]; 246 304 sha256 = "00wwz6ys0502dpk8xprwcqfwyf3hmnx6lgxaiq6vj43mkx43sapc"; ··· 250 308 }; 251 309 marcel = { 252 310 dependencies = ["mimemagic"]; 311 + groups = ["default"]; 312 + platforms = []; 253 313 source = { 254 314 remotes = ["https://rubygems.org"]; 255 315 sha256 = "1nxbjmcyg8vlw6zwagf17l9y2mwkagmmkg95xybpn4bmf3rfnksx"; ··· 258 318 version = "0.3.3"; 259 319 }; 260 320 method_source = { 321 + groups = ["default"]; 322 + platforms = []; 261 323 source = { 262 324 remotes = ["https://rubygems.org"]; 263 - sha256 = "1pviwzvdqd90gn6y7illcdd9adapw8fczml933p5vl739dkvl3lq"; 325 + sha256 = "1pnyh44qycnf9mzi1j6fywd5fkskv3x7nmsqrrws0rjn5dd4ayfp"; 264 326 type = "gem"; 265 327 }; 266 - version = "0.9.2"; 328 + version = "1.0.0"; 267 329 }; 268 330 mimemagic = { 331 + groups = ["default"]; 332 + platforms = []; 269 333 source = { 270 334 remotes = ["https://rubygems.org"]; 271 - sha256 = "04cp5sfbh1qx82yqxn0q75c7hlcx8y1dr5g3kyzwm4mx6wi2gifw"; 335 + sha256 = "0frrfvz52fh4v1sb2xr9pyxhrxm5f7jppqxagpmd7c5ific66l9p"; 272 336 type = "gem"; 273 337 }; 274 - version = "0.3.3"; 338 + version = "0.3.4"; 275 339 }; 276 340 mini_magick = { 341 + groups = ["minimagick"]; 342 + platforms = []; 277 343 source = { 278 344 remotes = ["https://rubygems.org"]; 279 345 sha256 = "0qy09qrd5bwh8mkbj514n5vcw9ni73218h9s3zmvbpmdwrnzi8j4"; ··· 282 348 version = "4.9.5"; 283 349 }; 284 350 mini_mime = { 351 + groups = ["default" "test"]; 352 + platforms = []; 285 353 source = { 286 354 remotes = ["https://rubygems.org"]; 287 355 sha256 = "1axm0rxyx3ss93wbmfkm78a6x03l8y4qy60rhkkiq0aza0vwq3ha"; ··· 290 358 version = "1.0.2"; 291 359 }; 292 360 mini_portile2 = { 361 + groups = ["default" "test"]; 362 + platforms = []; 293 363 source = { 294 364 remotes = ["https://rubygems.org"]; 295 365 sha256 = "15zplpfw3knqifj9bpf604rb3wc1vhq6363pd6lvhayng8wql5vy"; ··· 298 368 version = "2.4.0"; 299 369 }; 300 370 minitest = { 371 + groups = ["default" "test"]; 372 + platforms = []; 301 373 source = { 302 374 remotes = ["https://rubygems.org"]; 303 - sha256 = "0w16p7cvslh3hxd3cia8jg4pd85z7rz7xqb16vh42gj4rijn8rmi"; 375 + sha256 = "0g73x65hmjph8dg1h3rkzfg7ys3ffxm35hj35grw75fixmq53qyz"; 304 376 type = "gem"; 305 377 }; 306 - version = "5.13.0"; 378 + version = "5.14.0"; 307 379 }; 308 380 mocha = { 381 + groups = ["test"]; 382 + platforms = []; 309 383 source = { 310 384 remotes = ["https://rubygems.org"]; 311 - sha256 = "06i2q5qjr9mvjgjc8w41pdf3qalw340y33wjvzc0rp4a1cbbb7pp"; 385 + sha256 = "0hxmkm8qxd04vwj8mqnpyrf2dwy7g1k9zipdfhl4y71cw7ijm9n4"; 312 386 type = "gem"; 313 387 }; 314 - version = "1.11.1"; 388 + version = "1.11.2"; 315 389 }; 316 390 mysql2 = { 391 + groups = ["default"]; 392 + platforms = [{ 393 + engine = "maglev"; 394 + } { 395 + engine = "mingw"; 396 + } { 397 + engine = "mingw"; 398 + } { 399 + engine = "ruby"; 400 + }]; 317 401 source = { 318 402 remotes = ["https://rubygems.org"]; 319 403 sha256 = "0d14pcy5m4hjig0zdxnl9in5f4izszc7v9zcczf2gyi5kiyxk8jw"; ··· 322 406 version = "0.5.3"; 323 407 }; 324 408 net-ldap = { 409 + groups = ["ldap"]; 410 + platforms = []; 325 411 source = { 326 412 remotes = ["https://rubygems.org"]; 327 413 sha256 = "1vzfhivjfr9q65hkln7xig3qcba6fw9y4kb4384fpm7d7ww0b7xg"; ··· 330 416 version = "0.16.2"; 331 417 }; 332 418 nio4r = { 419 + groups = ["default"]; 420 + platforms = []; 333 421 source = { 334 422 remotes = ["https://rubygems.org"]; 335 423 sha256 = "0gnmvbryr521r135yz5bv8354m7xn6miiapfgpg1bnwsvxz8xj6c"; ··· 339 427 }; 340 428 nokogiri = { 341 429 dependencies = ["mini_portile2"]; 430 + groups = ["default" "test"]; 431 + platforms = []; 342 432 source = { 343 433 remotes = ["https://rubygems.org"]; 344 - sha256 = "0r0qpgf80h764k176yr63gqbs2z0xbsp8vlvs2a79d5r9vs83kln"; 434 + sha256 = "12j76d0bp608932xkzmfi638c7aqah57l437q8494znzbj610qnm"; 345 435 type = "gem"; 346 436 }; 347 - version = "1.10.7"; 437 + version = "1.10.9"; 348 438 }; 349 439 parallel = { 440 + groups = ["default" "test"]; 441 + platforms = []; 350 442 source = { 351 443 remotes = ["https://rubygems.org"]; 352 444 sha256 = "12jijkap4akzdv11lm08dglsc8jmc87xcgq6947i1s3qb69f4zn2"; ··· 356 448 }; 357 449 parser = { 358 450 dependencies = ["ast"]; 451 + groups = ["default" "test"]; 452 + platforms = []; 359 453 source = { 360 454 remotes = ["https://rubygems.org"]; 361 - sha256 = "09davv4ld6caqlczw64vhwf8hr41apys3cj8v2h96yxs4qg1m2iw"; 455 + sha256 = "07awrcwm2xibglrh7qwpj24vwzn9p64m7bmfr9xbrlffaznr0ii7"; 362 456 type = "gem"; 363 457 }; 364 - version = "2.6.5.0"; 458 + version = "2.7.1.0"; 365 459 }; 366 460 pg = { 461 + groups = ["default"]; 462 + platforms = [{ 463 + engine = "maglev"; 464 + } { 465 + engine = "mingw"; 466 + } { 467 + engine = "mingw"; 468 + } { 469 + engine = "ruby"; 470 + }]; 367 471 source = { 368 472 remotes = ["https://rubygems.org"]; 369 473 sha256 = "0fmnyxcyrvgdbgq7m09whgn9i8rwfybk0w8aii1nc4g5kqw0k2jy"; ··· 372 476 version = "1.1.4"; 373 477 }; 374 478 public_suffix = { 479 + groups = ["default" "test"]; 480 + platforms = []; 375 481 source = { 376 482 remotes = ["https://rubygems.org"]; 377 - sha256 = "0xnfv2j2bqgdpg2yq9i2rxby0w2sc9h5iyjkpaas2xknwrgmhdb0"; 483 + sha256 = "1l1kqw75asziwmzrig8rywxswxz8l91sc3pvns02ffsqac1a3wiz"; 378 484 type = "gem"; 379 485 }; 380 - version = "4.0.1"; 486 + version = "4.0.4"; 381 487 }; 382 488 puma = { 489 + groups = ["test"]; 490 + platforms = []; 383 491 source = { 384 492 remotes = ["https://rubygems.org"]; 385 - sha256 = "07sb9xqc9bn5lvl9ia25w8x1fwzk52p5vgysnvjlc3hvn0r00ysj"; 493 + sha256 = "0mg8yh478mh55pg7pv8z7xyvk35ra98hy61z9lwkfr8fzyyz57zs"; 386 494 type = "gem"; 387 495 }; 388 - version = "3.12.2"; 496 + version = "3.12.4"; 389 497 }; 390 498 rack = { 499 + groups = ["default" "openid" "test"]; 500 + platforms = []; 391 501 source = { 392 502 remotes = ["https://rubygems.org"]; 393 - sha256 = "1id0jsslx1ipv0pbqjfn7mjbb2vx2xybk7qypq59a17163xp30gr"; 503 + sha256 = "10mp9s48ssnw004aksq90gvhdvwczh8j6q82q2kqiqq92jd1zxbp"; 394 504 type = "gem"; 395 505 }; 396 - version = "2.0.8"; 506 + version = "2.2.2"; 397 507 }; 398 508 rack-openid = { 399 509 dependencies = ["rack" "ruby-openid"]; 510 + groups = ["openid"]; 511 + platforms = []; 400 512 source = { 401 513 remotes = ["https://rubygems.org"]; 402 514 sha256 = "0sg85yn981j3a0iri3ch4znzdwscvz29l7vrk3dafqw4fdg31llc"; ··· 406 518 }; 407 519 rack-test = { 408 520 dependencies = ["rack"]; 521 + groups = ["default" "test"]; 522 + platforms = []; 409 523 source = { 410 524 remotes = ["https://rubygems.org"]; 411 525 sha256 = "0rh8h376mx71ci5yklnpqqn118z3bl67nnv5k801qaqn1zs62h8m"; ··· 415 529 }; 416 530 rails = { 417 531 dependencies = ["actioncable" "actionmailer" "actionpack" "actionview" "activejob" "activemodel" "activerecord" "activestorage" "activesupport" "railties" "sprockets-rails"]; 532 + groups = ["default"]; 533 + platforms = []; 418 534 source = { 419 535 remotes = ["https://rubygems.org"]; 420 - sha256 = "1198azwbhlhq2n9xmpb19709d6smkanimip9cagvnlihagw80b20"; 536 + sha256 = "1x8k6n4yziwf386prhvr9d9plc9fwv0j8spw2bnmkwhf54v2ias4"; 421 537 type = "gem"; 422 538 }; 423 - version = "5.2.4.1"; 539 + version = "5.2.4.2"; 424 540 }; 425 541 rails-dom-testing = { 426 542 dependencies = ["activesupport" "nokogiri"]; 543 + groups = ["test"]; 544 + platforms = []; 427 545 source = { 428 546 remotes = ["https://rubygems.org"]; 429 547 sha256 = "1lfq2a7kp2x64dzzi5p4cjcbiv62vxh9lyqk2f0rqq3fkzrw8h5i"; ··· 433 551 }; 434 552 rails-html-sanitizer = { 435 553 dependencies = ["loofah"]; 554 + groups = ["default"]; 555 + platforms = []; 436 556 source = { 437 557 remotes = ["https://rubygems.org"]; 438 558 sha256 = "1icpqmxbppl4ynzmn6dx7wdil5hhq6fz707m9ya6d86c7ys8sd4f"; ··· 442 562 }; 443 563 railties = { 444 564 dependencies = ["actionpack" "activesupport" "method_source" "rake" "thor"]; 565 + groups = ["default"]; 566 + platforms = []; 445 567 source = { 446 568 remotes = ["https://rubygems.org"]; 447 - sha256 = "1iqsqyyjscwnj2d3i0zl2k9apgsm7bb92l5h4wv1zbpdbb30wsqb"; 569 + sha256 = "1p2rnd1xdqlk19k3m5gd058yzvwjj25k5hwn4km683b5dhylpd16"; 448 570 type = "gem"; 449 571 }; 450 - version = "5.2.4.1"; 572 + version = "5.2.4.2"; 451 573 }; 452 574 rainbow = { 575 + groups = ["default" "test"]; 576 + platforms = []; 453 577 source = { 454 578 remotes = ["https://rubygems.org"]; 455 579 sha256 = "0bb2fpjspydr6x0s8pn1pqkzmxszvkfapv0p4627mywl7ky4zkhk"; ··· 458 582 version = "3.0.0"; 459 583 }; 460 584 rake = { 585 + groups = ["default"]; 586 + platforms = []; 461 587 source = { 462 588 remotes = ["https://rubygems.org"]; 463 589 sha256 = "0w6qza25bq1s825faaglkx1k6d59aiyjjk3yw3ip5sb463mhhai9"; ··· 467 593 }; 468 594 rbpdf = { 469 595 dependencies = ["htmlentities" "rbpdf-font"]; 596 + groups = ["default"]; 597 + platforms = []; 470 598 source = { 471 599 remotes = ["https://rubygems.org"]; 472 600 sha256 = "0sdj8frakpdms820rwlil38h9bh3p24xmwnjrxsjc1p9irc3za71"; ··· 475 603 version = "1.20.1"; 476 604 }; 477 605 rbpdf-font = { 606 + groups = ["default"]; 607 + platforms = []; 478 608 source = { 479 609 remotes = ["https://rubygems.org"]; 480 610 sha256 = "0pxlr0l4vf785qpy55m439dyii63a26l0sd0yyhbwwcy9zm9hd1v"; ··· 483 613 version = "1.19.1"; 484 614 }; 485 615 redcarpet = { 616 + groups = ["markdown"]; 617 + platforms = []; 486 618 source = { 487 619 remotes = ["https://rubygems.org"]; 488 620 sha256 = "0skcyx1h8b5ms0rp2zm3ql6g322b8c1adnkwkqyv7z3kypb4bm7k"; ··· 491 623 version = "3.5.0"; 492 624 }; 493 625 regexp_parser = { 626 + groups = ["default" "test"]; 627 + platforms = []; 494 628 source = { 495 629 remotes = ["https://rubygems.org"]; 496 - sha256 = "1l44ml30jvqpdi3707x1n1dinq7fx9887pv3q2ywyfmi4kja7yf2"; 630 + sha256 = "0l2vcj9qffj5b3v9jsyi4k994bdj3rjz7l9ql8x04lndqxfrrrv2"; 497 631 type = "gem"; 498 632 }; 499 - version = "1.6.0"; 633 + version = "1.7.0"; 500 634 }; 501 635 request_store = { 502 636 dependencies = ["rack"]; 637 + groups = ["default"]; 638 + platforms = []; 503 639 source = { 504 640 remotes = ["https://rubygems.org"]; 505 641 sha256 = "1963330z03fk382fi8y231ygcbnh86m91dqlp5rh1mwy9ihzzl6d"; ··· 509 645 }; 510 646 roadie = { 511 647 dependencies = ["css_parser" "nokogiri"]; 648 + groups = ["default"]; 649 + platforms = []; 512 650 source = { 513 651 remotes = ["https://rubygems.org"]; 514 - sha256 = "1zihd316bkbnrinz5s1s7pg7s0cadhhj6qs7wmc713j0g6ai1k9r"; 652 + sha256 = "01kld3drqfiih5x8c13cvr6dpvdl7jml0v9bcw4fsy322lax3kn0"; 515 653 type = "gem"; 516 654 }; 517 - version = "3.5.1"; 655 + version = "4.0.0"; 518 656 }; 519 657 roadie-rails = { 520 658 dependencies = ["railties" "roadie"]; 659 + groups = ["default"]; 660 + platforms = []; 521 661 source = { 522 662 remotes = ["https://rubygems.org"]; 523 - sha256 = "0hdkmnxrmw31dn9jq43xiypz2v6rbvg4x2yd2hgl2xbl3lm1ln7i"; 663 + sha256 = "1fmn7kkbpgipjsx65rw7hqa3bwinlqykx5qf1x28ya9ag8v2q0ph"; 524 664 type = "gem"; 525 665 }; 526 - version = "2.1.0"; 666 + version = "2.1.1"; 527 667 }; 528 668 rouge = { 669 + groups = ["default"]; 670 + platforms = []; 529 671 source = { 530 672 remotes = ["https://rubygems.org"]; 531 673 sha256 = "08fpnxbhqv5sqpnfjasl1ysxafssyq4q1yhcqamqqzmb9czj1czw"; ··· 535 677 }; 536 678 rubocop = { 537 679 dependencies = ["jaro_winkler" "parallel" "parser" "rainbow" "ruby-progressbar" "unicode-display_width"]; 680 + groups = ["test"]; 681 + platforms = []; 538 682 source = { 539 683 remotes = ["https://rubygems.org"]; 540 684 sha256 = "07x51ixlx76y194xsszh5lbkaqakz44ykbrjxg3qaggbs18790q0"; ··· 544 688 }; 545 689 rubocop-performance = { 546 690 dependencies = ["rubocop"]; 691 + groups = ["test"]; 692 + platforms = []; 547 693 source = { 548 694 remotes = ["https://rubygems.org"]; 549 - sha256 = "1kn6rb0ma32gjp5qdvrbbb9ckh66rm6xpfrw8h3kr7svirsww2h8"; 695 + sha256 = "1fk9nd3b24avgsqp726hy2pl1iyfjrh6jni97wkky6kqy0lq6zq2"; 550 696 type = "gem"; 551 697 }; 552 - version = "1.5.1"; 698 + version = "1.5.2"; 553 699 }; 554 700 rubocop-rails = { 555 701 dependencies = ["rack" "rubocop"]; 702 + groups = ["test"]; 703 + platforms = []; 556 704 source = { 557 705 remotes = ["https://rubygems.org"]; 558 706 sha256 = "1q7ffsq1cjm4m949nh935kjzv4zf1pacnrl00siwh8flhcn3mmjf"; ··· 561 709 version = "2.3.2"; 562 710 }; 563 711 ruby-openid = { 712 + groups = ["openid"]; 713 + platforms = []; 564 714 source = { 565 715 remotes = ["https://rubygems.org"]; 566 716 sha256 = "190p1m0bxd9xkfk1j6cpcv3x5c367g36nsglg4m1fcwqdd13k3kz"; ··· 569 719 version = "2.9.2"; 570 720 }; 571 721 ruby-progressbar = { 722 + groups = ["default" "test"]; 723 + platforms = []; 572 724 source = { 573 725 remotes = ["https://rubygems.org"]; 574 726 sha256 = "1k77i0d4wsn23ggdd2msrcwfy0i376cglfqypkk2q77r2l3408zf"; ··· 577 729 version = "1.10.1"; 578 730 }; 579 731 rubyzip = { 732 + groups = ["default" "test"]; 733 + platforms = []; 580 734 source = { 581 735 remotes = ["https://rubygems.org"]; 582 - sha256 = "1gz0ri0pa2xr7b6bf66yjc2wfvk51f4gi6yk7bklwl1nr65zc4gz"; 736 + sha256 = "0590m2pr9i209pp5z4mx0nb1961ishdiqb28995hw1nln1d1b5ji"; 583 737 type = "gem"; 584 738 }; 585 - version = "2.0.0"; 739 + version = "2.3.0"; 586 740 }; 587 741 selenium-webdriver = { 588 742 dependencies = ["childprocess" "rubyzip"]; 743 + groups = ["test"]; 744 + platforms = []; 589 745 source = { 590 746 remotes = ["https://rubygems.org"]; 591 - sha256 = "11abil34dr8p1kw7hlaqd6kr430v4srmhzf72zzqvhcimlfvm4yb"; 747 + sha256 = "0adcvp86dinaqq3nhf8p3m0rl2g6q0a4h52k0i7kdnsg1qz9k86y"; 592 748 type = "gem"; 593 749 }; 594 - version = "3.142.6"; 750 + version = "3.142.7"; 595 751 }; 596 752 simplecov = { 597 753 dependencies = ["docile" "json" "simplecov-html"]; 754 + groups = ["test"]; 755 + platforms = []; 598 756 source = { 599 757 remotes = ["https://rubygems.org"]; 600 758 sha256 = "1135k46nik05sdab30yxb8264lqiz01c8v000g16cl9pjc4mxrdw"; ··· 603 761 version = "0.17.1"; 604 762 }; 605 763 simplecov-html = { 764 + groups = ["default" "test"]; 765 + platforms = []; 606 766 source = { 607 767 remotes = ["https://rubygems.org"]; 608 768 sha256 = "1lihraa4rgxk8wbfl77fy9sf0ypk31iivly8vl3w04srd7i0clzn"; ··· 612 772 }; 613 773 sprockets = { 614 774 dependencies = ["concurrent-ruby" "rack"]; 775 + groups = ["default"]; 776 + platforms = []; 615 777 source = { 616 778 remotes = ["https://rubygems.org"]; 617 779 sha256 = "0jm37zpvvm1arxjwrd6am0wrdbfhrhc5y0l4p2i3p11z04bsvgap"; ··· 621 783 }; 622 784 sprockets-rails = { 623 785 dependencies = ["actionpack" "activesupport" "sprockets"]; 786 + groups = ["default"]; 787 + platforms = []; 624 788 source = { 625 789 remotes = ["https://rubygems.org"]; 626 790 sha256 = "0ab42pm8p5zxpv3sfraq45b9lj39cz9mrpdirm30vywzrwwkm5p1"; ··· 629 793 version = "3.2.1"; 630 794 }; 631 795 thor = { 796 + groups = ["default"]; 797 + platforms = []; 632 798 source = { 633 799 remotes = ["https://rubygems.org"]; 634 800 sha256 = "1xbhkmyhlxwzshaqa7swy2bx6vd64mm0wrr8g3jywvxy7hg0cwkm"; ··· 637 803 version = "1.0.1"; 638 804 }; 639 805 thread_safe = { 806 + groups = ["default" "test"]; 807 + platforms = []; 640 808 source = { 641 809 remotes = ["https://rubygems.org"]; 642 810 sha256 = "0nmhcgq6cgz44srylra07bmaw99f5271l0dpsvl5f75m44l0gmwy"; ··· 646 814 }; 647 815 tzinfo = { 648 816 dependencies = ["thread_safe"]; 817 + groups = ["default" "test"]; 818 + platforms = []; 649 819 source = { 650 820 remotes = ["https://rubygems.org"]; 651 - sha256 = "1fjx9j327xpkkdlxwmkl3a8wqj7i4l4jwlrv3z13mg95z9wl253z"; 821 + sha256 = "1i3jh086w1kbdj3k5l60lc3nwbanmzdf8yjj3mlrx9b2gjjxhi9r"; 652 822 type = "gem"; 653 823 }; 654 - version = "1.2.5"; 824 + version = "1.2.7"; 655 825 }; 656 826 unicode-display_width = { 827 + groups = ["default" "test"]; 828 + platforms = []; 657 829 source = { 658 830 remotes = ["https://rubygems.org"]; 659 - sha256 = "08kfiniak1pvg3gn5k6snpigzvhvhyg7slmm0s2qx5zkj62c1z2w"; 831 + sha256 = "1pppclzq4qb26g321553nm9xqca3zgllvpwb2kqxsdadwj51s09x"; 660 832 type = "gem"; 661 833 }; 662 - version = "1.6.0"; 834 + version = "1.6.1"; 663 835 }; 664 836 websocket-driver = { 665 837 dependencies = ["websocket-extensions"]; 838 + groups = ["default"]; 839 + platforms = []; 666 840 source = { 667 841 remotes = ["https://rubygems.org"]; 668 842 sha256 = "1bxamwqldmy98hxs5pqby3andws14hl36ch78g0s81gaz9b91nj2"; ··· 671 845 version = "0.7.1"; 672 846 }; 673 847 websocket-extensions = { 848 + groups = ["default"]; 849 + platforms = []; 674 850 source = { 675 851 remotes = ["https://rubygems.org"]; 676 852 sha256 = "00i624ng1nvkz1yckj3f8yxxp6hi7xaqf40qh9q3hj2n1l9i8g6m"; ··· 680 856 }; 681 857 xpath = { 682 858 dependencies = ["nokogiri"]; 859 + groups = ["default" "test"]; 860 + platforms = []; 683 861 source = { 684 862 remotes = ["https://rubygems.org"]; 685 863 sha256 = "0bh8lk9hvlpn7vmi6h4hkcwjzvs2y0cmkk3yjjdr8fxvj6fsgzbd"; ··· 688 866 version = "3.2.0"; 689 867 }; 690 868 yard = { 869 + groups = ["development"]; 870 + platforms = []; 691 871 source = { 692 872 remotes = ["https://rubygems.org"]; 693 - sha256 = "0rxqwry3h2hjz069f0kfr140wgx1khgljnqf112dk5x9rm4l0xny"; 873 + sha256 = "1g0bw2qcl48fxawrdf68l229508z53mrqisavji2lkxzv4w4j2pp"; 694 874 type = "gem"; 695 875 }; 696 - version = "0.9.20"; 876 + version = "0.9.24"; 697 877 }; 698 878 }
+9 -32
pkgs/applications/video/plex-media-player/default.nix
··· 5 5 # During compilation, a CMake bundle is downloaded from `artifacts.plex.tv`, 6 6 # which then downloads a handful of web client-related files. To enable 7 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 - }; 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; }; 37 12 in mkDerivation rec { 38 13 pname = "plex-media-player"; 39 - version = "2.40.0.1007"; 40 - vsnHash = "5482132c"; 14 + version = "2.55.0.1069"; 15 + vsnHash = "2369bed9"; 41 16 42 17 src = fetchFromGitHub { 43 18 owner = "plexinc"; 44 19 repo = "plex-media-player"; 45 20 rev = "v${version}-${vsnHash}"; 46 - sha256 = "0ibdh5g8x32iy74q97jfsmxd08wnyrzs3gfiwjfgc10vaa1qdhli"; 21 + sha256 = "1jq4592sgaia0xy2h7n3vh5i7c84sdh4l64fdc774r4i0bmg66qi"; 47 22 }; 48 23 49 24 nativeBuildInputs = [ pkgconfig cmake python3 ]; ··· 60 35 ''; 61 36 62 37 cmakeFlags = [ "-DCMAKE_BUILD_TYPE=RelWithDebInfo" "-DQTROOT=${qtbase}" ]; 38 + 39 + passthru.updateScript = ./update.sh; 63 40 64 41 meta = with stdenv.lib; { 65 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 18 }; 19 19 20 20 nativeBuildInputs = [ pkg-config ]; 21 - buildInputs = [ glib systemd ] ++ 22 - stdenv.lib.optionals (!stdenv.hostPlatform.isMusl) [ glibc glibc.static ]; 21 + buildInputs = [ glib systemd ] 22 + ++ stdenv.lib.optionals (!stdenv.hostPlatform.isMusl) [ glibc glibc.static ]; 23 23 24 - installPhase = "install -Dm755 bin/${pname} $out/bin/${pname}"; 24 + installFlags = [ "PREFIX=$(out)" ]; 25 25 26 26 meta = with stdenv.lib; { 27 27 homepage = "https://github.com/containers/conmon";
+2 -2
pkgs/applications/virtualization/docker/default.nix
··· 1 1 { stdenv, lib, fetchFromGitHub, makeWrapper, removeReferencesTo, pkgconfig 2 2 , go-md2man, go, containerd, runc, docker-proxy, tini, libtool 3 3 , sqlite, iproute, lvm2, systemd 4 - , btrfs-progs, iptables, e2fsprogs, xz, utillinux, xfsprogs 4 + , btrfs-progs, iptables, e2fsprogs, xz, utillinux, xfsprogs, git 5 5 , procps, libseccomp 6 6 }: 7 7 ··· 123 123 124 124 outputs = ["out" "man"]; 125 125 126 - extraPath = optionals (stdenv.isLinux) (makeBinPath [ iproute iptables e2fsprogs xz xfsprogs procps utillinux ]); 126 + extraPath = optionals (stdenv.isLinux) (makeBinPath [ iproute iptables e2fsprogs xz xfsprogs procps utillinux git ]); 127 127 128 128 installPhase = optionalString (stdenv.isLinux) '' 129 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 81 patchelf --set-rpath "$(patchelf --print-rpath $out/lib/libblas${canonicalExtension}):${lib.getLib blasProvider}/lib" $out/lib/libblas${canonicalExtension} 82 82 '' else if stdenv.hostPlatform.isDarwin then '' 83 83 install_name_tool \ 84 - -id libblas${canonicalExtension} 84 + -id libblas${canonicalExtension} \ 85 85 -add_rpath ${lib.getLib blasProvider}/lib \ 86 86 $out/lib/libblas${canonicalExtension} 87 87 '' else "") + ''
+2 -2
pkgs/common-updater/generic-updater.nix
··· 5 5 , attrPath ? pname 6 6 , versionLister 7 7 , rev-prefix ? "" 8 - , odd-unstable ? true 9 - , patchlevel-unstable ? true 8 + , odd-unstable ? false 9 + , patchlevel-unstable ? false 10 10 }: 11 11 12 12 let
+2 -2
pkgs/data/fonts/fira/default.nix
··· 1 1 { lib, fetchFromGitHub }: 2 2 3 3 let 4 - version = "4.106"; 4 + version = "4.202"; 5 5 in fetchFromGitHub { 6 6 name = "fira-${version}"; 7 7 ··· 15 15 cp otf/*.otf $out/share/fonts/opentype 16 16 ''; 17 17 18 - sha256 = "0c97nmihcq0ki7ywj8zn048a2bgrszc61lb9p0djfi65ar52jab4"; 18 + sha256 = "1iwxbp7kw5kghh5nbycb05zby7p2ib61mywva3h6giv2wd4lpxnz"; 19 19 20 20 meta = with lib; { 21 21 homepage = "https://mozilla.github.io/Fira/";
+1
pkgs/data/themes/arc/default.nix
··· 48 48 license = licenses.gpl3; 49 49 maintainers = with maintainers; [ simonvandel romildo ]; 50 50 platforms = platforms.linux; 51 + broken = true; # since libsass 3.6.3 51 52 }; 52 53 }
+1
pkgs/data/themes/yaru/default.nix
··· 25 25 license = with licenses; [ cc-by-sa-40 gpl3 ]; 26 26 platforms = platforms.linux; 27 27 maintainers = [ maintainers.jD91mZM2 ]; 28 + broken = true; # since libsass 3.6.3 28 29 }; 29 30 }
+2 -2
pkgs/desktops/xfce/applications/gigolo/default.nix
··· 3 3 mkXfceDerivation { 4 4 category = "apps"; 5 5 pname = "gigolo"; 6 - version = "0.5.0"; 6 + version = "0.5.1"; 7 7 odd-unstable = false; 8 8 9 - sha256 = "1lqsxb0d5i8p9vbzx8s4p3rga7va5h1q146xgmsa41j5v40wrlw6"; 9 + sha256 = "11a35z5apr26nl6fpmbsvvv3xf5w61sgzcb505plavrchpfbdxjn"; 10 10 11 11 nativeBuildInputs = [ exo ]; 12 12 buildInputs = [ gtk3 glib gvfs ];
+2 -2
pkgs/desktops/xfce/applications/parole/default.nix
··· 7 7 mkXfceDerivation { 8 8 category = "apps"; 9 9 pname = "parole"; 10 - version = "1.0.4"; 10 + version = "1.0.5"; 11 11 12 - sha256 = "18j4bmny37crryh4pvxcjjvj99mln6ljq2vy69awxhvrjx9ljv13"; 12 + sha256 = "0qgis2gnkcvg7xwp76cbi0ihqdjprvvw2d66hk7klhrafp7c0v13"; 13 13 14 14 postPatch = '' 15 15 substituteInPlace src/plugins/mpris2/Makefile.am \
+2 -2
pkgs/desktops/xfce/applications/xfburn/default.nix
··· 3 3 mkXfceDerivation { 4 4 category = "apps"; 5 5 pname = "xfburn"; 6 - version = "0.6.1"; 6 + version = "0.6.2"; 7 7 8 - sha256 = "0a1ly79x7j5pgr3vbsabb4i0jd5rryaigj9z8iqzr8p9miypx20v"; 8 + sha256 = "02axhsbbsvd31jb0xs1d2qxr614qb29pajv0sm2p1n1c2cv2fjh1"; 9 9 10 10 nativeBuildInputs = [ libxslt docbook_xsl ]; 11 11 buildInputs = [ exo gtk3 libburn libisofs libxfce4ui ];
+2 -2
pkgs/desktops/xfce/applications/xfce4-dict/default.nix
··· 3 3 mkXfceDerivation { 4 4 category = "apps"; 5 5 pname = "xfce4-dict"; 6 - version = "0.8.2"; 6 + version = "0.8.3"; 7 7 8 - sha256 = "1zbb0k0984ny7wy4gbk6ymkh87rbfakpim54yq4r3h5ymslx7iv7"; 8 + sha256 = "0p7k2ffknr23hh3j17dhh5q8adn736p2piwx0sg8f5dvvhhc5whz"; 9 9 10 10 patches = [ ./configure-gio.patch ]; 11 11
+2 -2
pkgs/desktops/xfce/applications/xfce4-notifyd/default.nix
··· 4 4 mkXfceDerivation { 5 5 category = "apps"; 6 6 pname = "xfce4-notifyd"; 7 - version = "0.4.4"; 7 + version = "0.6.0"; 8 8 9 - sha256 = "1lmm9h3ych8dz9jpjkxg91f9ln14xs527nxjxsryks00kmqk4kai"; 9 + sha256 = "03lw7zil6pwvx537ibqrynxjz7d6iq6in7vdskrnnn16kfg6hjg2"; 10 10 11 11 buildInputs = [ exo gtk3 glib libnotify libxfce4ui libxfce4util xfce4-panel xfconf ]; 12 12
+2 -2
pkgs/desktops/xfce/applications/xfce4-screenshooter/default.nix
··· 3 3 mkXfceDerivation { 4 4 category = "apps"; 5 5 pname = "xfce4-screenshooter"; 6 - version = "1.9.5"; 6 + version = "1.9.7"; 7 7 odd-unstable = false; 8 8 9 - sha256 = "1h14sywvk9l06p3z1cpb79911j8w2wqbk03ldknjkia2rfymjk06"; 9 + sha256 = "14vbd7iigaw57hl47rnixk873c20q5clqynzkm9zzpqc568dxixd"; 10 10 11 11 buildInputs = [ exo gtk3 libsoup libxfce4ui libxfce4util xfce4-panel glib-networking ]; 12 12
+2 -2
pkgs/desktops/xfce/applications/xfce4-taskmanager/default.nix
··· 3 3 mkXfceDerivation { 4 4 category = "apps"; 5 5 pname = "xfce4-taskmanager"; 6 - version = "1.2.2"; 6 + version = "1.2.3"; 7 7 8 - sha256 = "03js0pmhrybxa7hrp3gx4rm7j061ansv0bp2dwhnbrdpmzjysysc"; 8 + sha256 = "0818chns7vkvjqakgz8z790adkygcq4jlw59dv6kyzk17hxq6cxv"; 9 9 10 10 nativeBuildInputs = [ exo ]; 11 11 buildInputs = [ gtk3 libwnck3 libXmu ];
+2 -2
pkgs/desktops/xfce/applications/xfce4-terminal/default.nix
··· 3 3 mkXfceDerivation { 4 4 category = "apps"; 5 5 pname = "xfce4-terminal"; 6 - version = "0.8.8"; 6 + version = "0.8.9.2"; 7 7 8 - sha256 = "0sg9vwyvhh7pjp83biv7gvf42423a7ly4dc7q2gn28kp6bds2qcp"; 8 + sha256 = "1vlpfsrdalqmsd86aj0kvvam5skzn6xngigjziwli6q6il6lb9fj"; 9 9 10 10 buildInputs = [ gtk3 libxfce4ui vte xfconf pcre2 ]; 11 11
+2 -2
pkgs/desktops/xfce/applications/xfdashboard/default.nix
··· 17 17 mkXfceDerivation { 18 18 category = "apps"; 19 19 pname = "xfdashboard"; 20 - version = "0.7.5"; 20 + version = "0.7.7"; 21 21 rev-prefix = ""; 22 22 odd-unstable = false; 23 23 24 - sha256 = "0d0kg90h3li41bs75z3xldljsglkz220pba39c54qznnzb8v8a2i"; 24 + sha256 = "0b9pl3k8wl7svwhb9knhvr86gjg2904n788l8cbczwy046ql7pyc"; 25 25 26 26 buildInputs = [ 27 27 clutter
+8 -4
pkgs/desktops/xfce/art/xfce4-icon-theme.nix
··· 1 - { stdenv, fetchurl, pkgconfig, intltool, gtk2, xfce }: 1 + { stdenv, fetchurl, pkgconfig, intltool, gtk3, xfce }: 2 2 3 3 let 4 4 category = "art"; ··· 13 13 sha256 = "1yk6rx3zr9grm4jwpjvqdkl13pisy7qn1wm5cqzmd2kbsn96cy6l"; 14 14 }; 15 15 16 - nativeBuildInputs = [ pkgconfig ]; 17 - buildInputs = [ intltool gtk2 ]; 18 - 16 + nativeBuildInputs = [ 17 + pkgconfig 18 + intltool 19 + gtk3 20 + ]; 21 + 19 22 passthru.updateScript = xfce.updateScript { 20 23 inherit pname version; 21 24 attrPath = "xfce.${pname}"; ··· 25 28 meta = with stdenv.lib; { 26 29 homepage = "https://www.xfce.org/"; 27 30 description = "Icons for Xfce"; 31 + license = licenses.gpl2Plus; 28 32 platforms = platforms.linux; 29 33 maintainers = [ maintainers.eelco ]; 30 34 };
+16 -5
pkgs/desktops/xfce/core/exo/default.nix
··· 1 - { mkXfceDerivation, docbook_xsl, glib, libxslt, perlPackages, gtk3 1 + { mkXfceDerivation, docbook_xsl, glib, libxslt, perlPackages, gtk2, gtk3 2 2 , libxfce4ui, libxfce4util }: 3 3 4 4 mkXfceDerivation { 5 5 category = "xfce"; 6 6 pname = "exo"; 7 - version = "0.12.8"; 7 + version = "0.12.11"; 8 + 9 + sha256 = "1db7w6jk3i501x4qw0hs0ydrm1fjdkxmahzbv5iag859wnnlg0pd"; 8 10 9 - sha256 = "013am7q4pwfncf4hk2a3hv7yx2vxgzb5xm8qsi9mxkj29xdhrvs5"; 11 + nativeBuildInputs = [ 12 + libxslt 13 + perlPackages.URI 14 + docbook_xsl 15 + ]; 10 16 11 - nativeBuildInputs = [ libxslt perlPackages.URI docbook_xsl ]; 12 - buildInputs = [ gtk3 glib libxfce4ui libxfce4util ]; 17 + buildInputs = [ 18 + gtk2 # some xfce plugins still uses gtk2 19 + gtk3 20 + glib 21 + libxfce4ui 22 + libxfce4util 23 + ]; 13 24 14 25 # Workaround https://bugzilla.xfce.org/show_bug.cgi?id=15825 15 26 NIX_CFLAGS_COMPILE = "-I${glib.dev}/include/gio-unix-2.0";
+2 -2
pkgs/desktops/xfce/core/thunar/default.nix
··· 21 21 let unwrapped = mkXfceDerivation { 22 22 category = "xfce"; 23 23 pname = "thunar"; 24 - version = "1.8.9"; 24 + version = "1.8.14"; 25 25 26 - sha256 = "01w60csbs2nq1bhb8n1bnmjmx48fm0va3qbnq84z0h2dxpr80b1w"; 26 + sha256 = "1ph9bcqfm2nccliagl8zdl1dizh62qnr8m5hacri3cs2jhc0jjpy"; 27 27 28 28 nativeBuildInputs = [ 29 29 docbook_xsl
+2 -2
pkgs/desktops/xfce/core/tumbler/default.nix
··· 14 14 mkXfceDerivation { 15 15 category = "xfce"; 16 16 pname = "tumbler"; 17 - version = "0.2.7"; 17 + version = "0.2.8"; 18 18 19 - sha256 = "14ql3fcxyz81qr9s0vcwh6j2ks5fl8jf9scwnkilv5jy0ii9l0ry"; 19 + sha256 = "1y9sphaz3izal96v53lps692xxzp5pad1d09kxsmmpm7pic4n1r2"; 20 20 21 21 buildInputs = [ 22 22 ffmpegthumbnailer
+2 -2
pkgs/desktops/xfce/core/xfce4-panel/default.nix
··· 3 3 mkXfceDerivation { 4 4 category = "xfce"; 5 5 pname = "xfce4-panel"; 6 - version = "4.14.0"; 6 + version = "4.14.3"; 7 7 8 - sha256 = "1v3f2xjz9gwa8maqqvv9w2dh1cgy03v89a9ny7nrv0cjsxwwrr15"; 8 + sha256 = "0h8cqs2bghmyp0jihjm2wc7j14k271j178vllin271xrl7kzmvzv"; 9 9 10 10 nativeBuildInputs = [ gobject-introspection ]; 11 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 4 mkXfceDerivation { 5 5 category = "xfce"; 6 6 pname = "xfce4-power-manager"; 7 - version = "1.6.5"; 7 + version = "1.6.6"; 8 8 9 - sha256 = "0zazm2cgkz5xj7rvy9gbh4kaay2anfcmawg4gj38pnq3a8zcwwd5"; 9 + sha256 = "0lyp3dp4ijbpf21vanrvgm6rmfp8v0zyqxibdj5gxnadmvcq38iy"; 10 10 11 11 nativeBuildInputs = [ automakeAddFlags exo ]; 12 12 buildInputs = [ gtk3 libnotify libxfce4ui libxfce4util upower xfconf ];
+2 -2
pkgs/desktops/xfce/core/xfce4-session/default.nix
··· 3 3 mkXfceDerivation { 4 4 category = "xfce"; 5 5 pname = "xfce4-session"; 6 - version = "4.14.0"; 6 + version = "4.14.2"; 7 7 8 - sha256 = "0v0xzkdr5rgv6219c1dy96cghgw8bqnb313jccxihfgddf363104"; 8 + sha256 = "1gr6j96l792v33lbh7rqpbdjmy8m68hy14bsndx6bykv10zvmgx2"; 9 9 10 10 buildInputs = [ exo gtk3 glib libxfce4ui libxfce4util libwnck3 xfconf polkit iceauth ]; 11 11
+2 -2
pkgs/desktops/xfce/core/xfce4-settings/default.nix
··· 5 5 mkXfceDerivation { 6 6 category = "xfce"; 7 7 pname = "xfce4-settings"; 8 - version = "4.14.0"; 8 + version = "4.14.3"; 9 9 10 - sha256 = "13gmxd4sfgd6wky7s03bar58w9vl4i6jv2wncd6iajww791y5akn"; 10 + sha256 = "1zzngdj7mp2r6rcs8gvda1218zlz5gpnc6gsp20z32l69psp3yld"; 11 11 12 12 postPatch = '' 13 13 for f in $(find . -name \*.c); do
+2 -2
pkgs/desktops/xfce/core/xfdesktop/default.nix
··· 3 3 mkXfceDerivation { 4 4 category = "xfce"; 5 5 pname = "xfdesktop"; 6 - version = "4.14.1"; 6 + version = "4.14.2"; 7 7 8 - sha256 = "006w4xwmpwp34q2qkkixr3xz0vb0kny79pw64yj4304wsb5jr14g"; 8 + sha256 = "04fhm1pf9290sy3ymrmnfnm2x6fq5ldzvj5bjd9kz6zkx0nsq1za"; 9 9 10 10 buildInputs = [ 11 11 exo
+1 -3
pkgs/desktops/xfce/default.nix
··· 117 117 118 118 xfce4-datetime-plugin = callPackage ./panel-plugins/xfce4-datetime-plugin { }; 119 119 120 - xfce4-dict-plugin = callPackage ./panel-plugins/xfce4-dict-plugin.nix { }; 121 - 122 120 xfce4-dockbarx-plugin = callPackage ./panel-plugins/xfce4-dockbarx-plugin.nix { }; 123 121 124 122 xfce4-embed-plugin = callPackage ./panel-plugins/xfce4-embed-plugin.nix { }; ··· 187 185 xfce4_cpufreq_plugin = xfce4-cpufreq-plugin; 188 186 xfce4_cpugraph_plugin = xfce4-cpugraph-plugin; 189 187 xfce4_datetime_plugin = xfce4-datetime-plugin; 190 - xfce4_dict_plugin = xfce4-dict-plugin; 191 188 xfce4_dockbarx_plugin = xfce4-dockbarx-plugin; 192 189 xfce4_embed_plugin = xfce4-embed-plugin; 193 190 xfce4_eyes_plugin = xfce4-eyes-plugin; ··· 211 208 212 209 xfce4-mixer = throw "deprecated 2019-08-18: obsoleted by xfce4-pulseaudio-plugin"; # added 2019-08-18 213 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 214 212 215 213 # added 2019-11-04 216 214 libxfce4ui_gtk3 = libxfce4ui;
+2 -2
pkgs/desktops/xfce/panel-plugins/xfce4-battery-plugin/default.nix
··· 3 3 mkXfceDerivation { 4 4 category = "panel-plugins"; 5 5 pname = "xfce4-battery-plugin"; 6 - version = "1.1.2"; 6 + version = "1.1.3"; 7 7 rev-prefix = ""; 8 8 odd-unstable = false; 9 - sha256 = "0329miiclc8da6j0sz495p99hyrf9fjhvpmdl0556fphybz5agc0"; 9 + sha256 = "0ligdiasrfc3170kd7sif2ml6lvlpp11lbxz3xdvklqkv7p3323y"; 10 10 11 11 buildInputs = [ gtk3 libxfce4ui libxfce4util xfce4-panel xfconf ]; 12 12
+2 -2
pkgs/desktops/xfce/panel-plugins/xfce4-clipman-plugin/default.nix
··· 3 3 mkXfceDerivation { 4 4 category = "panel-plugins"; 5 5 pname = "xfce4-clipman-plugin"; 6 - version = "1.4.3"; 7 - sha256 = "1xk79xh1zk0x4r1z9m1dakp79pip0zh3naviybvl1dnpwwfc03gq"; 6 + version = "1.6.1"; 7 + sha256 = "03akijvry1n1fkziyvxwcksl4vy4lmnpgd5izjs8jai5sndhsszl"; 8 8 9 9 buildInputs = [ exo gtk3 libXtst libxfce4ui libxfce4util xfce4-panel xfconf ]; 10 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 }: 1 + { stdenv, fetchurl, pkgconfig, intltool, glib, exo, libXtst, xorgproto, libxfce4util, xfce4-panel, libxfce4ui, xfconf, gtk3, hicolor-icon-theme, xfce }: 2 2 3 3 let 4 4 category = "panel-plugins"; ··· 6 6 7 7 stdenv.mkDerivation rec { 8 8 pname = "xfce4-cpugraph-plugin"; 9 - version = "1.0.5"; 9 + version = "1.1.0"; 10 10 11 11 src = fetchurl { 12 12 url = "mirror://xfce/src/${category}/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.bz2"; 13 - sha256 = "1izl53q95m5xm2fiq7385vb1i9nwgjizxkmgpgh33zdckb40xnl5"; 13 + sha256 = "193bj1p54l4zrvgdjj0pvjn161d6dn82jh9invcy09sqwlj0mkiy"; 14 14 }; 15 15 16 - nativeBuildInputs = [ pkgconfig ]; 17 - buildInputs = [ intltool glib exo libXtst xorgproto libxfce4util libxfce4ui xfce4-panel xfconf gtk2 hicolor-icon-theme ]; 18 - 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 + 19 34 passthru.updateScript = xfce.updateScript { 20 35 inherit pname version; 21 36 attrPath = "xfce.${pname}"; ··· 23 38 }; 24 39 25 40 meta = with stdenv.lib; { 26 - homepage = "https://goodies.xfce.org/projects/panel-plugins/${pname}"; 41 + homepage = "https://docs.xfce.org/panel-plugins/xfce4-cpugraph-plugin"; 27 42 description = "CPU graph show for Xfce panel"; 43 + license = licenses.gpl2Plus; 28 44 platforms = platforms.linux; 29 45 maintainers = [ maintainers.AndersonTorres ]; 30 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 }: 1 + { stdenv, fetchurl, pkgconfig, intltool, libxfce4util, xfce4-panel, libxfce4ui, gtk2, xfce }: 2 2 3 3 let 4 4 category = "panel-plugins"; ··· 14 14 sha256 = "0a72kqsjjh45swimqlpyrahdnplp0383v0i4phr4n6g8c1ixyry7"; 15 15 }; 16 16 17 - nativeBuildInputs = [ pkgconfig ]; 18 - buildInputs = [ intltool libxfce4util libxfce4ui xfce4-panel xfconf gtk2 ]; 19 - 17 + nativeBuildInputs = [ 18 + pkgconfig 19 + intltool 20 + ]; 21 + 22 + buildInputs = [ 23 + libxfce4util 24 + libxfce4ui 25 + xfce4-panel 26 + gtk2 27 + ]; 28 + 20 29 passthru.updateScript = xfce.updateScript { 21 30 inherit pname version; 22 31 attrPath = "xfce.${pname}"; ··· 24 33 }; 25 34 26 35 meta = { 27 - homepage = "https://goodies.xfce.org/projects/panel-plugins/${pname}"; 36 + homepage = "https://docs.xfce.org/panel-plugins/xfce4-embed-plugin"; 28 37 description = "Embed arbitrary app windows on Xfce panel"; 38 + license = licenses.gpl2Plus; 29 39 platforms = platforms.linux; 30 40 maintainers = [ maintainers.AndersonTorres ]; 31 41 };
+18 -8
pkgs/desktops/xfce/panel-plugins/xfce4-eyes-plugin.nix
··· 1 - { stdenv, fetchurl, pkgconfig, intltool, libxfce4util, xfce4-panel, libxfce4ui, xfconf, gtk2, xfce }: 1 + { stdenv, fetchurl, pkgconfig, intltool, libxfce4util, xfce4-panel, libxfce4ui, xfconf, gtk3, xfce }: 2 2 3 3 let 4 4 category = "panel-plugins"; ··· 6 6 7 7 stdenv.mkDerivation rec { 8 8 pname = "xfce4-eyes-plugin"; 9 - version = "4.4.4"; 9 + version = "4.5.0"; 10 10 11 11 src = fetchurl { 12 12 url = "mirror://xfce/src/${category}/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.bz2"; 13 - sha256 = "1jh02hylvsvfpxrx0bq6fzgy6vnxf9qakgpbfvr63lfkd1dyh314"; 13 + sha256 = "17gj6fbvvrdzvz61czmia8hqynllsnmhk61fs4aml443cc1h1bpx"; 14 14 }; 15 15 16 - nativeBuildInputs = [ pkgconfig ]; 17 - buildInputs = [ intltool libxfce4util libxfce4ui xfce4-panel xfconf gtk2 ]; 16 + nativeBuildInputs = [ 17 + pkgconfig 18 + intltool 19 + ]; 20 + 21 + buildInputs = [ 22 + libxfce4util 23 + libxfce4ui 24 + xfce4-panel 25 + xfconf 26 + gtk3 27 + ]; 18 28 19 29 passthru.updateScript = xfce.updateScript { 20 30 inherit pname version; ··· 23 33 }; 24 34 25 35 meta = with stdenv.lib; { 26 - homepage = "https://goodies.xfce.org/projects/panel-plugins/${pname}"; 27 - description = "Eyes following you!"; 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; 28 39 platforms = platforms.linux; 29 40 maintainers = [ maintainers.AndersonTorres ]; 30 - broken = true; 31 41 }; 32 42 }
+18 -8
pkgs/desktops/xfce/panel-plugins/xfce4-fsguard-plugin.nix
··· 1 - { stdenv, fetchurl, pkgconfig, intltool, libxfce4util, xfce4-panel, libxfce4ui, xfconf, gtk2, xfce }: 1 + { stdenv, fetchurl, pkgconfig, intltool, libxfce4util, xfce4-panel, libxfce4ui, xfconf, gtk3, xfce }: 2 2 3 3 let 4 4 category = "panel-plugins"; ··· 6 6 7 7 stdenv.mkDerivation rec { 8 8 pname = "xfce4-fsguard-plugin"; 9 - version = "1.0.2"; 9 + version = "1.1.1"; 10 10 11 11 src = fetchurl { 12 12 url = "mirror://xfce/src/${category}/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.bz2"; 13 - sha256 = "1bj021h4q68bc03f32pkyqy4gfd1sz6s21nxdg7j6gdfhs9xbj52"; 13 + sha256 = "05nmfkrmifm76bsywqmbjd1qdvzagv5cbvnwbkb57156j055vl6n"; 14 14 }; 15 15 16 - nativeBuildInputs = [ pkgconfig ]; 17 - buildInputs = [ intltool libxfce4util libxfce4ui xfce4-panel xfconf gtk2 ]; 16 + nativeBuildInputs = [ 17 + pkgconfig 18 + intltool 19 + ]; 20 + 21 + buildInputs = [ 22 + libxfce4util 23 + libxfce4ui 24 + xfce4-panel 25 + xfconf 26 + gtk3 27 + ]; 18 28 19 29 passthru.updateScript = xfce.updateScript { 20 30 inherit pname version; ··· 23 33 }; 24 34 25 35 meta = with stdenv.lib; { 26 - homepage = "https://goodies.xfce.org/projects/panel-plugins/${pname}"; 27 - description = "Filesystem monitor"; 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; 28 39 platforms = platforms.linux; 29 40 maintainers = [ maintainers.AndersonTorres ]; 30 - broken = true; 31 41 }; 32 42 }
+17 -8
pkgs/desktops/xfce/panel-plugins/xfce4-genmon-plugin.nix
··· 1 - { stdenv, fetchurl, pkgconfig, intltool, libxfce4util, xfce4-panel, libxfce4ui, xfconf, gtk2, xfce }: 1 + { stdenv, fetchurl, pkgconfig, intltool, libxfce4util, xfce4-panel, libxfce4ui, gtk3, xfce }: 2 2 3 3 let 4 4 category = "panel-plugins"; ··· 6 6 7 7 stdenv.mkDerivation rec { 8 8 pname = "xfce4-genmon-plugin"; 9 - version = "3.4.0"; 9 + version = "4.0.2"; 10 10 11 11 src = fetchurl { 12 12 url = "mirror://xfce/src/${category}/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.bz2"; 13 - sha256 = "11q3g6lmgz3d5lyh6614mxkd9cblfdyf9jgki7f26mn895xk79dh"; 13 + sha256 = "1ai3pwgv61nv7i2dyrvncnc63r8kdjbkp40vp51vzak1dx924v15"; 14 14 }; 15 15 16 - nativeBuildInputs = [ pkgconfig ]; 17 - buildInputs = [ intltool libxfce4util libxfce4ui xfce4-panel xfconf gtk2 ]; 16 + nativeBuildInputs = [ 17 + pkgconfig 18 + intltool 19 + ]; 20 + 21 + buildInputs = [ 22 + libxfce4util 23 + libxfce4ui 24 + xfce4-panel 25 + gtk3 26 + ]; 18 27 19 28 passthru.updateScript = xfce.updateScript { 20 29 inherit pname version; ··· 23 32 }; 24 33 25 34 meta = with stdenv.lib; { 26 - homepage = "https://goodies.xfce.org/projects/panel-plugins/${pname}"; 27 - description = "Cyclically spawns a command and captures its output"; 35 + homepage = "https://docs.xfce.org/panel-plugins/xfce4-genmon-plugin"; 36 + description = "Generic monitor plugin for the Xfce panel"; 37 + license = licenses.gpl2Plus; 28 38 platforms = platforms.linux; 29 39 maintainers = [ maintainers.AndersonTorres ]; 30 - broken = true; 31 40 }; 32 41 }
+1 -1
pkgs/desktops/xfce/panel-plugins/xfce4-hardware-monitor-plugin.nix
··· 31 31 enableParallelBuilding = true; 32 32 33 33 meta = with stdenv.lib; { 34 - homepage = "https://goodies.xfce.org/projects/panel-plugins/${pname}"; 34 + homepage = "https://goodies.xfce.org/projects/panel-plugins/xfce4-hardware-monitor-plugin"; 35 35 description = "Hardware monitor plugin for the XFCE4 panel"; 36 36 license = licenses.gpl3; 37 37 platforms = platforms.unix;
+19 -8
pkgs/desktops/xfce/panel-plugins/xfce4-mailwatch-plugin.nix
··· 1 1 { stdenv, fetchurl, pkgconfig, intltool, libxfce4util, xfce4-panel, libxfce4ui, 2 - xfconf, gtk2, exo, gnutls, libgcrypt, xfce }: 2 + gtk2, exo, gnutls, libgcrypt, xfce }: 3 3 4 4 let 5 5 category = "panel-plugins"; ··· 14 14 sha256 = "1bfw3smwivr9mzdyq768biqrl4aq94zqi3xjzq6kqnd8561cqjk2"; 15 15 }; 16 16 17 - nativeBuildInputs = [ pkgconfig ]; 18 - buildInputs = [ intltool libxfce4util libxfce4ui xfce4-panel 19 - xfconf gtk2 exo gnutls libgcrypt ]; 20 - 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 + 21 32 passthru.updateScript = xfce.updateScript { 22 33 inherit pname version; 23 34 attrPath = "xfce.${pname}"; ··· 25 36 }; 26 37 27 38 meta = with stdenv.lib; { 28 - homepage = "https://goodies.xfce.org/projects/panel-plugins/${pname}"; 29 - description = "Mailwatch plugin for Xfce panel"; 39 + homepage = "https://docs.xfce.org/panel-plugins/xfce4-mailwatch-plugin"; 40 + description = "Mail watcher plugin for Xfce panel"; 41 + license = licenses.gpl2; 30 42 platforms = platforms.linux; 31 43 maintainers = [ ]; 32 - broken = true; 33 44 }; 34 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 }: 1 + { stdenv, fetchurl, pkgconfig, intltool, libxfce4util, xfce4-panel, 2 + libxfce4ui, gtk3, exo, xfce }: 3 3 4 4 let 5 5 category = "panel-plugins"; ··· 7 7 8 8 stdenv.mkDerivation rec { 9 9 pname = "xfce4-mpc-plugin"; 10 - version = "0.4.5"; 10 + version = "0.5.2"; 11 11 12 12 src = fetchurl { 13 13 url = "mirror://xfce/src/${category}/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.bz2"; 14 - sha256 = "1kvgq1pq7cykqdc3227dq0izad093ppfw3nfsrcp9i8mi6i5f7z7"; 14 + sha256 = "0q3pysdp85b3c7g3b59y3c69g4nw6bvbf518lnri4lxrnsvpizpf"; 15 15 }; 16 16 17 - nativeBuildInputs = [ pkgconfig ]; 18 - buildInputs = [ intltool libxfce4util libxfce4ui xfce4-panel 19 - xfconf gtk2 exo ]; 20 - 17 + nativeBuildInputs = [ 18 + pkgconfig 19 + intltool 20 + ]; 21 + 22 + buildInputs = [ 23 + libxfce4util 24 + libxfce4ui 25 + xfce4-panel 26 + gtk3 27 + exo 28 + ]; 29 + 21 30 passthru.updateScript = xfce.updateScript { 22 31 inherit pname version; 23 32 attrPath = "xfce.${pname}"; ··· 25 34 }; 26 35 27 36 meta = with stdenv.lib; { 28 - homepage = "https://goodies.xfce.org/projects/panel-plugins/${pname}"; 37 + homepage = "https://docs.xfce.org/panel-plugins/xfce4-mpc-plugin"; 29 38 description = "MPD plugin for Xfce panel"; 30 39 platforms = platforms.linux; 40 + license = licenses.bsd2; 31 41 maintainers = [ ]; 32 - broken = true; 33 42 }; 34 43 }
+3 -2
pkgs/desktops/xfce/panel-plugins/xfce4-netload-plugin/default.nix
··· 3 3 mkXfceDerivation { 4 4 category = "panel-plugins"; 5 5 pname = "xfce4-netload-plugin"; 6 - version = "1.3.1"; 6 + version = "1.3.2"; 7 7 rev-prefix = "version-"; 8 - sha256 = "0nm8advafw4jpc9p1qszyfqa56194sz51z216rdh4c6ilcrrpy1h"; 8 + odd-unstable = false; 9 + sha256 = "1py1l4z5ah4nlq8l2912k47ffsa5z7p1gbvlk7nw6b9r1x4ykdfl"; 9 10 10 11 buildInputs = [ gtk3 libxfce4ui libxfce4util xfce4-panel xfconf ]; 11 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 }: 1 + { stdenv, fetchurl, fetchpatch, pkgconfig, intltool, libxfce4util, xfce4-panel, libxfce4ui, xfconf, gtk2, libunique, xfce }: 2 2 3 3 let 4 4 category = "panel-plugins"; ··· 6 6 7 7 stdenv.mkDerivation rec { 8 8 pname = "xfce4-notes-plugin"; 9 - version = "1.7.7"; 9 + version = "1.8.1"; 10 10 11 11 src = fetchurl { 12 12 url = "mirror://xfce/src/${category}/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.bz2"; 13 - sha256 = "05sjbwgch1j93m3r23ksbjnpfk11sf7xjmbb9pm5vl3snc2s3fm7"; 13 + sha256 = "1cjlvvcsigyh40xa26b2vc5zylgss0nlaw72sablzhii2kkw7907"; 14 14 }; 15 15 16 - nativeBuildInputs = [ pkgconfig ]; 17 - buildInputs = [ intltool libxfce4util libxfce4ui xfce4-panel xfconf gtk2 libunique ]; 18 - 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 + 19 32 passthru.updateScript = xfce.updateScript { 20 33 inherit pname version; 21 34 attrPath = "xfce.${pname}"; ··· 23 36 }; 24 37 25 38 meta = with stdenv.lib; { 26 - homepage = "https://goodies.xfce.org/projects/panel-plugins/${pname}"; 39 + homepage = "https://docs.xfce.org/panel-plugins/xfce4-notes-plugin"; 27 40 description = "Sticky notes plugin for Xfce panel"; 41 + license = licenses.gpl2Plus; 28 42 platforms = platforms.linux; 29 43 maintainers = [ maintainers.AndersonTorres ]; 30 - broken = true; 31 44 }; 32 45 }
+4 -2
pkgs/desktops/xfce/panel-plugins/xfce4-pulseaudio-plugin/default.nix
··· 2 2 , automakeAddFlags 3 3 , dbus-glib 4 4 , dbus 5 + , exo 5 6 , gtk3 6 7 , libpulseaudio 7 8 , libnotify ··· 16 17 mkXfceDerivation { 17 18 category = "panel-plugins"; 18 19 pname = "xfce4-pulseaudio-plugin"; 19 - version = "0.4.2"; 20 - sha256 = "1s996mcniskq42vv7cb9i165pmrfp9c95p5f9rx14hqq8in9mvc5"; 20 + version = "0.4.3"; 21 + sha256 = "1rfw2w8gl95iawiy57qlvz958dqjc8bmxnc3dma4rqzm6g46jkgq"; 21 22 22 23 nativeBuildInputs = [ 23 24 automakeAddFlags ··· 30 31 ''; 31 32 32 33 buildInputs = [ 34 + exo 33 35 glib 34 36 gtk3 35 37 keybinder3
+5 -5
pkgs/desktops/xfce/panel-plugins/xfce4-sensors-plugin.nix
··· 1 - { stdenv, fetchurl, pkgconfig, intltool, gtk2, libxfce4ui, 1 + { stdenv, fetchurl, pkgconfig, intltool, gtk3, libxfce4ui, 2 2 libxfce4util, xfce4-panel, libnotify, lm_sensors, hddtemp, netcat-gnu, xfce 3 3 }: 4 4 ··· 8 8 9 9 stdenv.mkDerivation rec { 10 10 pname = "xfce4-sensors-plugin"; 11 - version = "1.2.6"; 11 + version = "1.3.92"; 12 12 13 13 src = fetchurl { 14 14 url = "mirror://xfce/src/${category}/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.bz2"; 15 - sha256 = "1h0vpqxcziml3gwrbvd8xvy1mwh9mf2a68dvxsy03rs5pm1ghpi3"; 15 + sha256 = "04jibw23ibi61f19gc9xy400yhcdiya4px6zp8c7fjq65hyn9iix"; 16 16 }; 17 17 18 18 nativeBuildInputs = [ ··· 21 21 ]; 22 22 23 23 buildInputs = [ 24 - gtk2 24 + gtk3 25 25 libxfce4ui 26 26 libxfce4util 27 27 xfce4-panel ··· 45 45 }; 46 46 47 47 meta = with stdenv.lib; { 48 - homepage = "https://goodies.xfce.org/projects/panel-plugins/${pname}"; 48 + homepage = "https://docs.xfce.org/panel-plugins/xfce4-sensors-plugin"; 49 49 description = "A panel plug-in for different sensors using acpi, lm_sensors and hddtemp"; 50 50 license = licenses.gpl2; 51 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 }: 1 + { stdenv, fetchurl, pkgconfig, intltool, libxfce4util, xfce4-panel, libxfce4ui, gtk3, xfce }: 2 2 3 3 let 4 4 category = "panel-plugins"; ··· 6 6 7 7 stdenv.mkDerivation rec { 8 8 pname = "xfce4-systemload-plugin"; 9 - version = "1.1.2"; 9 + version = "1.2.3"; 10 10 11 11 src = fetchurl { 12 12 url = "mirror://xfce/src/${category}/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.bz2"; 13 - sha256 = "0z4as6sxdz93d4jpgv0665dg4sykfvc5068mc689phlfl2rvcsdl"; 13 + sha256 = "0x87a8h5l3ashz1ksfaxcpn9a392jzlsbx5n5pga8g90fp2hf905"; 14 14 }; 15 15 16 - nativeBuildInputs = [ pkgconfig ]; 17 - buildInputs = [ intltool libxfce4util libxfce4ui xfce4-panel gtk2 ]; 18 - 16 + nativeBuildInputs = [ 17 + pkgconfig 18 + intltool 19 + ]; 20 + 21 + buildInputs = [ 22 + libxfce4util 23 + libxfce4ui 24 + xfce4-panel 25 + gtk3 26 + ]; 27 + 19 28 passthru.updateScript = xfce.updateScript { 20 29 inherit pname version; 21 30 attrPath = "xfce.${pname}"; ··· 23 32 }; 24 33 25 34 meta = with stdenv.lib; { 26 - homepage = "https://goodies.xfce.org/projects/panel-plugins/${pname}"; 35 + homepage = "https://docs.xfce.org/panel-plugins/xfce4-systemload-plugin"; 27 36 description = "System load plugin for Xfce panel"; 37 + license = licenses.bsd2; 28 38 platforms = platforms.linux; 29 39 maintainers = [ maintainers.AndersonTorres ]; 30 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 }: 1 + { stdenv, fetchurl, pkgconfig, intltool, libxfce4util, xfce4-panel, libxfce4ui, gtk3, hicolor-icon-theme, xfce }: 3 2 4 3 let 5 4 category = "panel-plugins"; ··· 7 6 8 7 stdenv.mkDerivation rec { 9 8 pname = "xfce4-timer-plugin"; 10 - version = "1.6.0"; 9 + version = "1.7.0"; 11 10 12 11 src = fetchurl { 13 12 url = "mirror://xfce/src/${category}/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.bz2"; 14 - sha256 = "0z46gyw3ihcd1jf0m5z1dsc790xv1cpi8mk1dagj3i4v14gx5mrr"; 13 + sha256 = "16vypwwjwfk7nn4n16rfgn0z78jqrmbgxmc1r46269lrwd1m6kif"; 15 14 }; 16 15 17 - buildInputs = [ intltool libxfce4util libxfce4ui xfce4-panel xfconf 18 - gtk2 hicolor-icon-theme ]; 16 + nativeBuildInputs = [ 17 + pkgconfig 18 + intltool 19 + ]; 19 20 20 - nativeBuildInputs = [ pkgconfig ]; 21 + buildInputs = [ 22 + libxfce4util 23 + libxfce4ui 24 + xfce4-panel 25 + gtk3 26 + hicolor-icon-theme 27 + ]; 21 28 22 29 hardeningDisable = [ "format" ]; 23 30 ··· 28 35 }; 29 36 30 37 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"; 38 + homepage = "https://docs.xfce.org/panel-plugins/xfce4-timer-plugin"; 39 + description = "Simple countdown and alarm plugin for the Xfce panel"; 33 40 platforms = platforms.linux; 34 41 license = licenses.gpl2; 35 42 maintainers = [ ]; 36 - broken = true; 37 43 }; 38 44 }
+2 -2
pkgs/desktops/xfce/panel-plugins/xfce4-vala-panel-appmenu-plugin/default.nix
··· 4 4 5 5 stdenv.mkDerivation rec { 6 6 pname = "xfce4-vala-panel-appmenu-plugin"; 7 - version = "0.6.94"; 7 + version = "0.7.3"; 8 8 9 9 src = fetchFromGitHub { 10 10 owner = "rilian-la-te"; ··· 12 12 rev = version; 13 13 fetchSubmodules = true; 14 14 15 - sha256 = "0xxn3zs60a9nfix8wrdp056wviq281cm1031hznzf1l38lp3wr5p"; 15 + sha256 = "06rykdr2c9rnzxwinwdynd73v9wf0gjkx6qfva7sx2n94ajsdnaw"; 16 16 }; 17 17 18 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, 1 + { stdenv, fetchurl, pkgconfig, intltool, gtk3, libxml2, libsoup, upower, 2 2 libxfce4ui, libxfce4util, xfce4-panel, hicolor-icon-theme, xfce }: 3 3 4 4 let ··· 7 7 8 8 stdenv.mkDerivation rec { 9 9 pname = "xfce4-weather-plugin"; 10 - version = "0.8.10"; 10 + version = "0.10.1"; 11 11 12 12 src = fetchurl { 13 13 url = "mirror://xfce/src/${category}/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.bz2"; 14 - sha256 = "1f7ac2zr5s5w6krdpgsq252wxhhmcblia3j783132ilh8k246vgf"; 14 + sha256 = "12bs2rfmmy021087i10vxibdbbvd5vld0vk3h5hymhpz7rgszcmg"; 15 15 }; 16 16 17 - nativeBuildInputs = [ pkgconfig intltool ]; 17 + nativeBuildInputs = [ 18 + pkgconfig 19 + intltool 20 + ]; 18 21 19 - buildInputs = [ gtk2 libxml2 libsoup upower libxfce4ui libxfce4util 20 - xfce4-panel hicolor-icon-theme ]; 22 + buildInputs = [ 23 + gtk3 24 + libxml2 25 + libsoup 26 + upower 27 + libxfce4ui 28 + libxfce4util 29 + xfce4-panel 30 + hicolor-icon-theme 31 + ]; 21 32 22 33 enableParallelBuilding = true; 23 34 ··· 28 39 }; 29 40 30 41 meta = with stdenv.lib; { 31 - homepage = "https://goodies.xfce.org/projects/panel-plugins/${pname}"; 42 + homepage = "https://docs.xfce.org/panel-plugins/xfce4-weather-plugin"; 32 43 description = "Weather plugin for the Xfce desktop environment"; 33 44 license = licenses.gpl2Plus; 34 45 platforms = platforms.unix;
+21 -7
pkgs/desktops/xfce/panel-plugins/xfce4-windowck-plugin.nix
··· 3 3 4 4 stdenv.mkDerivation rec { 5 5 pname = "xfce4-windowck-plugin"; 6 - version = "0.4.4"; 6 + version = "0.4.6"; 7 7 8 8 src = fetchFromGitHub { 9 9 owner = "cedl38"; 10 10 repo = pname; 11 11 rev = "v${version}"; 12 - sha256 = "0c6a1ibh39dpq9x0dha5lsg0vzmgaf051fgwz0nlky0s94nwzvgv"; 12 + sha256 = "1gwrbjfv4cnlsqh05h42w41z3xs15yjj6j8y9gxvvvvlgzzp4p3g"; 13 13 }; 14 14 15 - nativeBuildInputs = [ pkgconfig ]; 16 - buildInputs = [ intltool python3 imagemagick libwnck gtk2 17 - exo libxfce4ui libxfce4util xfce4-panel xfconf xfce4-dev-tools ]; 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 + ]; 18 32 19 33 preConfigure = '' 20 34 ./autogen.sh ··· 31 45 }; 32 46 33 47 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"; 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"; 36 50 license = licenses.gpl2Plus; 37 51 platforms = platforms.unix; 38 52 maintainers = [ maintainers.volth ];
+1 -1
pkgs/development/compilers/graalvm/default.nix
··· 150 150 ]; 151 151 152 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; } 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 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 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 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 - }; 1 + import ./generic.nix { 2 + version = "1.20.1"; 3 + ldcSha256 = "1bqsgab22v02pc3c9gcyf15y7aimadv24d68icaw5lpgnvzxy89b"; 172 4 } 173 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 3 4 4 buildGoModule rec { 5 5 pname = "tinygo"; 6 - version = "0.12.0"; 6 + version = "0.13.0"; 7 7 8 8 src = fetchFromGitHub { 9 9 owner = "tinygo-org"; 10 10 repo = "tinygo"; 11 11 rev = "v${version}"; 12 - sha256 = "0dw3kxf55p617pb0bj3knsqcfvap5scxlvhh3a9g9ia92kann4v1"; 12 + sha256 = "0x59j56y704m2hfkg78illgw9f6czrx265x887jfd989lnxphyqa"; 13 13 }; 14 14 15 - modSha256 = "1bjq4vaf38hi204lr9w3r3wcy1rzj06ygi5gzfa7dl3kx10hw6p0"; 15 + modSha256 = "0y8n4mcr4jhas29ahvk8k4zbj1iz65fdpsgq61qa8kcsm8m5kqa6"; 16 16 enableParallelBuilding = true; 17 17 subPackages = [ "." ]; 18 18 buildInputs = [ llvm clang-unwrapped makeWrapper ];
+2 -2
pkgs/development/haskell-modules/configuration-tensorflow.nix
··· 55 55 haskell-src-exts_1_19_1 = appendPatches (doJailbreak super.haskell-src-exts_1_19_1) [ 56 56 # Adapt to the Semigroup–Monoid Proposal (enables building on GHC >= 8.4) 57 57 (pkgs.fetchpatch { 58 - url = https://github.com/haskell-suite/haskell-src-exts/commit/258e072fe9e37f94360b7488b58ea2832843bbb8.patch; 58 + url = "https://github.com/haskell-suite/haskell-src-exts/commit/258e072fe9e37f94360b7488b58ea2832843bbb8.patch"; 59 59 sha256 = "0ja6ai41v9plinlhjwja282m6ahn6mw4xi79np0jxqk83cg0z1ff"; 60 60 }) 61 61 # Adapt to MonadFail proposal (enables building on GHC >= 8.8) 62 62 (pkgs.fetchpatch { 63 - url = https://gist.githubusercontent.com/mikesperber/0f2addaf3fbe97ffb4a5234d8711ba41/raw/e09e20998283c7195e82d546ba9266d290eb000d/gistfile1.txt; 63 + url = "https://gist.githubusercontent.com/mikesperber/0f2addaf3fbe97ffb4a5234d8711ba41/raw/e09e20998283c7195e82d546ba9266d290eb000d/gistfile1.txt"; 64 64 sha256 = "18clvli7vpqsqlf2f3qidn71738j9zdlpana6wha3x0dxwan5ly0"; 65 65 }) ]; 66 66
+10 -33
pkgs/development/interpreters/j/default.nix
··· 2 2 3 3 stdenv.mkDerivation rec { 4 4 pname = "j"; 5 - version = "807"; 6 - jtype = "release"; 5 + version = "901"; 6 + jtype = "release-e"; 7 7 src = fetchFromGitHub { 8 8 owner = "jsoftware"; 9 9 repo = "jsource"; 10 10 rev = "j${version}-${jtype}"; 11 - sha256 = "1qciw2yg9x996zglvj2461qby038x89xcmfb3qyrh3myn8m1nq2n"; 11 + sha256 = "13ky37rrl6mc66fckrdnrw64gmvq1qlv6skzd513lab4d0wigshw"; 12 + name = "jsource"; 12 13 }; 13 14 14 15 buildInputs = [ readline libedit bc ]; ··· 26 27 export HOME=$TMPDIR 27 28 export JLIB=$SOURCE_DIR/jlibrary 28 29 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 30 echo $OUT_DIR 37 31 38 - cd make 32 + cd make2 39 33 40 34 patchShebangs . 41 - sed -i jvars.sh -e " 42 - s@~/git/jsource@$SOURCE_DIR@; 43 - s@~/jbld@$HOME@; 44 - " 45 - 46 35 sed -i $JLIB/bin/profile.ijs -e "s@'/usr/share/j/.*'@'$out/share/j'@;" 47 36 48 - # For future versions, watch 49 - # https://github.com/jsoftware/jsource/pull/4 50 - cp ./jvars.sh $HOME 37 + ./build_all.sh 51 38 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} 39 + cp $SOURCE_DIR/bin/${platform}/j${bits}*/* "$JLIB/bin" 62 40 ''; 63 41 64 42 checkPhase = '' 65 - echo 'i. 5' | $JBIN/jconsole | fgrep "0 1 2 3 4" 43 + 44 + echo 'i. 5' | $JLIB/bin/jconsole | fgrep "0 1 2 3 4" 66 45 67 46 # Now run the real tests 68 47 cd $SOURCE_DIR/test 69 48 for f in *.ijs 70 49 do 71 50 echo $f 72 - $JBIN/jconsole < $f > /dev/null || echo FAIL && echo PASS 51 + $JLIB/bin/jconsole < $f > /dev/null || echo FAIL && echo PASS 73 52 done 74 53 ''; 75 54 76 55 installPhase = '' 77 56 mkdir -p "$out" 78 - cp -r $JBIN "$out/bin" 79 - rm $out/bin/*.txt # Remove logs from the bin folder 80 57 81 58 mkdir -p "$out/share/j" 82 59 cp -r $JLIB/{addons,system} "$out/share/j"
+1 -1
pkgs/development/interpreters/wasmtime/default.nix
··· 12 12 fetchSubmodules = true; 13 13 }; 14 14 15 - cargoSha256 = "0wqd2yy6ih1rcz1fq7x3aiqq1ma2nmif1w8r8x0vpxjxk395zil9"; 15 + cargoSha256 = "0vyxp74jlnrisk0kblsbj9d9a54wcgzbyjm7iqav1k4ns3syrnmh"; 16 16 17 17 nativeBuildInputs = [ python cmake clang ]; 18 18 buildInputs = [ llvmPackages.libclang ] ++
+1 -1
pkgs/development/libraries/biblesync/default.nix
··· 16 16 buildInputs = [ libuuid ]; 17 17 18 18 meta = with stdenv.lib; { 19 - homepage = http://www.crosswire.org/wiki/BibleSync; 19 + homepage = "http://www.crosswire.org/wiki/BibleSync"; 20 20 description = "A multicast protocol to Bible software shared conavigation"; 21 21 longDescription = '' 22 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 1 { stdenv, lib, fetchFromGitHub, substituteAll, cmake, bash }: 2 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 3 7 stdenv.mkDerivation rec { 4 8 pname = "dnnl"; 5 - version = "1.2.2"; 9 + version = "1.4"; 6 10 7 11 src = fetchFromGitHub { 8 - owner = "intel"; 9 - repo = "mkl-dnn"; 12 + owner = "oneapi-src"; 13 + repo = "oneDNN"; 10 14 rev = "v${version}"; 11 - sha256 = "0ydy7ibm6sh1awrikyj938n26cpg5magnxraz2d0pj76irv4vj5m"; 15 + sha256 = "162fb0c7klahz2irchhyxympi4fq4yp284apc53cadbss41mzld9"; 12 16 }; 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 17 21 18 outputs = [ "out" "dev" "doc" ]; 22 19 ··· 36 33 ''; 37 34 38 35 meta = with lib; { 39 - description = "Deep Neural Network Library (DNNL)"; 40 - homepage = "https://intel.github.io/mkl-dnn/dev_guide_transition_to_dnnl.html"; 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}"; 41 39 license = licenses.asl20; 42 40 platforms = [ "x86_64-linux" ]; 43 41 maintainers = with maintainers; [ alexarice bhipple ];
+1 -1
pkgs/development/libraries/graphene-hardened-malloc/default.nix
··· 52 52 ''; 53 53 license = licenses.mit; 54 54 maintainers = with maintainers; [ ris ]; 55 - platforms = [ "x86_64-linux" ]; 55 + platforms = [ "x86_64-linux" "aarch64-linux" ]; 56 56 }; 57 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 26 libmbim 27 27 ]; 28 28 29 + enableParallelBuilding = true; 30 + 29 31 doCheck = true; 30 32 31 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 2 3 3 stdenv.mkDerivation rec { 4 4 pname = "mdds"; 5 - version = "1.5.0"; 5 + version = "1.6.0"; 6 6 7 7 src = fetchurl { 8 8 url = "https://kohei.us/files/${pname}/src/${pname}-${version}.tar.bz2"; 9 - sha256 = "03b8i43pw4m767mm0cnbi77x7qhpkzpi9b1f6dpp4cmyszmnsk8l"; 9 + sha256 = "0zg0v9rfs92ff1gpnb06gzbxbnd9nqdar5fk8dnkmy0jpnf5qn7i"; 10 10 }; 11 11 12 12 postInstall = ''
+2 -2
pkgs/development/libraries/netcdf/default.nix
··· 10 10 mpi = hdf5.mpi; 11 11 in stdenv.mkDerivation rec { 12 12 pname = "netcdf"; 13 - version = "4.7.3"; 13 + version = "4.7.4"; 14 14 15 15 src = fetchurl { 16 16 url = "https://www.unidata.ucar.edu/downloads/netcdf/ftp/${pname}-c-${version}.tar.gz"; 17 - sha256 = "12s4w2s96p51hlsa81lw92w56rdx8i3mk21pz2ydwcamw579z34f"; 17 + sha256 = "1a2fpp15a2rl1m50gcvvzd9y6bavl6vjf9zzf63sz5gdmq06yiqf"; 18 18 }; 19 19 20 20 postPatch = ''
+9 -2
pkgs/development/libraries/science/biology/elastix/default.nix
··· 1 - { stdenv, fetchFromGitHub, cmake, itk, python }: 1 + { stdenv, fetchFromGitHub, cmake, itk, python3 }: 2 2 3 3 stdenv.mkDerivation rec { 4 4 pname = "elastix"; ··· 10 10 rev = version; 11 11 sha256 = "1zrl7rz4lwsx88b2shnl985f3a97lmp4ksbd437h9y0hfjq8l0lj"; 12 12 }; 13 - nativeBuildInputs = [ cmake python ]; 13 + 14 + nativeBuildInputs = [ cmake python3 ]; 14 15 buildInputs = [ itk ]; 16 + 17 + doCheck = true; 18 + 19 + preCheck = " 20 + export LD_LIBRARY_PATH=$(pwd)/bin 21 + "; 15 22 16 23 meta = with stdenv.lib; { 17 24 homepage = "http://elastix.isi.uu.nl/";
+2 -2
pkgs/development/libraries/webkitgtk/default.nix
··· 61 61 62 62 stdenv.mkDerivation rec { 63 63 pname = "webkitgtk"; 64 - version = "2.28.0"; 64 + version = "2.28.1"; 65 65 66 66 outputs = [ "out" "dev" ]; 67 67 68 68 src = fetchurl { 69 69 url = "https://webkitgtk.org/releases/${pname}-${version}.tar.xz"; 70 - sha256 = "12qfs9w93c5kiyi14ynm4rf4ad3c213dvzmdrc9c3ab2iwbks7rn"; 70 + sha256 = "rLwmo+1cE/OeRodc9EepwFQbbPsX+eeIQyNDHLMn89g="; 71 71 }; 72 72 73 73 patches = optionals stdenv.isLinux [
+89 -89
pkgs/development/node-packages/node-packages-v10.nix
··· 15293 15293 version = "1.0.1"; 15294 15294 src = fetchurl { 15295 15295 name = "emitter-1.0.1.tar.gz"; 15296 - url = https://codeload.github.com/component/emitter/tar.gz/1.0.1; 15296 + url = "https://codeload.github.com/component/emitter/tar.gz/1.0.1"; 15297 15297 sha256 = "0eae744826723877457f7a7ac7f31d68a5a060673b3a883f6a8e325bf48f313d"; 15298 15298 }; 15299 15299 }; ··· 19632 19632 version = "2.0.1"; 19633 19633 src = fetchurl { 19634 19634 name = "global-2.0.1.tar.gz"; 19635 - url = https://codeload.github.com/component/global/tar.gz/v2.0.1; 19635 + url = "https://codeload.github.com/component/global/tar.gz/v2.0.1"; 19636 19636 sha256 = "42be02b7148745447f6ba21137c972ca82d2cad92d30d63bd4fc310623901785"; 19637 19637 }; 19638 19638 }; ··· 31657 31657 version = "0.9.15"; 31658 31658 src = fetchurl { 31659 31659 name = "oauth-0.9.15.tar.gz"; 31660 - url = https://codeload.github.com/ciaranj/node-oauth/legacy.tar.gz/master; 31660 + url = "https://codeload.github.com/ciaranj/node-oauth/legacy.tar.gz/master"; 31661 31661 sha256 = "9341c28772841acde618c778e85e381976f425824b816100792f697e68aec947"; 31662 31662 }; 31663 31663 }; ··· 48868 48868 version = "1.5.0"; 48869 48869 src = fetchurl { 48870 48870 name = "xmlhttprequest-1.5.0.tar.gz"; 48871 - url = https://codeload.github.com/LearnBoost/node-XMLHttpRequest/tar.gz/0f36d0b5ebc03d85f860d42a64ae9791e1daa433; 48871 + url = "https://codeload.github.com/LearnBoost/node-XMLHttpRequest/tar.gz/0f36d0b5ebc03d85f860d42a64ae9791e1daa433"; 48872 48872 sha256 = "28dd0394d85befe8be4e9cd9f6803102780c62cbb09298cb174b52ff9777624f"; 48873 48873 }; 48874 48874 }; ··· 49891 49891 buildInputs = globalBuildInputs; 49892 49892 meta = { 49893 49893 description = "CLI tool for Angular"; 49894 - homepage = https://github.com/angular/angular-cli; 49894 + homepage = "https://github.com/angular/angular-cli"; 49895 49895 license = "MIT"; 49896 49896 }; 49897 49897 production = true; ··· 49935 49935 buildInputs = globalBuildInputs; 49936 49936 meta = { 49937 49937 description = "The command line interface for Antora."; 49938 - homepage = https://antora.org/; 49938 + homepage = "https://antora.org/"; 49939 49939 license = "MPL-2.0"; 49940 49940 }; 49941 49941 production = true; ··· 50264 50264 buildInputs = globalBuildInputs; 50265 50265 meta = { 50266 50266 description = "The default site generator pipeline for producing and publishing static documentation sites with Antora."; 50267 - homepage = https://antora.org/; 50267 + homepage = "https://antora.org/"; 50268 50268 license = "MPL-2.0"; 50269 50269 }; 50270 50270 production = true; ··· 50427 50427 buildInputs = globalBuildInputs; 50428 50428 meta = { 50429 50429 description = "A secure and free password manager for all of your devices."; 50430 - homepage = https://bitwarden.com/; 50430 + homepage = "https://bitwarden.com/"; 50431 50431 license = "GPL-3.0"; 50432 50432 }; 50433 50433 production = true; ··· 52016 52016 buildInputs = globalBuildInputs; 52017 52017 meta = { 52018 52018 description = "Command line interface for rapid Vue.js development"; 52019 - homepage = https://cli.vuejs.org/; 52019 + homepage = "https://cli.vuejs.org/"; 52020 52020 license = "MIT"; 52021 52021 }; 52022 52022 production = true; ··· 52378 52378 buildInputs = globalBuildInputs; 52379 52379 meta = { 52380 52380 description = "Creating Electron app packages"; 52381 - homepage = https://github.com/electron/asar; 52381 + homepage = "https://github.com/electron/asar"; 52382 52382 license = "MIT"; 52383 52383 }; 52384 52384 production = true; ··· 52536 52536 buildInputs = globalBuildInputs; 52537 52537 meta = { 52538 52538 description = "The browser package manager"; 52539 - homepage = http://bower.io/; 52539 + homepage = "http://bower.io/"; 52540 52540 license = "MIT"; 52541 52541 }; 52542 52542 production = true; ··· 52666 52666 buildInputs = globalBuildInputs; 52667 52667 meta = { 52668 52668 description = "Generate nix expressions to fetch bower dependencies"; 52669 - homepage = https://github.com/rvl/bower2nix; 52669 + homepage = "https://github.com/rvl/bower2nix"; 52670 52670 license = "GPL-3.0"; 52671 52671 }; 52672 52672 production = true; ··· 53275 53275 buildInputs = globalBuildInputs; 53276 53276 meta = { 53277 53277 description = "A well-tested CSS minifier"; 53278 - homepage = https://github.com/jakubpawlowicz/clean-css; 53278 + homepage = "https://github.com/jakubpawlowicz/clean-css"; 53279 53279 license = "MIT"; 53280 53280 }; 53281 53281 production = true; ··· 56498 56498 buildInputs = globalBuildInputs; 56499 56499 meta = { 56500 56500 description = "Unfancy JavaScript"; 56501 - homepage = http://coffeescript.org/; 56501 + homepage = "http://coffeescript.org/"; 56502 56502 license = "MIT"; 56503 56503 }; 56504 56504 production = true; ··· 57893 57893 buildInputs = globalBuildInputs; 57894 57894 meta = { 57895 57895 description = "Create React Native apps with no build configuration."; 57896 - homepage = https://github.com/expo/create-react-native-app; 57896 + homepage = "https://github.com/expo/create-react-native-app"; 57897 57897 license = "BSD-3-Clause"; 57898 57898 }; 57899 57899 production = true; ··· 57915 57915 buildInputs = globalBuildInputs; 57916 57916 meta = { 57917 57917 description = "CSSLint"; 57918 - homepage = http://csslint.net/; 57918 + homepage = "http://csslint.net/"; 57919 57919 license = "MIT"; 57920 57920 }; 57921 57921 production = true; ··· 58570 58570 buildInputs = globalBuildInputs; 58571 58571 meta = { 58572 58572 description = "Dat is the package manager for data. Easily share and version control data."; 58573 - homepage = https://datproject.org/; 58573 + homepage = "https://datproject.org/"; 58574 58574 license = "BSD-3-Clause"; 58575 58575 }; 58576 58576 production = true; ··· 58591 58591 buildInputs = globalBuildInputs; 58592 58592 meta = { 58593 58593 description = "A DHCP server written in JavaScript"; 58594 - homepage = https://github.com/infusion/node-dhcp; 58594 + homepage = "https://github.com/infusion/node-dhcp"; 58595 58595 license = "MIT OR GPL-2.0"; 58596 58596 }; 58597 58597 production = true; ··· 58736 58736 buildInputs = globalBuildInputs; 58737 58737 meta = { 58738 58738 description = "A blockchain-based DNS + HTTPS server that fixes HTTPS security, and more!"; 58739 - homepage = https://github.com/okTurtles/dnschain; 58739 + homepage = "https://github.com/okTurtles/dnschain"; 58740 58740 license = "MPL-2.0"; 58741 58741 }; 58742 58742 production = true; ··· 59269 59269 buildInputs = globalBuildInputs; 59270 59270 meta = { 59271 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/; 59272 + homepage = "https://www.emojione.com/"; 59273 59273 }; 59274 59274 production = true; 59275 59275 bypassCache = true; ··· 59445 59445 buildInputs = globalBuildInputs; 59446 59446 meta = { 59447 59447 description = "An AST-based pattern checker for JavaScript."; 59448 - homepage = https://eslint.org/; 59448 + homepage = "https://eslint.org/"; 59449 59449 license = "MIT"; 59450 59450 }; 59451 59451 production = true; ··· 59627 59627 buildInputs = globalBuildInputs; 59628 59628 meta = { 59629 59629 description = "Makes eslint the fastest linter on the planet"; 59630 - homepage = https://github.com/mantoni/eslint_d.js; 59630 + homepage = "https://github.com/mantoni/eslint_d.js"; 59631 59631 license = "MIT"; 59632 59632 }; 59633 59633 production = true; ··· 60652 60652 buildInputs = globalBuildInputs; 60653 60653 meta = { 60654 60654 description = "git hosting on secure-scuttlebutt (ssb)"; 60655 - homepage = https://git-ssb.celehner.com/%25n92DiQh7ietE%2BR%2BX%2FI403LQoyf2DtR3WQfCkDKlheQU%3D.sha256; 60655 + homepage = "https://git-ssb.celehner.com/%25n92DiQh7ietE%2BR%2BX%2FI403LQoyf2DtR3WQfCkDKlheQU%3D.sha256"; 60656 60656 license = "Fair"; 60657 60657 }; 60658 60658 production = true; ··· 62504 62504 buildInputs = globalBuildInputs; 62505 62505 meta = { 62506 62506 description = "The streaming build system."; 62507 - homepage = https://gulpjs.com/; 62507 + homepage = "https://gulpjs.com/"; 62508 62508 license = "MIT"; 62509 62509 }; 62510 62510 production = true; ··· 62849 62849 buildInputs = globalBuildInputs; 62850 62850 meta = { 62851 62851 description = "Command line interface for gulp"; 62852 - homepage = http://gulpjs.com/; 62852 + homepage = "http://gulpjs.com/"; 62853 62853 license = "MIT"; 62854 62854 }; 62855 62855 production = true; ··· 62880 62880 buildInputs = globalBuildInputs; 62881 62881 meta = { 62882 62882 description = "Highly configurable, well-tested, JavaScript-based HTML minifier."; 62883 - homepage = https://kangax.github.io/html-minifier/; 62883 + homepage = "https://kangax.github.io/html-minifier/"; 62884 62884 license = "MIT"; 62885 62885 }; 62886 62886 production = true; ··· 63250 63250 buildInputs = globalBuildInputs; 63251 63251 meta = { 63252 63252 description = "High precision scientific calculator with support for physical units"; 63253 - homepage = https://github.com/sharkdp/insect; 63253 + homepage = "https://github.com/sharkdp/insect"; 63254 63254 license = "MIT"; 63255 63255 }; 63256 63256 production = true; ··· 63571 63571 buildInputs = globalBuildInputs; 63572 63572 meta = { 63573 63573 description = "A tool for creating and developing Ionic Framework mobile apps."; 63574 - homepage = https://ionicframework.com/; 63574 + homepage = "https://ionicframework.com/"; 63575 63575 license = "MIT"; 63576 63576 }; 63577 63577 production = true; ··· 64112 64112 buildInputs = globalBuildInputs; 64113 64113 meta = { 64114 64114 description = "Implementation of the Language Server Protocol for JavaScript and TypeScript"; 64115 - homepage = https://github.com/sourcegraph/javascript-typescript-langserver; 64115 + homepage = "https://github.com/sourcegraph/javascript-typescript-langserver"; 64116 64116 license = "Apache-2.0"; 64117 64117 }; 64118 64118 production = true; ··· 64962 64962 buildInputs = globalBuildInputs; 64963 64963 meta = { 64964 64964 description = "beautifier.io for node"; 64965 - homepage = https://beautifier.io/; 64965 + homepage = "https://beautifier.io/"; 64966 64966 license = "MIT"; 64967 64967 }; 64968 64968 production = true; ··· 64985 64985 buildInputs = globalBuildInputs; 64986 64986 meta = { 64987 64987 description = "YAML 1.2 parser and serializer"; 64988 - homepage = https://github.com/nodeca/js-yaml; 64988 + homepage = "https://github.com/nodeca/js-yaml"; 64989 64989 license = "MIT"; 64990 64990 }; 64991 64991 production = true; ··· 65081 65081 buildInputs = globalBuildInputs; 65082 65082 meta = { 65083 65083 description = "Static analysis tool for JavaScript"; 65084 - homepage = http://jshint.com/; 65084 + homepage = "http://jshint.com/"; 65085 65085 license = "(MIT AND JSON)"; 65086 65086 }; 65087 65087 production = true; ··· 65124 65124 buildInputs = globalBuildInputs; 65125 65125 meta = { 65126 65126 description = "JSON diff"; 65127 - homepage = https://github.com/andreyvit/json-diff; 65127 + homepage = "https://github.com/andreyvit/json-diff"; 65128 65128 }; 65129 65129 production = true; 65130 65130 bypassCache = true; ··· 65179 65179 buildInputs = globalBuildInputs; 65180 65180 meta = { 65181 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; 65182 + homepage = "https://github.com/whitlockjc/json-refs"; 65183 65183 license = "MIT"; 65184 65184 }; 65185 65185 production = true; ··· 65460 65460 buildInputs = globalBuildInputs; 65461 65461 meta = { 65462 65462 description = "Get a full fake REST API with zero coding in less than 30 seconds"; 65463 - homepage = https://github.com/typicode/json-server; 65463 + homepage = "https://github.com/typicode/json-server"; 65464 65464 license = "MIT"; 65465 65465 }; 65466 65466 production = true; ··· 65487 65487 buildInputs = globalBuildInputs; 65488 65488 meta = { 65489 65489 description = "Validate JSON"; 65490 - homepage = http://zaach.github.com/jsonlint/; 65490 + homepage = "http://zaach.github.com/jsonlint/"; 65491 65491 }; 65492 65492 production = true; 65493 65493 bypassCache = true; ··· 65687 65687 buildInputs = globalBuildInputs; 65688 65688 meta = { 65689 65689 description = "Spectacular Test Runner for JavaScript."; 65690 - homepage = http://karma-runner.github.io/; 65690 + homepage = "http://karma-runner.github.io/"; 65691 65691 license = "MIT"; 65692 65692 }; 65693 65693 production = true; ··· 65781 65781 buildInputs = globalBuildInputs; 65782 65782 meta = { 65783 65783 description = "Merges multiple lcov results into one"; 65784 - homepage = https://github.com/mweibel/lcov-result-merger; 65784 + homepage = "https://github.com/mweibel/lcov-result-merger"; 65785 65785 license = "MIT"; 65786 65786 }; 65787 65787 production = true; ··· 67083 67083 buildInputs = globalBuildInputs; 67084 67084 meta = { 67085 67085 description = "Leaner CSS"; 67086 - homepage = http://lesscss.org/; 67086 + homepage = "http://lesscss.org/"; 67087 67087 license = "Apache-2.0"; 67088 67088 }; 67089 67089 production = true; ··· 67108 67108 buildInputs = globalBuildInputs; 67109 67109 meta = { 67110 67110 description = "clean-css plugin for less.js"; 67111 - homepage = http://lesscss.org/; 67111 + homepage = "http://lesscss.org/"; 67112 67112 }; 67113 67113 production = true; 67114 67114 bypassCache = true; ··· 67949 67949 buildInputs = globalBuildInputs; 67950 67950 meta = { 67951 67951 description = "Live Markdown previews for your favourite editor."; 67952 - homepage = https://github.com/shime/livedown; 67952 + homepage = "https://github.com/shime/livedown"; 67953 67953 license = "MIT"; 67954 67954 }; 67955 67955 production = true; ··· 69107 69107 buildInputs = globalBuildInputs; 69108 69108 meta = { 69109 69109 description = "Madoko is a fast scholarly Markdown processor written in Koka"; 69110 - homepage = http://madoko.codeplex.com/; 69110 + homepage = "http://madoko.codeplex.com/"; 69111 69111 }; 69112 69112 production = true; 69113 69113 bypassCache = true; ··· 69247 69247 buildInputs = globalBuildInputs; 69248 69248 meta = { 69249 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; 69250 + homepage = "https://bitbucket.org/aahmed/meat"; 69251 69251 }; 69252 69252 production = true; 69253 69253 bypassCache = true; ··· 70105 70105 buildInputs = globalBuildInputs; 70106 70106 meta = { 70107 70107 description = "simple, flexible, fun test framework"; 70108 - homepage = https://mochajs.org/; 70108 + homepage = "https://mochajs.org/"; 70109 70109 license = "MIT"; 70110 70110 }; 70111 70111 production = true; ··· 70229 70229 buildInputs = globalBuildInputs; 70230 70230 meta = { 70231 70231 description = "Neovim client API and neovim remote plugin provider"; 70232 - homepage = https://github.com/neovim/node-client; 70232 + homepage = "https://github.com/neovim/node-client"; 70233 70233 license = "MIT"; 70234 70234 }; 70235 70235 production = true; ··· 70388 70388 buildInputs = globalBuildInputs; 70389 70389 meta = { 70390 70390 description = "Build tool and bindings loader for node-gyp that supports prebuilds"; 70391 - homepage = https://github.com/prebuild/node-gyp-build; 70391 + homepage = "https://github.com/prebuild/node-gyp-build"; 70392 70392 license = "MIT"; 70393 70393 }; 70394 70394 production = true; ··· 70684 70684 buildInputs = globalBuildInputs; 70685 70685 meta = { 70686 70686 description = "Web Inspector based nodeJS debugger"; 70687 - homepage = http://github.com/node-inspector/node-inspector; 70687 + homepage = "http://github.com/node-inspector/node-inspector"; 70688 70688 }; 70689 70689 production = true; 70690 70690 bypassCache = true; ··· 71251 71251 buildInputs = globalBuildInputs; 71252 71252 meta = { 71253 71253 description = "Low-code programming for event-driven applications"; 71254 - homepage = http://nodered.org/; 71254 + homepage = "http://nodered.org/"; 71255 71255 license = "Apache-2.0"; 71256 71256 }; 71257 71257 production = true; ··· 71441 71441 buildInputs = globalBuildInputs; 71442 71442 meta = { 71443 71443 description = "Generate Nix expressions to build NPM packages"; 71444 - homepage = https://github.com/svanderburg/node2nix; 71444 + homepage = "https://github.com/svanderburg/node2nix"; 71445 71445 license = "MIT"; 71446 71446 }; 71447 71447 production = true; ··· 71605 71605 buildInputs = globalBuildInputs; 71606 71606 meta = { 71607 71607 description = "Simple monitor script for use during development of a node.js app."; 71608 - homepage = http://nodemon.io/; 71608 + homepage = "http://nodemon.io/"; 71609 71609 license = "MIT"; 71610 71610 }; 71611 71611 production = true; ··· 71623 71623 buildInputs = globalBuildInputs; 71624 71624 meta = { 71625 71625 description = "a package manager for JavaScript"; 71626 - homepage = https://docs.npmjs.com/; 71626 + homepage = "https://docs.npmjs.com/"; 71627 71627 license = "Artistic-2.0"; 71628 71628 }; 71629 71629 production = true; ··· 71919 71919 buildInputs = globalBuildInputs; 71920 71920 meta = { 71921 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; 71922 + homepage = "https://github.com/tjunnone/npm-check-updates"; 71923 71923 license = "Apache-2.0"; 71924 71924 }; 71925 71925 production = true; ··· 72093 72093 buildInputs = globalBuildInputs; 72094 72094 meta = { 72095 72095 description = "Generate nix expressions to build npm packages"; 72096 - homepage = https://github.com/NixOS/npm2nix; 72096 + homepage = "https://github.com/NixOS/npm2nix"; 72097 72097 }; 72098 72098 production = true; 72099 72099 bypassCache = true; ··· 72134 72134 buildInputs = globalBuildInputs; 72135 72135 meta = { 72136 72136 description = "OCaml language server"; 72137 - homepage = https://github.com/freebroccolo/ocaml-language-server; 72137 + homepage = "https://github.com/freebroccolo/ocaml-language-server"; 72138 72138 license = "Apache-2.0"; 72139 72139 }; 72140 72140 production = true; ··· 73695 73695 buildInputs = globalBuildInputs; 73696 73696 meta = { 73697 73697 description = "Streaming torrent client for Node.js"; 73698 - homepage = https://github.com/mafintosh/peerflix; 73698 + homepage = "https://github.com/mafintosh/peerflix"; 73699 73699 license = "MIT"; 73700 73700 }; 73701 73701 production = true; ··· 74084 74084 buildInputs = globalBuildInputs; 74085 74085 meta = { 74086 74086 description = "Fast, disk space efficient package manager"; 74087 - homepage = https://pnpm.js.org/; 74087 + homepage = "https://pnpm.js.org/"; 74088 74088 license = "MIT"; 74089 74089 }; 74090 74090 production = true; ··· 74261 74261 buildInputs = globalBuildInputs; 74262 74262 meta = { 74263 74263 description = "Prettier is an opinionated code formatter"; 74264 - homepage = https://prettier.io/; 74264 + homepage = "https://prettier.io/"; 74265 74265 license = "MIT"; 74266 74266 }; 74267 74267 production = true; ··· 74648 74648 buildInputs = globalBuildInputs; 74649 74649 meta = { 74650 74650 description = "A build system for PureScript projects"; 74651 - homepage = https://github.com/purescript-contrib/pulp; 74651 + homepage = "https://github.com/purescript-contrib/pulp"; 74652 74652 license = "LGPL-3.0+"; 74653 74653 }; 74654 74654 production = true; ··· 74820 74820 buildInputs = globalBuildInputs; 74821 74821 meta = { 74822 74822 description = "A set of complementary tools to React, including the JSX transformer."; 74823 - homepage = https://facebook.github.io/react; 74823 + homepage = "https://facebook.github.io/react"; 74824 74824 license = "BSD-3-Clause"; 74825 74825 }; 74826 74826 production = true; ··· 74838 74838 buildInputs = globalBuildInputs; 74839 74839 meta = { 74840 74840 description = "The HTML Presentation Framework"; 74841 - homepage = http://revealjs.com/; 74841 + homepage = "http://revealjs.com/"; 74842 74842 license = "MIT"; 74843 74843 }; 74844 74844 production = true; ··· 76486 76486 buildInputs = globalBuildInputs; 76487 76487 meta = { 76488 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/; 76489 + homepage = "https://serverless.com/framework/docs/"; 76490 76490 license = "MIT"; 76491 76491 }; 76492 76492 production = true; ··· 78588 78588 buildInputs = globalBuildInputs; 78589 78589 meta = { 78590 78590 description = "network protocol layer for secure-scuttlebutt"; 78591 - homepage = https://github.com/ssbc/ssb-server; 78591 + homepage = "https://github.com/ssbc/ssb-server"; 78592 78592 license = "MIT"; 78593 78593 }; 78594 78594 production = true; ··· 78606 78606 buildInputs = globalBuildInputs; 78607 78607 meta = { 78608 78608 description = "Send metric data from statsd to Stackdriver"; 78609 - homepage = https://www.stackdriver.com/; 78609 + homepage = "https://www.stackdriver.com/"; 78610 78610 license = "MIT"; 78611 78611 }; 78612 78612 production = true; ··· 79525 79525 buildInputs = globalBuildInputs; 79526 79526 meta = { 79527 79527 description = "Nodejs-based tool for optimizing SVG vector graphics files"; 79528 - homepage = https://github.com/svg/svgo; 79528 + homepage = "https://github.com/svg/svgo"; 79529 79529 license = "MIT"; 79530 79530 }; 79531 79531 production = true; ··· 80560 80560 buildInputs = globalBuildInputs; 80561 80561 meta = { 80562 80562 description = "The pluggable linting tool for text and markdown."; 80563 - homepage = https://github.com/textlint/textlint/; 80563 + homepage = "https://github.com/textlint/textlint/"; 80564 80564 license = "MIT"; 80565 80565 }; 80566 80566 production = true; ··· 80582 80582 buildInputs = globalBuildInputs; 80583 80583 meta = { 80584 80584 description = "Latex plugin for [textlint](https://github.com/textlint/textlint &#34;textlint&#34;)."; 80585 - homepage = https://github.com/elzup/textlint-plugin-latex; 80585 + homepage = "https://github.com/elzup/textlint-plugin-latex"; 80586 80586 license = "MIT"; 80587 80587 }; 80588 80588 production = true; ··· 80621 80621 buildInputs = globalBuildInputs; 80622 80622 meta = { 80623 80623 description = "textlint rule check that abbreviations within parentheses."; 80624 - homepage = https://github.com/azu/textlint-rule-abbr-within-parentheses; 80624 + homepage = "https://github.com/azu/textlint-rule-abbr-within-parentheses"; 80625 80625 license = "MIT"; 80626 80626 }; 80627 80627 production = true; ··· 80935 80935 buildInputs = globalBuildInputs; 80936 80936 meta = { 80937 80937 description = "textlint rule for alex"; 80938 - homepage = https://github.com/textlint-rule/textlint-rule-alex; 80938 + homepage = "https://github.com/textlint-rule/textlint-rule-alex"; 80939 80939 license = "MIT"; 80940 80940 }; 80941 80941 production = true; ··· 80960 80960 buildInputs = globalBuildInputs; 80961 80961 meta = { 80962 80962 description = "textlint rule to check common misspellings"; 80963 - homepage = https://github.com/io-monad/textlint-rule-common-misspellings; 80963 + homepage = "https://github.com/io-monad/textlint-rule-common-misspellings"; 80964 80964 license = "GPL-3.0"; 80965 80965 }; 80966 80966 production = true; ··· 80982 80982 buildInputs = globalBuildInputs; 80983 80983 meta = { 80984 80984 description = "Textlint rule to check correct usage of diacritics"; 80985 - homepage = https://github.com/sapegin/textlint-rule-diacritics; 80985 + homepage = "https://github.com/sapegin/textlint-rule-diacritics"; 80986 80986 license = "MIT"; 80987 80987 }; 80988 80988 production = true; ··· 81019 81019 buildInputs = globalBuildInputs; 81020 81020 meta = { 81021 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; 81022 + homepage = "https://github.com/azu/textlint-rule-en-max-word-count"; 81023 81023 license = "MIT"; 81024 81024 }; 81025 81025 production = true; ··· 81112 81112 buildInputs = globalBuildInputs; 81113 81113 meta = { 81114 81114 description = "textlint rule that check no start with duplicated conjunction."; 81115 - homepage = https://github.com/textlint-rule/textlint-rule-no-start-duplicated-conjunction; 81115 + homepage = "https://github.com/textlint-rule/textlint-rule-no-start-duplicated-conjunction"; 81116 81116 license = "MIT"; 81117 81117 }; 81118 81118 production = true; ··· 81153 81153 buildInputs = globalBuildInputs; 81154 81154 meta = { 81155 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; 81156 + homepage = "https://github.com/textlint-rule/textlint-rule-period-in-list-item"; 81157 81157 license = "MIT"; 81158 81158 }; 81159 81159 production = true; ··· 81183 81183 buildInputs = globalBuildInputs; 81184 81184 meta = { 81185 81185 description = "Textlint rule to find filler words, buzzwords and chiches"; 81186 - homepage = https://github.com/sapegin/textlint-rule-stop-words; 81186 + homepage = "https://github.com/sapegin/textlint-rule-stop-words"; 81187 81187 license = "MIT"; 81188 81188 }; 81189 81189 production = true; ··· 81213 81213 buildInputs = globalBuildInputs; 81214 81214 meta = { 81215 81215 description = "TextLint rule to check correct terms spelling"; 81216 - homepage = https://github.com/sapegin/textlint-rule-terminology; 81216 + homepage = "https://github.com/sapegin/textlint-rule-terminology"; 81217 81217 license = "MIT"; 81218 81218 }; 81219 81219 production = true; ··· 81253 81253 buildInputs = globalBuildInputs; 81254 81254 meta = { 81255 81255 description = "textlint rule that check unexpanded acronym word."; 81256 - homepage = https://github.com/textlint-rule/textlint-rule-unexpanded-acronym; 81256 + homepage = "https://github.com/textlint-rule/textlint-rule-unexpanded-acronym"; 81257 81257 license = "MIT"; 81258 81258 }; 81259 81259 production = true; ··· 81293 81293 buildInputs = globalBuildInputs; 81294 81294 meta = { 81295 81295 description = "textlint rule to check your English style with write good"; 81296 - homepage = https://github.com/textlint-rule/textlint-rule-write-good; 81296 + homepage = "https://github.com/textlint-rule/textlint-rule-write-good"; 81297 81297 license = "MIT"; 81298 81298 }; 81299 81299 production = true; ··· 81728 81728 buildInputs = globalBuildInputs; 81729 81729 meta = { 81730 81730 description = "The self-hosted Web IRC client"; 81731 - homepage = https://thelounge.chat/; 81731 + homepage = "https://thelounge.chat/"; 81732 81732 license = "MIT"; 81733 81733 }; 81734 81734 production = true; ··· 81746 81746 buildInputs = globalBuildInputs; 81747 81747 meta = { 81748 81748 description = "JavaScript 3D library"; 81749 - homepage = https://threejs.org/; 81749 + homepage = "https://threejs.org/"; 81750 81750 license = "MIT"; 81751 81751 }; 81752 81752 production = true; ··· 82087 82087 buildInputs = globalBuildInputs; 82088 82088 meta = { 82089 82089 description = "Joyent Triton CLI and client (https://www.joyent.com/triton)"; 82090 - homepage = https://github.com/joyent/node-triton; 82090 + homepage = "https://github.com/joyent/node-triton"; 82091 82091 license = "MPL-2.0"; 82092 82092 }; 82093 82093 production = true; ··· 82136 82136 buildInputs = globalBuildInputs; 82137 82137 meta = { 82138 82138 description = "TSUN: a repl for TypeScript Upgraded Node"; 82139 - homepage = https://github.com/HerringtonDarkholme/typescript-repl; 82139 + homepage = "https://github.com/HerringtonDarkholme/typescript-repl"; 82140 82140 license = "MIT"; 82141 82141 }; 82142 82142 production = true; ··· 82177 82177 buildInputs = globalBuildInputs; 82178 82178 meta = { 82179 82179 description = "TypeScript is a language for application scale JavaScript development"; 82180 - homepage = https://www.typescriptlang.org/; 82180 + homepage = "https://www.typescriptlang.org/"; 82181 82181 license = "Apache-2.0"; 82182 82182 }; 82183 82183 production = true; ··· 83941 83941 buildInputs = globalBuildInputs; 83942 83942 meta = { 83943 83943 description = "vue-language-server"; 83944 - homepage = https://github.com/vuejs/vetur/tree/master/server; 83944 + homepage = "https://github.com/vuejs/vetur/tree/master/server"; 83945 83945 license = "MIT"; 83946 83946 }; 83947 83947 production = true; ··· 85040 85040 buildInputs = globalBuildInputs; 85041 85041 meta = { 85042 85042 description = "A command line tool to help build, run, and test web extensions"; 85043 - homepage = https://github.com/mozilla/web-ext; 85043 + homepage = "https://github.com/mozilla/web-ext"; 85044 85044 license = "MPL-2.0"; 85045 85045 }; 85046 85046 production = true; ··· 85516 85516 buildInputs = globalBuildInputs; 85517 85517 meta = { 85518 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; 85519 + homepage = "https://github.com/webpack/webpack"; 85520 85520 license = "MIT"; 85521 85521 }; 85522 85522 production = true; ··· 86581 86581 buildInputs = globalBuildInputs; 86582 86582 meta = { 86583 86583 description = "Copy files && directories with webpack"; 86584 - homepage = https://github.com/webpack-contrib/copy-webpack-plugin; 86584 + homepage = "https://github.com/webpack-contrib/copy-webpack-plugin"; 86585 86585 license = "MIT"; 86586 86586 }; 86587 86587 production = true; ··· 86878 86878 buildInputs = globalBuildInputs; 86879 86879 meta = { 86880 86880 description = "WebTorrent, the streaming torrent client. For the command line."; 86881 - homepage = https://webtorrent.io/; 86881 + homepage = "https://webtorrent.io/"; 86882 86882 license = "MIT"; 86883 86883 }; 86884 86884 production = true; ··· 87917 87917 buildInputs = globalBuildInputs; 87918 87918 meta = { 87919 87919 description = "CLI tool for running Yeoman generators"; 87920 - homepage = http://yeoman.io/; 87920 + homepage = "http://yeoman.io/"; 87921 87921 license = "BSD-2-Clause"; 87922 87922 }; 87923 87923 production = true; 87924 87924 bypassCache = true; 87925 87925 reconstructLock = true; 87926 87926 }; 87927 - } 87927 + }
+4 -4
pkgs/development/node-packages/node-packages-v12.nix
··· 2475 2475 buildInputs = globalBuildInputs; 2476 2476 meta = { 2477 2477 description = "Unfancy JavaScript"; 2478 - homepage = http://coffeescript.org/; 2478 + homepage = "http://coffeescript.org/"; 2479 2479 license = "MIT"; 2480 2480 }; 2481 2481 production = true; ··· 2953 2953 buildInputs = globalBuildInputs; 2954 2954 meta = { 2955 2955 description = "Generate Nix expressions to build NPM packages"; 2956 - homepage = https://github.com/svanderburg/node2nix; 2956 + homepage = "https://github.com/svanderburg/node2nix"; 2957 2957 license = "MIT"; 2958 2958 }; 2959 2959 production = true; ··· 3090 3090 buildInputs = globalBuildInputs; 3091 3091 meta = { 3092 3092 description = "Build tool and bindings loader for node-gyp that supports prebuilds"; 3093 - homepage = https://github.com/prebuild/node-gyp-build; 3093 + homepage = "https://github.com/prebuild/node-gyp-build"; 3094 3094 license = "MIT"; 3095 3095 }; 3096 3096 production = true; ··· 3182 3182 bypassCache = true; 3183 3183 reconstructLock = true; 3184 3184 }; 3185 - } 3185 + }
+2 -2
pkgs/development/node-packages/node-packages-v13.nix
··· 1441 1441 buildInputs = globalBuildInputs; 1442 1442 meta = { 1443 1443 description = "Generate Nix expressions to build NPM packages"; 1444 - homepage = https://github.com/svanderburg/node2nix; 1444 + homepage = "https://github.com/svanderburg/node2nix"; 1445 1445 license = "MIT"; 1446 1446 }; 1447 1447 production = true; 1448 1448 bypassCache = true; 1449 1449 reconstructLock = true; 1450 1450 }; 1451 - } 1451 + }
+7 -1
pkgs/development/ocaml-modules/bistro/default.nix
··· 1 - { lib, fetchFromGitHub, buildDunePackage 1 + { lib, fetchFromGitHub, fetchpatch, buildDunePackage 2 2 , base64, bos, core, lwt_react, ocamlgraph, rresult, tyxml 3 3 }: 4 4 ··· 11 11 rev = "v${version}"; 12 12 sha256 = "114gq48cpj2mvycypa9lfyqqb26wa2gkdfwkcqhnx7m6sdwv9a38"; 13 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 + })]; 14 20 15 21 propagatedBuildInputs = [ base64 bos core lwt_react ocamlgraph rresult tyxml ]; 16 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 2 3 3 buildDunePackage rec { 4 4 pname = "linenoise"; 5 - version = "1.1.0"; 5 + version = "1.3.0"; 6 6 7 7 minimumOCamlVersion = "4.02"; 8 8 ··· 10 10 owner = "fxfactorial"; 11 11 repo = "ocaml-${pname}"; 12 12 rev = "v${version}"; 13 - sha256 = "1h6rqfgmhmd7p5z8yhk6zkbrk4yzw1v2fgwas2b7g3hqs6y0xj0q"; 13 + sha256 = "0m9mm1arsawi5w5aqm57z41sy1wfxvhfgbdiw7hzy631i391144g"; 14 14 }; 15 15 16 16 propagatedBuildInputs = [ result ];
+3 -3
pkgs/development/ocaml-modules/phylogenetics/default.nix
··· 3 3 4 4 buildDunePackage rec { 5 5 pname = "phylogenetics"; 6 - version = "unstable-2020-01-05"; 6 + version = "unstable-2020-01-25"; 7 7 8 8 useDune2 = true; 9 9 10 10 src = fetchFromGitHub { 11 11 owner = "biocaml"; 12 12 repo = pname; 13 - rev = "b55ef7d7322bd822be26d21339945d45487fb547"; 14 - sha256 = "0hzfjhs5w3a7hlzxs739k5ik3k1xn3dzyzziid765s74f638n4hj"; 13 + rev = "752a7d0324709ba919ef43630a270afd45d6b734"; 14 + sha256 = "1zsxpl1yjbw6y6n1q7qk3h0l7c0lxhh8yp8bkxlwnpzlkqq28ycg"; 15 15 }; 16 16 17 17 minimumOCamlVersion = "4.08"; # e.g., uses Float.min
+2 -2
pkgs/development/ocaml-modules/rpclib/default.nix
··· 2 2 3 3 buildDunePackage rec { 4 4 pname = "rpclib"; 5 - version = "6.0.0"; 5 + version = "7.0.0"; 6 6 7 7 minimumOCamlVersion = "4.04"; 8 8 ··· 10 10 owner = "mirage"; 11 11 repo = "ocaml-rpc"; 12 12 rev = "v${version}"; 13 - sha256 = "0bmr20sj7kybjjlwd42irj0f5zlnxcw7mxa1mdgxkki9bmhsqr51"; 13 + sha256 = "0d8nb272mjxkq5ddn65cy9gjpa8yvd0v3jv3wp5xfh9gj29wd2jj"; 14 14 }; 15 15 16 16 buildInputs = [ alcotest cmdliner yojson ];
+3 -3
pkgs/development/ocaml-modules/sedlex/2.nix
··· 38 38 sha256 = "05f6qa8x3vhpdz1fcnpqk37fpnyyq13icqsk2gww5idjnh6kng26"; 39 39 }; 40 40 41 - buildInputs = [ ppx_tools_versioned ocaml-migrate-parsetree ]; 42 - 43 - propagatedBuildInputs = [ gen uchar ]; 41 + propagatedBuildInputs = [ 42 + gen uchar ocaml-migrate-parsetree ppx_tools_versioned 43 + ]; 44 44 45 45 preBuild = '' 46 46 ln -s ${DerivedCoreProperties} src/generator/data/DerivedCoreProperties.txt
+8 -1
pkgs/development/python-modules/apptools/default.nix
··· 1 - { lib, fetchPypi, buildPythonPackage 1 + { lib, fetchPypi, buildPythonPackage, fetchpatch 2 2 , configobj, six, traitsui 3 3 , nose, tables, pandas 4 4 }: ··· 11 11 inherit pname version; 12 12 sha256 = "10h52ibhr2aw076pivqxiajr9rpcr1mancg6xlpxzckcm3if02i6"; 13 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 + ]; 14 21 15 22 propagatedBuildInputs = [ configobj six traitsui ]; 16 23
+21 -8
pkgs/development/python-modules/envisage/default.nix
··· 1 - { stdenv, fetchPypi, buildPythonPackage 1 + { lib, fetchPypi, fetchpatch, isPy27 2 + , buildPythonPackage 2 3 , traits, apptools 3 - , ipykernel 4 + , python, ipykernel, ipython 4 5 }: 5 6 6 7 buildPythonPackage rec { 7 8 pname = "envisage"; 8 - version = "4.7.2"; 9 + version = "4.9.2"; 10 + 11 + disabled = isPy27; 9 12 10 13 src = fetchPypi { 11 14 inherit pname version; 12 - sha256 = "0jb5nw0w9x97jij0hd3d7kfzcj58r1cqmplmdy56bj11dyc4wyc9"; 15 + sha256 = "1srjmkhnz84nz5jd72vdsnc4fn7dd9jr8nyf3hzk6yx1dsn815gd"; 13 16 }; 14 17 15 18 propagatedBuildInputs = [ traits apptools ]; ··· 18 21 export HOME=$PWD/HOME 19 22 ''; 20 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 + 21 30 checkInputs = [ 22 - ipykernel 31 + ipykernel ipython 23 32 ]; 24 33 25 - doCheck = true; 34 + checkPhase = '' 35 + runHook preCheck 36 + ${python.interpreter} -m unittest 37 + runHook postCheck 38 + ''; 26 39 27 - meta = with stdenv.lib; { 40 + meta = with lib; { 28 41 description = "Framework for building applications whose functionalities can be extended by adding 'plug-ins'"; 29 42 homepage = "https://github.com/enthought/envisage"; 30 - maintainers = with stdenv.lib.maintainers; [ knedlsepp ]; 43 + maintainers = with lib.maintainers; [ knedlsepp ]; 31 44 license = licenses.bsdOriginal; 32 45 }; 33 46 }
+3 -1
pkgs/development/python-modules/howdoi/default.nix
··· 5 5 , requests-cache 6 6 , pygments 7 7 , pyquery 8 + , cachelib 9 + , appdirs 8 10 }: 9 11 10 12 buildPythonPackage rec { ··· 16 18 sha256 = "3b322668606d29d8a841c3b28c0574851f512b55c33a7ceb982b6a98d82fa3e3"; 17 19 }; 18 20 19 - propagatedBuildInputs = [ six requests-cache pygments pyquery ]; 21 + propagatedBuildInputs = [ six requests-cache pygments pyquery cachelib appdirs ]; 20 22 21 23 preCheck = '' 22 24 export HOME=$(mktemp -d)
+2 -1
pkgs/development/python-modules/lektor/default.nix
··· 19 19 , pytest-click 20 20 , isPy27 21 21 , functools32 22 + , setuptools 22 23 }: 23 24 24 25 buildPythonPackage rec { ··· 34 35 35 36 propagatedBuildInputs = [ 36 37 click watchdog exifread requests mistune inifile Babel jinja2 37 - flask pyopenssl ndg-httpsclient 38 + flask pyopenssl ndg-httpsclient setuptools 38 39 ] ++ lib.optionals isPy27 [ functools32 ]; 39 40 40 41 checkInputs = [
+16 -29
pkgs/development/python-modules/matplotlib/2.nix
··· 7 7 # darwin has its own "MacOSX" backend 8 8 , enableTk ? !stdenv.isDarwin, tcl ? null, tk ? null, tkinter ? null, libX11 ? null 9 9 , enableQt ? false, pyqt4 10 - , libcxx 11 10 , Cocoa 12 11 , pythonOlder 13 12 }: ··· 29 28 sha256 = "7355bf757ecacd5f0ac9dd9523c8e1a1103faadf8d33c22664178e17533f8ce5"; 30 29 }; 31 30 32 - NIX_CFLAGS_COMPILE = stdenv.lib.optionalString stdenv.isDarwin "-I${libcxx}/include/c++/v1"; 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 + ]; 33 39 34 40 XDG_RUNTIME_DIR = "/tmp"; 35 41 36 42 nativeBuildInputs = [ pkgconfig ]; 37 43 38 - buildInputs = [ python which sphinx stdenv ] 44 + buildInputs = [ which sphinx ] 39 45 ++ stdenv.lib.optional enableGhostscript ghostscript 40 46 ++ stdenv.lib.optional stdenv.isDarwin [ Cocoa ]; 41 47 ··· 48 54 ++ stdenv.lib.optionals enableQt [ pyqt4 ] 49 55 ++ stdenv.lib.optionals python.isPy2 [ functools32 subprocess32 ]; 50 56 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 - ]; 57 + setup_cfg = ./setup.cfg; 58 + preBuild = '' 59 + cp "$setup_cfg" ./setup.cfg 60 + ''; 61 61 62 62 # Matplotlib tries to find Tcl/Tk by opening a Tk window and asking the 63 63 # corresponding interpreter object for its library paths. This fails if ··· 73 73 stdenv.lib.optionalString enableTk 74 74 "sed -i '/self.tcl_tk_cache = None/s|None|${tcl_tk_cache}|' setupext.py"; 75 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) 76 + # Matplotlib needs to be built against a specific version of freetype in 77 + # order for all of the tests to pass. 82 78 doCheck = false; 83 79 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 80 meta = with stdenv.lib; { 94 81 description = "Python plotting library, making publication quality plots"; 95 82 homepage = "https://matplotlib.org/"; 96 - maintainers = with maintainers; [ lovek323 ]; 83 + maintainers = with maintainers; [ lovek323 veprbl ]; 97 84 }; 98 85 99 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 6 # darwin has its own "MacOSX" backend 7 7 , enableTk ? !stdenv.isDarwin, tcl ? null, tk ? null, tkinter ? null, libX11 ? null 8 8 , enableQt ? false, pyqt5 ? null 9 - , libcxx 10 9 , Cocoa 11 10 , pythonOlder 12 11 }: ··· 20 19 assert enableQt -> pyqt5 != null; 21 20 22 21 buildPythonPackage rec { 23 - version = "3.1.3"; 22 + version = "3.2.1"; 24 23 pname = "matplotlib"; 25 24 26 25 disabled = !isPy3k; 27 26 28 27 src = fetchPypi { 29 28 inherit pname version; 30 - sha256 = "db3121f12fb9b99f105d1413aebaeb3d943f269f3d262b45586d12765866f0c6"; 29 + sha256 = "ffe2f9cdcea1086fc414e82f42271ecf1976700b8edd16ca9d376189c6d93aee"; 31 30 }; 32 31 33 - NIX_CFLAGS_COMPILE = stdenv.lib.optionalString stdenv.isDarwin "-I${libcxx}/include/c++/v1"; 34 - 35 32 XDG_RUNTIME_DIR = "/tmp"; 36 33 37 34 nativeBuildInputs = [ pkgconfig ]; 38 35 39 - buildInputs = [ python which sphinx stdenv ] 36 + buildInputs = [ which sphinx ] 40 37 ++ stdenv.lib.optional enableGhostscript ghostscript 41 38 ++ stdenv.lib.optional stdenv.isDarwin [ Cocoa ]; 42 39 43 40 propagatedBuildInputs = 44 41 [ cycler dateutil numpy pyparsing tornado freetype kiwisolver 45 42 libpng mock pytz ] 46 - ++ stdenv.lib.optional (pythonOlder "3.3") backports_functools_lru_cache 47 43 ++ stdenv.lib.optionals enableGtk3 [ cairo pycairo gtk3 gobject-introspection pygobject3 ] 48 44 ++ stdenv.lib.optionals enableTk [ tcl tk tkinter libX11 ] 49 45 ++ stdenv.lib.optionals enableQt [ pyqt5 ]; 50 46 51 - patches = 52 - [ ./basedirlist.patch ]; 47 + setup_cfg = ./setup.cfg; 48 + preBuild = '' 49 + cp "$setup_cfg" ./setup.cfg 50 + ''; 53 51 54 52 # Matplotlib tries to find Tcl/Tk by opening a Tk window and asking the 55 53 # corresponding interpreter object for its library paths. This fails if ··· 65 63 stdenv.lib.optionalString enableTk 66 64 "sed -i '/self.tcl_tk_cache = None/s|None|${tcl_tk_cache}|' setupext.py"; 67 65 68 - checkPhase = '' 69 - ${python.interpreter} tests.py 70 - ''; 71 - 72 - # Test data is not included in the distribution (the `tests` folder 73 - # is missing) 66 + # Matplotlib needs to be built against a specific version of freetype in 67 + # order for all of the tests to pass. 74 68 doCheck = false; 75 69 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 70 meta = with stdenv.lib; { 86 71 description = "Python plotting library, making publication quality plots"; 87 72 homepage = "https://matplotlib.org/"; 88 - maintainers = with maintainers; [ lovek323 ]; 73 + maintainers = with maintainers; [ lovek323 veprbl ]; 89 74 }; 90 75 91 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 1 + { lib, buildPythonPackage, isPy27, fetchPypi, wrapQtAppsHook 2 + , pyface, pygments, numpy, vtk, traitsui, envisage, apptools, pyqt5 5 3 }: 6 4 7 5 buildPythonPackage rec { 8 6 pname = "mayavi"; 9 7 version = "4.7.1"; 8 + 9 + disabled = isPy27; 10 10 11 11 src = fetchPypi { 12 12 inherit pname version; ··· 14 14 sha256 = "095p7mds6kqqrp7xqv24iygr3mw85rm7x41wb5y4yc3gi1pznldy"; 15 15 }; 16 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 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 20 substituteInPlace mayavi/__init__.py --replace "'vtk'" "" 21 - ''; 22 21 23 - propagatedBuildInputs = [ wxPython pygments numpy vtk traitsui envisage apptools ]; 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 + ''; 24 26 25 - checkInputs = [ nose mock ]; 27 + nativeBuildInputs = [ wrapQtAppsHook ]; 26 28 27 - disabled = isPy3k; # TODO: This would need pyqt5 instead of wxPython 29 + propagatedBuildInputs = [ 30 + pyface pygments numpy vtk traitsui envisage apptools pyqt5 31 + ]; 28 32 29 33 doCheck = false; # Needs X server 30 34 31 - meta = with stdenv.lib; { 35 + preFixup = '' 36 + makeWrapperArgs+=("''${qtWrapperArgs[@]}") 37 + ''; 38 + 39 + meta = with lib; { 32 40 description = "3D visualization of scientific data in Python"; 33 41 homepage = "https://github.com/enthought/mayavi"; 34 - maintainers = with stdenv.lib.maintainers; [ knedlsepp ]; 42 + maintainers = with maintainers; [ knedlsepp ]; 35 43 license = licenses.bsdOriginal; 36 44 }; 37 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 1 { stdenv, fetchPypi, buildPythonPackage 2 - , setuptools, six, traits, wxPython 2 + , setuptools, six, traits 3 3 }: 4 4 5 5 buildPythonPackage rec { ··· 11 11 sha256 = "1g2g3za64rfffbivlihbf5njrqbv63ln62rv9d8fi1gcrgaw6akw"; 12 12 }; 13 13 14 - propagatedBuildInputs = [ setuptools six traits wxPython ]; 14 + propagatedBuildInputs = [ setuptools six traits ]; 15 15 16 16 doCheck = false; # Needs X server 17 17
+1 -1
pkgs/development/python-modules/pyopengl/default.nix
··· 15 15 sha256 = "0bdf5ed600df30c8830455702338902528717c0af85ac5914f1dc5aa0bfa6eee"; 16 16 }; 17 17 18 - propagatedBuildInputs = [ pkgs.libGLU pkgs.libGL pkgs.freeglut pillow ]; 18 + propagatedBuildInputs = [ pillow ]; 19 19 20 20 patchPhase = let 21 21 ext = stdenv.hostPlatform.extensions.sharedLibrary; in ''
+2 -2
pkgs/development/python-modules/pytesseract/default.nix
··· 2 2 3 3 buildPythonPackage rec { 4 4 pname = "pytesseract"; 5 - version = "0.3.3"; 5 + version = "0.3.4"; 6 6 7 7 src = fetchPypi { 8 8 inherit pname version; 9 - sha256 = "0lml55jrvdzy9fm31zpw64fqc4d6p5djg1ax2kgnimzfscxghh8h"; 9 + sha256 = "16l9b9f5v0a9j5jfgpd8irk9yhc9byzirrzv1rlkapdbz36sbn5g"; 10 10 }; 11 11 12 12 patches = [
+1 -1
pkgs/development/python-modules/requests_download/default.nix
··· 11 11 format = "wheel"; 12 12 13 13 #src = pkgs.fetchurl { 14 - # url = https://files.pythonhosted.org/packages/60/af/10f899f0574a81cbc511124c08d7c7dc46c20d4f956a6a3c793ad4330bb4/requests_download-0.1.2-py2.py3-none-any.whl; 14 + # url = "https://files.pythonhosted.org/packages/60/af/10f899f0574a81cbc511124c08d7c7dc46c20d4f956a6a3c793ad4330bb4/requests_download-0.1.2-py2.py3-none-any.whl"; 15 15 # sha256 = "1ballx1hljpdpyvqzqn79m0dc21z2smrnxk2ylb6dbpg5crrskcr"; 16 16 #}; 17 17
+1 -2
pkgs/development/python-modules/secretstorage/default.nix
··· 1 - { lib, fetchPypi, buildPythonPackage, pythonOlder, cryptography, jeepney, pygobject3 }: 1 + { lib, fetchPypi, buildPythonPackage, pythonOlder, cryptography, jeepney }: 2 2 3 3 buildPythonPackage rec { 4 4 pname = "secretstorage"; ··· 15 15 propagatedBuildInputs = [ 16 16 cryptography 17 17 jeepney 18 - pygobject3 19 18 ]; 20 19 21 20 # Needs a D-Bus Sesison
+4 -2
pkgs/development/tools/bazelisk/default.nix
··· 2 2 3 3 buildGoModule rec { 4 4 pname = "bazelisk"; 5 - version = "1.3.0"; 5 + version = "1.4.0"; 6 6 7 7 src = fetchFromGitHub { 8 8 owner = "bazelbuild"; 9 9 repo = pname; 10 10 rev = "v${version}"; 11 - sha256 = "15h4mbsfjwby4wq57rdj4dzsf595qjfgi3v5zw62yycn3m2w922p"; 11 + sha256 = "14zp0bi0p1rfbx1pxi5y28ndxwbqbvfx0pvy3jh1mnx5qsii1gcq"; 12 12 }; 13 13 14 14 modSha256 = "1w8k659ifapcxbbim0nf7wd7w10bhlagc33q08izh84gcgsh0yyz"; 15 + 16 + buildFlagsArray = [ "-ldflags=-s -w -X main.BazeliskVersion=${version}" ]; 15 17 16 18 meta = with stdenv.lib; { 17 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 1 + { stdenv 2 + , buildGoPackage 3 + , fetchFromGitHub 4 + , installShellFiles 5 + , pkg-config 6 + , gpgme 7 + , libgpgerror 8 + , lvm2 9 + , btrfs-progs 10 + , libselinux 11 + , libseccomp 3 12 }: 4 13 5 14 buildGoPackage rec { ··· 7 16 version = "1.14.8"; 8 17 9 18 src = fetchFromGitHub { 10 - owner = "containers"; 11 - repo = "buildah"; 12 - rev = "v${version}"; 19 + owner = "containers"; 20 + repo = "buildah"; 21 + rev = "v${version}"; 13 22 sha256 = "187cvb3i5cwm7cwxmzpl2ca7900yb6v6b6cybyz5mnd5ccy5ff1q"; 14 23 }; 15 24 ··· 18 27 goPackagePath = "github.com/containers/buildah"; 19 28 excludedPackages = [ "tests" ]; 20 29 21 - nativeBuildInputs = [ pkg-config ]; 30 + nativeBuildInputs = [ installShellFiles pkg-config ]; 22 31 buildInputs = [ gpgme libgpgerror lvm2 btrfs-progs libselinux libseccomp ]; 23 32 24 33 patches = [ ./disable-go-module-mode.patch ]; ··· 27 36 pushd go/src/${goPackagePath} 28 37 make GIT_COMMIT="unknown" 29 38 install -Dm755 buildah $bin/bin/buildah 30 - install -Dm444 contrib/completions/bash/buildah $bin/share/bash-completion/completions/buildah 39 + installShellCompletion --bash contrib/completions/bash/buildah 31 40 ''; 32 41 33 42 postBuild = ''
+2 -2
pkgs/development/tools/ocaml/dune/2.nix
··· 6 6 7 7 stdenv.mkDerivation rec { 8 8 pname = "dune"; 9 - version = "2.5.0"; 9 + version = "2.5.1"; 10 10 11 11 src = fetchurl { 12 12 url = "https://github.com/ocaml/dune/releases/download/${version}/dune-${version}.tbz"; 13 - sha256 = "1nnpg0fvmp4vf5mk203xk83pkkm953pgip3yhs1x2g8pkcdndhcw"; 13 + sha256 = "0az5ih18wadsp3ljagvws1i7vf0vpg24h75ariy0v3i0gyld6xwg"; 14 14 }; 15 15 16 16 buildInputs = [ ocaml findlib ];
+10 -13
pkgs/development/tools/skopeo/default.nix
··· 1 1 { stdenv 2 - , lib 3 2 , buildGoPackage 4 3 , fetchFromGitHub 5 4 , runCommand ··· 10 9 , pkg-config 11 10 , libselinux 12 11 , go-md2man 12 + , installShellFiles 13 13 }: 14 - 15 - with stdenv.lib; 16 14 17 15 let 18 16 version = "0.2.0"; ··· 27 25 defaultPolicyFile = runCommand "skopeo-default-policy.json" {} "cp ${src}/default-policy.json $out"; 28 26 29 27 goPackagePath = "github.com/containers/skopeo"; 28 + 29 + vendorPath = "${goPackagePath}/vendor/github.com/containers/image/v5"; 30 30 31 31 in 32 32 buildGoPackage { ··· 36 36 37 37 outputs = [ "bin" "man" "out" ]; 38 38 39 - excludedPackages = "integration"; 39 + excludedPackages = [ "integration" ]; 40 40 41 - nativeBuildInputs = [ pkg-config (lib.getBin go-md2man) ]; 42 - buildInputs = [ gpgme ] ++ lib.optionals stdenv.isLinux [ libgpgerror lvm2 btrfs-progs libselinux ]; 41 + nativeBuildInputs = [ pkg-config go-md2man installShellFiles ]; 42 + buildInputs = [ gpgme ] 43 + ++ stdenv.lib.optionals stdenv.isLinux [ libgpgerror lvm2 btrfs-progs libselinux ]; 43 44 44 45 buildFlagsArray = '' 45 46 -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" 47 + -X ${vendorPath}/signature.systemDefaultPolicyPath=${defaultPolicyFile} 48 + -X ${vendorPath}/internal/tmpdir.unixTempDirForBigFiles=/tmp 53 49 ''; 54 50 55 51 postBuild = '' 56 52 # depends on buildGoPackage not changing … 57 53 pushd ./go/src/${goPackagePath} 58 54 make install-docs MANINSTALLDIR="$man/share/man" 55 + installShellCompletion --bash completions/bash/skopeo 59 56 popd 60 57 ''; 61 58
+3 -15
pkgs/games/cataclysm-dda/default.nix
··· 1 - { stdenv, callPackage, lua, CoreFoundation 1 + { stdenv, callPackage, CoreFoundation 2 2 , tiles ? true, Cocoa 3 3 , debug ? false 4 4 }: ··· 9 9 in 10 10 11 11 stdenv.mkDerivation (common // rec { 12 - version = "0.D"; 12 + version = "0.E"; 13 13 name = "cataclysm-dda-${version}"; 14 14 15 15 src = fetchFromCleverRaven { 16 16 rev = version; 17 - sha256 = "00zzhx1mh1qjq668cga5nbrxp2qk6b82j5ak65skhgnlr6ii4ysc"; 17 + sha256 = "0pbi0fw37zimzdklfj58s1ql0wlqq7dy6idkcsib3hn910ajaxan"; 18 18 }; 19 19 20 - buildInputs = common.buildInputs ++ [ lua ]; 21 - 22 20 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 21 34 22 meta = with stdenv.lib.maintainers; common.meta // { 35 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 1 --- a/src/translations.cpp 4 2 +++ b/src/translations.cpp 5 - @@ -195,14 +195,12 @@ void set_language() 3 + @@ -212,14 +212,12 @@ void set_language() 6 4 auto env = getenv( "LANGUAGE" ); 7 - locale_dir = std::string( FILENAMES["base_path"] + "lang/mo/" + ( env ? env : "none" ) + 5 + locale_dir = std::string( PATH_INFO::base_path() + "lang/mo/" + ( env ? env : "none" ) + 8 6 "/LC_MESSAGES/cataclysm-dda.mo" ); 9 - -#elif (defined __linux__ || (defined MACOSX && !defined TILES)) 7 + -#elif (defined(__linux__) || (defined(MACOSX) && !defined(TILES))) 10 8 +#else 11 - if( !FILENAMES["base_path"].empty() ) { 12 - locale_dir = FILENAMES["base_path"] + "share/locale"; 9 + if( !PATH_INFO::base_path().empty() ) { 10 + locale_dir = PATH_INFO::base_path() + "share/locale"; 13 11 } else { 14 12 locale_dir = "lang/mo"; 15 13 }
+14 -8
pkgs/misc/cups/drivers/brlaser/default.nix
··· 2 2 3 3 stdenv.mkDerivation rec { 4 4 pname = "brlaser"; 5 - version = "5"; 5 + version = "6"; 6 6 7 7 src = fetchFromGitHub { 8 8 owner = "pdewacht"; 9 9 repo = "brlaser"; 10 10 rev = "v${version}"; 11 - sha256 = "133fx49wkg1v8r4kcishd035hlsscv8kc2q4jnln5qmyhpyygjyy"; 11 + sha256 = "1995s69ksq1fz0vb34v0ndiqncrinbrlpmp70rkl6az7kag99s80"; 12 12 }; 13 13 14 14 nativeBuildInputs = [ cmake ]; ··· 34 34 Brother DCP-7065DN 35 35 Brother DCP-7080 36 36 Brother DCP-L2500D 37 + Brother DCP-L2520D 37 38 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 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 44 50 Brother MFC-1910W 45 51 Brother MFC-7240 46 52 Brother MFC-7360N
-2
pkgs/misc/emulators/wine/default.nix
··· 9 9 { lib, stdenv, callPackage, 10 10 wineRelease ? "stable", 11 11 wineBuild ? if stdenv.hostPlatform.system == "x86_64-linux" then "wineWow" else "wine32", 12 - libtxc_dxtn_Name ? "libtxc_dxtn_s2tc", 13 12 pngSupport ? false, 14 13 jpegSupport ? false, 15 14 tiffSupport ? false, ··· 63 62 64 63 in if wineRelease == "staging" then 65 64 callPackage ./staging.nix { 66 - inherit libtxc_dxtn_Name; 67 65 wineUnstable = wine-build wineBuild "unstable"; 68 66 } 69 67 else
+2 -2
pkgs/misc/emulators/wine/staging.nix
··· 1 - { stdenv, callPackage, wineUnstable, libtxc_dxtn_Name }: 1 + { stdenv, callPackage, wineUnstable }: 2 2 3 3 with callPackage ./util.nix {}; 4 4 ··· 8 8 in assert stdenv.lib.getVersion wineUnstable == patch.version; 9 9 10 10 stdenv.lib.overrideDerivation wineUnstable (self: { 11 - buildInputs = build-inputs [ "perl" "utillinux" "autoconf" libtxc_dxtn_Name ] self.buildInputs; 11 + buildInputs = build-inputs [ "perl" "utillinux" "autoconf" ] self.buildInputs; 12 12 13 13 name = "${self.name}-staging"; 14 14
+10 -4
pkgs/os-specific/linux/bbswitch/default.nix
··· 15 15 sha256 = "0xql1nv8dafnrcg54f3jsi3ny3cd2ca9iv73pxpgxd2gfczvvjkn"; 16 16 }; 17 17 18 - patches = [ (fetchpatch { 19 - url = "https://github.com/Bumblebee-Project/bbswitch/pull/102.patch"; 20 - sha256 = "1lbr6pyyby4k9rn2ry5qc38kc738d0442jhhq57vmdjb6hxjya7m"; 21 - }) ]; 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 + ]; 22 28 23 29 nativeBuildInputs = kernel.moduleBuildDependencies; 24 30
+48 -38
pkgs/os-specific/linux/firmware/fwupd/add-option-for-installation-sysconfdir.patch
··· 1 1 diff --git a/data/meson.build b/data/meson.build 2 - index 0667bd78..92d6c7b9 100644 2 + index bb749fd4..b611875b 100644 3 3 --- a/data/meson.build 4 4 +++ b/data/meson.build 5 5 @@ -17,7 +17,7 @@ endif ··· 12 12 endif 13 13 14 14 diff --git a/data/pki/meson.build b/data/pki/meson.build 15 - index eefcc914..dc801fa1 100644 15 + index 94bb0b6f..1ea6a9ac 100644 16 16 --- a/data/pki/meson.build 17 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 - ) 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 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 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 + ) 49 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 + - 50 47 diff --git a/data/remotes.d/meson.build b/data/remotes.d/meson.build 51 48 index 826a3c1d..b78db663 100644 52 49 --- a/data/remotes.d/meson.build ··· 76 73 + install_dir: join_paths(sysconfdir_install, 'fwupd', 'remotes.d'), 77 74 ) 78 75 diff --git a/meson.build b/meson.build 79 - index b1a523d2..aacb8e0a 100644 76 + index 87ea67e5..3a4374db 100644 80 77 --- a/meson.build 81 78 +++ b/meson.build 82 - @@ -169,6 +169,12 @@ endif 79 + @@ -175,6 +175,12 @@ endif 83 80 mandir = join_paths(prefix, get_option('mandir')) 84 81 localedir = join_paths(prefix, get_option('localedir')) 85 82 ··· 93 90 gio = dependency('gio-2.0', version : '>= 2.45.8') 94 91 giounix = dependency('gio-unix-2.0', version : '>= 2.45.8', required: false) 95 92 diff --git a/meson_options.txt b/meson_options.txt 96 - index be0adfef..73983333 100644 93 + index 3da9b6c4..6c80275b 100644 97 94 --- a/meson_options.txt 98 95 +++ b/meson_options.txt 99 - @@ -26,6 +26,7 @@ option('plugin_coreboot', type : 'boolean', value : true, description : 'enable 96 + @@ -24,6 +24,7 @@ option('plugin_coreboot', type : 'boolean', value : true, description : 'enable 100 97 option('systemd', type : 'boolean', value : true, description : 'enable systemd support') 101 98 option('systemdunitdir', type: 'string', value: '', description: 'Directory for systemd units') 102 99 option('elogind', type : 'boolean', value : false, description : 'enable elogind support') ··· 104 101 option('tests', type : 'boolean', value : true, description : 'enable tests') 105 102 option('udevdir', type: 'string', value: '', description: 'Directory for udev rules') 106 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', 107 117 diff --git a/plugins/dell-esrt/meson.build b/plugins/dell-esrt/meson.build 108 118 index ed4eee70..76dbdb1d 100644 109 119 --- a/plugins/dell-esrt/meson.build ··· 142 152 # we use functions from 2.52 in the tests 143 153 if get_option('tests') and umockdev.found() and gio.version().version_compare('>= 2.52') 144 154 diff --git a/plugins/uefi/meson.build b/plugins/uefi/meson.build 145 - index 7252580d..7188d1c5 100644 155 + index 5838cecc..9ba3d5cd 100644 146 156 --- a/plugins/uefi/meson.build 147 157 +++ b/plugins/uefi/meson.build 148 - @@ -104,7 +104,7 @@ if get_option('man') 158 + @@ -101,7 +101,7 @@ if get_option('man') 149 159 endif 150 160 151 161 install_data(['uefi.conf'],
+46 -29
pkgs/os-specific/linux/firmware/fwupd/default.nix
··· 2 2 3 3 { stdenv 4 4 , fetchurl 5 + , fetchpatch 5 6 , substituteAll 6 7 , gtk-doc 7 8 , pkgconfig ··· 16 17 , glib-networking 17 18 , libsoup 18 19 , help2man 19 - , gpgme 20 + , libjcat 20 21 , libxslt 21 22 , elfutils 22 23 , libsmbios ··· 31 32 , docbook_xsl 32 33 , ninja 33 34 , gcab 34 - , gnutls 35 35 , python3 36 36 , wrapGAppsHook 37 37 , json-glib ··· 87 87 88 88 stdenv.mkDerivation rec { 89 89 pname = "fwupd"; 90 - version = "1.3.9"; 90 + version = "1.4.0"; 91 91 92 92 src = fetchurl { 93 93 url = "https://people.freedesktop.org/~hughsient/releases/fwupd-${version}.tar.xz"; 94 - sha256 = "ZuRG+UN8ebXv5Z8fOYWT0eCtHykGXoB8Ysu3wAeqx0A="; 94 + sha256 = "V131/l05FKYFavRMXRaiW1bQkTCEn7MTyyD+bqYClU4="; 95 95 }; 96 96 97 97 # libfwupd goes to lib ··· 130 130 libyaml 131 131 libgudev 132 132 colord 133 - gpgme 133 + libjcat 134 134 libuuid 135 - gnutls 136 135 glib-networking 137 136 json-glib 138 137 umockdev ··· 151 150 ./fix-paths.patch 152 151 ./add-option-for-installation-sysconfdir.patch 153 152 154 - # install plug-ins and libfwupdplugin to out, 155 - # they are not really part of the library 153 + # Install plug-ins and libfwupdplugin to out, 154 + # they are not really part of the library. 156 155 ./install-fwupdplugin-to-out.patch 157 156 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 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. 160 187 (substituteAll { 161 188 src = ./installed-tests-path.patch; 162 - # needs a different set of modules than po/make-images 189 + # Needs a different set of modules than po/make-images. 163 190 inherit installedTestsPython; 164 191 }) 165 192 ]; ··· 172 199 po/make-images \ 173 200 po/make-images.sh \ 174 201 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 202 ''; 184 203 185 204 # /etc/os-release not available in sandbox ··· 203 222 "-Dgtkdoc=true" 204 223 "-Dplugin_dummy=true" 205 224 "-Dudevdir=lib/udev" 206 - "-Dsystemdunitdir=lib/systemd/system" 225 + "-Dsystemd_root_prefix=${placeholder "out"}" 226 + "-Dinstalled_test_prefix=${placeholder "installedTests"}" 207 227 "-Defi-libdir=${gnu-efi}/lib" 208 228 "-Defi-ldsdir=${gnu-efi}/lib" 209 229 "-Defi-includedir=${gnu-efi}/include/efi" ··· 224 244 ] ++ stdenv.lib.optionals haveFlashrom [ 225 245 "-Dplugin_flashrom=true" 226 246 ]; 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 247 234 248 FONTCONFIG_FILE = fontsConf; # Fontconfig error: Cannot load default config file 235 249 ··· 237 251 # https://github.com/NixOS/nixpkgs/pull/67625#issuecomment-525788428 238 252 PKG_CONFIG_POLKIT_GOBJECT_1_ACTIONDIR = "/run/current-system/sw/share/polkit-1/actions"; 239 253 240 - # cannot install to systemd prefix 241 - PKG_CONFIG_SYSTEMD_SYSTEMDSYSTEMPRESETDIR = "${placeholder "out"}/lib/systemd/system-preset"; 242 - 243 254 # TODO: wrapGAppsHook wraps efi capsule even though it is not elf 244 255 dontWrapGApps = true; 256 + 257 + preCheck = '' 258 + addToSearchPath XDG_DATA_DIRS "${shared-mime-info}/share" 259 + ''; 260 + 245 261 # so we need to wrap the executables manually 246 262 postFixup = '' 247 263 find -L "$out/bin" "$out/libexec" -type f -executable -print0 \ ··· 256 272 # /etc/fwupd/uefi.conf is created by the services.hardware.fwupd NixOS module 257 273 passthru = { 258 274 filesInstalledToEtc = [ 275 + "fwupd/ata.conf" 259 276 # "fwupd/daemon.conf" # already created by the module 260 277 "fwupd/redfish.conf" 261 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 1 + --- a/data/device-tests/hardware.py 2 + +++ b/data/device-tests/hardware.py 3 3 @@ -1,4 +1,4 @@ 4 4 -#!/usr/bin/python3 5 5 +#!@installedTestsPython@/bin/python3 ··· 8 8 # Copyright (C) 2017 Richard Hughes <richard@hughsie.com> 9 9 --- a/data/installed-tests/meson.build 10 10 +++ b/data/installed-tests/meson.build 11 - @@ -1,6 +1,6 @@ 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 + 12 15 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 @@ 16 + con2.set('installedtestsdir', installed_test_datadir) 17 + @@ -52,5 +52,5 @@ configure_file( 20 18 output : 'fwupd-tests.conf', 21 19 configuration : con2, 22 20 install: true, 23 21 - install_dir: join_paths(sysconfdir, 'fwupd', 'remotes.d'), 24 - + install_dir: join_paths('@installedTests@', 'etc', 'fwupd', 'remotes.d'), 22 + + install_dir: join_paths(get_option('installed_test_prefix'), 'etc', 'fwupd', 'remotes.d'), 25 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 8 name = "${baseName}-${version}"; 9 9 10 10 src = fetchurl { 11 - #url = http://gogo6.com/downloads/gogoc-1_2-RELEASE.tar.gz; 11 + #url = "http://gogo6.com/downloads/gogoc-1_2-RELEASE.tar.gz"; 12 12 url = "https://src.fedoraproject.org/repo/pkgs/gogoc/gogoc-1_2-RELEASE.tar.gz/41177ed683cf511cc206c7782c37baa9/gogoc-1_2-RELEASE.tar.gz"; 13 13 sha256 = "a0ef45c0bd1fc9964dc8ac059b7d78c12674bf67ef641740554e166fa99a2f49"; 14 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 + 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 323 + kekzzVjVTZxOgZE= 324 + =yRuG 325 + -----END PGP PUBLIC KEY BLOCK-----
+2
pkgs/os-specific/linux/kernel/common-config.nix
··· 608 608 MODULE_COMPRESS_XZ = yes; 609 609 KERNEL_XZ = yes; 610 610 611 + SYSVIPC = yes; # System-V IPC 612 + 611 613 UNIX = yes; # Unix domain sockets. 612 614 613 615 MD = yes; # Device mapper (RAID, LVM, etc.)
+1 -42
pkgs/os-specific/linux/kernel/hardened-config.nix
··· 16 16 17 17 assert (versionAtLeast version "4.9"); 18 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 - } // { 19 + { 40 20 # Report BUG() conditions and kill the offending process. 41 21 BUG = yes; 42 22 43 - BUG_ON_DATA_CORRUPTION = whenAtLeast "4.10" yes; 44 - 45 23 # Safer page access permissions (wrt. code injection). Default on >=4.11. 46 24 DEBUG_RODATA = whenOlder "4.11" yes; 47 25 DEBUG_SET_MODULE_RONX = whenOlder "4.11" yes; ··· 57 35 SECURITY_SELINUX_DISABLE = whenAtLeast "4.12" no; 58 36 SECURITY_WRITABLE_HOOKS = whenAtLeast "4.12" (option no); 59 37 60 - DEBUG_WX = yes; # boot-time warning on RWX mappings 61 38 STRICT_KERNEL_RWX = whenAtLeast "4.11" yes; 62 39 63 - # Stricter /dev/mem 64 - STRICT_DEVMEM = option yes; 65 - IO_STRICT_DEVMEM = option yes; 66 - 67 40 # Perform additional validation of commonly targeted structures. 68 41 DEBUG_CREDENTIALS = yes; 69 42 DEBUG_NOTIFIERS = yes; 70 - DEBUG_LIST = yes; 71 43 DEBUG_PI_LIST = yes; # doesn't BUG() 72 44 DEBUG_SG = yes; 73 45 SCHED_STACK_END_CHECK = yes; 74 46 75 47 REFCOUNT_FULL = whenAtLeast "4.13" yes; 76 48 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 49 # Randomize page allocator when page_alloc.shuffle=1 87 50 SHUFFLE_PAGE_ALLOCATOR = whenAtLeast "5.2" yes; 88 51 ··· 98 61 SECURITY_SAFESETID = whenAtLeast "5.1" yes; 99 62 100 63 # Reboot devices immediately if kernel experiences an Oops. 101 - PANIC_ON_OOPS = yes; 102 64 PANIC_TIMEOUT = freeform "-1"; 103 65 104 66 GCC_PLUGINS = yes; # Enable gcc plugin options ··· 119 81 # Use -fstack-protector-strong (gcc 4.9+) for best stack canary coverage. 120 82 CC_STACKPROTECTOR_REGULAR = whenOlder "4.18" no; 121 83 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 84 126 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 3 with stdenv.lib; 4 4 5 5 buildLinux (args // rec { 6 - version = "5.5.17"; 6 + version = "5.5.18"; 7 7 8 8 # modDirVersion needs to be x.y.z, will automatically add .0 if needed 9 9 modDirVersion = if (modDirVersionArg == null) then concatStringsSep "." (take 3 (splitVersion "${version}.0")) else modDirVersionArg; ··· 13 13 14 14 src = fetchurl { 15 15 url = "mirror://kernel/linux/kernel/v5.x/linux-${version}.tar.xz"; 16 - sha256 = "06aqhlysa7zdj6c69hyii3hfqlfa9751ivga38rbqw1lr2gbbnj0"; 16 + sha256 = "01iiiq4dsyyc5y6b52wax9as6dzhdi172vd1423sc1yp4rrk8178"; 17 17 }; 18 18 } // (args.argsOverride or {}))
+2 -2
pkgs/os-specific/linux/kernel/linux-5.6.nix
··· 3 3 with stdenv.lib; 4 4 5 5 buildLinux (args // rec { 6 - version = "5.6.4"; 6 + version = "5.6.5"; 7 7 8 8 # modDirVersion needs to be x.y.z, will automatically add .0 if needed 9 9 modDirVersion = if (modDirVersionArg == null) then concatStringsSep "." (take 3 (splitVersion "${version}.0")) else modDirVersionArg; ··· 13 13 14 14 src = fetchurl { 15 15 url = "mirror://kernel/linux/kernel/v5.x/linux-${version}.tar.xz"; 16 - sha256 = "14cxbc9xi4s3xwx4yb1yd4z0kidsk3d443skf5sgmdhcalg79wax"; 16 + sha256 = "1rjjkcmzsj9azggh960qnk2x44ns475b8nbd4nxazrz1rgdx76zp"; 17 17 }; 18 18 } // (args.argsOverride or {}))
+16 -1
pkgs/os-specific/linux/kernel/patches.nix
··· 1 - { fetchpatch }: 1 + { lib, fetchpatch, fetchurl }: 2 2 3 3 { 4 4 bridge_stp_helper = ··· 37 37 name = "tag-hardened"; 38 38 patch = ./tag-hardened.patch; 39 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; 40 55 41 56 # https://bugzilla.kernel.org/show_bug.cgi?id=197591#c6 42 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 60 61 61 # Update linux-libre 62 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 9 with stdenv.lib; 10 10 stdenv.mkDerivation rec { 11 11 pname = "lxc"; 12 - version = "4.0.1"; 12 + version = "4.0.2"; 13 13 14 14 src = fetchurl { 15 15 url = "https://linuxcontainers.org/downloads/lxc/lxc-${version}.tar.gz"; 16 - sha256 = "178kqjz0n5nnjw0z8ac5lbfpqprna9xfd9ckakp34zq9vz0smfvh"; 16 + sha256 = "1c2wbbcvs58slyq0skxizx61q1lb4yvak28x4gzsbzh3yg6nscya"; 17 17 }; 18 18 19 19 nativeBuildInputs = [
+2 -2
pkgs/servers/asterisk/default.nix
··· 141 141 # # provided here verbatim for the convenience of anyone wanting to build 142 142 # # Asterisk from other sources. Include in externals. 143 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; 144 + # url = "http://downloads.asterisk.org/pub/telephony/sounds/releases/asterisk-core-sounds-en-gsm-1.5.tar.gz"; 145 145 # sha256 = "01xzbg7xy0c5zg7sixjw5025pvr4z64kfzi9zvx19im0w331h4cd"; 146 146 # }; 147 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; 148 + # url = "http://downloads.asterisk.org/pub/telephony/sounds/releases/asterisk-moh-opsound-wav-2.03.tar.gz"; 149 149 # sha256 = "449fb810d16502c3052fedf02f7e77b36206ac5a145f3dacf4177843a2fcb538"; 150 150 # }; 151 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 8 9 9 stdenv.mkDerivation rec { 10 10 pname = "timescaledb"; 11 - version = "1.6.1"; 11 + version = "1.7.0"; 12 12 13 13 nativeBuildInputs = [ cmake ]; 14 14 buildInputs = [ postgresql openssl ]; ··· 17 17 owner = "timescale"; 18 18 repo = "timescaledb"; 19 19 rev = "refs/tags/${version}"; 20 - sha256 = "0k03aqpc1faqlpw46wazv0dy0xja57cv1sr1zwmizw3j3p3s0zdq"; 20 + sha256 = "0n234ard9sldpbdqvbq2i48xyiyj8ljirsbspsax11f8yzy9ziac"; 21 21 }; 22 22 23 23 cmakeFlags = [ "-DSEND_TELEMETRY_DEFAULT=OFF" "-DREGRESS_CHECKS=OFF" ];
+4 -4
pkgs/tools/admin/pebble/default.nix
··· 4 4 }: 5 5 6 6 let 7 - version = "v2.2.2"; 7 + version = "v2.3.0"; 8 8 pname = "pebble"; 9 9 in buildGoPackage { 10 10 inherit pname version; ··· 14 14 owner = "letsencrypt"; 15 15 repo = pname; 16 16 rev = version; 17 - sha256 = "10g6ivdxxp3632wk0gvmp75v9x668kchhmlczbsq8qnsc8sb8pwf"; 17 + sha256 = "1piwzzfqsdx6s2niczzp4mf4r3qn9nfdgpn7882g52cmmm0vzks2"; 18 18 }; 19 19 20 20 meta = { 21 - homepage = "https://github.com/letsencrypt/boulder"; 21 + homepage = "https://github.com/letsencrypt/pebble"; 22 22 description = "A miniature version of Boulder, Pebble is a small RFC 8555 ACME test server not suited for a production CA"; 23 23 license = [ lib.licenses.mpl20 ]; 24 - maintainers = [ ]; 24 + maintainers = with lib.maintainers; [ emily ]; 25 25 }; 26 26 }
+4 -4
pkgs/tools/admin/procs/default.nix
··· 2 2 3 3 rustPlatform.buildRustPackage rec { 4 4 pname = "procs"; 5 - version = "0.9.20"; 5 + version = "0.10.0"; 6 6 7 7 src = fetchFromGitHub { 8 8 owner = "dalance"; 9 9 repo = pname; 10 10 rev = "v${version}"; 11 - sha256 = "00qqn8nwv791bs88n302hy67dpas5hcacnkakn7law567klnzxfz"; 11 + sha256 = "1bgsxvb9wxi4sz8jfamhdwaq9f2q2k7c3cdkk60k86mkmas8ibxz"; 12 12 }; 13 13 14 - cargoSha256 = "09ib1nlqhzq3mc5wc16mgqbyr652asrwdpbwaax54fm1gd334prl"; 14 + cargoSha256 = "0zf41clf3rqxmal894gqp9fn9bnas99wna13fc43fxdlvh92v4yh"; 15 15 16 16 buildInputs = stdenv.lib.optional stdenv.isDarwin Security; 17 17 ··· 19 19 description = "A modern replacement for ps written in Rust"; 20 20 homepage = "https://github.com/dalance/procs"; 21 21 license = licenses.mit; 22 - maintainers = with maintainers; [ dalance filalex77 ]; 22 + maintainers = with maintainers; [ dalance filalex77 ]; 23 23 platforms = with platforms; linux ++ darwin; 24 24 }; 25 25 }
+4 -4
pkgs/tools/filesystems/fuse-overlayfs/default.nix
··· 1 - { stdenv, lib, fetchFromGitHub, autoreconfHook, pkg-config, fuse3 }: 1 + { stdenv, fetchFromGitHub, autoreconfHook, pkg-config, fuse3 }: 2 2 3 3 stdenv.mkDerivation rec { 4 4 pname = "fuse-overlayfs"; 5 - version = "0.7.8"; 5 + version = "1.0.0"; 6 6 7 7 src = fetchFromGitHub { 8 8 owner = "containers"; 9 9 repo = pname; 10 10 rev = "v${version}"; 11 - sha256 = "10wsssf9mxgkgcqks3z02y9ya8xh4wd45lsb1jrvw31wmz9zpalc"; 11 + sha256 = "0h1ay2l7zyiqplh8whanw68mcfri79lc03wjjrhqji5ddwznv6fa"; 12 12 }; 13 13 14 14 nativeBuildInputs = [ autoreconfHook pkg-config ]; 15 15 16 16 buildInputs = [ fuse3 ]; 17 17 18 - meta = with lib; { 18 + meta = with stdenv.lib; { 19 19 description = "FUSE implementation for overlayfs"; 20 20 longDescription = "An implementation of overlay+shiftfs in FUSE for rootless containers."; 21 21 license = licenses.gpl3;
+16 -2
pkgs/tools/graphics/mscgen/default.nix
··· 1 - { stdenv, fetchurl, flex, bison, gd, libpng, libjpeg, freetype, zlib, libwebp, runtimeShell }: 1 + { stdenv 2 + , bison 3 + , fetchurl 4 + , flex 5 + , gd 6 + , libjpeg 7 + , libpng 8 + , libwebp 9 + , pkg-config 10 + , runtimeShell 11 + , zlib 12 + }: 2 13 3 14 let 4 15 version = "0.20"; ··· 12 23 sha256 = "3c3481ae0599e1c2d30b7ed54ab45249127533ab2f20e768a0ae58d8551ddc23"; 13 24 }; 14 25 15 - buildInputs = [ flex bison gd libjpeg libpng freetype zlib libwebp ]; 26 + nativeBuildInputs = [ bison flex pkg-config ]; 27 + buildInputs = [ gd libjpeg libpng libwebp zlib ]; 16 28 17 29 doCheck = true; 18 30 preCheck = '' 19 31 sed -i -e "s|#!/bin/bash|#!${runtimeShell}|" test/renderercheck.sh 20 32 ''; 33 + 34 + outputs = [ "out" "man" ]; 21 35 22 36 meta = { 23 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 6 ethon (0.12.0) 7 7 ffi (>= 1.3.0) 8 8 ffi (1.12.2) 9 - html-proofer (3.15.2) 9 + html-proofer (3.15.3) 10 10 addressable (~> 2.3) 11 11 mercenary (~> 0.3) 12 12 nokogumbo (~> 2.0) ··· 21 21 nokogumbo (2.0.2) 22 22 nokogiri (~> 1.8, >= 1.8.4) 23 23 parallel (1.19.1) 24 - public_suffix (4.0.3) 24 + public_suffix (4.0.4) 25 25 rainbow (3.0.0) 26 26 typhoeus (1.3.1) 27 27 ethon (>= 0.9.0)
+4 -4
pkgs/tools/misc/html-proofer/gemset.nix
··· 37 37 platforms = []; 38 38 source = { 39 39 remotes = ["https://rubygems.org"]; 40 - sha256 = "1b7wx2hnwnml3y10x6yxybl3hy973n2ifq3hbqh0jd72bqs615wp"; 40 + sha256 = "18afz6rz72j8hnfgzhyr21wh1rfy1x41iyhbcgaq0r1bd7ng1vni"; 41 41 type = "gem"; 42 42 }; 43 - version = "3.15.2"; 43 + version = "3.15.3"; 44 44 }; 45 45 mercenary = { 46 46 groups = ["default"]; ··· 99 99 platforms = []; 100 100 source = { 101 101 remotes = ["https://rubygems.org"]; 102 - sha256 = "1c6kq6s13idl2036b5lch8r7390f8w82cal8hcp4ml76fm2vdac7"; 102 + sha256 = "1l1kqw75asziwmzrig8rywxswxz8l91sc3pvns02ffsqac1a3wiz"; 103 103 type = "gem"; 104 104 }; 105 - version = "4.0.3"; 105 + version = "4.0.4"; 106 106 }; 107 107 rainbow = { 108 108 groups = ["default"];
+1 -1
pkgs/tools/misc/patdiff/default.nix
··· 4 4 5 5 janePackage { 6 6 pname = "patdiff"; 7 - hash = "04krzn6rj2r81z55pms5ayk6bxhlxrm006cbhy0m6rc69a0h00lh"; 7 + hash = "1yqvxdmkgcwgx3npgncpdqwkpdxiqr1q41wci7589s8z7xi5nwyz"; 8 8 buildInputs = [ core_extended expect_test_helpers patience_diff ocaml_pcre shell ]; 9 9 meta = { 10 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 1 { stdenv, fetchurl, makeWrapper, perl, ebtables, ipset, iptables, nixosTests }: 2 2 3 - stdenv.mkDerivation rec { 4 - version = "2.4.1"; 3 + let 4 + inherit (stdenv.lib.versions) majorMinor; 5 + in stdenv.mkDerivation rec { 6 + version = "2.5"; 5 7 pname = "ferm"; 6 8 7 9 src = fetchurl { 8 - url = "http://ferm.foo-projects.org/download/2.4/ferm-${version}.tar.xz"; 9 - sha256 = "1fv8wk513yysp4q0i65rl2m0hg2lxwwgk9ppprsca1xcxrdpsvwa"; 10 + url = "http://ferm.foo-projects.org/download/${majorMinor version}/ferm-${version}.tar.xz"; 11 + sha256 = "0lxqcpirphihpvdqrh5kq0621aqq0h2vdy9q2v85gqdhd52js20p"; 10 12 }; 11 13 12 14 buildInputs = [ perl ipset ebtables iptables makeWrapper ];
+2 -2
pkgs/tools/networking/httpie/default.nix
··· 2 2 3 3 python3Packages.buildPythonApplication rec { 4 4 pname = "httpie"; 5 - version = "2.0.0"; 5 + version = "2.1.0"; 6 6 7 7 src = fetchFromGitHub { 8 8 owner = "jakubroztocil"; 9 9 repo = "httpie"; 10 10 rev = version; 11 - sha256 = "0d0rsn5i973l9y0ws3xmnzaw4jwxdlryyjbasnlddph5mvkf7dq0"; 11 + sha256 = "1vwjlzx830q4dcm3r7j9cl8yzka37dw42rl1r05m5ysb1081cbj2"; 12 12 }; 13 13 14 14 outputs = [ "out" "doc" "man" ];
+11 -39
pkgs/tools/networking/mitmproxy/default.nix
··· 4 4 5 5 buildPythonPackage rec { 6 6 pname = "mitmproxy"; 7 - version = "4.0.4"; 7 + version = "5.1.1"; 8 8 9 9 src = fetchFromGitHub { 10 10 owner = pname; 11 11 repo = pname; 12 12 rev = "v${version}"; 13 - sha256 = "14i9dkafvyl15rq2qa8xldscn5lmkk2g52kbi2hl63nzx9yibx6r"; 13 + sha256 = "1lirlckpvd3c6s6q3p32w4k4yfna5mlgr1x9g39lhzzq0sdiz3lk"; 14 14 }; 15 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 16 postPatch = '' 49 17 # remove dependency constraints 50 18 sed 's/>=\([0-9]\.\?\)\+\( \?, \?<\([0-9]\.\?\)\+\)\?//' -i setup.py ··· 61 29 ''; 62 30 63 31 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 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 69 40 ]; 70 41 71 42 checkInputs = [ 72 43 beautifulsoup4 flask pytest 73 44 requests glibcLocales 74 45 asynctest parver pytest-asyncio 46 + hypothesis 75 47 ]; 76 48 77 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 30 export G_TEST_DBUS_DAEMON="${dbus.daemon}/bin/dbus-daemon" 31 31 ''; 32 32 33 + enableParallelBuilding = true; 34 + 33 35 doCheck = true; 34 36 35 37 meta = with stdenv.lib; {
+6 -13
pkgs/tools/networking/mu/default.nix
··· 5 5 6 6 stdenv.mkDerivation rec { 7 7 pname = "mu"; 8 - version = "1.2"; 8 + version = "1.4.1"; 9 9 10 10 src = fetchFromGitHub { 11 11 owner = "djcb"; 12 12 repo = "mu"; 13 13 rev = version; 14 - sha256 = "0yhjlj0z23jw3cf2wfnl98y8q6gikvmhkb8vdm87bd7jw0bdnrfz"; 14 + sha256 = "0q2ik7fj5k9i76js4ijyxbgrwqff437lass0sd5if2r40rqh0as0"; 15 15 }; 16 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 17 buildInputs = [ 23 18 sqlite xapian glib gmime3 texinfo emacs guile libsoup icu 24 19 ] ++ stdenv.lib.optionals withMug [ gtk3 webkitgtk ]; ··· 27 22 28 23 enableParallelBuilding = true; 29 24 25 + preConfigure = "./autogen.sh"; 26 + 30 27 preBuild = '' 31 28 # Fix mu4e-builddir (set it to $out) 32 29 substituteInPlace mu4e/mu4e-meta.el.in \ 33 30 --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 31 ''; 39 32 40 - # Install mug and msg2pdf 33 + # Install mug 41 34 postInstall = stdenv.lib.optionalString withMug '' 42 - for f in msg2pdf mug ; do 35 + for f in mug ; do 43 36 install -m755 toys/$f/$f $out/bin/$f 44 37 done 45 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 3 , hcxdumptool, pyrit, which }: 4 4 5 5 python3.pkgs.buildPythonApplication rec { 6 - version = "2.5.2"; 6 + version = "2.5.3"; 7 7 pname = "wifite2"; 8 8 9 9 src = fetchFromGitHub { 10 10 owner = "kimocoder"; 11 11 repo = "wifite2"; 12 12 rev = version; 13 - sha256 = "0hsb59d86szn27s3hynpzkp49rmw4g692vrl67nal7rfcdvpp8hb"; 13 + sha256 = "080hbjpbgdnzr6jkmg5cb8dvzxm57zpi4c9x0y92yy472vqll3ax"; 14 14 }; 15 15 16 16 patches = [
+4 -4
pkgs/tools/security/age/default.nix
··· 2 2 3 3 buildGoModule rec { 4 4 pname = "age"; 5 - version = "1.0.0-beta2"; 5 + version = "unstable-2020-03-25"; 6 6 goPackagePath = "github.com/FiloSottile/age"; 7 - modSha256 = "0kwdwhkxgqjd8h1p7pm4h4xidp2vk840h1j4qya4qz8bjf9vskl9"; 7 + modSha256 = "00yhn1894ni8bvkqm1vr0rqkky52pkhvdzbi2sqx3czlgb5ibw3h"; 8 8 9 9 subPackages = [ 10 10 "cmd/age" ··· 14 14 src = fetchFromGitHub { 15 15 owner = "FiloSottile"; 16 16 repo = "age"; 17 - rev = "v${version}"; 18 - sha256 = "1n1ww8yjw0mg00dvnfmggww9kwp1hls0a85iv6vx9k89mzv8mdrq"; 17 + rev = "f0f8092d60bb96737fa096c29ec6d8adb5810390"; 18 + sha256 = "079kfc8d1pr39hr4qnx48kviyzwg4p8m4pz0bdkypns4aq8ppbfk"; 19 19 }; 20 20 21 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 2 3 3 rustPlatform.buildRustPackage rec { 4 4 pname = "kmon"; 5 - version = "1.0.1"; 5 + version = "1.1.0"; 6 6 7 7 src = fetchFromGitHub { 8 8 owner = "orhun"; 9 9 repo = pname; 10 10 rev = "v${version}"; 11 - sha256 = "0kmkcs13cccmjjfbl25bs3m54zcjcs38fiv84q0vy09a4dnx3gn8"; 11 + sha256 = "0lpwp5fzlf037bn03x1dldw8nfa5pyqi4qsqbscwn42idvs94mhx"; 12 12 }; 13 13 14 - cargoSha256 = "0l1yq9k6lyk0ww1nzk93axylgrwipkmmqh9r6fq4a31wjlblrkkb"; 14 + cargoSha256 = "1g5k6dkv0zznh8q359n7sg9wf0gcix6m36pg9ql8wi5hnlsvg1s1"; 15 15 16 16 nativeBuildInputs = [ python3 ]; 17 17
+4 -5
pkgs/tools/system/plan9port/default.nix
··· 11 11 12 12 stdenv.mkDerivation { 13 13 pname = "plan9port"; 14 - version = "2019-02-25"; 14 + version = "2020-01-08"; 15 15 16 16 src = fetchFromGitHub { 17 17 owner = "9fans"; 18 18 repo = "plan9port"; 19 - rev = "047fd921744f39a82a86d9370e03f7af511e6e84"; 20 - sha256 = "1lp17948q7vpl8rc2bf5a45bc8jqyj0s3zffmks9r25ai42vgb43"; 19 + rev = "cc3d97d52a72d7eaceb5b636bcdf81c3e19f7a2e"; 20 + sha256 = "0gb55kj0gzx1kdhiwcrbr7xcgz1im21dyxgxhfhh6d0q9rw0c17g"; 21 21 }; 22 22 23 23 patches = [ 24 - ./tmpdir.patch 25 24 ./darwin-sw_vers.patch 26 25 ./darwin-cfframework.patch 27 26 ]; ··· 90 89 license = licenses.lpl-102; 91 90 maintainers = with maintainers; [ AndersonTorres bbarker 92 91 ftrvxmtrx kovirobi ]; 93 - platforms = platforms.unix; 92 + platforms = remove "aarch64-linux" platforms.unix; 94 93 }; 95 94 } 96 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 152 gettextWithExpat = gettext; # 2016-02-19 153 153 git-hub = gitAndTools.git-hub; # added 2016-04-29 154 154 glib_networking = glib-networking; # added 2018-02-25 155 + gmailieer = lieer; # added 2020-04-19 155 156 gnome-mpv = celluloid; # added 2019-08-22 156 157 gnome15 = throw "gnome15 has been removed from nixpkgs, as it's unmaintained and depends on deprecated libraries."; # added 2019-12-10 157 158 gmic_krita_qt = gmic-qt-krita; # added 2019-09-07 ··· 215 216 keymon = throw "keymon has been removed from nixpkgs, as it's abandoned and archived."; # 2019-12-10 216 217 kvm = qemu_kvm; # added 2018-04-25 217 218 latinmodern-math = lmmath; 219 + ldc2 = ldc; # added 2020-04-18 218 220 letsencrypt = certbot; # added 2016-05-16 219 221 libaudit = audit; # added 2018-04-25 220 222 libcanberra_gtk2 = libcanberra-gtk2; # added 2018-02-25 ··· 244 246 librecad2 = librecad; # backwards compatibility alias, added 2015-10 245 247 libsysfs = sysfsutils; # added 2018-04-25 246 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"; 247 251 libudev = udev; # added 2018-04-25 248 252 libsexy = throw "libsexy has been removed from nixpkgs, as it's abandoned and no package needed it."; # 2019-12-10 249 253 links = links2; # added 2016-01-31 250 254 linux_rpi0 = linux_rpi1; 251 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 + 252 261 loadcaffe = throw "loadcaffe has been removed, as the upstream project has been abandoned"; # added 2020-03-28 253 262 lttngTools = lttng-tools; # added 2014-07-31 254 263 lttngUst = lttng-ust; # added 2014-07-31
+32 -16
pkgs/top-level/all-packages.nix
··· 510 510 511 511 _3llo = callPackage ../tools/misc/3llo { }; 512 512 513 + _3mux = callPackage ../tools/misc/3mux { }; 514 + 513 515 _1password = callPackage ../applications/misc/1password { }; 514 516 515 517 _6tunnel = callPackage ../tools/networking/6tunnel { }; ··· 2140 2142 socklog = callPackage ../tools/system/socklog { }; 2141 2143 2142 2144 stagit = callPackage ../development/tools/stagit { }; 2145 + 2146 + statserial = callPackage ../tools/misc/statserial { }; 2143 2147 2144 2148 step-ca = callPackage ../tools/security/step-ca { }; 2145 2149 ··· 6343 6347 6344 6348 rrdtool = callPackage ../tools/misc/rrdtool { }; 6345 6349 6350 + rshijack = callPackage ../tools/networking/rshijack { }; 6351 + 6346 6352 rsibreak = libsForQt5.callPackage ../applications/misc/rsibreak { }; 6347 6353 6348 6354 rss2email = callPackage ../applications/networking/feedreaders/rss2email { ··· 6625 6631 6626 6632 smugline = python3Packages.smugline; 6627 6633 6634 + sn0int = callPackage ../tools/security/sn0int { }; 6635 + 6628 6636 snabb = callPackage ../tools/networking/snabb { } ; 6629 6637 6630 6638 snapcast = callPackage ../applications/audio/snapcast { }; ··· 6632 6640 sng = callPackage ../tools/graphics/sng { 6633 6641 libpng = libpng12; 6634 6642 }; 6643 + 6644 + sniffglue = callPackage ../tools/networking/sniffglue { }; 6635 6645 6636 6646 snort = callPackage ../applications/networking/ids/snort { }; 6637 6647 ··· 7107 7117 ipbt = callPackage ../tools/misc/ipbt { }; 7108 7118 7109 7119 tuir = callPackage ../applications/misc/tuir { }; 7120 + 7121 + tuptime = callPackage ../tools/system/tuptime { }; 7110 7122 7111 7123 turses = callPackage ../applications/networking/instant-messengers/turses { }; 7112 7124 ··· 9139 9151 tinycc = callPackage ../development/compilers/tinycc { }; 9140 9152 9141 9153 tinygo = callPackage ../development/compilers/tinygo { 9142 - inherit (llvmPackages_9) llvm clang-unwrapped lld; 9154 + inherit (llvmPackages_10) llvm clang-unwrapped lld; 9143 9155 avrgcc = pkgsCross.avr.buildPackages.gcc; 9144 9156 }; 9145 9157 ··· 12984 12996 12985 12997 libiptcdata = callPackage ../development/libraries/libiptcdata { }; 12986 12998 12999 + libjcat = callPackage ../development/libraries/libjcat { }; 13000 + 12987 13001 libjpeg_original = callPackage ../development/libraries/libjpeg { }; 12988 13002 libjpeg_turbo = callPackage ../development/libraries/libjpeg-turbo { }; 12989 13003 libjpeg_drop = callPackage ../development/libraries/libjpeg-drop { }; ··· 13265 13279 libtgvoip = callPackage ../development/libraries/libtgvoip { }; 13266 13280 13267 13281 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 13282 13273 13283 libgeotiff = callPackage ../development/libraries/libgeotiff { }; 13274 13284 ··· 15517 15527 15518 15528 home-assistant-cli = callPackage ../servers/home-assistant/cli.nix { }; 15519 15529 15530 + https-dns-proxy = callPackage ../servers/dns/https-dns-proxy { }; 15531 + 15520 15532 hydron = callPackage ../servers/hydron { }; 15521 15533 15522 15534 icingaweb2 = callPackage ../servers/icingaweb2 { }; ··· 16462 16474 fxload = callPackage ../os-specific/linux/fxload { }; 16463 16475 16464 16476 gfxtablet = callPackage ../os-specific/linux/gfxtablet {}; 16465 - 16466 - gmailieer = callPackage ../applications/networking/gmailieer {}; 16467 16477 16468 16478 gmailctl = callPackage ../applications/networking/gmailctl {}; 16469 16479 ··· 16571 16581 16572 16582 libnl = callPackage ../os-specific/linux/libnl { }; 16573 16583 16584 + lieer = callPackage ../applications/networking/lieer {}; 16585 + 16574 16586 linuxConsoleTools = callPackage ../os-specific/linux/consoletools { }; 16575 16587 16576 16588 openelec-dvb-firmware = callPackage ../os-specific/linux/firmware/openelec-dvb-firmware { }; ··· 16983 16995 inherit stdenv; 16984 16996 inherit (kernel) version; 16985 16997 }; 16986 - kernelPatches = kernel.kernelPatches ++ [ kernelPatches.tag_hardened ]; 16998 + kernelPatches = kernel.kernelPatches ++ [ 16999 + kernelPatches.tag_hardened 17000 + kernelPatches.hardened.${kernel.version} 17001 + ]; 16987 17002 modDirVersionArg = kernel.modDirVersion + "-hardened"; 16988 17003 }); 16989 17004 ··· 16992 17007 16993 17008 linuxPackages_latest_hardened = recurseIntoAttrs (hardenedLinuxPackagesFor pkgs.linux_latest); 16994 17009 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 17010 16999 17011 linuxPackages_xen_dom0_hardened = recurseIntoAttrs (hardenedLinuxPackagesFor (pkgs.linux.override { features.xen_dom0=true; })); 17000 17012 ··· 18531 18543 autopanosiftc = callPackage ../applications/graphics/autopanosiftc { }; 18532 18544 18533 18545 aesop = callPackage ../applications/office/aesop { }; 18546 + 18547 + AusweisApp2 = libsForQt5.callPackage ../applications/misc/ausweisapp2 { }; 18534 18548 18535 18549 avidemux = libsForQt5.callPackage ../applications/video/avidemux { }; 18536 18550 ··· 19846 19860 hugo = callPackage ../applications/misc/hugo { }; 19847 19861 19848 19862 hydrogen = callPackage ../applications/audio/hydrogen { }; 19863 + hydrogen-unstable = qt5.callPackage ../applications/audio/hydrogen/unstable.nix { }; 19849 19864 19850 19865 hydroxide = callPackage ../applications/networking/hydroxide { }; 19851 19866 ··· 21428 21443 qtbitcointrader = libsForQt5.callPackage ../applications/misc/qtbitcointrader { }; 21429 21444 21430 21445 qtchan = libsForQt5.callPackage ../applications/networking/browsers/qtchan { }; 21446 + 21447 + qtemu = libsForQt5.callPackage ../applications/virtualization/qtemu { }; 21431 21448 21432 21449 qtox = libsForQt5.callPackage ../applications/networking/instant-messengers/qtox { }; 21433 21450 ··· 23603 23620 23604 23621 openclonk = callPackage ../games/openclonk { }; 23605 23622 23606 - openjk = callPackage ../games/openjk { 23607 - # segfaults when built with gcc9 23608 - stdenv = gcc8Stdenv; 23609 - }; 23623 + openjk = callPackage ../games/openjk { }; 23610 23624 23611 23625 openmw = libsForQt5.callPackage ../games/openmw { }; 23612 23626 ··· 25834 25848 25835 25849 sanoid = callPackage ../tools/backup/sanoid { }; 25836 25850 25837 - satysfi = callPackage ../tools/typesetting/satysfi { }; 25851 + satysfi = callPackage ../tools/typesetting/satysfi { 25852 + ocamlPackages = ocaml-ng.ocamlPackages_4_07; 25853 + }; 25838 25854 25839 25855 sc-controller = pythonPackages.callPackage ../misc/drivers/sc-controller { 25840 25856 inherit libusb1; # Shadow python.pkgs.libusb1.
+12 -7
pkgs/top-level/ocaml-packages.nix
··· 234 234 235 235 dune_2 = callPackage ../development/tools/ocaml/dune/2.nix { }; 236 236 237 + dune-build-info = callPackage ../development/ocaml-modules/dune-build-info { }; 238 + 237 239 dune-configurator = callPackage ../development/ocaml-modules/dune-configurator { }; 238 240 239 241 dune-private-libs = callPackage ../development/ocaml-modules/dune-private-libs { }; ··· 978 980 # Jane Street 979 981 980 982 janePackage = 981 - if lib.versionOlder "4.07" ocaml.version 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 982 986 then callPackage ../development/ocaml-modules/janestreet/janePackage_0_12.nix {} 983 987 else callPackage ../development/ocaml-modules/janestreet/janePackage.nix {}; 984 988 985 989 janeStreet = 986 - if lib.versionOlder "4.07" ocaml.version 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 987 997 then import ../development/ocaml-modules/janestreet/0.12.nix { 988 998 inherit ctypes janePackage num octavius ppxlib re; 989 999 inherit (pkgs) openssl; ··· 1231 1241 else if lib.versionOlder "4.02" ocaml.version 1232 1242 then callPackage ../development/ocaml-modules/janestreet/async.nix {} 1233 1243 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 1244 1240 1245 # Apps / from all-packages 1241 1246
+1 -1
pkgs/top-level/perl-packages.nix
··· 16811 16811 sha256 = "f98a10c625640170cdda408cccc72bdd7f66f8ebe5f59dec1b96185171ef11d0"; 16812 16812 }; 16813 16813 meta = { 16814 - #homepage = http://web-cpan.berlios.de/modules/Statistics-Descriptive/; # berlios shut down; I found no replacement 16814 + #homepage = "http://web-cpan.berlios.de/modules/Statistics-Descriptive/"; # berlios shut down; I found no replacement 16815 16815 description = "Module of basic descriptive statistical functions"; 16816 16816 license = with stdenv.lib.licenses; [ artistic1 gpl1Plus ]; 16817 16817 };
+8 -1
pkgs/top-level/python-packages.nix
··· 1025 1025 1026 1026 pdfminer = callPackage ../development/python-modules/pdfminer_six { }; 1027 1027 1028 + pdfposter = callPackage ../development/python-modules/pdfposter { }; 1029 + 1028 1030 pdftotext = callPackage ../development/python-modules/pdftotext { }; 1029 1031 1030 1032 pdfx = callPackage ../development/python-modules/pdfx { }; ··· 4376 4378 4377 4379 maya = callPackage ../development/python-modules/maya { }; 4378 4380 4379 - mayavi = callPackage ../development/python-modules/mayavi { }; 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 + }; 4380 4385 4381 4386 mccabe = callPackage ../development/python-modules/mccabe { }; 4382 4387 ··· 5035 5040 ptable = callPackage ../development/python-modules/ptable { }; 5036 5041 5037 5042 publicsuffix = callPackage ../development/python-modules/publicsuffix {}; 5043 + 5044 + publicsuffix2 = callPackage ../development/python-modules/publicsuffix2 {}; 5038 5045 5039 5046 py = callPackage ../development/python-modules/py { }; 5040 5047