Merge master into staging-next
This commit is contained in:
commit
6406c43ce5
@ -2130,6 +2130,13 @@ sudo mkdir /var/lib/redis-peertube
|
|||||||
sudo cp /var/lib/redis/dump.rdb /var/lib/redis-peertube/dump.rdb
|
sudo cp /var/lib/redis/dump.rdb /var/lib/redis-peertube/dump.rdb
|
||||||
</programlisting>
|
</programlisting>
|
||||||
</listitem>
|
</listitem>
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Added the <literal>keter</literal> NixOS module. Keter reverse
|
||||||
|
proxies requests to your loaded application based on virtual
|
||||||
|
hostnames.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>
|
<para>
|
||||||
If you are using Wayland you can choose to use the Ozone
|
If you are using Wayland you can choose to use the Ozone
|
||||||
|
@ -778,6 +778,7 @@ In addition to numerous new and upgraded packages, this release has the followin
|
|||||||
sudo mkdir /var/lib/redis-peertube
|
sudo mkdir /var/lib/redis-peertube
|
||||||
sudo cp /var/lib/redis/dump.rdb /var/lib/redis-peertube/dump.rdb
|
sudo cp /var/lib/redis/dump.rdb /var/lib/redis-peertube/dump.rdb
|
||||||
```
|
```
|
||||||
|
- Added the `keter` NixOS module. Keter reverse proxies requests to your loaded application based on virtual hostnames.
|
||||||
|
|
||||||
- If you are using Wayland you can choose to use the Ozone Wayland support
|
- If you are using Wayland you can choose to use the Ozone Wayland support
|
||||||
in Chrome and several Electron apps by setting the environment variable
|
in Chrome and several Electron apps by setting the environment variable
|
||||||
|
@ -1138,6 +1138,7 @@
|
|||||||
./services/web-servers/pomerium.nix
|
./services/web-servers/pomerium.nix
|
||||||
./services/web-servers/unit/default.nix
|
./services/web-servers/unit/default.nix
|
||||||
./services/web-servers/tomcat.nix
|
./services/web-servers/tomcat.nix
|
||||||
|
./services/web-servers/keter
|
||||||
./services/web-servers/traefik.nix
|
./services/web-servers/traefik.nix
|
||||||
./services/web-servers/trafficserver/default.nix
|
./services/web-servers/trafficserver/default.nix
|
||||||
./services/web-servers/ttyd.nix
|
./services/web-servers/ttyd.nix
|
||||||
|
40
nixos/modules/services/web-servers/keter/bundle.nix
Normal file
40
nixos/modules/services/web-servers/keter/bundle.nix
Normal file
@ -0,0 +1,40 @@
|
|||||||
|
/* This makes a keter bundle as described on the github page:
|
||||||
|
https://github.com/snoyberg/keter#bundling-your-app-for-keter
|
||||||
|
*/
|
||||||
|
{ keterDomain
|
||||||
|
, keterExecutable
|
||||||
|
, gnutar
|
||||||
|
, writeTextFile
|
||||||
|
, lib
|
||||||
|
, stdenv
|
||||||
|
, ...
|
||||||
|
}:
|
||||||
|
|
||||||
|
let
|
||||||
|
str.stanzas = [{
|
||||||
|
# we just use nix as an absolute path so we're not bundling any binaries
|
||||||
|
type = "webapp";
|
||||||
|
/* Note that we're not actually putting the executable in the bundle,
|
||||||
|
we already can use the nix store for copying, so we just
|
||||||
|
symlink to the app. */
|
||||||
|
exec = keterExecutable;
|
||||||
|
host = keterDomain;
|
||||||
|
}];
|
||||||
|
configFile = writeTextFile {
|
||||||
|
name = "keter.yml";
|
||||||
|
text = (lib.generators.toYAML { } str);
|
||||||
|
};
|
||||||
|
|
||||||
|
in
|
||||||
|
stdenv.mkDerivation {
|
||||||
|
name = "keter-bundle";
|
||||||
|
buildCommand = ''
|
||||||
|
mkdir -p config
|
||||||
|
cp ${configFile} config/keter.yaml
|
||||||
|
|
||||||
|
echo 'create a gzipped tarball'
|
||||||
|
mkdir -p $out
|
||||||
|
tar -zcvf $out/bundle.tar.gz.keter ./.
|
||||||
|
'';
|
||||||
|
buildInputs = [ gnutar ];
|
||||||
|
}
|
162
nixos/modules/services/web-servers/keter/default.nix
Normal file
162
nixos/modules/services/web-servers/keter/default.nix
Normal file
@ -0,0 +1,162 @@
|
|||||||
|
{ config, pkgs, lib, ... }:
|
||||||
|
let
|
||||||
|
cfg = config.services.keter;
|
||||||
|
in
|
||||||
|
{
|
||||||
|
meta = {
|
||||||
|
maintainers = with lib.maintainers; [ jappie ];
|
||||||
|
};
|
||||||
|
|
||||||
|
options.services.keter = {
|
||||||
|
enable = lib.mkEnableOption ''keter, a web app deployment manager.
|
||||||
|
Note that this module only support loading of webapps:
|
||||||
|
Keep an old app running and swap the ports when the new one is booted.
|
||||||
|
'';
|
||||||
|
|
||||||
|
keterRoot = lib.mkOption {
|
||||||
|
type = lib.types.str;
|
||||||
|
default = "/var/lib/keter";
|
||||||
|
description = "Mutable state folder for keter";
|
||||||
|
};
|
||||||
|
|
||||||
|
keterPackage = lib.mkOption {
|
||||||
|
type = lib.types.package;
|
||||||
|
default = pkgs.haskellPackages.keter;
|
||||||
|
defaultText = lib.literalExpression "pkgs.haskellPackages.keter";
|
||||||
|
description = "The keter package to be used";
|
||||||
|
};
|
||||||
|
|
||||||
|
globalKeterConfig = lib.mkOption {
|
||||||
|
type = lib.types.attrs;
|
||||||
|
default = {
|
||||||
|
ip-from-header = true;
|
||||||
|
listeners = [{
|
||||||
|
host = "*4";
|
||||||
|
port = 6981;
|
||||||
|
}];
|
||||||
|
};
|
||||||
|
# You want that ip-from-header in the nginx setup case
|
||||||
|
# so it's not set to 127.0.0.1.
|
||||||
|
# using a port above 1024 allows you to avoid needing CAP_NET_BIND_SERVICE
|
||||||
|
defaultText = lib.literalExpression ''
|
||||||
|
{
|
||||||
|
ip-from-header = true;
|
||||||
|
listeners = [{
|
||||||
|
host = "*4";
|
||||||
|
port = 6981;
|
||||||
|
}];
|
||||||
|
}
|
||||||
|
'';
|
||||||
|
description = "Global config for keter";
|
||||||
|
};
|
||||||
|
|
||||||
|
bundle = {
|
||||||
|
appName = lib.mkOption {
|
||||||
|
type = lib.types.str;
|
||||||
|
default = "myapp";
|
||||||
|
description = "The name keter assigns to this bundle";
|
||||||
|
};
|
||||||
|
|
||||||
|
executable = lib.mkOption {
|
||||||
|
type = lib.types.path;
|
||||||
|
description = "The executable to be run";
|
||||||
|
};
|
||||||
|
|
||||||
|
domain = lib.mkOption {
|
||||||
|
type = lib.types.str;
|
||||||
|
default = "example.com";
|
||||||
|
description = "The domain keter will bind to";
|
||||||
|
};
|
||||||
|
|
||||||
|
publicScript = lib.mkOption {
|
||||||
|
type = lib.types.str;
|
||||||
|
default = "";
|
||||||
|
description = ''
|
||||||
|
Allows loading of public environment variables,
|
||||||
|
these are emitted to the log so it shouldn't contain secrets.
|
||||||
|
'';
|
||||||
|
example = "ADMIN_EMAIL=hi@example.com";
|
||||||
|
};
|
||||||
|
|
||||||
|
secretScript = lib.mkOption {
|
||||||
|
type = lib.types.str;
|
||||||
|
default = "";
|
||||||
|
description = "Allows loading of private environment variables";
|
||||||
|
example = "MY_AWS_KEY=$(cat /run/keys/AWS_ACCESS_KEY_ID)";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
config = lib.mkIf cfg.enable (
|
||||||
|
let
|
||||||
|
incoming = "${cfg.keterRoot}/incoming";
|
||||||
|
|
||||||
|
|
||||||
|
globalKeterConfigFile = pkgs.writeTextFile {
|
||||||
|
name = "keter-config.yml";
|
||||||
|
text = (lib.generators.toYAML { } (cfg.globalKeterConfig // { root = cfg.keterRoot; }));
|
||||||
|
};
|
||||||
|
|
||||||
|
# If things are expected to change often, put it in the bundle!
|
||||||
|
bundle = pkgs.callPackage ./bundle.nix
|
||||||
|
(cfg.bundle // { keterExecutable = executable; keterDomain = cfg.bundle.domain; });
|
||||||
|
|
||||||
|
# This indirection is required to ensure the nix path
|
||||||
|
# gets copied over to the target machine in remote deployments.
|
||||||
|
# Furthermore, it's important that we use exec to
|
||||||
|
# run the binary otherwise we get process leakage due to this
|
||||||
|
# being executed on every change.
|
||||||
|
executable = pkgs.writeShellScript "bundle-wrapper" ''
|
||||||
|
set -e
|
||||||
|
${cfg.bundle.secretScript}
|
||||||
|
set -xe
|
||||||
|
${cfg.bundle.publicScript}
|
||||||
|
exec ${cfg.bundle.executable}
|
||||||
|
'';
|
||||||
|
|
||||||
|
in
|
||||||
|
{
|
||||||
|
systemd.services.keter = {
|
||||||
|
description = "keter app loader";
|
||||||
|
script = ''
|
||||||
|
set -xe
|
||||||
|
mkdir -p ${incoming}
|
||||||
|
{ tail -F ${cfg.keterRoot}/log/keter/current.log -n 0 & ${cfg.keterPackage}/bin/keter ${globalKeterConfigFile}; }
|
||||||
|
'';
|
||||||
|
wantedBy = [ "multi-user.target" "nginx.service" ];
|
||||||
|
|
||||||
|
serviceConfig = {
|
||||||
|
Restart = "always";
|
||||||
|
RestartSec = "10s";
|
||||||
|
};
|
||||||
|
|
||||||
|
after = [
|
||||||
|
"network.target"
|
||||||
|
"local-fs.target"
|
||||||
|
"postgresql.service"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
|
# On deploy this will load our app, by moving it into the incoming dir
|
||||||
|
# If the bundle content changes, this will run again.
|
||||||
|
# Because the bundle content contains the nix path to the exectuable,
|
||||||
|
# we inherit nix based cache busting.
|
||||||
|
systemd.services.load-keter-bundle = {
|
||||||
|
description = "load keter bundle into incoming folder";
|
||||||
|
after = [ "keter.service" ];
|
||||||
|
wantedBy = [ "multi-user.target" ];
|
||||||
|
# we can't override keter bundles because it'll stop the previous app
|
||||||
|
# https://github.com/snoyberg/keter#deploying
|
||||||
|
script = ''
|
||||||
|
set -xe
|
||||||
|
cp ${bundle}/bundle.tar.gz.keter ${incoming}/${cfg.bundle.appName}.keter
|
||||||
|
'';
|
||||||
|
path = [
|
||||||
|
executable
|
||||||
|
cfg.bundle.executable
|
||||||
|
]; # this is a hack to get the executable copied over to the machine.
|
||||||
|
};
|
||||||
|
}
|
||||||
|
);
|
||||||
|
}
|
@ -293,7 +293,7 @@ in
|
|||||||
# Copy default libvirt network config .xml files to /var/lib
|
# Copy default libvirt network config .xml files to /var/lib
|
||||||
# Files modified by the user will not be overwritten
|
# Files modified by the user will not be overwritten
|
||||||
for i in $(cd ${cfg.package}/var/lib && echo \
|
for i in $(cd ${cfg.package}/var/lib && echo \
|
||||||
libvirt/qemu/networks/*.xml libvirt/qemu/networks/autostart/*.xml \
|
libvirt/qemu/networks/*.xml \
|
||||||
libvirt/nwfilter/*.xml );
|
libvirt/nwfilter/*.xml );
|
||||||
do
|
do
|
||||||
mkdir -p /var/lib/$(dirname $i) -m 755
|
mkdir -p /var/lib/$(dirname $i) -m 755
|
||||||
|
@ -267,6 +267,7 @@ in {
|
|||||||
kerberos = handleTest ./kerberos/default.nix {};
|
kerberos = handleTest ./kerberos/default.nix {};
|
||||||
kernel-generic = handleTest ./kernel-generic.nix {};
|
kernel-generic = handleTest ./kernel-generic.nix {};
|
||||||
kernel-latest-ath-user-regd = handleTest ./kernel-latest-ath-user-regd.nix {};
|
kernel-latest-ath-user-regd = handleTest ./kernel-latest-ath-user-regd.nix {};
|
||||||
|
keter = handleTest ./keter.nix {};
|
||||||
kexec = handleTest ./kexec.nix {};
|
kexec = handleTest ./kexec.nix {};
|
||||||
keycloak = discoverTests (import ./keycloak.nix);
|
keycloak = discoverTests (import ./keycloak.nix);
|
||||||
keymap = handleTest ./keymap.nix {};
|
keymap = handleTest ./keymap.nix {};
|
||||||
|
42
nixos/tests/keter.nix
Normal file
42
nixos/tests/keter.nix
Normal file
@ -0,0 +1,42 @@
|
|||||||
|
import ./make-test-python.nix ({ pkgs, ... }:
|
||||||
|
let
|
||||||
|
port = 81;
|
||||||
|
in
|
||||||
|
{
|
||||||
|
name = "keter";
|
||||||
|
meta = with pkgs.lib.maintainers; {
|
||||||
|
maintainers = [ jappie ];
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
nodes.machine = { config, pkgs, ... }: {
|
||||||
|
services.keter = {
|
||||||
|
enable = true;
|
||||||
|
|
||||||
|
globalKeterConfig = {
|
||||||
|
listeners = [{
|
||||||
|
host = "*4";
|
||||||
|
inherit port;
|
||||||
|
}];
|
||||||
|
};
|
||||||
|
bundle = {
|
||||||
|
appName = "test-bundle";
|
||||||
|
domain = "localhost";
|
||||||
|
executable = pkgs.writeShellScript "run" ''
|
||||||
|
${pkgs.python3}/bin/python -m http.server $PORT
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
testScript =
|
||||||
|
''
|
||||||
|
machine.wait_for_unit("keter.service")
|
||||||
|
|
||||||
|
machine.wait_for_open_port(${toString port})
|
||||||
|
machine.wait_for_console_text("Activating app test-bundle with hosts: localhost")
|
||||||
|
|
||||||
|
|
||||||
|
machine.succeed("curl --fail http://localhost:${toString port}/")
|
||||||
|
'';
|
||||||
|
})
|
@ -46,13 +46,13 @@ in
|
|||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
pname = "imagemagick";
|
pname = "imagemagick";
|
||||||
version = "7.1.0-45";
|
version = "7.1.0-46";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "ImageMagick";
|
owner = "ImageMagick";
|
||||||
repo = "ImageMagick";
|
repo = "ImageMagick";
|
||||||
rev = version;
|
rev = version;
|
||||||
hash = "sha256-fiygwb15dbMyTZ62iWbhWaHpdmoK4rKeb46v0sojgpc=";
|
hash = "sha256-yts86tQMPgdF9Zk1vljVza21mlx1g3XcoHjvtsMoZhA=";
|
||||||
};
|
};
|
||||||
|
|
||||||
outputs = [ "out" "dev" "doc" ]; # bin/ isn't really big
|
outputs = [ "out" "dev" "doc" ]; # bin/ isn't really big
|
||||||
|
@ -20,7 +20,7 @@ stdenv.mkDerivation rec {
|
|||||||
|
|
||||||
meta = with lib; {
|
meta = with lib; {
|
||||||
description = "Kanban project management software";
|
description = "Kanban project management software";
|
||||||
homepage = "https://kanboard.net";
|
homepage = "https://kanboard.org";
|
||||||
license = licenses.mit;
|
license = licenses.mit;
|
||||||
maintainers = with maintainers; [ lheckemann ];
|
maintainers = with maintainers; [ lheckemann ];
|
||||||
};
|
};
|
||||||
|
@ -1,8 +1,8 @@
|
|||||||
{
|
{
|
||||||
"stable": {
|
"stable": {
|
||||||
"version": "104.0.5112.79",
|
"version": "104.0.5112.101",
|
||||||
"sha256": "1wxb3nl080wgg1g61g3pgzz3gaawg442iv8pxqhnayacm3qn5ilw",
|
"sha256": "0nrghgngxdn9richjnxii9y94dg5zpwc3gd3vx609r4xaphibw30",
|
||||||
"sha256bin64": "1m09bbh6a4sm5i0n8z2wy0hb8s7w0c2d335mpyrmndzs45py5ggx",
|
"sha256bin64": "1cj2mi3g5wl376wc52jgqg28h7izbsqm2gji526zkhmgb7rwq4sw",
|
||||||
"deps": {
|
"deps": {
|
||||||
"gn": {
|
"gn": {
|
||||||
"version": "2022-06-08",
|
"version": "2022-06-08",
|
||||||
@ -19,9 +19,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"beta": {
|
"beta": {
|
||||||
"version": "105.0.5195.28",
|
"version": "105.0.5195.37",
|
||||||
"sha256": "14hy1f59ypsvqmrp0k4kv5cfcw48dizw4nkmigaxxv4bnmpwlcy1",
|
"sha256": "0ffzphr66z3g3l695b5liswpfp0577knn06mzdmwq9x1lk87cwiq",
|
||||||
"sha256bin64": "0rgv1r94z91khzwmf1scnnsz9yqks6ygicl7bdsdbckw69njq91z",
|
"sha256bin64": "1cfkjzqwj4s5djzl2rka9kbc28i6zph0xqv1534cb68hzgwy171a",
|
||||||
"deps": {
|
"deps": {
|
||||||
"gn": {
|
"gn": {
|
||||||
"version": "2022-07-11",
|
"version": "2022-07-11",
|
||||||
|
@ -11,13 +11,13 @@
|
|||||||
|
|
||||||
buildGoModule rec {
|
buildGoModule rec {
|
||||||
pname = "werf";
|
pname = "werf";
|
||||||
version = "1.2.154";
|
version = "1.2.160";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "werf";
|
owner = "werf";
|
||||||
repo = "werf";
|
repo = "werf";
|
||||||
rev = "v${version}";
|
rev = "v${version}";
|
||||||
sha256 = "sha256-5tiJRxE8W2nvkQdJ3jL8P0+7LXEfNOdL15LdDjlDWpc=";
|
sha256 = "sha256-UeZpH6A/N+frShOOVeRCsIXdBKiI0chsxQvsGJF5JwE=";
|
||||||
};
|
};
|
||||||
|
|
||||||
vendorSha256 = "sha256-XpSAFiweD2oUKleD6ztDp1+3PpfUWXfGaaE/9mzRrUQ=";
|
vendorSha256 = "sha256-XpSAFiweD2oUKleD6ztDp1+3PpfUWXfGaaE/9mzRrUQ=";
|
||||||
|
@ -12,13 +12,13 @@
|
|||||||
|
|
||||||
buildPythonApplication rec {
|
buildPythonApplication rec {
|
||||||
pname = "git-machete";
|
pname = "git-machete";
|
||||||
version = "3.11.6";
|
version = "3.12.0";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "virtuslab";
|
owner = "virtuslab";
|
||||||
repo = pname;
|
repo = pname;
|
||||||
rev = "v${version}";
|
rev = "v${version}";
|
||||||
sha256 = "sha256-W2OYJO3UnBcZRoIyTRj3Wz7J91zDWrrYPH5OnYvXi24=";
|
sha256 = "sha256-o4OVA9cv+/JLiTUnDEAI/yj+YmOulFrX5XmlRZAb2vw=";
|
||||||
};
|
};
|
||||||
|
|
||||||
nativeBuildInputs = [ installShellFiles ];
|
nativeBuildInputs = [ installShellFiles ];
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
{ lib, stdenvNoCC, linkFarmFromDrvs, callPackage, nuget-to-nix, writeScript, makeWrapper, fetchurl, xml2, dotnetCorePackages, dotnetPackages, mkNugetSource, mkNugetDeps, cacert, srcOnly, symlinkJoin }:
|
{ lib, stdenvNoCC, linkFarmFromDrvs, callPackage, nuget-to-nix, writeScript, makeWrapper, fetchurl, xml2, dotnetCorePackages, dotnetPackages, mkNugetSource, mkNugetDeps, cacert, srcOnly, symlinkJoin, coreutils }:
|
||||||
|
|
||||||
{ name ? "${args.pname}-${args.version}"
|
{ name ? "${args.pname}-${args.version}"
|
||||||
, pname ? name
|
, pname ? name
|
||||||
@ -138,6 +138,8 @@ in stdenvNoCC.mkDerivation (args // {
|
|||||||
exclusions = dotnet-sdk.passthru.packages { fetchNuGet = attrs: attrs.pname; };
|
exclusions = dotnet-sdk.passthru.packages { fetchNuGet = attrs: attrs.pname; };
|
||||||
in writeScript "fetch-${pname}-deps" ''
|
in writeScript "fetch-${pname}-deps" ''
|
||||||
set -euo pipefail
|
set -euo pipefail
|
||||||
|
export PATH="${lib.makeBinPath [ coreutils dotnet-sdk nuget-to-nix ]}"
|
||||||
|
|
||||||
cd "$(dirname "''${BASH_SOURCE[0]}")"
|
cd "$(dirname "''${BASH_SOURCE[0]}")"
|
||||||
|
|
||||||
export HOME=$(mktemp -d)
|
export HOME=$(mktemp -d)
|
||||||
@ -157,7 +159,7 @@ in stdenvNoCC.mkDerivation (args // {
|
|||||||
mkdir -p "$HOME/nuget_pkgs"
|
mkdir -p "$HOME/nuget_pkgs"
|
||||||
|
|
||||||
for project in "${lib.concatStringsSep "\" \"" ((lib.toList projectFile) ++ lib.optionals (testProjectFile != "") (lib.toList testProjectFile))}"; do
|
for project in "${lib.concatStringsSep "\" \"" ((lib.toList projectFile) ++ lib.optionals (testProjectFile != "") (lib.toList testProjectFile))}"; do
|
||||||
${dotnet-sdk}/bin/dotnet restore "$project" \
|
dotnet restore "$project" \
|
||||||
${lib.optionalString (!enableParallelBuilding) "--disable-parallel"} \
|
${lib.optionalString (!enableParallelBuilding) "--disable-parallel"} \
|
||||||
-p:ContinuousIntegrationBuild=true \
|
-p:ContinuousIntegrationBuild=true \
|
||||||
-p:Deterministic=true \
|
-p:Deterministic=true \
|
||||||
@ -169,7 +171,7 @@ in stdenvNoCC.mkDerivation (args // {
|
|||||||
echo "${lib.concatStringsSep "\n" exclusions}" > "$HOME/package_exclusions"
|
echo "${lib.concatStringsSep "\n" exclusions}" > "$HOME/package_exclusions"
|
||||||
|
|
||||||
echo "Writing lockfile..."
|
echo "Writing lockfile..."
|
||||||
${nuget-to-nix}/bin/nuget-to-nix "$HOME/nuget_pkgs" "$HOME/package_exclusions" > "$deps_file"
|
nuget-to-nix "$HOME/nuget_pkgs" "$HOME/package_exclusions" > "$deps_file"
|
||||||
echo "Succesfully wrote lockfile to: $deps_file"
|
echo "Succesfully wrote lockfile to: $deps_file"
|
||||||
'';
|
'';
|
||||||
} // args.passthru or {};
|
} // args.passthru or {};
|
||||||
|
@ -1,25 +1,43 @@
|
|||||||
{ lib, stdenvNoCC, fetchFromGitHub, gtk3, gnome-icon-theme, hicolor-icon-theme }:
|
{ lib
|
||||||
|
, stdenvNoCC
|
||||||
|
, fetchFromGitHub
|
||||||
|
, gtk3
|
||||||
|
, adwaita-icon-theme
|
||||||
|
, breeze-icons
|
||||||
|
, gnome-icon-theme
|
||||||
|
, hicolor-icon-theme
|
||||||
|
, gitUpdater
|
||||||
|
}:
|
||||||
|
|
||||||
stdenvNoCC.mkDerivation rec {
|
stdenvNoCC.mkDerivation rec {
|
||||||
pname = "numix-icon-theme";
|
pname = "numix-icon-theme";
|
||||||
version = "21.10.31";
|
version = "22.08.16";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "numixproject";
|
owner = "numixproject";
|
||||||
repo = pname;
|
repo = pname;
|
||||||
rev = version;
|
rev = version;
|
||||||
sha256 = "sha256-wyVvXifdbKR2aiBMrki8y/H0khH4eFD1RHVSC+jAT28=";
|
sha256 = "sha256-EveIr5XYyQYhz0AqZQBql3j0LnD8taNdzB/6IV7Mz2k=";
|
||||||
};
|
};
|
||||||
|
|
||||||
nativeBuildInputs = [ gtk3 ];
|
nativeBuildInputs = [
|
||||||
|
gtk3
|
||||||
|
];
|
||||||
|
|
||||||
propagatedBuildInputs = [ gnome-icon-theme hicolor-icon-theme ];
|
propagatedBuildInputs = [
|
||||||
|
adwaita-icon-theme
|
||||||
|
breeze-icons
|
||||||
|
gnome-icon-theme
|
||||||
|
hicolor-icon-theme
|
||||||
|
];
|
||||||
|
|
||||||
dontDropIconThemeCache = true;
|
dontDropIconThemeCache = true;
|
||||||
|
|
||||||
installPhase = ''
|
installPhase = ''
|
||||||
runHook preInstall
|
runHook preInstall
|
||||||
|
|
||||||
|
substituteInPlace Numix/index.theme --replace Breeze breeze
|
||||||
|
|
||||||
mkdir -p $out/share/icons
|
mkdir -p $out/share/icons
|
||||||
cp -a Numix{,-Light} $out/share/icons/
|
cp -a Numix{,-Light} $out/share/icons/
|
||||||
|
|
||||||
@ -30,6 +48,8 @@ stdenvNoCC.mkDerivation rec {
|
|||||||
runHook postInstall
|
runHook postInstall
|
||||||
'';
|
'';
|
||||||
|
|
||||||
|
passthru.updateScript = gitUpdater { inherit pname version; };
|
||||||
|
|
||||||
meta = with lib; {
|
meta = with lib; {
|
||||||
description = "Numix icon theme";
|
description = "Numix icon theme";
|
||||||
homepage = "https://numixproject.github.io";
|
homepage = "https://numixproject.github.io";
|
||||||
|
@ -1,14 +1,31 @@
|
|||||||
{ lib, mkXfceDerivation, exo, gtk3, libsoup, libxfce4ui, libxfce4util, xfce4-panel, glib-networking }:
|
{ lib
|
||||||
|
, mkXfceDerivation
|
||||||
|
, exo
|
||||||
|
, glib-networking
|
||||||
|
, gtk3
|
||||||
|
, libsoup
|
||||||
|
, libxfce4ui
|
||||||
|
, libxfce4util
|
||||||
|
, xfce4-panel
|
||||||
|
}:
|
||||||
|
|
||||||
mkXfceDerivation {
|
mkXfceDerivation {
|
||||||
category = "apps";
|
category = "apps";
|
||||||
pname = "xfce4-screenshooter";
|
pname = "xfce4-screenshooter";
|
||||||
version = "1.9.10";
|
version = "1.9.11";
|
||||||
odd-unstable = false;
|
odd-unstable = false;
|
||||||
|
|
||||||
sha256 = "sha256-i3QdQij58JYv3fWdESUeTV0IW3A8RVGNtmuxUc6FUMg=";
|
sha256 = "sha256-sW0SEXypCcly7MlO9lnxHTkYwIiRt+gOME5UQ++Y3JQ=";
|
||||||
|
|
||||||
buildInputs = [ exo gtk3 libsoup libxfce4ui libxfce4util xfce4-panel glib-networking ];
|
buildInputs = [
|
||||||
|
exo
|
||||||
|
glib-networking
|
||||||
|
gtk3
|
||||||
|
libsoup
|
||||||
|
libxfce4ui
|
||||||
|
libxfce4util
|
||||||
|
xfce4-panel
|
||||||
|
];
|
||||||
|
|
||||||
meta = with lib; {
|
meta = with lib; {
|
||||||
description = "Screenshot utility for the Xfce desktop";
|
description = "Screenshot utility for the Xfce desktop";
|
||||||
|
@ -18,11 +18,10 @@
|
|||||||
mkXfceDerivation {
|
mkXfceDerivation {
|
||||||
category = "apps";
|
category = "apps";
|
||||||
pname = "xfdashboard";
|
pname = "xfdashboard";
|
||||||
version = "0.9.5";
|
version = "1.0.0";
|
||||||
rev-prefix = "";
|
rev-prefix = "";
|
||||||
odd-unstable = false;
|
|
||||||
|
|
||||||
sha256 = "sha256-nb1zY78MUjEOJF59MYIOY1rxo3JFmzH9yTJVUGsOwOA=";
|
sha256 = "sha256-iC41I0u9id9irUNyjuvRRzSldF3dzRYkaxb/fgptnq4=";
|
||||||
|
|
||||||
buildInputs = [
|
buildInputs = [
|
||||||
clutter
|
clutter
|
||||||
|
@ -14,9 +14,9 @@
|
|||||||
mkXfceDerivation {
|
mkXfceDerivation {
|
||||||
category = "xfce";
|
category = "xfce";
|
||||||
pname = "tumbler";
|
pname = "tumbler";
|
||||||
version = "4.16.0";
|
version = "4.16.1";
|
||||||
|
|
||||||
sha256 = "sha256-JLcmYjStF9obDoRHsxnZ1e9HPTeJUVKjnn5Ip1BBmPw=";
|
sha256 = "sha256-f2pCItNHTB0ggovIddpwNWEhaohfxD2otN8x9VfwR4k=";
|
||||||
|
|
||||||
buildInputs = [
|
buildInputs = [
|
||||||
ffmpegthumbnailer
|
ffmpegthumbnailer
|
||||||
|
@ -11,8 +11,8 @@
|
|||||||
let
|
let
|
||||||
version = {
|
version = {
|
||||||
feature = "17";
|
feature = "17";
|
||||||
interim = ".0.3";
|
interim = ".0.4";
|
||||||
build = "7";
|
build = "8";
|
||||||
};
|
};
|
||||||
|
|
||||||
openjdk = stdenv.mkDerivation {
|
openjdk = stdenv.mkDerivation {
|
||||||
@ -23,7 +23,7 @@ let
|
|||||||
owner = "openjdk";
|
owner = "openjdk";
|
||||||
repo = "jdk${version.feature}u";
|
repo = "jdk${version.feature}u";
|
||||||
rev = "jdk-${version.feature}${version.interim}+${version.build}";
|
rev = "jdk-${version.feature}${version.interim}+${version.build}";
|
||||||
sha256 = "qxiKz8HCNZXFdfgfiA16q5z0S65cZE/u7e+QxLlplWo=";
|
sha256 = "drbljLz82ZyK29lIDLPqCkwqpBdgU/7zCTZ0ceeb1SI=";
|
||||||
};
|
};
|
||||||
|
|
||||||
nativeBuildInputs = [ pkg-config autoconf unzip ];
|
nativeBuildInputs = [ pkg-config autoconf unzip ];
|
||||||
|
@ -2,11 +2,11 @@
|
|||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
pname = "ldns";
|
pname = "ldns";
|
||||||
version = "1.8.1";
|
version = "1.8.3";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "https://www.nlnetlabs.nl/downloads/ldns/${pname}-${version}.tar.gz";
|
url = "https://www.nlnetlabs.nl/downloads/ldns/${pname}-${version}.tar.gz";
|
||||||
sha256 = "sha256-lYIpq85NOqoZp1wNEnZmVksXIWkCGG6VLKSu9Hxtf6M=";
|
sha256 = "sha256-w/ct0QNrKQfjpW5qz537LlUSVrPBu9l4eULe7rcOeGA=";
|
||||||
};
|
};
|
||||||
|
|
||||||
postPatch = ''
|
postPatch = ''
|
||||||
|
@ -15,13 +15,13 @@
|
|||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
pname = "libyang";
|
pname = "libyang";
|
||||||
version = "2.0.194";
|
version = "2.0.231";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "CESNET";
|
owner = "CESNET";
|
||||||
repo = "libyang";
|
repo = "libyang";
|
||||||
rev = "v${version}";
|
rev = "v${version}";
|
||||||
sha256 = "sha256-5dgSBXJIeGXT+jGqT2MFqtsEFcIn+ULjybnyXz+95Gk=";
|
sha256 = "sha256-IntucM8ABJsJNH7XnZ59McwmfSIimclrWzSz4NKdMrE=";
|
||||||
};
|
};
|
||||||
|
|
||||||
nativeBuildInputs = [
|
nativeBuildInputs = [
|
||||||
|
@ -88,11 +88,11 @@ stdenv.mkDerivation rec {
|
|||||||
];
|
];
|
||||||
dontWrapQtApps = true; # no binaries
|
dontWrapQtApps = true; # no binaries
|
||||||
|
|
||||||
buildInputs = [ clhep libGLU xlibsWrapper libXmu ]
|
buildInputs = [ libGLU xlibsWrapper libXmu ]
|
||||||
++ lib.optionals enableInventor [ libXpm coin3d soxt motif ]
|
++ lib.optionals enableInventor [ libXpm coin3d soxt motif ]
|
||||||
++ lib.optionals enablePython [ boost_python python3 ];
|
++ lib.optionals enablePython [ boost_python python3 ];
|
||||||
|
|
||||||
propagatedBuildInputs = [ expat xercesc zlib libGL ]
|
propagatedBuildInputs = [ clhep expat xercesc zlib libGL ]
|
||||||
++ lib.optionals enableXM [ motif ]
|
++ lib.optionals enableXM [ motif ]
|
||||||
++ lib.optionals enableQt [ qtbase ];
|
++ lib.optionals enableQt [ qtbase ];
|
||||||
|
|
||||||
|
30
pkgs/development/libraries/spectra/default.nix
Normal file
30
pkgs/development/libraries/spectra/default.nix
Normal file
@ -0,0 +1,30 @@
|
|||||||
|
{ lib
|
||||||
|
, stdenv
|
||||||
|
, fetchFromGitHub
|
||||||
|
, cmake
|
||||||
|
, eigen
|
||||||
|
}:
|
||||||
|
|
||||||
|
stdenv.mkDerivation rec {
|
||||||
|
pname = "spectra";
|
||||||
|
version = "1.0.1";
|
||||||
|
|
||||||
|
src = fetchFromGitHub {
|
||||||
|
owner = "yixuan";
|
||||||
|
repo = pname;
|
||||||
|
rev = "v${version}";
|
||||||
|
sha256 = "sha256-HaJmMo4jYmO/j53/nHrL3bvdQMAvp4Nuhhe8Yc7pL88=";
|
||||||
|
};
|
||||||
|
|
||||||
|
nativeBuildInputs = [ cmake ];
|
||||||
|
|
||||||
|
propagatedBuildInputs = [ eigen ];
|
||||||
|
|
||||||
|
meta = with lib; {
|
||||||
|
homepage = "https://spectralib.org/";
|
||||||
|
description = "A C++ library for large scale eigenvalue problems, built on top of Eigen";
|
||||||
|
license = licenses.mpl20;
|
||||||
|
maintainers = with maintainers; [ vonfry ];
|
||||||
|
platforms = platforms.unix;
|
||||||
|
};
|
||||||
|
}
|
@ -20,14 +20,14 @@
|
|||||||
|
|
||||||
buildPythonPackage rec {
|
buildPythonPackage rec {
|
||||||
pname = "asdf";
|
pname = "asdf";
|
||||||
version = "2.12.0";
|
version = "2.12.1";
|
||||||
format = "pyproject";
|
format = "pyproject";
|
||||||
|
|
||||||
disabled = pythonOlder "3.7";
|
disabled = pythonOlder "3.7";
|
||||||
|
|
||||||
src = fetchPypi {
|
src = fetchPypi {
|
||||||
inherit pname version;
|
inherit pname version;
|
||||||
hash = "sha256-WRSDTQd7o79ouar9xka58nzl5W4cJBFn1GHe5DsQI+k=";
|
hash = "sha256-0qXRYWXKC17JiL1D+jjuGVoOGAJuGbJje7OZyd2k3o8=";
|
||||||
};
|
};
|
||||||
|
|
||||||
nativeBuildInputs = [
|
nativeBuildInputs = [
|
||||||
|
@ -3,27 +3,27 @@
|
|||||||
, numpy
|
, numpy
|
||||||
, scipy
|
, scipy
|
||||||
, pyamg
|
, pyamg
|
||||||
, pysparse
|
|
||||||
, future
|
, future
|
||||||
, matplotlib
|
, matplotlib
|
||||||
, tkinter
|
, tkinter
|
||||||
, mpi4py
|
, mpi4py
|
||||||
, scikit-fmm
|
, scikit-fmm
|
||||||
, isPy27
|
|
||||||
, gmsh
|
, gmsh
|
||||||
, python
|
, python
|
||||||
, stdenv
|
, stdenv
|
||||||
, openssh
|
, openssh
|
||||||
, fetchurl
|
, fetchFromGitHub
|
||||||
}:
|
}:
|
||||||
|
|
||||||
buildPythonPackage rec {
|
buildPythonPackage rec {
|
||||||
pname = "fipy";
|
pname = "fipy";
|
||||||
version = "3.4.2.1";
|
version = "3.4.3";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchFromGitHub {
|
||||||
url = "https://github.com/usnistgov/fipy/releases/download/${version}/FiPy-${version}.tar.gz";
|
owner = "usnistgov";
|
||||||
sha256 = "0v5yk9b4hksy3176w4vm4gagb9kxqgv75zcyswlqvl371qwy1grk";
|
repo = "fipy";
|
||||||
|
rev = version;
|
||||||
|
sha256 = "sha256-oTg/5fGXqknWBh1ShdAOdOwX7lVDieIoM5aALcOWFqY=";
|
||||||
};
|
};
|
||||||
|
|
||||||
propagatedBuildInputs = [
|
propagatedBuildInputs = [
|
||||||
@ -36,14 +36,7 @@ buildPythonPackage rec {
|
|||||||
future
|
future
|
||||||
scikit-fmm
|
scikit-fmm
|
||||||
openssh
|
openssh
|
||||||
] ++ lib.optionals isPy27 [ pysparse ]
|
] ++ lib.optionals (!stdenv.isDarwin) [ gmsh ];
|
||||||
++ lib.optionals (!stdenv.isDarwin) [ gmsh ];
|
|
||||||
|
|
||||||
# Reading version string from Gmsh is broken in latest release of FiPy
|
|
||||||
# This issue is repaired on master branch of FiPy
|
|
||||||
# Fixed with: https://github.com/usnistgov/fipy/pull/848/files
|
|
||||||
# Remove patch with next release.
|
|
||||||
patches = [ ./gmsh.patch ];
|
|
||||||
|
|
||||||
checkInputs = lib.optionals (!stdenv.isDarwin) [ gmsh ];
|
checkInputs = lib.optionals (!stdenv.isDarwin) [ gmsh ];
|
||||||
|
|
||||||
@ -52,6 +45,8 @@ buildPythonPackage rec {
|
|||||||
${python.interpreter} setup.py test --modules
|
${python.interpreter} setup.py test --modules
|
||||||
'';
|
'';
|
||||||
|
|
||||||
|
pythonImportsCheck = [ "fipy" ];
|
||||||
|
|
||||||
meta = with lib; {
|
meta = with lib; {
|
||||||
homepage = "https://www.ctcms.nist.gov/fipy/";
|
homepage = "https://www.ctcms.nist.gov/fipy/";
|
||||||
description = "A Finite Volume PDE Solver Using Python";
|
description = "A Finite Volume PDE Solver Using Python";
|
||||||
|
@ -1,182 +0,0 @@
|
|||||||
diff --git a/fipy/meshes/gmshMesh.py b/fipy/meshes/gmshMesh.py
|
|
||||||
index fc3ff6c8..d529d532 100755
|
|
||||||
--- a/fipy/meshes/gmshMesh.py
|
|
||||||
+++ b/fipy/meshes/gmshMesh.py
|
|
||||||
@@ -13,11 +13,11 @@ import sys
|
|
||||||
import tempfile
|
|
||||||
from textwrap import dedent
|
|
||||||
import warnings
|
|
||||||
-from distutils.version import StrictVersion
|
|
||||||
|
|
||||||
from fipy.tools import numerix as nx
|
|
||||||
from fipy.tools import parallelComm
|
|
||||||
from fipy.tools import serialComm
|
|
||||||
+from fipy.tools.version import Version, parse_version
|
|
||||||
from fipy.tests.doctestPlus import register_skipper
|
|
||||||
|
|
||||||
from fipy.meshes.mesh import Mesh
|
|
||||||
@@ -38,7 +38,7 @@ def _checkForGmsh():
|
|
||||||
hasGmsh = True
|
|
||||||
try:
|
|
||||||
version = _gmshVersion(communicator=parallelComm)
|
|
||||||
- hasGmsh = version >= StrictVersion("2.0")
|
|
||||||
+ hasGmsh = version >= Version("2.0")
|
|
||||||
except Exception:
|
|
||||||
hasGmsh = False
|
|
||||||
return hasGmsh
|
|
||||||
@@ -68,6 +68,7 @@ def gmshVersion(communicator=parallelComm):
|
|
||||||
while True:
|
|
||||||
try:
|
|
||||||
# gmsh returns version in stderr (Why?!?)
|
|
||||||
+ # (newer versions of gmsh return the version in stdout)
|
|
||||||
# spyder on Windows throws
|
|
||||||
# OSError: [WinError 6] The handle is invalid
|
|
||||||
# if we don't PIPE stdout, too
|
|
||||||
@@ -77,8 +78,11 @@ def gmshVersion(communicator=parallelComm):
|
|
||||||
break
|
|
||||||
|
|
||||||
try:
|
|
||||||
- out, verStr = p.communicate()
|
|
||||||
- verStr = verStr.decode('ascii').strip()
|
|
||||||
+ out, err = p.communicate()
|
|
||||||
+ verStr = err.decode('ascii').strip()
|
|
||||||
+ if not verStr:
|
|
||||||
+ # newer versions of gmsh return the version in stdout
|
|
||||||
+ verStr = out.decode('ascii').strip()
|
|
||||||
break
|
|
||||||
except IOError:
|
|
||||||
# some weird conflict with things like PyQT can cause
|
|
||||||
@@ -93,12 +97,12 @@ def gmshVersion(communicator=parallelComm):
|
|
||||||
def _gmshVersion(communicator=parallelComm):
|
|
||||||
version = gmshVersion(communicator) or "0.0"
|
|
||||||
try:
|
|
||||||
- version = StrictVersion(version)
|
|
||||||
+ version = parse_version(version)
|
|
||||||
except ValueError:
|
|
||||||
# gmsh returns the version string in stderr,
|
|
||||||
# which means it's often unparsable due to irrelevant warnings
|
|
||||||
# assume it's OK and move on
|
|
||||||
- version = StrictVersion("3.0")
|
|
||||||
+ version = Version("3.0")
|
|
||||||
|
|
||||||
return version
|
|
||||||
|
|
||||||
@@ -133,7 +137,7 @@ def openMSHFile(name, dimensions=None, coordDimensions=None, communicator=parall
|
|
||||||
|
|
||||||
# Enforce gmsh version to be either >= 2 or 2.5, based on Nproc.
|
|
||||||
version = _gmshVersion(communicator=communicator)
|
|
||||||
- if version < StrictVersion("2.0"):
|
|
||||||
+ if version < Version("2.0"):
|
|
||||||
raise EnvironmentError("Gmsh version must be >= 2.0.")
|
|
||||||
|
|
||||||
# If we're being passed a .msh file, leave it be. Otherwise,
|
|
||||||
@@ -176,9 +180,11 @@ def openMSHFile(name, dimensions=None, coordDimensions=None, communicator=parall
|
|
||||||
gmshFlags = ["-%d" % dimensions, "-nopopup"]
|
|
||||||
|
|
||||||
if communicator.Nproc > 1:
|
|
||||||
- if not (StrictVersion("2.5") < version <= StrictVersion("4.0")):
|
|
||||||
- warnstr = "Cannot partition with Gmsh version < 2.5 or >= 4.0. " \
|
|
||||||
- + "Reverting to serial."
|
|
||||||
+ if ((version < Version("2.5"))
|
|
||||||
+ or (Version("4.0") <= version < Version("4.5.2"))):
|
|
||||||
+ warnstr = ("Cannot partition with Gmsh version < 2.5 "
|
|
||||||
+ "or 4.0 <= version < 4.5.2. "
|
|
||||||
+ "Reverting to serial.")
|
|
||||||
warnings.warn(warnstr, RuntimeWarning, stacklevel=2)
|
|
||||||
communicator = serialComm
|
|
||||||
|
|
||||||
@@ -188,13 +194,13 @@ def openMSHFile(name, dimensions=None, coordDimensions=None, communicator=parall
|
|
||||||
raise ValueError("'dimensions' must be specified to generate a mesh from a geometry script")
|
|
||||||
else: # gmsh version is adequate for partitioning
|
|
||||||
gmshFlags += ["-part", "%d" % communicator.Nproc]
|
|
||||||
- if version >= StrictVersion("4.0"):
|
|
||||||
+ if version >= Version("4.0"):
|
|
||||||
# Gmsh 4.x needs to be told to generate ghost cells
|
|
||||||
- # Unfortunately, the ghosts are broken
|
|
||||||
+ # Unfortunately, the ghosts are broken in Gmsh 4.0--4.5.1
|
|
||||||
# https://gitlab.onelab.info/gmsh/gmsh/issues/733
|
|
||||||
gmshFlags += ["-part_ghosts"]
|
|
||||||
|
|
||||||
- gmshFlags += ["-format", "msh2"]
|
|
||||||
+ gmshFlags += ["-format", "msh2", "-smooth", "8"]
|
|
||||||
|
|
||||||
if background is not None:
|
|
||||||
if communicator.procID == 0:
|
|
||||||
@@ -1387,6 +1393,11 @@ class _GmshTopology(_MeshTopology):
|
|
||||||
class Gmsh2D(Mesh2D):
|
|
||||||
"""Construct a 2D Mesh using Gmsh
|
|
||||||
|
|
||||||
+ If called in parallel, the mesh will be partitioned based on the value
|
|
||||||
+ of `parallelComm.Nproc`. If an `MSH` file is supplied, it must have
|
|
||||||
+ been previously partitioned with the number of partitions matching
|
|
||||||
+ `parallelComm.Nproc`.
|
|
||||||
+
|
|
||||||
>>> radius = 5.
|
|
||||||
>>> side = 4.
|
|
||||||
>>> squaredCircle = Gmsh2D('''
|
|
||||||
@@ -1875,6 +1886,11 @@ class Gmsh2D(Mesh2D):
|
|
||||||
class Gmsh2DIn3DSpace(Gmsh2D):
|
|
||||||
"""Create a topologically 2D Mesh in 3D coordinates using Gmsh
|
|
||||||
|
|
||||||
+ If called in parallel, the mesh will be partitioned based on the value
|
|
||||||
+ of `parallelComm.Nproc`. If an `MSH` file is supplied, it must have
|
|
||||||
+ been previously partitioned with the number of partitions matching
|
|
||||||
+ `parallelComm.Nproc`.
|
|
||||||
+
|
|
||||||
Parameters
|
|
||||||
----------
|
|
||||||
arg : str
|
|
||||||
@@ -1959,6 +1975,11 @@ class Gmsh2DIn3DSpace(Gmsh2D):
|
|
||||||
class Gmsh3D(Mesh):
|
|
||||||
"""Create a 3D Mesh using Gmsh
|
|
||||||
|
|
||||||
+ If called in parallel, the mesh will be partitioned based on the value
|
|
||||||
+ of `parallelComm.Nproc`. If an `MSH` file is supplied, it must have
|
|
||||||
+ been previously partitioned with the number of partitions matching
|
|
||||||
+ `parallelComm.Nproc`.
|
|
||||||
+
|
|
||||||
Parameters
|
|
||||||
----------
|
|
||||||
arg : str
|
|
||||||
@@ -2225,7 +2246,7 @@ class GmshGrid2D(Gmsh2D):
|
|
||||||
width = nx * dx
|
|
||||||
numLayers = int(ny / float(dy))
|
|
||||||
|
|
||||||
- if _gmshVersion() < StrictVersion("2.7"):
|
|
||||||
+ if _gmshVersion() < Version("2.7"):
|
|
||||||
# kludge: must offset cellSize by `eps` to work properly
|
|
||||||
eps = float(dx)/(nx * 10)
|
|
||||||
else:
|
|
||||||
@@ -2299,7 +2320,7 @@ class GmshGrid3D(Gmsh3D):
|
|
||||||
width = nx * dx
|
|
||||||
depth = nz * dz
|
|
||||||
|
|
||||||
- if _gmshVersion() < StrictVersion("2.7"):
|
|
||||||
+ if _gmshVersion() < Version("2.7"):
|
|
||||||
# kludge: must offset cellSize by `eps` to work properly
|
|
||||||
eps = float(dx)/(nx * 10)
|
|
||||||
else:
|
|
||||||
diff --git a/fipy/tools/version.py b/fipy/tools/version.py
|
|
||||||
new file mode 100644
|
|
||||||
index 00000000..93d89c18
|
|
||||||
--- /dev/null
|
|
||||||
+++ b/fipy/tools/version.py
|
|
||||||
@@ -0,0 +1,18 @@
|
|
||||||
+"""Shim for version checking
|
|
||||||
+
|
|
||||||
+`distutils.version` is deprecated, but `packaging.version` is unavailable
|
|
||||||
+in Python 2.7
|
|
||||||
+"""
|
|
||||||
+from __future__ import unicode_literals
|
|
||||||
+
|
|
||||||
+__docformat__ = 'restructuredtext'
|
|
||||||
+
|
|
||||||
+
|
|
||||||
+__all__ = ["Version", "parse_version"]
|
|
||||||
+from future.utils import text_to_native_str
|
|
||||||
+__all__ = [text_to_native_str(n) for n in __all__]
|
|
||||||
+
|
|
||||||
+try:
|
|
||||||
+ from packaging.version import Version, parse as parse_version
|
|
||||||
+except ImportError:
|
|
||||||
+ from distutils.version import StrictVersion as Version, StrictVersion as parse_version
|
|
@ -1,8 +1,8 @@
|
|||||||
{ lib
|
{ lib
|
||||||
, buildPythonPackage
|
, buildPythonPackage
|
||||||
, fetchFromGitHub
|
, fetchPypi
|
||||||
, python
|
|
||||||
, notebook
|
, notebook
|
||||||
|
, notebook-shim
|
||||||
, pythonOlder
|
, pythonOlder
|
||||||
, jupyter_server
|
, jupyter_server
|
||||||
, pytestCheckHook
|
, pytestCheckHook
|
||||||
@ -14,23 +14,13 @@ buildPythonPackage rec {
|
|||||||
version = "0.4.3";
|
version = "0.4.3";
|
||||||
disabled = pythonOlder "3.6";
|
disabled = pythonOlder "3.6";
|
||||||
|
|
||||||
# tests only on github
|
src = fetchPypi {
|
||||||
src = fetchFromGitHub {
|
inherit pname version;
|
||||||
owner = "jupyterlab";
|
sha256 = "sha256-8DERss66ppuINwp7I7GbKzfJu3F2fxgozf16BH6ujt0=";
|
||||||
repo = pname;
|
|
||||||
rev = "refs/tags/v${version}";
|
|
||||||
sha256 = "sha256-5sof5EOqzK7kNHSXp7eJl3ZagZRWF74e08ahqJId2Z8=";
|
|
||||||
};
|
};
|
||||||
|
|
||||||
propagatedBuildInputs = [ jupyter_server notebook ];
|
propagatedBuildInputs = [ jupyter_server notebook notebook-shim ];
|
||||||
|
|
||||||
preCheck = ''
|
|
||||||
cd nbclassic
|
|
||||||
mv conftest.py tests
|
|
||||||
cd tests
|
|
||||||
|
|
||||||
export PYTHONPATH=$out/${python.sitePackages}:$PYTHONPATH
|
|
||||||
'';
|
|
||||||
checkInputs = [
|
checkInputs = [
|
||||||
pytestCheckHook
|
pytestCheckHook
|
||||||
pytest-tornasync
|
pytest-tornasync
|
||||||
|
48
pkgs/development/python-modules/notebook-shim/default.nix
Normal file
48
pkgs/development/python-modules/notebook-shim/default.nix
Normal file
@ -0,0 +1,48 @@
|
|||||||
|
{ lib
|
||||||
|
, buildPythonPackage
|
||||||
|
, fetchFromGitHub
|
||||||
|
, jupyter_server
|
||||||
|
, pytestCheckHook
|
||||||
|
, pytest-tornasync
|
||||||
|
}:
|
||||||
|
|
||||||
|
buildPythonPackage rec {
|
||||||
|
pname = "notebook-shim";
|
||||||
|
version = "0.1.0";
|
||||||
|
|
||||||
|
src = fetchFromGitHub {
|
||||||
|
owner = "jupyter";
|
||||||
|
repo = "notebook_shim";
|
||||||
|
rev = "v${version}";
|
||||||
|
sha256 = "sha256-5oIYj8SdC4E0N/yFxsmD2p4VkStHvqrVqAwb/htyPm4=";
|
||||||
|
};
|
||||||
|
|
||||||
|
propagatedBuildInputs = [ jupyter_server ];
|
||||||
|
|
||||||
|
preCheck = ''
|
||||||
|
mv notebook_shim/conftest.py notebook_shim/tests
|
||||||
|
cd notebook_shim/tests
|
||||||
|
'';
|
||||||
|
|
||||||
|
# TODO: understand & possibly fix why tests fail. On github most testfiles
|
||||||
|
# have been comitted with msgs "wip" though.
|
||||||
|
doCheck = false;
|
||||||
|
|
||||||
|
checkInputs = [
|
||||||
|
pytestCheckHook
|
||||||
|
pytest-tornasync
|
||||||
|
];
|
||||||
|
|
||||||
|
pythonImportsCheck = [ "notebook_shim" ];
|
||||||
|
|
||||||
|
meta = with lib; {
|
||||||
|
description = "Switch frontends to Jupyter Server";
|
||||||
|
longDescription = ''
|
||||||
|
This project provides a way for JupyterLab and other frontends to switch
|
||||||
|
to Jupyter Server for their Python Web application backend.
|
||||||
|
'';
|
||||||
|
homepage = "https://github.com/jupyter/notebook_shim";
|
||||||
|
license = licenses.bsd3;
|
||||||
|
maintainers = with maintainers; [ friedelino ];
|
||||||
|
};
|
||||||
|
}
|
@ -20,8 +20,6 @@ buildPythonPackage rec {
|
|||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "KimiNewt";
|
owner = "KimiNewt";
|
||||||
repo = pname;
|
repo = pname;
|
||||||
# 0.4.5 was the last release which was tagged
|
|
||||||
# https://github.com/KimiNewt/pyshark/issues/541
|
|
||||||
rev = "refs/tags/v${version}";
|
rev = "refs/tags/v${version}";
|
||||||
hash = "sha256-byll2GWY2841AAf8Xh+KfaCOtMGVKabTsLCe3gCdZ1o=";
|
hash = "sha256-byll2GWY2841AAf8Xh+KfaCOtMGVKabTsLCe3gCdZ1o=";
|
||||||
};
|
};
|
||||||
@ -36,7 +34,7 @@ buildPythonPackage rec {
|
|||||||
];
|
];
|
||||||
|
|
||||||
preCheck = ''
|
preCheck = ''
|
||||||
export HOME=$TMPDIR
|
export HOME=$(mktemp -d)
|
||||||
'';
|
'';
|
||||||
|
|
||||||
checkInputs = [
|
checkInputs = [
|
||||||
|
49
pkgs/development/tools/clickable/default.nix
Normal file
49
pkgs/development/tools/clickable/default.nix
Normal file
@ -0,0 +1,49 @@
|
|||||||
|
{ lib
|
||||||
|
, fetchFromGitLab
|
||||||
|
, buildPythonPackage
|
||||||
|
, cookiecutter
|
||||||
|
, requests
|
||||||
|
, pyyaml
|
||||||
|
, jsonschema
|
||||||
|
, argcomplete
|
||||||
|
, pytestCheckHook
|
||||||
|
}:
|
||||||
|
|
||||||
|
buildPythonPackage rec {
|
||||||
|
pname = "clickable";
|
||||||
|
version = "7.4.0";
|
||||||
|
|
||||||
|
src = fetchFromGitLab {
|
||||||
|
owner = "clickable";
|
||||||
|
repo = "clickable";
|
||||||
|
rev = "v${version}";
|
||||||
|
sha256 = "sha256-QS7vi0gUQbqqRYkZwD2B+zkt6DQ6AamQO7sihD8qWS0=";
|
||||||
|
};
|
||||||
|
|
||||||
|
propagatedBuildInputs = [
|
||||||
|
cookiecutter
|
||||||
|
requests
|
||||||
|
pyyaml
|
||||||
|
jsonschema
|
||||||
|
argcomplete
|
||||||
|
];
|
||||||
|
|
||||||
|
checkInputs = [ pytestCheckHook ];
|
||||||
|
|
||||||
|
disabledTests = [
|
||||||
|
# Test require network connection
|
||||||
|
"test_cpp_plugin"
|
||||||
|
"test_html"
|
||||||
|
"test_python"
|
||||||
|
"test_qml_only"
|
||||||
|
"test_rust"
|
||||||
|
];
|
||||||
|
|
||||||
|
meta = {
|
||||||
|
description = "A build system for Ubuntu Touch apps";
|
||||||
|
homepage = "https://clickable-ut.dev";
|
||||||
|
changelog = "https://clickable-ut.dev/en/latest/changelog.html";
|
||||||
|
license = lib.licenses.gpl3Only;
|
||||||
|
maintainers = with lib.maintainers; [ ilyakooo0 ];
|
||||||
|
};
|
||||||
|
}
|
@ -2,16 +2,16 @@
|
|||||||
|
|
||||||
buildGoModule rec {
|
buildGoModule rec {
|
||||||
pname = "dagger";
|
pname = "dagger";
|
||||||
version = "0.2.29";
|
version = "0.2.30";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "dagger";
|
owner = "dagger";
|
||||||
repo = "dagger";
|
repo = "dagger";
|
||||||
rev = "v${version}";
|
rev = "v${version}";
|
||||||
sha256 = "sha256-IfsBrsArP5PoznepNPr7ARVJWuDnFJaiSDMm8NjaLVY=";
|
sha256 = "sha256-D/BamTjhAopoiQoEa9rqk25sGU7ZTTkze/tIKICTx5o=";
|
||||||
};
|
};
|
||||||
|
|
||||||
vendorSha256 = "sha256-e++fNcgdQUPnbKVx7ncuf7NGc8eVdli5/rB7Jw+D/Ds=";
|
vendorSha256 = "sha256-IOLZ15Mr+IGWIE4nvMOyjbtYBYOhDMXFYFbOp8beD5w=";
|
||||||
|
|
||||||
subPackages = [
|
subPackages = [
|
||||||
"cmd/dagger"
|
"cmd/dagger"
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
buildGoModule rec {
|
buildGoModule rec {
|
||||||
pname = "doctl";
|
pname = "doctl";
|
||||||
version = "1.78.0";
|
version = "1.79.0";
|
||||||
|
|
||||||
vendorSha256 = null;
|
vendorSha256 = null;
|
||||||
|
|
||||||
@ -31,7 +31,7 @@ buildGoModule rec {
|
|||||||
owner = "digitalocean";
|
owner = "digitalocean";
|
||||||
repo = "doctl";
|
repo = "doctl";
|
||||||
rev = "v${version}";
|
rev = "v${version}";
|
||||||
sha256 = "sha256-mbUGfAqKC8g2K9pPNnXrpa7DmJUeGXs0KFaavDRMXdc=";
|
sha256 = "sha256-0tl79nVvnY2KECrfgEXQ8tOHnwEX+34uiJ/jshK5oFA=";
|
||||||
};
|
};
|
||||||
|
|
||||||
meta = with lib; {
|
meta = with lib; {
|
||||||
|
@ -11,7 +11,7 @@
|
|||||||
|
|
||||||
let
|
let
|
||||||
pname = "dump_syms";
|
pname = "dump_syms";
|
||||||
version = "1.0.1";
|
version = "2.0.0";
|
||||||
in
|
in
|
||||||
rustPlatform.buildRustPackage {
|
rustPlatform.buildRustPackage {
|
||||||
inherit pname version;
|
inherit pname version;
|
||||||
@ -20,10 +20,10 @@ rustPlatform.buildRustPackage {
|
|||||||
owner = "mozilla";
|
owner = "mozilla";
|
||||||
repo = pname;
|
repo = pname;
|
||||||
rev = "v${version}";
|
rev = "v${version}";
|
||||||
hash = "sha256-2OSni0PA0LfamOqdFQTRLgolF55z13owgFrqYYHuNX0=";
|
hash = "sha256-ei/ORKKoh9rQg4xZ5j76qaplw1PyEV7ABkyL7e8WIlQ=";
|
||||||
};
|
};
|
||||||
|
|
||||||
cargoSha256 = "sha256-ggJWweulbSJ8Femzv7uHLcrn1HTenw79AYIydE6y4ag=";
|
cargoSha256 = "sha256-t3AQW0j/L/qIUx6RJKqf+Fv/2BNWkWmTc0PDNFlZeaQ=";
|
||||||
|
|
||||||
nativeBuildInputs = [
|
nativeBuildInputs = [
|
||||||
pkg-config
|
pkg-config
|
||||||
|
@ -2,13 +2,13 @@
|
|||||||
|
|
||||||
buildGoModule rec {
|
buildGoModule rec {
|
||||||
pname = "flyctl";
|
pname = "flyctl";
|
||||||
version = "0.0.372";
|
version = "0.0.374";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "superfly";
|
owner = "superfly";
|
||||||
repo = "flyctl";
|
repo = "flyctl";
|
||||||
rev = "v${version}";
|
rev = "v${version}";
|
||||||
sha256 = "sha256-KsSaBzAjiexyhUmYEFEHhWuRROt553Lhkm1idlT8n5s=";
|
sha256 = "sha256-rudTGh4l0wroag0yp2YU8h5NTq+noC3bjbisyP47ktI=";
|
||||||
};
|
};
|
||||||
|
|
||||||
vendorSha256 = "sha256-E6QeWu88MXMMfZAM7vMIGXpJQuduX6GTj3tXvlE9hFo=";
|
vendorSha256 = "sha256-E6QeWu88MXMMfZAM7vMIGXpJQuduX6GTj3tXvlE9hFo=";
|
||||||
@ -42,6 +42,7 @@ buildGoModule rec {
|
|||||||
--bash <($out/bin/flyctl completion bash) \
|
--bash <($out/bin/flyctl completion bash) \
|
||||||
--fish <($out/bin/flyctl completion fish) \
|
--fish <($out/bin/flyctl completion fish) \
|
||||||
--zsh <($out/bin/flyctl completion zsh)
|
--zsh <($out/bin/flyctl completion zsh)
|
||||||
|
ln -s $out/bin/flyctl $out/bin/fly
|
||||||
'';
|
'';
|
||||||
|
|
||||||
passthru.tests.version = testers.testVersion {
|
passthru.tests.version = testers.testVersion {
|
||||||
|
@ -2,16 +2,16 @@
|
|||||||
|
|
||||||
buildGoModule rec {
|
buildGoModule rec {
|
||||||
pname = "copilot-cli";
|
pname = "copilot-cli";
|
||||||
version = "1.20.0";
|
version = "1.21.0";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "aws";
|
owner = "aws";
|
||||||
repo = pname;
|
repo = pname;
|
||||||
rev = "v${version}";
|
rev = "v${version}";
|
||||||
sha256 = "sha256-l6XFaM5eShXrpuZgTfzceNu8U7Z5WnKBi/qoimj/8HM=";
|
sha256 = "sha256-zGmb3EvWkGGJuq9R3GWEfHZvFn7DMC6B6Onk06mFiWI=";
|
||||||
};
|
};
|
||||||
|
|
||||||
vendorSha256 = "sha256-AXwiccfSxeX0NDIODEK+JvVjhcBNNpnZnLKGlDPWy48=";
|
vendorSha256 = "sha256-8avzCfCBSVLsWUgBBiD4pYTWrd2X2rdruU5v+AJ3EKY=";
|
||||||
|
|
||||||
nativeBuildInputs = [ installShellFiles ];
|
nativeBuildInputs = [ installShellFiles ];
|
||||||
|
|
||||||
|
@ -6,13 +6,13 @@
|
|||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
pname = "vtm";
|
pname = "vtm";
|
||||||
version = "0.7.6";
|
version = "0.8.0";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "netxs-group";
|
owner = "netxs-group";
|
||||||
repo = "vtm";
|
repo = "vtm";
|
||||||
rev = "v${version}";
|
rev = "v${version}";
|
||||||
sha256 = "sha256-YAS/HcgtA4Ms8EB7RRCg6ElBL4aI/FqXjqymHy/voRs=";
|
sha256 = "sha256-Ty7DC4ap2F+mPzr1xaL8XeLSjQaQQVX0oGAcPpkoag4=";
|
||||||
};
|
};
|
||||||
|
|
||||||
nativeBuildInputs = [ cmake ];
|
nativeBuildInputs = [ cmake ];
|
||||||
|
@ -59,7 +59,7 @@ rustPlatform.buildRustPackage rec {
|
|||||||
meta = with lib; {
|
meta = with lib; {
|
||||||
description = "A terminal workspace with batteries included";
|
description = "A terminal workspace with batteries included";
|
||||||
homepage = "https://zellij.dev/";
|
homepage = "https://zellij.dev/";
|
||||||
changelog = "https://github.com/zellij-org/zellij/blob/v${version}/Changelog.md";
|
changelog = "https://github.com/zellij-org/zellij/blob/v${version}/CHANGELOG.md";
|
||||||
license = with licenses; [ mit ];
|
license = with licenses; [ mit ];
|
||||||
maintainers = with maintainers; [ therealansh _0x4A6F abbe thehedgeh0g ];
|
maintainers = with maintainers; [ therealansh _0x4A6F abbe thehedgeh0g ];
|
||||||
};
|
};
|
||||||
|
@ -16,16 +16,16 @@
|
|||||||
|
|
||||||
rustPlatform.buildRustPackage rec {
|
rustPlatform.buildRustPackage rec {
|
||||||
pname = "gpg-tui";
|
pname = "gpg-tui";
|
||||||
version = "0.9.0";
|
version = "0.9.1";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "orhun";
|
owner = "orhun";
|
||||||
repo = "gpg-tui";
|
repo = "gpg-tui";
|
||||||
rev = "v${version}";
|
rev = "v${version}";
|
||||||
hash = "sha256-iIMpAAIw6djLNP9lnrHV7D198VcHspQP4OHcr2LNKOA=";
|
hash = "sha256-eUUHH6bPfYjkHo7C7GWzewTpT8je7TQK9M8mTM5v59s=";
|
||||||
};
|
};
|
||||||
|
|
||||||
cargoHash = "sha256-xrv1tFzPReHDA+gr/RPCvSM7Sa7v8OKAEY+fSUjPT50=";
|
cargoHash = "sha256-GtSvDfG9lRUirm4d6PSaOBLTHZJT2PH0Sx/9GVquX5M=";
|
||||||
|
|
||||||
nativeBuildInputs = [
|
nativeBuildInputs = [
|
||||||
gpgme # for gpgme-config
|
gpgme # for gpgme-config
|
||||||
|
@ -12950,6 +12950,8 @@ with pkgs;
|
|||||||
|
|
||||||
clean = callPackage ../development/compilers/clean { };
|
clean = callPackage ../development/compilers/clean { };
|
||||||
|
|
||||||
|
clickable = python3Packages.callPackage ../development/tools/clickable { };
|
||||||
|
|
||||||
closurecompiler = callPackage ../development/compilers/closure { };
|
closurecompiler = callPackage ../development/compilers/closure { };
|
||||||
|
|
||||||
cmdstan = callPackage ../development/compilers/cmdstan { };
|
cmdstan = callPackage ../development/compilers/cmdstan { };
|
||||||
@ -25446,7 +25448,10 @@ with pkgs;
|
|||||||
stdenv = gccStdenv;
|
stdenv = gccStdenv;
|
||||||
};
|
};
|
||||||
|
|
||||||
numix-icon-theme = callPackage ../data/icons/numix-icon-theme { };
|
numix-icon-theme = callPackage ../data/icons/numix-icon-theme {
|
||||||
|
inherit (gnome) adwaita-icon-theme;
|
||||||
|
inherit (plasma5Packages) breeze-icons;
|
||||||
|
};
|
||||||
|
|
||||||
numix-icon-theme-circle = callPackage ../data/icons/numix-icon-theme-circle { };
|
numix-icon-theme-circle = callPackage ../data/icons/numix-icon-theme-circle { };
|
||||||
|
|
||||||
@ -35604,6 +35609,8 @@ with pkgs;
|
|||||||
|
|
||||||
refind = callPackage ../tools/bootloaders/refind { };
|
refind = callPackage ../tools/bootloaders/refind { };
|
||||||
|
|
||||||
|
spectra = callPackage ../development/libraries/spectra { };
|
||||||
|
|
||||||
spectrojack = callPackage ../applications/audio/spectrojack { };
|
spectrojack = callPackage ../applications/audio/spectrojack { };
|
||||||
|
|
||||||
sift = callPackage ../tools/text/sift { };
|
sift = callPackage ../tools/text/sift { };
|
||||||
|
@ -6091,6 +6091,8 @@ in {
|
|||||||
|
|
||||||
notebook = callPackage ../development/python-modules/notebook { };
|
notebook = callPackage ../development/python-modules/notebook { };
|
||||||
|
|
||||||
|
notebook-shim = callPackage ../development/python-modules/notebook-shim { };
|
||||||
|
|
||||||
notedown = callPackage ../development/python-modules/notedown { };
|
notedown = callPackage ../development/python-modules/notedown { };
|
||||||
|
|
||||||
notifications-python-client = callPackage ../development/python-modules/notifications-python-client { };
|
notifications-python-client = callPackage ../development/python-modules/notifications-python-client { };
|
||||||
|
Loading…
Reference in New Issue
Block a user