summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--doc/builders/packages/index.xml2
-rw-r--r--doc/builders/packages/urxvt.section.md71
-rw-r--r--doc/builders/packages/urxvt.xml115
-rw-r--r--maintainers/maintainer-list.nix10
-rw-r--r--nixos/modules/services/desktops/pipewire.nix121
-rw-r--r--pkgs/applications/editors/emacs/generic.nix2
-rw-r--r--pkgs/applications/misc/archivy/default.nix4
-rw-r--r--pkgs/applications/misc/joplin-desktop/default.nix6
-rw-r--r--pkgs/applications/networking/cluster/starboard/default.nix6
-rw-r--r--pkgs/applications/networking/cluster/terraform-providers/providers.json8
-rw-r--r--pkgs/applications/networking/cluster/terraform/default.nix27
-rw-r--r--pkgs/applications/networking/dyndns/dyndnsc/default.nix59
-rw-r--r--pkgs/applications/science/robotics/mavproxy/default.nix4
-rw-r--r--pkgs/development/libraries/grpc/default.nix4
-rw-r--r--pkgs/development/libraries/nanopb/default.nix4
-rw-r--r--pkgs/development/libraries/pipewire/default.nix9
-rw-r--r--pkgs/development/libraries/pipewire/pipewire-config-dir.patch30
-rw-r--r--pkgs/development/python-modules/coapthon3/default.nix17
-rw-r--r--pkgs/development/python-modules/daemonocle/default.nix42
-rw-r--r--pkgs/development/python-modules/django/3.nix4
-rw-r--r--pkgs/development/python-modules/grpcio-tools/default.nix4
-rw-r--r--pkgs/development/python-modules/influxdb-client/default.nix4
-rw-r--r--pkgs/development/python-modules/pwntools/default.nix4
-rw-r--r--pkgs/development/python-modules/py-air-control/default.nix27
-rw-r--r--pkgs/development/python-modules/trimesh/default.nix4
-rw-r--r--pkgs/development/tools/ytt/default.nix25
-rw-r--r--pkgs/games/factorio/versions.json16
-rw-r--r--pkgs/os-specific/linux/iwd/default.nix5
-rw-r--r--pkgs/os-specific/linux/kernel/linux-zen.nix4
-rw-r--r--pkgs/os-specific/linux/sysdig/default.nix39
-rw-r--r--pkgs/servers/pulseaudio/hsphfpd.nix6
-rw-r--r--pkgs/servers/sql/postgresql/ext/pg_auto_failover.nix4
-rw-r--r--pkgs/tools/archivers/pax/default.nix30
-rw-r--r--pkgs/tools/misc/html-proofer/Gemfile.lock2
-rw-r--r--pkgs/tools/misc/html-proofer/gemset.nix4
-rw-r--r--pkgs/tools/misc/plantuml/default.nix4
-rw-r--r--pkgs/tools/misc/tagref/default.nix22
-rw-r--r--pkgs/tools/networking/privoxy/default.nix4
-rw-r--r--pkgs/tools/package-management/nix-update-source/default.nix15
-rw-r--r--pkgs/top-level/all-packages.nix9
-rw-r--r--pkgs/top-level/python-packages.nix4
41 files changed, 557 insertions, 224 deletions
diff --git a/doc/builders/packages/index.xml b/doc/builders/packages/index.xml
index c2e7ef9bf61c..38d72a4748f6 100644
--- a/doc/builders/packages/index.xml
+++ b/doc/builders/packages/index.xml
@@ -20,7 +20,7 @@
<xi:include href="shell-helpers.xml" />
<xi:include href="steam.xml" />
<xi:include href="cataclysm-dda.section.xml" />
- <xi:include href="urxvt.xml" />
+ <xi:include href="urxvt.section.xml" />
<xi:include href="weechat.section.xml" />
<xi:include href="xorg.section.xml" />
</chapter>
diff --git a/doc/builders/packages/urxvt.section.md b/doc/builders/packages/urxvt.section.md
new file mode 100644
index 000000000000..2d1196d92278
--- /dev/null
+++ b/doc/builders/packages/urxvt.section.md
@@ -0,0 +1,71 @@
+# Urxvt {#sec-urxvt}
+
+Urxvt, also known as rxvt-unicode, is a highly customizable terminal emulator.
+
+## Configuring urxvt {#sec-urxvt-conf}
+
+In `nixpkgs`, urxvt is provided by the package `rxvt-unicode`. It can be configured to include your choice of plugins, reducing its closure size from the default configuration which includes all available plugins. To make use of this functionality, use an overlay or directly install an expression that overrides its configuration, such as
+
+```nix
+rxvt-unicode.override {
+ configure = { availablePlugins, ... }: {
+ plugins = with availablePlugins; [ perls resize-font vtwheel ];
+ };
+}
+```
+
+If the `configure` function returns an attrset without the `plugins` attribute, `availablePlugins` will be used automatically.
+
+In order to add plugins but also keep all default plugins installed, it is possible to use the following method:
+
+```nix
+rxvt-unicode.override {
+ configure = { availablePlugins, ... }: {
+ plugins = (builtins.attrValues availablePlugins) ++ [ custom-plugin ];
+ };
+}
+```
+
+To get a list of all the plugins available, open the Nix REPL and run
+
+```ShellSession
+$ nix repl
+:l <nixpkgs>
+map (p: p.name) pkgs.rxvt-unicode.plugins
+```
+
+Alternatively, if your shell is bash or zsh and have completion enabled, simply type `nixpkgs.rxvt-unicode.plugins.<tab>`.
+
+In addition to `plugins` the options `extraDeps` and `perlDeps` can be used to install extra packages. `extraDeps` can be used, for example, to provide `xsel` (a clipboard manager) to the clipboard plugin, without installing it globally:
+
+```nix
+rxvt-unicode.override {
+ configure = { availablePlugins, ... }: {
+ pluginsDeps = [ xsel ];
+ };
+}
+```
+
+`perlDeps` is a handy way to provide Perl packages to your custom plugins (in `$HOME/.urxvt/ext`). For example, if you need `AnyEvent` you can do:
+
+```nix
+rxvt-unicode.override {
+ configure = { availablePlugins, ... }: {
+ perlDeps = with perlPackages; [ AnyEvent ];
+ };
+}
+```
+
+## Packaging urxvt plugins {#sec-urxvt-pkg}
+
+Urxvt plugins resides in `pkgs/applications/misc/rxvt-unicode-plugins`. To add a new plugin create an expression in a subdirectory and add the package to the set in `pkgs/applications/misc/rxvt-unicode-plugins/default.nix`.
+
+A plugin can be any kind of derivation, the only requirement is that it should always install perl scripts in `$out/lib/urxvt/perl`. Look for existing plugins for examples.
+
+If the plugin is itself a perl package that needs to be imported from other plugins or scripts, add the following passthrough:
+
+```nix
+passthru.perlPackages = [ "self" ];
+```
+
+This will make the urxvt wrapper pick up the dependency and set up the perl path accordingly.
diff --git a/doc/builders/packages/urxvt.xml b/doc/builders/packages/urxvt.xml
deleted file mode 100644
index 330e056b6560..000000000000
--- a/doc/builders/packages/urxvt.xml
+++ /dev/null
@@ -1,115 +0,0 @@
-<section xmlns="http://docbook.org/ns/docbook"
- xmlns:xlink="http://www.w3.org/1999/xlink"
- xml:id="sec-urxvt">
- <title>Urxvt</title>
-
- <para>
- Urxvt, also known as rxvt-unicode, is a highly customizable terminal emulator.
- </para>
-
- <section xml:id="sec-urxvt-conf">
-
- <title>Configuring urxvt</title>
-
- <para>
- In <literal>nixpkgs</literal>, urxvt is provided by the package
- <literal>rxvt-unicode</literal>. It can be configured to include your choice
- of plugins, reducing its closure size from the default configuration which
- includes all available plugins. To make use of this functionality, use an
- overlay or directly install an expression that overrides its configuration,
- such as
-<programlisting>
-rxvt-unicode.override {
- configure = { availablePlugins, ... }: {
- plugins = with availablePlugins; [ perls resize-font vtwheel ];
- };
-}
-</programlisting>
- If the <literal>configure</literal> function returns an attrset without the
- <literal>plugins</literal> attribute, <literal>availablePlugins</literal>
- will be used automatically.
- </para>
-
- <para>
- In order to add plugins but also keep all default plugins installed, it is
- possible to use the following method:
-<programlisting>
-rxvt-unicode.override {
- configure = { availablePlugins, ... }: {
- plugins = (builtins.attrValues availablePlugins) ++ [ custom-plugin ];
- };
-}
-</programlisting>
- </para>
-
- <para>
- To get a list of all the plugins available, open the Nix REPL and run
-<screen>
-<prompt>$ </prompt>nix repl
-:l &lt;nixpkgs&gt;
-map (p: p.name) pkgs.rxvt-unicode.plugins
-</screen>
- Alternatively, if your shell is bash or zsh and have completion enabled,
- simply type <literal>nixpkgs.rxvt-unicode.plugins.&lt;tab&gt;</literal>.
- </para>
-
- <para>
- In addition to <literal>plugins</literal> the options
- <literal>extraDeps</literal> and <literal>perlDeps</literal> can be used
- to install extra packages.
- <literal>extraDeps</literal> can be used, for example, to provide
- <literal>xsel</literal> (a clipboard manager) to the clipboard plugin,
- without installing it globally:
-<programlisting>
-rxvt-unicode.override {
- configure = { availablePlugins, ... }: {
- pluginsDeps = [ xsel ];
- };
-}
-</programlisting>
-
- <literal>perlDeps</literal> is a handy way to provide Perl packages to
- your custom plugins (in <literal>$HOME/.urxvt/ext</literal>). For example,
- if you need <literal>AnyEvent</literal> you can do:
-<programlisting>
-rxvt-unicode.override {
- configure = { availablePlugins, ... }: {
- perlDeps = with perlPackages; [ AnyEvent ];
- };
-}
-</programlisting>
- </para>
-
- </section>
-
- <section xml:id="sec-urxvt-pkg">
-
- <title>Packaging urxvt plugins</title>
-
- <para>
- Urxvt plugins resides in
- <literal>pkgs/applications/misc/rxvt-unicode-plugins</literal>.
- To add a new plugin create an expression in a subdirectory and add the
- package to the set in
- <literal>pkgs/applications/misc/rxvt-unicode-plugins/default.nix</literal>.
- </para>
-
- <para>
- A plugin can be any kind of derivation, the only requirement is that it
- should always install perl scripts in <literal>$out/lib/urxvt/perl</literal>.
- Look for existing plugins for examples.
- </para>
-
- <para>
- If the plugin is itself a perl package that needs to be imported from
- other plugins or scripts, add the following passthrough:
-<programlisting>
-passthru.perlPackages = [ "self" ];
-</programlisting>
- This will make the urxvt wrapper pick up the dependency and set up the perl
- path accordingly.
- </para>
-
- </section>
-
-</section>
diff --git a/maintainers/maintainer-list.nix b/maintainers/maintainer-list.nix
index e56e50deb95f..3454dc71997c 100644
--- a/maintainers/maintainer-list.nix
+++ b/maintainers/maintainer-list.nix
@@ -1258,6 +1258,16 @@
githubId = 3043718;
name = "Brett Lyons";
};
+ brodes = {
+ email = "me@brod.es";
+ github = "brhoades";
+ githubId = 4763746;
+ name = "Billy Rhoades";
+ keys = [{
+ longkeyid = "rsa4096/0x8AE74787A4B7C07E";
+ fingerprint = "BF4FCB85C69989B4ED95BF938AE74787A4B7C07E";
+ }];
+ };
bryanasdev000 = {
email = "bryanasdev000@gmail.com";
github = "bryanasdev000";
diff --git a/nixos/modules/services/desktops/pipewire.nix b/nixos/modules/services/desktops/pipewire.nix
index c4923cfd3f00..0ef988d9e69f 100644
--- a/nixos/modules/services/desktops/pipewire.nix
+++ b/nixos/modules/services/desktops/pipewire.nix
@@ -15,7 +15,7 @@ let
# This doesn't work in general because of missing development information.
jack-libs = pkgs.runCommand "jack-libs" {} ''
mkdir -p "$out/lib"
- ln -s "${pkgs.pipewire.jack}/lib" "$out/lib/pipewire"
+ ln -s "${cfg.package.jack}/lib" "$out/lib/pipewire"
'';
in {
@@ -28,6 +28,16 @@ in {
services.pipewire = {
enable = mkEnableOption "pipewire service";
+ package = mkOption {
+ type = types.package;
+ default = pkgs.pipewire;
+ defaultText = "pkgs.pipewire";
+ example = literalExample "pkgs.pipewire";
+ description = ''
+ The pipewire derivation to use.
+ '';
+ };
+
socketActivation = mkOption {
default = true;
type = types.bool;
@@ -36,6 +46,32 @@ in {
'';
};
+ extraConfig = mkOption {
+ type = types.lines;
+ default = "";
+ description = ''
+ Literal string to append to /etc/pipewire/pipewire.conf.
+ '';
+ };
+
+ sessionManager = mkOption {
+ type = types.nullOr types.string;
+ default = null;
+ example = literalExample ''"''${pipewire}/bin/pipewire-media-session"'';
+ description = ''
+ Path to the pipewire session manager executable.
+ '';
+ };
+
+ sessionManagerArguments = mkOption {
+ type = types.listOf types.string;
+ default = [];
+ example = literalExample ''[ "-p" "bluez5.msbc-support=true" ]'';
+ description = ''
+ Arguments passed to the pipewire session manager.
+ '';
+ };
+
alsa = {
enable = mkEnableOption "ALSA support";
support32Bit = mkEnableOption "32-bit ALSA support on 64-bit systems";
@@ -65,38 +101,83 @@ in {
}
];
- environment.systemPackages = [ pkgs.pipewire ]
+ services.pipewire.sessionManager = mkDefault "${cfg.package}/bin/pipewire-media-session";
+
+ environment.systemPackages = [ cfg.package ]
++ lib.optional cfg.jack.enable jack-libs;
- systemd.packages = [ pkgs.pipewire ]
- ++ lib.optional cfg.pulse.enable pkgs.pipewire.pulse;
+ systemd.packages = [ cfg.package ]
+ ++ lib.optional cfg.pulse.enable cfg.package.pulse;
# PipeWire depends on DBUS but doesn't list it. Without this booting
# into a terminal results in the service crashing with an error.
systemd.user.sockets.pipewire.wantedBy = lib.mkIf cfg.socketActivation [ "sockets.target" ];
systemd.user.sockets.pipewire-pulse.wantedBy = lib.mkIf (cfg.socketActivation && cfg.pulse.enable) ["sockets.target"];
systemd.user.services.pipewire.bindsTo = [ "dbus.service" ];
- services.udev.packages = [ pkgs.pipewire ];
+ services.udev.packages = [ cfg.package ];
# If any paths are updated here they must also be updated in the package test.
- sound.extraConfig = mkIf cfg.alsa.enable ''
- pcm_type.pipewire {
- libs.native = ${pkgs.pipewire.lib}/lib/alsa-lib/libasound_module_pcm_pipewire.so ;
- ${optionalString enable32BitAlsaPlugins
- "libs.32Bit = ${pkgs.pkgsi686Linux.pipewire.lib}/lib/alsa-lib/libasound_module_pcm_pipewire.so ;"}
- }
- pcm.!default {
- @func getenv
- vars [ PCM ]
- default "plug:pipewire"
- playback_mode "-1"
- capture_mode "-1"
- }
- '';
+ environment.etc."alsa/conf.d/49-pipewire-modules.conf" = mkIf cfg.alsa.enable {
+ text = ''
+ pcm_type.pipewire {
+ libs.native = ${cfg.package.lib}/lib/alsa-lib/libasound_module_pcm_pipewire.so ;
+ ${optionalString enable32BitAlsaPlugins
+ "libs.32Bit = ${pkgs.pkgsi686Linux.pipewire.lib}/lib/alsa-lib/libasound_module_pcm_pipewire.so ;"}
+ }
+ ctl_type.pipewire {
+ libs.native = ${cfg.package.lib}/lib/alsa-lib/libasound_module_ctl_pipewire.so ;
+ ${optionalString enable32BitAlsaPlugins
+ "libs.32Bit = ${pkgs.pkgsi686Linux.pipewire.lib}/lib/alsa-lib/libasound_module_ctl_pipewire.so ;"}
+ }
+ '';
+ };
environment.etc."alsa/conf.d/50-pipewire.conf" = mkIf cfg.alsa.enable {
- source = "${pkgs.pipewire}/share/alsa/alsa.conf.d/50-pipewire.conf";
+ source = "${cfg.package}/share/alsa/alsa.conf.d/50-pipewire.conf";
+ };
+ environment.etc."alsa/conf.d/99-pipewire-default.conf" = mkIf cfg.alsa.enable {
+ source = "${cfg.package}/share/alsa/alsa.conf.d/99-pipewire-default.conf";
};
environment.sessionVariables.LD_LIBRARY_PATH =
lib.optional cfg.jack.enable "/run/current-system/sw/lib/pipewire";
+
+ environment.etc."pipewire/pipewire.conf" = {
+ # Adapted from src/daemon/pipewire.conf.in
+ text = ''
+ set-prop link.max-buffers 16 # version < 3 clients can't handle more
+
+ add-spa-lib audio.convert* audioconvert/libspa-audioconvert
+ add-spa-lib api.alsa.* alsa/libspa-alsa
+ add-spa-lib api.v4l2.* v4l2/libspa-v4l2
+ add-spa-lib api.libcamera.* libcamera/libspa-libcamera
+ add-spa-lib api.bluez5.* bluez5/libspa-bluez5
+ add-spa-lib api.vulkan.* vulkan/libspa-vulkan
+ add-spa-lib api.jack.* jack/libspa-jack
+ add-spa-lib support.* support/libspa-support
+
+ load-module libpipewire-module-rtkit # rt.prio=20 rt.time.soft=200000 rt.time.hard=200000
+ load-module libpipewire-module-protocol-native
+ load-module libpipewire-module-profiler
+ load-module libpipewire-module-metadata
+ load-module libpipewire-module-spa-device-factory
+ load-module libpipewire-module-spa-node-factory
+ load-module libpipewire-module-client-node
+ load-module libpipewire-module-client-device
+ load-module libpipewire-module-portal
+ load-module libpipewire-module-access
+ load-module libpipewire-module-adapter
+ load-module libpipewire-module-link-factory
+ load-module libpipewire-module-session-manager
+
+ create-object spa-node-factory factory.name=support.node.driver node.name=Dummy priority.driver=8000
+
+ exec ${cfg.sessionManager} ${lib.concatStringsSep " " cfg.sessionManagerArguments}
+
+ ${cfg.extraConfig}
+ '';
+ };
+
+ environment.etc."pipewire/media-session.d/with-alsa" = mkIf cfg.alsa.enable { text = ""; };
+ environment.etc."pipewire/media-session.d/with-pulseaudio" = mkIf cfg.pulse.enable { text = ""; };
+ environment.etc."pipewire/media-session.d/with-jack" = mkIf cfg.jack.enable { text = ""; };
};
}
diff --git a/pkgs/applications/editors/emacs/generic.nix b/pkgs/applications/editors/emacs/generic.nix
index a0bd1193d2cd..0e09b0c20ee0 100644
--- a/pkgs/applications/editors/emacs/generic.nix
+++ b/pkgs/applications/editors/emacs/generic.nix
@@ -154,6 +154,8 @@ in stdenv.mkDerivation {
'' + lib.optionalString withNS ''
mkdir -p $out/Applications
mv nextstep/Emacs.app $out/Applications
+ '' + lib.optionalString (nativeComp && withNS) ''
+ ln -snf $out/lib/emacs/*/native-lisp $out/Applications/Emacs.app/Contents/native-lisp
'';
postFixup = lib.concatStringsSep "\n" [
diff --git a/pkgs/applications/misc/archivy/default.nix b/pkgs/applications/misc/archivy/default.nix
index d2fa48cd2348..09779f8876f8 100644
--- a/pkgs/applications/misc/archivy/default.nix
+++ b/pkgs/applications/misc/archivy/default.nix
@@ -5,11 +5,11 @@ watchdog, wtforms }:
python3.pkgs.buildPythonApplication rec {
pname = "archivy";
- version = "0.8.5";
+ version = "0.9.2";
src = fetchPypi {
inherit pname version;
- sha256 = "144ckgxjaw29yp5flyxd1rnkm7hlim4zgy6xng7x0a9j54h527iq";
+ sha256 = "5cb760da57dc9dcdd62c0af824993d1715ec7035915629b4046d8bf50442756c";
};
# Relax some dependencies
diff --git a/pkgs/applications/misc/joplin-desktop/default.nix b/pkgs/applications/misc/joplin-desktop/default.nix
index fccf15c0241b..bcd4f686f818 100644
--- a/pkgs/applications/misc/joplin-desktop/default.nix
+++ b/pkgs/applications/misc/joplin-desktop/default.nix
@@ -2,7 +2,7 @@
let
pname = "joplin-desktop";
- version = "1.4.15";
+ version = "1.4.19";
name = "${pname}-${version}";
inherit (stdenv.hostPlatform) system;
@@ -16,8 +16,8 @@ let
src = fetchurl {
url = "https://github.com/laurent22/joplin/releases/download/v${version}/Joplin-${version}.${suffix}";
sha256 = {
- x86_64-linux = "12wh7f1a9sn250lqnb8c9b5gqr8r76kxrhl0kgsm2lg93jgpvvbb";
- x86_64-darwin = "1jzfqwyz3vkmmkdzx3iw36fbjq7fns46v8crmg5n09w9kvf22qil";
+ x86_64-linux = "1xyj30pnlczchbh4awb955sxh51v89d170f4yk0v1jkj7dg2wjgj";
+ x86_64-darwin = "166yp2rr87p0lh64ngs498a50ahcann8z5s0g2p0azs6wi54a6kw";
}.${system} or throwSystem;
};
diff --git a/pkgs/applications/networking/cluster/starboard/default.nix b/pkgs/applications/networking/cluster/starboard/default.nix
index bc42bf13666a..bb4327064527 100644
--- a/pkgs/applications/networking/cluster/starboard/default.nix
+++ b/pkgs/applications/networking/cluster/starboard/default.nix
@@ -2,16 +2,16 @@
buildGoModule rec {
pname = "starboard";
- version = "0.6.0";
+ version = "0.7.0";
src = fetchFromGitHub {
owner = "aquasecurity";
repo = pname;
rev = "v${version}";
- sha256 = "00d3cnd3n6laa6rphw5w9xk8slpp4a603vzhixzg01sghq26gy22";
+ sha256 = "1xj0fa52973h7cg3scxn85lav98q6fz82dwd5cls3p39ghnhzn5l";
};
- vendorSha256 = "0y816r75rp1a4rp7j0a8wzrfi2mdf4ji1vz2vaj5s7x9ik6rc13r";
+ vendorSha256 = "07cz4p8k927ash5ncw1r56bcn592imgywbyzkvhnn50pap91m0q0";
subPackages = [ "cmd/starboard" ];
diff --git a/pkgs/applications/networking/cluster/terraform-providers/providers.json b/pkgs/applications/networking/cluster/terraform-providers/providers.json
index 83865214192a..bb2a7ab582b9 100644
--- a/pkgs/applications/networking/cluster/terraform-providers/providers.json
+++ b/pkgs/applications/networking/cluster/terraform-providers/providers.json
@@ -720,11 +720,11 @@
"version": "0.8.0"
},
"packet": {
- "owner": "terraform-providers",
+ "owner": "packethost",
"repo": "terraform-provider-packet",
- "rev": "v2.9.0",
- "sha256": "0d9r272gidkwn4zr130ml047512qq5d5d599s63blzy6m38vilha",
- "version": "2.9.0"
+ "rev": "v3.2.0",
+ "sha256": "sha256-YIv4OPRbR00YTVwz0iJ/y6qTbj50nsi5ylrWEx1kZck=",
+ "version": "3.2.0"
},
"pagerduty": {
"owner": "terraform-providers",
diff --git a/pkgs/applications/networking/cluster/terraform/default.nix b/pkgs/applications/networking/cluster/terraform/default.nix
index b478071ead16..d8c17a89e69b 100644
--- a/pkgs/applications/networking/cluster/terraform/default.nix
+++ b/pkgs/applications/networking/cluster/terraform/default.nix
@@ -1,15 +1,13 @@
-{ stdenv, lib, buildEnv, buildGoPackage, fetchFromGitHub, makeWrapper, coreutils
+{ stdenv, lib, buildGoModule, fetchFromGitHub, makeWrapper, coreutils
, runCommand, runtimeShell, writeText, terraform-providers, fetchpatch }:
let
- goPackagePath = "github.com/hashicorp/terraform";
-
- generic = { version, sha256, ... }@attrs:
- let attrs' = builtins.removeAttrs attrs [ "version" "sha256" ];
- in buildGoPackage ({
+ generic = { version, sha256, vendorSha256 ? null, ... }@attrs:
+ let attrs' = builtins.removeAttrs attrs [ "version" "sha256" "vendorSha256" ];
+ in buildGoModule ({
name = "terraform-${version}";
- inherit goPackagePath;
+ inherit vendorSha256;
src = fetchFromGitHub {
owner = "hashicorp";
@@ -18,7 +16,7 @@ let
inherit sha256;
};
- postPatch = ''
+ postConfigure = ''
# speakeasy hardcodes /bin/stty https://github.com/bgentry/speakeasy/issues/22
substituteInPlace vendor/github.com/bgentry/speakeasy/speakeasy_unix.go \
--replace "/bin/stty" "${coreutils}/bin/stty"
@@ -34,9 +32,12 @@ let
'';
preCheck = ''
- export HOME=$TMP
+ export HOME=$TMPDIR
+ export TF_SKIP_REMOTE_TESTS=1
'';
+ subPackages = [ "." ];
+
meta = with stdenv.lib; {
description =
"Tool for building, changing, and versioning infrastructure";
@@ -163,6 +164,14 @@ in rec {
passthru = { inherit plugins; };
});
+ terraform_0_14 = pluggable (generic {
+ version = "0.14.0";
+ sha256 = "0pbglnvb6cx8zrz791lfa67dmjqfsyysbxm2083b1lhlmbybi9ax";
+ vendorSha256 = "1gxhdj98np482jm76aj6zbbmkn7vfk8b878hzz59iywgbdr1r4m1";
+ patches = [ ./provider-path.patch ];
+ passthru = { inherit plugins; };
+ });
+
# Tests that the plugins are being used. Terraform looks at the specific
# file pattern and if the plugin is not found it will try to download it
# from the Internet. With sandboxing enable this test will fail if that is
diff --git a/pkgs/applications/networking/dyndns/dyndnsc/default.nix b/pkgs/applications/networking/dyndns/dyndnsc/default.nix
new file mode 100644
index 000000000000..65d463057416
--- /dev/null
+++ b/pkgs/applications/networking/dyndns/dyndnsc/default.nix
@@ -0,0 +1,59 @@
+{ stdenv, lib, python3Packages }:
+
+python3Packages.buildPythonApplication rec {
+ pname = "dyndnsc";
+ version = "0.5.1";
+
+ src = python3Packages.fetchPypi {
+ inherit pname version;
+ hash = "sha256-Sy6U0XhIQ9mPmznmWKqoyqE34vaE84fwlivouaF7Dd0=";
+ };
+
+ postPatch = ''
+ substituteInPlace setup.py --replace "bottle==" "bottle>="
+ '';
+
+ nativeBuildInputs = with python3Packages; [ pytestrunner ];
+ propagatedBuildInputs = with python3Packages; [
+ daemonocle
+ dnspython
+ netifaces
+ requests
+ setuptools
+ ];
+ checkInputs = with python3Packages; [ bottle pytestCheckHook ];
+
+ disabledTests = [
+ # dnswanip connects to an external server to discover the
+ # machine's IP address.
+ "dnswanip"
+ ] ++ lib.optionals stdenv.isDarwin [
+ # The tests that spawn a server using Bottle cannot be run on
+ # macOS or Windows as the default multiprocessing start method
+ # on those platforms is 'spawn', which requires the code to be
+ # run to be picklable, which this code isn't.
+ # Additionaly, other start methods are unsafe and prone to failure
+ # on macOS; see https://bugs.python.org/issue33725.
+ "BottleServer"
+ ];
+ # Allow tests that bind or connect to localhost on macOS.
+ __darwinAllowLocalNetworking = true;
+
+ meta = with lib; {
+ description = "Dynamic DNS update client with support for multiple protocols";
+ longDescription = ''
+ Dyndnsc is a command line client for sending updates to Dynamic
+ DNS (DDNS, DynDNS) services. It supports multiple protocols and
+ services, and it has native support for IPv6. The configuration
+ file allows using foreign, but compatible services. Dyndnsc
+ ships many different IP detection mechanisms, support for
+ configuring multiple services in one place and it has a daemon
+ mode for running unattended. It has a plugin system to provide
+ external notification services.
+ '';
+ homepage = "https://github.com/infothrill/python-dyndnsc";
+ license = licenses.mit;
+ maintainers = with maintainers; [ AluisioASG ];
+ platforms = platforms.unix;
+ };
+}
diff --git a/pkgs/applications/science/robotics/mavproxy/default.nix b/pkgs/applications/science/robotics/mavproxy/default.nix
index 6fdb7b8fcbe2..a71ddc874c9d 100644
--- a/pkgs/applications/science/robotics/mavproxy/default.nix
+++ b/pkg