Merge master into staging-next

This commit is contained in:
github-actions[bot] 2021-03-28 00:15:41 +00:00 committed by GitHub
commit 732dc6ef8f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
35 changed files with 546 additions and 136 deletions

View File

@ -138,12 +138,13 @@ rec {
in if m == null in if m == null
then throw ("File contains no gitdir reference: " + path) then throw ("File contains no gitdir reference: " + path)
else else
let gitDir = absolutePath (dirOf path) (lib.head m); let gitDir = absolutePath (dirOf path) (lib.head m);
commonDir' = if pathIsRegularFile "${gitDir}/commondir" commonDir'' = if pathIsRegularFile "${gitDir}/commondir"
then lib.fileContents "${gitDir}/commondir" then lib.fileContents "${gitDir}/commondir"
else gitDir; else gitDir;
commonDir = absolutePath gitDir commonDir'; commonDir' = lib.removeSuffix "/" commonDir'';
refFile = lib.removePrefix "${commonDir}/" "${gitDir}/${file}"; commonDir = absolutePath gitDir commonDir';
refFile = lib.removePrefix "${commonDir}/" "${gitDir}/${file}";
in readCommitFromFile refFile commonDir in readCommitFromFile refFile commonDir
else if pathIsRegularFile fileName else if pathIsRegularFile fileName

View File

@ -924,6 +924,7 @@
./services/web-apps/selfoss.nix ./services/web-apps/selfoss.nix
./services/web-apps/shiori.nix ./services/web-apps/shiori.nix
./services/web-apps/virtlyst.nix ./services/web-apps/virtlyst.nix
./services/web-apps/wiki-js.nix
./services/web-apps/whitebophir.nix ./services/web-apps/whitebophir.nix
./services/web-apps/wordpress.nix ./services/web-apps/wordpress.nix
./services/web-apps/youtrack.nix ./services/web-apps/youtrack.nix

View File

@ -0,0 +1,139 @@
{ lib, pkgs, config, ... }:
with lib;
let
cfg = config.services.wiki-js;
format = pkgs.formats.json { };
configFile = format.generate "wiki-js.yml" cfg.settings;
in {
options.services.wiki-js = {
enable = mkEnableOption "wiki-js";
environmentFile = mkOption {
type = types.nullOr types.path;
default = null;
example = "/root/wiki-js.env";
description = ''
Environment fiel to inject e.g. secrets into the configuration.
'';
};
stateDirectoryName = mkOption {
default = "wiki-js";
type = types.str;
description = ''
Name of the directory in <filename>/var/lib</filename>.
'';
};
settings = mkOption {
default = {};
type = types.submodule {
freeformType = format.type;
options = {
port = mkOption {
type = types.port;
default = 3000;
description = ''
TCP port the process should listen to.
'';
};
bindIP = mkOption {
default = "0.0.0.0";
type = types.str;
description = ''
IPs the service should listen to.
'';
};
db = {
type = mkOption {
default = "postgres";
type = types.enum [ "postgres" "mysql" "mariadb" "mssql" ];
description = ''
Database driver to use for persistence. Please note that <literal>sqlite</literal>
is currently not supported as the build process for it is currently not implemented
in <package>pkgs.wiki-js</package> and it's not recommended by upstream for
production use.
'';
};
host = mkOption {
type = types.str;
example = "/run/postgresql";
description = ''
Hostname or socket-path to connect to.
'';
};
db = mkOption {
default = "wiki";
type = types.str;
description = ''
Name of the database to use.
'';
};
};
logLevel = mkOption {
default = "info";
type = types.enum [ "error" "warn" "info" "verbose" "debug" "silly" ];
description = ''
Define how much detail is supposed to be logged at runtime.
'';
};
offline = mkEnableOption "offline mode" // {
description = ''
Disable latest file updates and enable
<link xlink:href="https://docs.requarks.io/install/sideload">sideloading</link>.
'';
};
};
};
description = ''
Settings to configure <package>wiki-js</package>. This directly
corresponds to <link xlink:href="https://docs.requarks.io/install/config">the upstream
configuration options</link>.
Secrets can be injected via the environment by
<itemizedlist>
<listitem><para>specifying <xref linkend="opt-services.wiki-js.environmentFile" />
to contain secrets</para></listitem>
<listitem><para>and setting sensitive values to <literal>$(ENVIRONMENT_VAR)</literal>
with this value defined in the environment-file.</para></listitem>
</itemizedlist>
'';
};
};
config = mkIf cfg.enable {
services.wiki-js.settings.dataPath = "/var/lib/${cfg.stateDirectoryName}";
systemd.services.wiki-js = {
description = "A modern and powerful wiki app built on Node.js";
documentation = [ "https://docs.requarks.io/" ];
wantedBy = [ "multi-user.target" ];
path = with pkgs; [ coreutils ];
preStart = ''
ln -sf ${configFile} /var/lib/${cfg.stateDirectoryName}/config.yml
ln -sf ${pkgs.wiki-js}/server /var/lib/${cfg.stateDirectoryName}
ln -sf ${pkgs.wiki-js}/assets /var/lib/${cfg.stateDirectoryName}
ln -sf ${pkgs.wiki-js}/package.json /var/lib/${cfg.stateDirectoryName}/package.json
'';
serviceConfig = {
EnvironmentFile = mkIf (cfg.environmentFile != null) cfg.environmentFile;
StateDirectory = cfg.stateDirectoryName;
WorkingDirectory = "/var/lib/${cfg.stateDirectoryName}";
DynamicUser = true;
PrivateTmp = true;
ExecStart = "${pkgs.nodejs}/bin/node ${pkgs.wiki-js}/server";
};
};
};
meta.maintainers = with maintainers; [ ma27 ];
}

View File

@ -426,6 +426,7 @@ in
virtualbox = handleTestOn ["x86_64-linux"] ./virtualbox.nix {}; virtualbox = handleTestOn ["x86_64-linux"] ./virtualbox.nix {};
vscodium = handleTest ./vscodium.nix {}; vscodium = handleTest ./vscodium.nix {};
wasabibackend = handleTest ./wasabibackend.nix {}; wasabibackend = handleTest ./wasabibackend.nix {};
wiki-js = handleTest ./wiki-js.nix {};
wireguard = handleTest ./wireguard {}; wireguard = handleTest ./wireguard {};
wordpress = handleTest ./wordpress.nix {}; wordpress = handleTest ./wordpress.nix {};
xandikos = handleTest ./xandikos.nix {}; xandikos = handleTest ./xandikos.nix {};

152
nixos/tests/wiki-js.nix Normal file
View File

@ -0,0 +1,152 @@
import ./make-test-python.nix ({ pkgs, lib, ...} : {
name = "wiki-js";
meta = with pkgs.lib.maintainers; {
maintainers = [ ma27 ];
};
machine = { pkgs, ... }: {
virtualisation.memorySize = 2048;
services.wiki-js = {
enable = true;
settings.db.host = "/run/postgresql";
settings.db.user = "wiki-js";
settings.logLevel = "debug";
};
services.postgresql = {
enable = true;
ensureDatabases = [ "wiki" ];
ensureUsers = [
{ name = "wiki-js";
ensurePermissions."DATABASE wiki" = "ALL PRIVILEGES";
}
];
};
systemd.services.wiki-js = {
requires = [ "postgresql.service" ];
after = [ "postgresql.service" ];
};
environment.systemPackages = with pkgs; [ jq ];
};
testScript = let
payloads.finalize = pkgs.writeText "finalize.json" (builtins.toJSON {
adminEmail = "webmaster@example.com";
adminPassword = "notapassword";
adminPasswordConfirm = "notapassword";
siteUrl = "http://localhost:3000";
telemetry = false;
});
payloads.login = pkgs.writeText "login.json" (builtins.toJSON [{
operationName = null;
extensions = {};
query = ''
mutation ($username: String!, $password: String!, $strategy: String!) {
authentication {
login(username: $username, password: $password, strategy: $strategy) {
responseResult {
succeeded
errorCode
slug
message
__typename
}
jwt
mustChangePwd
mustProvideTFA
mustSetupTFA
continuationToken
redirect
tfaQRImage
__typename
}
__typename
}
}
'';
variables = {
password = "notapassword";
strategy = "local";
username = "webmaster@example.com";
};
}]);
payloads.content = pkgs.writeText "content.json" (builtins.toJSON [{
extensions = {};
operationName = null;
query = ''
mutation ($content: String!, $description: String!, $editor: String!, $isPrivate: Boolean!, $isPublished: Boolean!, $locale: String!, $path: String!, $publishEndDate: Date, $publishStartDate: Date, $scriptCss: String, $scriptJs: String, $tags: [String]!, $title: String!) {
pages {
create(content: $content, description: $description, editor: $editor, isPrivate: $isPrivate, isPublished: $isPublished, locale: $locale, path: $path, publishEndDate: $publishEndDate, publishStartDate: $publishStartDate, scriptCss: $scriptCss, scriptJs: $scriptJs, tags: $tags, title: $title) {
responseResult {
succeeded
errorCode
slug
message
__typename
}
page {
id
updatedAt
__typename
}
__typename
}
__typename
}
}
'';
variables = {
content = "# Header\n\nHello world!";
description = "";
editor = "markdown";
isPrivate = false;
isPublished = true;
locale = "en";
path = "home";
publishEndDate = "";
publishStartDate = "";
scriptCss = "";
scriptJs = "";
tags = [];
title = "Hello world";
};
}]);
in ''
machine.start()
machine.wait_for_unit("multi-user.target")
machine.wait_for_open_port(3000)
machine.succeed("curl -sSf localhost:3000")
with subtest("Setup"):
result = machine.succeed(
"set -o pipefail; curl -sSf localhost:3000/finalize -X POST -d "
+ "@${payloads.finalize} -H 'Content-Type: application/json' "
+ "| jq .ok | xargs echo"
)
assert result.strip() == "true", f"Expected true, got {result}"
# During the setup the service gets restarted, so we use this
# to check if the setup is done.
machine.wait_until_fails("curl -sSf localhost:3000")
machine.wait_until_succeeds("curl -sSf localhost:3000")
with subtest("Base functionality"):
auth = machine.succeed(
"set -o pipefail; curl -sSf localhost:3000/graphql -X POST "
+ "-d @${payloads.login} -H 'Content-Type: application/json' "
+ "| jq '.[0].data.authentication.login.jwt' | xargs echo"
).strip()
assert auth
create = machine.succeed(
"set -o pipefail; curl -sSf localhost:3000/graphql -X POST "
+ "-d @${payloads.content} -H 'Content-Type: application/json' "
+ f"-H 'Authorization: Bearer {auth}' "
+ "| jq '.[0].data.pages.create.responseResult.succeeded'|xargs echo"
)
assert create.strip() == "true", f"Expected true, got {create}"
machine.shutdown()
'';
})

View File

@ -1,20 +1,39 @@
{ fetchurl, lib, stdenv, glib, libgee, pkg-config, ncurses, boehmgc, perl, help2man, vala }: { lib
, stdenv
, fetchurl
, boehmgc
, glib
, help2man
, libgee
, ncurses
, perl
, pkg-config
, vala
}:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "zile-2.6.0.90"; pname = "zile";
version = "2.6.1";
src = fetchurl { src = fetchurl {
url = "mirror://gnu/zile/${name}.tar.gz"; url = "mirror://gnu/zile/${pname}-${version}.tar.gz";
sha256 = "1bhdwnasmqhy0hi3fqmpzr8xkw5zlqjpmf1cj42h4cg3fnamp6r3"; hash = "sha256-v7rN33aOORc6J0Z5JP5AmZCj6XvjYyoCl5hl+7mvAnc=";
}; };
buildInputs = [ glib libgee ncurses boehmgc vala ]; buildInputs = [
nativeBuildInputs = [ perl pkg-config ] boehmgc
# `help2man' wants to run Zile, which won't work when the glib
# newly-produced binary can't be run at build-time. libgee
++ lib.optional ncurses
(stdenv.hostPlatform == stdenv.buildPlatform) ];
help2man; nativeBuildInputs = [
perl
pkg-config
vala
]
# `help2man' wants to run Zile, which won't work when the
# newly-produced binary can't be run at build-time.
++ lib.optional (stdenv.hostPlatform == stdenv.buildPlatform) help2man;
# Tests can't be run because most of them rely on the ability to # Tests can't be run because most of them rely on the ability to
# fiddle with the terminal. # fiddle with the terminal.
@ -24,33 +43,38 @@ stdenv.mkDerivation rec {
gl_cv_func_fstatat_zero_flag="yes"; gl_cv_func_fstatat_zero_flag="yes";
meta = with lib; { meta = with lib; {
description = "Lightweight Emacs clone";
longDescription = ''
GNU Zile, which is a lightweight Emacs clone. Zile is short
for Zile Is Lossy Emacs. Zile has been written to be as
similar as possible to Emacs; every Emacs user should feel at
home.
Zile has all of Emacs's basic editing features: it is 8-bit
clean (though it currently lacks Unicode support), and the
number of editing buffers and windows is only limited by
available memory and screen space respectively. Registers,
minibuffer completion and auto fill are available. Function
and variable names are identical with Emacs's (except those
containing the word "emacs", which instead contain the word
"zile"!).
However, all of this is packed into a program which typically
compiles to about 130Kb.
'';
homepage = "https://www.gnu.org/software/zile/"; homepage = "https://www.gnu.org/software/zile/";
description = "Zile Implements Lua Editors";
longDescription = ''
GNU Zile is a text editor development kit, so that you can (relatively)
quickly develop your own ideal text editor without reinventing the wheel
for many of the common algorithms and data-structures needed to do so.
It comes with an example implementation of a lightweight Emacs clone,
called Zemacs. Every Emacs user should feel at home with Zemacs. Zemacs is
aimed at small footprint systems and quick editing sessions (it starts up
and shuts down instantly).
More editors implemented over the Zile frameworks are forthcoming as the
data-structures and interfaces improve: Zz an emacs inspired editor using
Lua as an extension language; Zee a minimalist non-modal editor; Zi a
lightweight vi clone; and more...
Zile is a collection of algorithms and data-structures that currently
support all basic Emacs-like editing features: it is 8-bit clean (though
Unicode support is not ready yet), and the number of editing buffers and
windows is only limited by available memoryand screen space
respectively. Registers, minibuffer completion and auto fill are
available.
Zemacs implements a subset of Emacs with identical function and variable
names, continuing the spirit of the earlier Zile editor implemented in C.
GNU Zile, which is a lightweight Emacs clone. Zile is short for Zile Is
Lossy Emacs. Zile has been written to be as similar as possible to Emacs;
every Emacs user should feel at home.
'';
license = licenses.gpl3Plus; license = licenses.gpl3Plus;
maintainers = with maintainers; [ pSub AndersonTorres ];
maintainers = with maintainers; [ pSub ];
platforms = platforms.unix; platforms = platforms.unix;
}; };
} }

View File

@ -1,6 +1,6 @@
{ lib, stdenv { lib
, stdenv
, fetchFromGitLab , fetchFromGitLab
, fetchpatch
, writeText , writeText
, cmake , cmake
, doxygen , doxygen
@ -44,24 +44,16 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "monado"; pname = "monado";
version = "0.4.1"; version = "21.0.0";
src = fetchFromGitLab { src = fetchFromGitLab {
domain = "gitlab.freedesktop.org"; domain = "gitlab.freedesktop.org";
owner = pname; owner = pname;
repo = pname; repo = pname;
rev = "v${version}"; rev = "v${version}";
sha256 = "114aif79dqyn2qg07mkv6lzmqn15k6fdcii818rdf5g4bp7zzzgm"; sha256 = "07zxs96i3prjqww1f68496cl2xxqaidx32lpfyy0pn5am4c297zc";
}; };
patches = [
# fix libsurvive autodetection, drop with the next version update
(fetchpatch {
url = "https://gitlab.freedesktop.org/monado/monado/-/commit/345e9eab56e2de9e8b07cf72c2a67cf2ebd01e62.patch";
sha256 = "17c110an6sxc8rn7dfz30rfkbayg64w68licicwc8cqabi6cgrm3";
})
];
nativeBuildInputs = [ nativeBuildInputs = [
cmake cmake
doxygen doxygen

View File

@ -88,19 +88,19 @@ let
fteLibPath = makeLibraryPath [ stdenv.cc.cc gmp ]; fteLibPath = makeLibraryPath [ stdenv.cc.cc gmp ];
# Upstream source # Upstream source
version = "10.0.13"; version = "10.0.14";
lang = "en-US"; lang = "en-US";
srcs = { srcs = {
x86_64-linux = fetchurl { x86_64-linux = fetchurl {
url = "https://dist.torproject.org/torbrowser/${version}/tor-browser-linux64-${version}_${lang}.tar.xz"; url = "https://dist.torproject.org/torbrowser/${version}/tor-browser-linux64-${version}_${lang}.tar.xz";
sha256 = "sha256-KxJKS/ymbkAg8LjMFz3BDSupPk5cNB1pFz9fFyRTndk="; sha256 = "1qgwzfdvix5gkqwapb4mki79mlfjzdlw68cq6q1qks0v138x528w";
}; };
i686-linux = fetchurl { i686-linux = fetchurl {
url = "https://dist.torproject.org/torbrowser/${version}/tor-browser-linux32-${version}_${lang}.tar.xz"; url = "https://dist.torproject.org/torbrowser/${version}/tor-browser-linux32-${version}_${lang}.tar.xz";
sha256 = "sha256-4glc2qP6AdHtWc8zW+varG30rlAXpeFyKjqDPsmiVfI="; sha256 = "1f13jsk8k8b725h4wr40kfnln8fq7lfl4r992xj4rf98gcydws56";
}; };
}; };
in in

View File

@ -2,12 +2,12 @@
let let
pname = "deltachat-electron"; pname = "deltachat-electron";
version = "1.15.3"; version = "1.15.5";
name = "${pname}-${version}"; name = "${pname}-${version}";
src = fetchurl { src = fetchurl {
url = "https://download.delta.chat/desktop/v${version}/DeltaChat-${version}.AppImage"; url = "https://download.delta.chat/desktop/v${version}/DeltaChat-${version}.AppImage";
sha256 = "sha256-cYb0uruuWpNr1jF5WZ48quBZRIVXiHr99mLPLKMOX5M="; sha256 = "sha256-BTGwgC0zSr1tq/X4v/fS/12E7/mGVYQ0m+Bt6o7VL4o=";
}; };
appimageContents = appimageTools.extract { inherit name src; }; appimageContents = appimageTools.extract { inherit name src; };

View File

@ -13,11 +13,11 @@ let
in in
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "gitkraken"; pname = "gitkraken";
version = "7.5.2"; version = "7.5.3";
src = fetchzip { src = fetchzip {
url = "https://release.axocdn.com/linux/GitKraken-v${version}.tar.gz"; url = "https://release.axocdn.com/linux/GitKraken-v${version}.tar.gz";
sha256 = "0qd83licmw3p7cl04dki510nsn3kxk31s18g2xlixl8zqs3h08lp"; sha256 = "0vxvfq0dh6l1plqbq67gfydr8bh5w3q6d5y3bn3rdia10wa1dac6";
}; };
dontBuild = true; dontBuild = true;

View File

@ -2,13 +2,13 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "gnome-shell-extension-appindicator"; pname = "gnome-shell-extension-appindicator";
version = "35"; version = "36";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "Ubuntu"; owner = "Ubuntu";
repo = "gnome-shell-extension-appindicator"; repo = "gnome-shell-extension-appindicator";
rev = "v${version}"; rev = "v${version}";
sha256 = "sha256-xVoXVVEULZZnoYEXl1x96Tjs8hOvs9/sOAUVMj9kKCo="; sha256 = "1nx1lgrrp3w5z5hymb91frjdvdkk7x677my5v4jjd330ihqa02dq";
}; };
# This package has a Makefile, but it's used for building a zip for # This package has a Makefile, but it's used for building a zip for

View File

@ -36,6 +36,7 @@ let
llvm-manpages = lowPrio (tools.llvm.override { llvm-manpages = lowPrio (tools.llvm.override {
enableManpages = true; enableManpages = true;
enableSharedLibraries = false;
python3 = pkgs.python3; # don't use python-boot python3 = pkgs.python3; # don't use python-boot
}); });

View File

@ -9,13 +9,13 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "coordgenlibs"; pname = "coordgenlibs";
version = "1.4.2"; version = "2.0.0";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "schrodinger"; owner = "schrodinger";
repo = pname; repo = pname;
rev = "v${version}"; rev = "v${version}";
sha256 = "18s3y9v6x246hapxy0cy4srnll4qqzqfx003j551l5f27b2ng8fn"; sha256 = "sha256-lfA0y/tT64C/7NjBff4HEzIfhZ3piFBkQjX5xVbFXFc=";
}; };
nativeBuildInputs = [ cmake ]; nativeBuildInputs = [ cmake ];

View File

@ -1,6 +1,7 @@
{ lib { lib
, buildPythonPackage , buildPythonPackage
, fetchPypi , fetchPypi
, fetchpatch
, docutils , docutils
}: }:
@ -13,6 +14,15 @@ buildPythonPackage rec {
sha256 = "98c8aa5a9f778fcd1026a17361ddaf7330d1b7c62ae97c3bb0ae73e0b9b6b0fe"; sha256 = "98c8aa5a9f778fcd1026a17361ddaf7330d1b7c62ae97c3bb0ae73e0b9b6b0fe";
}; };
patches = [
(fetchpatch {
name = "CVE-2021-27291.patch";
url = "https://github.com/pygments/pygments/commit/2e7e8c4a7b318f4032493773732754e418279a14.patch";
sha256 = "0ap7jgkmvkkzijabsgnfrwl376cjsxa4jmzvqysrkwpjq3q4rxpa";
excludes = ["CHANGES"];
})
];
propagatedBuildInputs = [ docutils ]; propagatedBuildInputs = [ docutils ];
# Circular dependency with sphinx # Circular dependency with sphinx

View File

@ -13,12 +13,12 @@
}: }:
buildPythonPackage rec { buildPythonPackage rec {
version = "0.20.20"; version = "0.20.21";
pname = "dulwich"; pname = "dulwich";
src = fetchPypi { src = fetchPypi {
inherit pname version; inherit pname version;
sha256 = "sha256-QmlZuXBfrcxsgg5a3zKR1xpIq6CvzPdBFCLjMI8RX4c="; sha256 = "sha256-rHZMmpuA+mGv40BNUnDFBgqlf38IexGpU5XTt287cf0=";
}; };
LC_ALL = "en_US.UTF-8"; LC_ALL = "en_US.UTF-8";

View File

@ -12,13 +12,13 @@
buildPythonPackage rec { buildPythonPackage rec {
pname = "hwi"; pname = "hwi";
version = "2.0.0"; version = "2.0.1";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "bitcoin-core"; owner = "bitcoin-core";
repo = "HWI"; repo = "HWI";
rev = version; rev = version;
sha256 = "0m8maxhjpfxnkry2l0x8143m1gmds8mbwyd9flnkfipxz0r0xwbr"; sha256 = "148m0vgwm6l8drcx6j3fjs2zpdzvslk4w2nkb8nm0g8qdlm6gjlw";
}; };
propagatedBuildInputs = [ propagatedBuildInputs = [

View File

@ -2,11 +2,11 @@
buildPythonPackage rec { buildPythonPackage rec {
pname = "micawber"; pname = "micawber";
version = "0.5.2"; version = "0.5.3";
src = fetchPypi { src = fetchPypi {
inherit pname version; inherit pname version;
sha256 = "ac2d737d8ff27ed01ea3825ed8806970e8137d7b342cef37b39b6dd17e6eb3a4"; sha256 = "05ef4c89e307e3031dd1d85a3a557cd7f9f900f7dbbbcb33dde454940ca38460";
}; };
propagatedBuildInputs = [ beautifulsoup4 ]; propagatedBuildInputs = [ beautifulsoup4 ];

View File

@ -2,16 +2,16 @@
buildGoModule rec { buildGoModule rec {
pname = "golangci-lint"; pname = "golangci-lint";
version = "1.38.0"; version = "1.39.0";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "golangci"; owner = "golangci";
repo = "golangci-lint"; repo = "golangci-lint";
rev = "v${version}"; rev = "v${version}";
sha256 = "sha256-hJGyK+hrP6CuSkODNsN8d2IhteKe/fXTF9GxbF7TQOk="; sha256 = "0c9yka27k4v1waijk7mn7k31l5a373sclykypflchy7xnlrsa18v";
}; };
vendorSha256 = "sha256-zTWipGoWFndBSH8V+QxWmGv+8RoFa+OGT4BhAq/yIbE="; vendorSha256 = "1685iv1lsal462c8xqvs76x9dwvbwazrak902j0p12s0fyb66lpl";
doCheck = false; doCheck = false;

View File

@ -1,20 +1,23 @@
{ stdenv, lib, fetchurl, unzip }: { stdenv, lib, fetchurl, unzip }:
let let
version = "3.2.63"; version = "3.3.101";
src = src =
if stdenv.hostPlatform.system == "x86_64-darwin" then if stdenv.hostPlatform.system == "x86_64-darwin" then
fetchurl { fetchurl
url = "https://update.tabnine.com/bundles/${version}/x86_64-apple-darwin/TabNine.zip"; {
sha256 = "0y0wb3jdr2qk4k21c11w8c9a5fl0h2rm1wm7m8hqdywy4lz9ppgy"; url = "https://update.tabnine.com/bundles/${version}/x86_64-apple-darwin/TabNine.zip";
} sha256 = "KrFDQSs7hMCioeqPKTNODe3RKnwNV8XafdYDUaxou/Y=";
}
else if stdenv.hostPlatform.system == "x86_64-linux" then else if stdenv.hostPlatform.system == "x86_64-linux" then
fetchurl { fetchurl
url = "https://update.tabnine.com/bundles/${version}/x86_64-unknown-linux-musl/TabNine.zip"; {
sha256 = "0zzk2w5azk5f0svjxlj2774x01xdflb767xxvbglj4223dgyx2x5"; url = "https://update.tabnine.com/bundles/${version}/x86_64-unknown-linux-musl/TabNine.zip";
} sha256 = "vbeuZf/phOj83xTha+AzpKIvvrjwMar7q2teAmr5ESQ=";
}
else throw "Not supported on ${stdenv.hostPlatform.system}"; else throw "Not supported on ${stdenv.hostPlatform.system}";
in stdenv.mkDerivation rec { in
stdenv.mkDerivation rec {
pname = "tabnine"; pname = "tabnine";
inherit version src; inherit version src;

View File

@ -1,16 +1,19 @@
{ lib { lib
, fetchurl , fetchFromGitHub
, python2 }: , python3Packages
}:
python2.pkgs.buildPythonApplication rec { python3Packages.buildPythonApplication rec {
pname = "20kly"; pname = "20kly";
version = "1.4"; version = "1.5.0";
format = "other";
disabled = !(python2.isPy2 or false);
src = fetchurl { format = "other";
url = "http://jwhitham.org.uk/20kly/lightyears-${version}.tar.bz2";
sha256 = "13h73cmfjqkipffimfc4iv0hf89if490ng6vd6xf3wcalpgaim5d"; src = fetchFromGitHub {
owner = "20kly";
repo = "20kly";
rev = "v${version}";
sha256 = "1zxsxg49a02k7zidx3kgk2maa0vv0n1f9wrl5vch07sq3ghvpphx";
}; };
patchPhase = '' patchPhase = ''
@ -20,21 +23,24 @@ python2.pkgs.buildPythonApplication rec {
"LIGHTYEARS_DIR = \"$out/share\"" "LIGHTYEARS_DIR = \"$out/share\""
''; '';
propagatedBuildInputs = with python2.pkgs; [ pygame ]; propagatedBuildInputs = with python3Packages; [
pygame
];
buildPhase = "python -O -m compileall ."; buildPhase = ''
python -O -m compileall .
'';
installPhase = '' installPhase = ''
mkdir -p "$out/share" mkdir -p "$out/share"
cp -r audio code data lightyears "$out/share" cp -r data lib20k lightyears "$out/share"
install -Dm755 lightyears "$out/bin/lightyears" install -Dm755 lightyears "$out/bin/lightyears"
''; '';
meta = with lib; { meta = with lib; {
description = "A steampunk-themed strategy game where you have to manage a steam supply network"; description = "A steampunk-themed strategy game where you have to manage a steam supply network";
homepage = "http://jwhitham.org.uk/20kly/"; homepage = "http://jwhitham.org.uk/20kly/";
license = licenses.gpl2; license = licenses.gpl2Only;
maintainers = with maintainers; [ fgaz ]; maintainers = with maintainers; [ fgaz ];
}; };
} }

View File

@ -44,7 +44,7 @@
sdlSupport ? false, sdlSupport ? false,
faudioSupport ? false, faudioSupport ? false,
vkd3dSupport ? false, vkd3dSupport ? false,
mingwSupport ? false, mingwSupport ? wineRelease != "stable",
}: }:
let wine-build = build: release: let wine-build = build: release:

View File

@ -44,9 +44,9 @@ in rec {
unstable = fetchurl rec { unstable = fetchurl rec {
# NOTE: Don't forget to change the SHA256 for staging as well. # NOTE: Don't forget to change the SHA256 for staging as well.
version = "6.3"; version = "6.4";
url = "https://dl.winehq.org/wine/source/6.x/wine-${version}.tar.xz"; url = "https://dl.winehq.org/wine/source/6.x/wine-${version}.tar.xz";
sha256 = "sha256-aCp3wf0S9WNHyiCA2F/hfe8bZV0yQdlFgvh1kdnQzDs="; sha256 = "sha256-Gy0rRT2Q1sLXEk5H+urlDlxUwl9pvuHQZTGEMmECTI8=";
inherit (stable) mono gecko32 gecko64; inherit (stable) mono gecko32 gecko64;
patches = [ patches = [
@ -58,7 +58,7 @@ in rec {
staging = fetchFromGitHub rec { staging = fetchFromGitHub rec {
# https://github.com/wine-staging/wine-staging/releases # https://github.com/wine-staging/wine-staging/releases
inherit (unstable) version; inherit (unstable) version;
sha256 = "sha256-Fok0jdGBQtH84PL6LVnuCR7ZVSUIHECqPUI/2lLXs44="; sha256 = "sha256-gTt75rRoP/HTeD5k/8bW3jjnn8M5atmP9RFqmBQaAfk=";
owner = "wine-staging"; owner = "wine-staging";
repo = "wine-staging"; repo = "wine-staging";
rev = "v${version}"; rev = "v${version}";

View File

@ -3,13 +3,13 @@ vscode-utils.buildVscodeMarketplaceExtension rec {
mktplcRef = { mktplcRef = {
name = "terraform"; name = "terraform";
publisher = "hashicorp"; publisher = "hashicorp";
version = "2.8.3"; version = "2.9.1";
}; };
vsix = fetchurl { vsix = fetchurl {
name = "${mktplcRef.publisher}-${mktplcRef.name}.zip"; name = "${mktplcRef.publisher}-${mktplcRef.name}.zip";
url = "https://github.com/hashicorp/vscode-terraform/releases/download/v${mktplcRef.version}/terraform-${mktplcRef.version}.vsix"; url = "https://github.com/hashicorp/vscode-terraform/releases/download/v${mktplcRef.version}/terraform-${mktplcRef.version}.vsix";
sha256 = "1cng82q9079qmn5q71h9knh9qzhqrl3phaamkqfjy1jallgi43b1"; sha256 = "1i4pzxw57hf2g7x62hfsb588b1lz3zjjh8ny96qqrif2bj2h887z";
}; };
patches = [ ./fix-terraform-ls.patch ]; patches = [ ./fix-terraform-ls.patch ];

View File

@ -1,25 +1,38 @@
diff --git a/out/extension.js b/out/extension.js diff --git a/out/extension.js b/out/extension.js
index 4a2c6a9..158fe28 100644 index e44cef2..fba0899 100644
--- a/out/extension.js --- a/out/extension.js
+++ b/out/extension.js +++ b/out/extension.js
@@ -215,19 +215,7 @@ function pathToBinary() { @@ -141,24 +141,6 @@ function updateLanguageServer() {
if (!_pathToBinaryPromise) { return __awaiter(this, void 0, void 0, function* () {
let command = vscodeUtils_1.config('terraform').get('languageServer.pathToBinary'); const delay = 1000 * 60 * 24;
if (!command) { // Skip install/upgrade if user has set custom binary path setTimeout(updateLanguageServer, delay); // check for new updates every 24hrs
- const installDir = `${extensionPath}/lsp`; - // skip install if a language server binary path is set
- const installer = new languageServerInstaller_1.LanguageServerInstaller(reporter); - if (!vscodeUtils_1.config('terraform').get('languageServer.pathToBinary')) {
- const installer = new languageServerInstaller_1.LanguageServerInstaller(installPath, reporter);
- const install = yield installer.needsInstall();
- if (install) {
- yield stopClients();
- try { - try {
- yield installer.install(installDir); - yield installer.install();
- } - }
- catch (err) { - catch (err) {
- reporter.sendTelemetryException(err); - reporter.sendTelemetryException(err);
- throw err; - throw err;
- } - }
- finally { - finally {
- yield installer.cleanupZips(installDir); - yield installer.cleanupZips();
- } - }
- command = `${installDir}/terraform-ls`; - }
+ command = 'TERRAFORM-LS-PATH'; - }
return startClients(); // on repeat runs with no install, this will be a no-op
});
}
@@ -256,7 +238,7 @@ function pathToBinary() {
reporter.sendTelemetryEvent('usePathToBinary');
} }
else { else {
reporter.sendTelemetryEvent('usePathToBinary'); - command = path.join(installPath, 'terraform-ls');
+ command = 'TERRAFORM-LS-PATH';
}
_pathToBinaryPromise = Promise.resolve(command);
}

View File

@ -9,13 +9,13 @@
# again so that a selection of them can be embedded into the fishnet binary. # again so that a selection of them can be embedded into the fishnet binary.
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "fishnet-assets"; pname = "fishnet-assets";
version = "unstable-2020-01-30"; version = "unstable-2020-03-27";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "niklasf"; owner = "niklasf";
repo = pname; repo = pname;
rev = "acd36ab6ccee67a652b6d84aedc4c2828abac5c6"; rev = "a1fe3ec6074ad9dc43e6d46e0d42fab5d7cce12c";
sha256 = "0mh4gh6qij70clp64m4jw6q7dafr7gwjqpvpaf9vc6h10g1rhzrx"; sha256 = "1548wj2bs89b5w42z3c98hpnbln5w8p1909wyl7a63d8vkvnyn5l";
}; };
relAssetsPath = "share/${pname}"; relAssetsPath = "share/${pname}";

View File

@ -12,22 +12,24 @@ let
in in
rustPlatform.buildRustPackage rec { rustPlatform.buildRustPackage rec {
pname = "fishnet"; pname = "fishnet";
version = "2.2.5"; version = "2.2.6";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "niklasf"; owner = "niklasf";
repo = pname; repo = pname;
rev = "v${version}"; rev = "v${version}";
sha256 = "0gif9wagm9bzq7j3biasqvzp9lfvmxqr5wagqqybmhbn8ipj20a8"; sha256 = "0dmc58wzv758b82pjpfzcfi0hr14hqcr61cd9v5xlgk5w78cisjq";
}; };
cargoSha256 = "0hqyh0nzfrm7m34kqixrlbc7w8d0k7v6psw8jg6zpwpfcmhqq15j"; cargoSha256 = "08v969b0kvsg4dq3xsb159pr52a0vqr34g48j8nvq13979yq6d8p";
preBuild = '' preBuild = ''
rmdir ./assets rmdir ./assets
ln -snf ${assets}/${assets.relAssetsPath} ./assets ln -snf ${assets}/${assets.relAssetsPath} ./assets
''; '';
passthru.assets = assets;
meta = with lib; { meta = with lib; {
description = "Distributed Stockfish analysis for lichess.org"; description = "Distributed Stockfish analysis for lichess.org";
homepage = "https://github.com/niklasf/fishnet"; homepage = "https://github.com/niklasf/fishnet";

View File

@ -2,11 +2,11 @@
perlPackages.buildPerlPackage rec { perlPackages.buildPerlPackage rec {
pname = "SpamAssassin"; pname = "SpamAssassin";
version = "3.4.4"; version = "3.4.5";
src = fetchurl { src = fetchurl {
url = "mirror://apache/spamassassin/source/Mail-${pname}-${version}.tar.bz2"; url = "mirror://apache/spamassassin/source/Mail-${pname}-${version}.tar.bz2";
sha256 = "0ga5mi2nv2v91kakk9xakkg71rnxnddlzv76ca13vfyd4jgcfasf"; sha256 = "0qsl18p2swdbq4zizvs9ahl2bkilpcyzq817lk16jj5g4rqzivb7";
}; };
nativeBuildInputs = [ makeWrapper ]; nativeBuildInputs = [ makeWrapper ];

View File

@ -0,0 +1,32 @@
{ stdenv, fetchurl, lib, nixosTests }:
stdenv.mkDerivation rec {
pname = "wiki-js";
version = "2.5.197";
src = fetchurl {
url = "https://github.com/Requarks/wiki/releases/download/${version}/${pname}.tar.gz";
sha256 = "sha256-0xM9BtQvSt5WkbKBri+KxB+Ghc4wgY8/TUgI6PCFmm0=";
};
sourceRoot = ".";
dontBuild = true;
installPhase = ''
runHook preInstall
mkdir $out
cp -r . $out
runHook postInstall
'';
passthru.tests = { inherit (nixosTests) wiki-js; };
meta = with lib; {
homepage = "https://js.wiki/";
description = "A modern and powerful wiki app built on Node.js";
license = licenses.agpl3Only;
maintainers = with maintainers; [ ma27 ];
};
}

View File

@ -2,11 +2,11 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "oil"; pname = "oil";
version = "0.8.7"; version = "0.8.8";
src = fetchurl { src = fetchurl {
url = "https://www.oilshell.org/download/oil-${version}.tar.xz"; url = "https://www.oilshell.org/download/oil-${version}.tar.xz";
sha256 = "sha256-KcXu1u/MvvbCLb5a7D09NvfJPaeo0c8Z/Czuk7XR23M="; sha256 = "sha256-J9aNuw72qufoVY6VnbdpCtpcI6GAI7ON10XGEJuqieI=";
}; };
postPatch = '' postPatch = ''

View File

@ -2,13 +2,13 @@
buildGoModule rec { buildGoModule rec {
pname = "chezmoi"; pname = "chezmoi";
version = "2.0.3"; version = "2.0.4";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "twpayne"; owner = "twpayne";
repo = "chezmoi"; repo = "chezmoi";
rev = "v${version}"; rev = "v${version}";
sha256 = "sha256-kOxA9FtVfS1lFSsV5E1+eGQF7D9C7TzhzLGw2r7LlOY="; sha256 = "sha256-jvit6Z0SwxjDmpEqojmPUJ3TVmVmW3RC+3tfvG1ev4Q=";
}; };
vendorSha256 = "sha256-V05cCKQeqw6BEjLIYDeHeDePkA7rs7kjqPCys5eLefA="; vendorSha256 = "sha256-V05cCKQeqw6BEjLIYDeHeDePkA7rs7kjqPCys5eLefA=";

View File

@ -10,16 +10,16 @@
rustPlatform.buildRustPackage rec { rustPlatform.buildRustPackage rec {
pname = "miniserve"; pname = "miniserve";
version = "0.12.0"; version = "0.12.1";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "svenstaro"; owner = "svenstaro";
repo = "miniserve"; repo = "miniserve";
rev = "v${version}"; rev = "v${version}";
sha256 = "sha256-hTNwEspM1qlQkC6lD7N947tvS7O7RCIUYACvj4KYsAY="; sha256 = "sha256-1LyDwQWC8cb3Sq8lZ9eDpZMcu5/yh0BJFuOWQ3iTtpY=";
}; };
cargoSha256 = "sha256-7G+h+g00T/aJ1cQ1SChxy8dq3CWWdHlx5DAH77xM9Oc="; cargoSha256 = "sha256-11aP0/p9wC9o1KuM+CLAuHhZxuYff6nvJPj0/yjb1+E=";
nativeBuildInputs = [ pkg-config zlib ]; nativeBuildInputs = [ pkg-config zlib ];
buildInputs = lib.optionals stdenv.isDarwin [ libiconv Security ]; buildInputs = lib.optionals stdenv.isDarwin [ libiconv Security ];

View File

@ -2,16 +2,16 @@
buildGoModule rec { buildGoModule rec {
pname = "croc"; pname = "croc";
version = "8.6.11"; version = "8.6.12";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "schollz"; owner = "schollz";
repo = pname; repo = pname;
rev = "v${version}"; rev = "v${version}";
sha256 = "sha256-+ej6Q2XczWVcu7lMRjt+Sj2FZxlfFSepE6crCFgPuoc="; sha256 = "sha256-Oad0JpeeCpIHfH9e1pTKtrnvZ+eFx3dR5GP6g6piFS0=";
}; };
vendorSha256 = "sha256-50ESG3GL9BcTaGp1Q5rc1XklF3H7WKcyM1yq7SZa2QE="; vendorSha256 = "sha256-LYMZFaCNlJg+9Hoh2VbY6tMHv6oT7r+JHBcQYpOceRQ=";
doCheck = false; doCheck = false;

View File

@ -0,0 +1,25 @@
{ lib, buildGoModule, fetchFromGitHub }:
buildGoModule rec {
pname = "cosign";
version = "0.1.0";
src = fetchFromGitHub {
owner = "sigstore";
repo = pname;
rev = "v${version}";
sha256 = "0rgq29vi0h378j0bqs53gjgp246rqxfpk6rwskzrmawgry0zr8pk";
};
vendorSha256 = "0pcp3wdvwq06ajdfbgadyq0ipfj65n276hj88p5v6wqfn821ahd6";
subPackages = [ "cmd/cosign" ];
meta = with lib; {
homepage = "https://github.com/sigstore/cosign";
changelog = "https://github.com/sigstore/cosign/releases/tag/v${version}";
description = "Container Signing CLI with support for ephemeral keys and Sigstore signing";
license = licenses.asl20;
maintainers = with maintainers; [ lesuisse ];
};
}

View File

@ -1,7 +1,7 @@
{ buildGoModule { lib
, buildGoModule
, docker , docker
, fetchFromGitHub , fetchFromGitHub
, lib
}: }:
buildGoModule rec { buildGoModule rec {
@ -19,7 +19,11 @@ buildGoModule rec {
propagatedBuildInputs = [ docker ]; propagatedBuildInputs = [ docker ];
# tests require a running Docker instance preBuild = ''
buildFlagsArray+=("-ldflags" "-s -w -X github.com/anchore/grype/internal/version.version=${version}")
'';
# Tests require a running Docker instance
doCheck = false; doCheck = false;
meta = with lib; { meta = with lib; {

View File

@ -1237,6 +1237,8 @@ in
corsmisc = callPackage ../tools/security/corsmisc { }; corsmisc = callPackage ../tools/security/corsmisc { };
cosign = callPackage ../tools/security/cosign { };
cozy = callPackage ../applications/audio/cozy-audiobooks { }; cozy = callPackage ../applications/audio/cozy-audiobooks { };
cpuid = callPackage ../os-specific/linux/cpuid { }; cpuid = callPackage ../os-specific/linux/cpuid { };
@ -30074,6 +30076,8 @@ in
pythonPackages = python3Packages; pythonPackages = python3Packages;
}; };
wiki-js = callPackage ../servers/web-apps/wiki-js { };
winePackagesFor = wineBuild: lib.makeExtensible (self: with self; { winePackagesFor = wineBuild: lib.makeExtensible (self: with self; {
callPackage = newScope self; callPackage = newScope self;