Merge master into staging-next

This commit is contained in:
github-actions[bot] 2021-08-03 06:01:25 +00:00 committed by GitHub
commit 4625b9a0eb
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
21 changed files with 261 additions and 76 deletions
README.md
maintainers
nixos/modules
pkgs
applications
radio/unixcw
video/jellyfin-media-player
development
python-modules
exifread
inifile
lektor
pikepdf
pyintesishome
tools/skopeo
misc/vscode-extensions/terraform
tools
X11/ksuperkey
networking/v2ray
video/replay-sorcery
wayland/sirula
top-level

View file

@ -97,7 +97,8 @@ Foundation](https://nixos.org/nixos/foundation.html). To ensure the
continuity and expansion of the NixOS infrastructure, we are looking continuity and expansion of the NixOS infrastructure, we are looking
for donations to our organization. for donations to our organization.
You can donate to the NixOS foundation by using Open Collective: You can donate to the NixOS foundation through [SEPA bank
transfers](https://nixos.org/donate.html) or by using Open Collective:
<a href="https://opencollective.com/nixos#support"><img src="https://opencollective.com/nixos/tiers/supporter.svg?width=890" /></a> <a href="https://opencollective.com/nixos#support"><img src="https://opencollective.com/nixos/tiers/supporter.svg?width=890" /></a>

View file

@ -11012,6 +11012,12 @@
fingerprint = "E631 8869 586F 99B4 F6E6 D785 5942 58F0 389D 2802"; fingerprint = "E631 8869 586F 99B4 F6E6 D785 5942 58F0 389D 2802";
}]; }];
}; };
twitchyliquid64 = {
name = "Tom";
email = "twitchyliquid64@ciphersink.net";
github = "twitchyliquid64";
githubId = 6328589;
};
typetetris = { typetetris = {
email = "ericwolf42@mail.com"; email = "ericwolf42@mail.com";
github = "typetetris"; github = "typetetris";
@ -11334,10 +11340,6 @@
githubId = 3413119; githubId = 3413119;
name = "Vonfry"; name = "Vonfry";
}; };
vozz = {
email = "oliver.huntuk@gmail.com";
name = "Oliver Hunt";
};
vq = { vq = {
email = "vq@erq.se"; email = "vq@erq.se";
name = "Daniel Nilsson"; name = "Daniel Nilsson";

View file

@ -933,6 +933,7 @@
./services/wayland/cage.nix ./services/wayland/cage.nix
./services/video/epgstation/default.nix ./services/video/epgstation/default.nix
./services/video/mirakurun.nix ./services/video/mirakurun.nix
./services/video/replay-sorcery.nix
./services/web-apps/atlassian/confluence.nix ./services/web-apps/atlassian/confluence.nix
./services/web-apps/atlassian/crowd.nix ./services/web-apps/atlassian/crowd.nix
./services/web-apps/atlassian/jira.nix ./services/web-apps/atlassian/jira.nix

View file

@ -0,0 +1,70 @@
{ config, lib, pkgs, ... }:
with lib;
let
cfg = config.services.replay-sorcery;
configFile = generators.toKeyValue {} cfg.settings;
in
{
options = with types; {
services.replay-sorcery = {
enable = mkEnableOption "the ReplaySorcery service for instant-replays";
enableSysAdminCapability = mkEnableOption ''
the system admin capability to support hardware accelerated
video capture. This is equivalent to running ReplaySorcery as
root, so use with caution'';
autoStart = mkOption {
type = bool;
default = false;
description = "Automatically start ReplaySorcery when graphical-session.target starts.";
};
settings = mkOption {
type = attrsOf (oneOf [ str int ]);
default = {};
description = "System-wide configuration for ReplaySorcery (/etc/replay-sorcery.conf).";
example = literalExample ''
{
videoInput = "hwaccel"; # requires `services.replay-sorcery.enableSysAdminCapability = true`
videoFramerate = 60;
}
'';
};
};
};
config = mkIf cfg.enable {
environment = {
systemPackages = [ pkgs.replay-sorcery ];
etc."replay-sorcery.conf".text = configFile;
};
security.wrappers = mkIf cfg.enableSysAdminCapability {
replay-sorcery = {
source = "${pkgs.replay-sorcery}/bin/replay-sorcery";
capabilities = "cap_sys_admin+ep";
};
};
systemd = {
packages = [ pkgs.replay-sorcery ];
user.services.replay-sorcery = {
wantedBy = mkIf cfg.autoStart [ "graphical-session.target" ];
partOf = mkIf cfg.autoStart [ "graphical-session.target" ];
serviceConfig = {
ExecStart = mkIf cfg.enableSysAdminCapability [
"" # Tell systemd to clear the existing ExecStart list, to prevent appending to it.
"${config.security.wrapperDir}/replay-sorcery"
];
};
};
};
};
meta = {
maintainers = with maintainers; [ kira-bruneau ];
};
}

View file

@ -1,5 +1,6 @@
{lib, stdenv, fetchurl, libpulseaudio, alsa-lib , pkg-config, qt5}: { lib, mkDerivation, fetchurl, libpulseaudio, alsa-lib , pkg-config, qtbase }:
stdenv.mkDerivation rec {
mkDerivation rec {
pname = "unixcw"; pname = "unixcw";
version = "3.5.1"; version = "3.5.1";
src = fetchurl { src = fetchurl {
@ -9,11 +10,9 @@ stdenv.mkDerivation rec {
patches = [ patches = [
./remove-use-of-dlopen.patch ./remove-use-of-dlopen.patch
]; ];
buildInputs = [libpulseaudio alsa-lib pkg-config qt5.qtbase]; buildInputs = [ libpulseaudio alsa-lib pkg-config qtbase ];
CFLAGS ="-lasound -lpulse-simple"; CFLAGS ="-lasound -lpulse-simple";
dontWrapQtApps = true;
meta = with lib; { meta = with lib; {
description = "sound characters as Morse code on the soundcard or console speaker"; description = "sound characters as Morse code on the soundcard or console speaker";
longDescription = '' longDescription = ''

View file

@ -26,13 +26,13 @@
mkDerivation rec { mkDerivation rec {
pname = "jellyfin-media-player"; pname = "jellyfin-media-player";
version = "1.6.0"; version = "1.6.1";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "jellyfin"; owner = "jellyfin";
repo = "jellyfin-media-player"; repo = "jellyfin-media-player";
rev = "v${version}"; rev = "v${version}";
sha256 = "sha256-u19WJupSqIzA8W0QG9mue8Ticy+HxBAniuKIUFl7ONs="; sha256 = "sha256-iqwOv95JFxQ1j/9B+oBFAp7mD1/1g2EJYvvUKbrDQes=";
}; };
jmpDist = fetchzip { jmpDist = fetchzip {
@ -105,7 +105,7 @@ mkDerivation rec {
description = "Jellyfin Desktop Client based on Plex Media Player"; description = "Jellyfin Desktop Client based on Plex Media Player";
license = with licenses; [ gpl2Only mit ]; license = with licenses; [ gpl2Only mit ];
platforms = [ "x86_64-linux" "x86_64-darwin" ]; platforms = [ "x86_64-linux" "x86_64-darwin" ];
maintainers = with maintainers; [ jojosch ]; maintainers = with maintainers; [ jojosch kranzes ];
mainProgram = "jellyfinmediaplayer"; mainProgram = "jellyfinmediaplayer";
}; };
} }

View file

@ -16,7 +16,7 @@ buildPythonPackage rec {
description = "Easy to use Python module to extract Exif metadata from tiff and jpeg files"; description = "Easy to use Python module to extract Exif metadata from tiff and jpeg files";
homepage = "https://github.com/ianare/exif-py"; homepage = "https://github.com/ianare/exif-py";
license = licenses.bsd0; license = licenses.bsd0;
maintainers = with maintainers; [ vozz ]; maintainers = with maintainers; [ ];
}; };
} }

View file

@ -16,7 +16,7 @@ buildPythonPackage rec {
description = "A small INI library for Python"; description = "A small INI library for Python";
homepage = "https://github.com/mitsuhiko/python-inifile"; homepage = "https://github.com/mitsuhiko/python-inifile";
license = licenses.bsd0; license = licenses.bsd0;
maintainers = with maintainers; [ vozz ]; maintainers = with maintainers; [ ];
}; };
} }

View file

@ -49,7 +49,7 @@ buildPythonPackage rec {
description = "A static content management system"; description = "A static content management system";
homepage = "https://www.getlektor.com/"; homepage = "https://www.getlektor.com/";
license = licenses.bsd0; license = licenses.bsd0;
maintainers = with maintainers; [ vozz costrouc ]; maintainers = with maintainers; [ costrouc ];
}; };
} }

View file

@ -24,12 +24,12 @@
buildPythonPackage rec { buildPythonPackage rec {
pname = "pikepdf"; pname = "pikepdf";
version = "2.12.2"; version = "2.16.1";
disabled = ! isPy3k; disabled = ! isPy3k;
src = fetchPypi { src = fetchPypi {
inherit pname version; inherit pname version;
sha256 = "5ff35499b1ae7b181277f78ce5b1bcc8d3009182bb389917791c5dc811fcc8e4"; sha256 = "sha256-4k3/avMfHrcy/LXbRniDXR8xJkOZb9zZ2+uKylK8Dd4=";
}; };
buildInputs = [ buildInputs = [

View file

@ -6,13 +6,13 @@
buildPythonPackage rec { buildPythonPackage rec {
pname = "pyintesishome"; pname = "pyintesishome";
version = "1.7.7"; version = "1.8.0";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "jnimmo"; owner = "jnimmo";
repo = "pyIntesisHome"; repo = "pyIntesisHome";
rev = version; rev = version;
sha256 = "1wjh6bib6bg9rf4q9z6dlrf3gncj859hz4i20a9w06jci7b2yaaz"; sha256 = "1y1agdr32p7m4dbb6kzchh0vb49gy0rqp8hq9zadwrq2vp70k5sn";
}; };
propagatedBuildInputs = [ propagatedBuildInputs = [

View file

@ -14,13 +14,13 @@
buildGoModule rec { buildGoModule rec {
pname = "skopeo"; pname = "skopeo";
version = "1.3.1"; version = "1.4.0";
src = fetchFromGitHub { src = fetchFromGitHub {
rev = "v${version}"; rev = "v${version}";
owner = "containers"; owner = "containers";
repo = "skopeo"; repo = "skopeo";
sha256 = "sha256-ARNsNt5xpXn4ifnnRdmkhJAJq98ri3+oAF+Uov+byI0="; sha256 = "sha256-ocbZs4z6jxLC4l6po07QPyM7R5vFowK7hsMRfwALfoY=";
}; };
outputs = [ "out" "man" ]; outputs = [ "out" "man" ];

View file

@ -3,19 +3,19 @@ vscode-utils.buildVscodeMarketplaceExtension rec {
mktplcRef = { mktplcRef = {
name = "terraform"; name = "terraform";
publisher = "hashicorp"; publisher = "hashicorp";
version = "2.13.2"; version = "2.14.0";
}; };
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}/${mktplcRef.name}-${mktplcRef.version}.vsix"; url = "https://github.com/hashicorp/vscode-terraform/releases/download/v${mktplcRef.version}/${mktplcRef.name}-${mktplcRef.version}.vsix";
sha256 = "0h7c6p2dcwsg7wlp49p2fsq0f164pzkx65929imd1m2df77aykqa"; sha256 = "1q43a28l6xfp3yw6wlr1kcidik0dbp8b7lg9vc83rhw4rjgvjsfm";
}; };
patches = [ ./fix-terraform-ls.patch ]; patches = [ ./fix-terraform-ls.patch ];
postPatch = '' postPatch = ''
substituteInPlace out/clientHandler.js --replace TERRAFORM-LS-PATH ${terraform-ls}/bin/terraform-ls substituteInPlace out/serverPath.js --replace TERRAFORM-LS-PATH ${terraform-ls}/bin/terraform-ls
''; '';
meta = with lib; { meta = with lib; {

View file

@ -1,43 +1,19 @@
diff --git a/out/clientHandler.js b/out/clientHandler.js diff --git a/out/serverPath.js b/out/serverPath.js
index 7f9716d..a543d60 100644 index ffb1b80..990ca2b 100644
--- a/out/clientHandler.js --- a/out/serverPath.js
+++ b/out/clientHandler.js +++ b/out/serverPath.js
@@ -33,8 +33,7 @@ class ClientHandler { @@ -8,7 +8,13 @@ exports.CUSTOM_BIN_PATH_OPTION_NAME = 'languageServer.pathToBinary';
this.reporter.sendTelemetryEvent('usePathToBinary'); class ServerPath {
} constructor(context) {
else { this.context = context;
- const installPath = path.join(context.extensionPath, 'lsp'); - this.customBinPath = vscode.workspace.getConfiguration('terraform').get(exports.CUSTOM_BIN_PATH_OPTION_NAME);
- this.pathToBinary = path.join(installPath, 'terraform-ls'); +
+ this.pathToBinary = 'TERRAFORM-LS-PATH'; + const customBinPath = vscode.workspace.getConfiguration('terraform').get(exports.CUSTOM_BIN_PATH_OPTION_NAME);
} + if (!customBinPath) {
+ this.customBinPath = 'TERRAFORM-LS-PATH';
+ } else {
+ this.customBinPath = customBinPath;
+ }
} }
startClients(folders) { installPath() {
diff --git a/out/extension.js b/out/extension.js return this.context.asAbsolutePath(INSTALL_FOLDER_NAME);
index 7a271fc..726bbf8 100644
--- a/out/extension.js
+++ b/out/extension.js
@@ -149,24 +149,6 @@ function updateLanguageServer(clientHandler, installPath) {
updateLanguageServer(clientHandler, installPath);
}, 24 * hour);
// skip install if a language server binary path is set
- if (!vscodeUtils_1.config('terraform').get('languageServer.pathToBinary')) {
- const installer = new languageServerInstaller_1.LanguageServerInstaller(installPath, reporter);
- const install = yield installer.needsInstall();
- if (install) {
- yield clientHandler.stopClients();
- try {
- yield installer.install();
- }
- catch (err) {
- console.log(err); // for test failure reporting
- reporter.sendTelemetryException(err);
- throw err;
- }
- finally {
- yield installer.cleanupZips();
- }
- }
- }
return clientHandler.startClients(vscodeUtils_1.prunedFolderNames()); // on repeat runs with no install, this will be a no-op
});
}

View file

@ -20,7 +20,7 @@ stdenv.mkDerivation rec {
description = "A tool to be able to bind the super key as a key rather than a modifier"; description = "A tool to be able to bind the super key as a key rather than a modifier";
homepage = "https://github.com/hanschen/ksuperkey"; homepage = "https://github.com/hanschen/ksuperkey";
license = licenses.gpl3; license = licenses.gpl3;
maintainers = [ maintainers.vozz ]; maintainers = [ ];
platforms = platforms.linux; platforms = platforms.linux;
}; };
} }

View file

@ -3,22 +3,22 @@
}: }:
let let
version = "4.41.0"; version = "4.41.1";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "v2fly"; owner = "v2fly";
repo = "v2ray-core"; repo = "v2ray-core";
rev = "v${version}"; rev = "v${version}";
sha256 = "1300gl6y94i1488ja6kic0m5fa2qxakbdc06qd0lgkg6inzbm6gz"; sha256 = "14zqvmf7xa4knmc57ck1ns0i0va0223qdp64qmm3q2w82dh9mnb8";
}; };
vendorSha256 = "sha256-oHKXDzufvTzOzBqFjBzu3vCwTF/FJMomopY3cUktwiM="; vendorSha256 = "sha256-K8gFF9TbhVgNOySz7nhPFIdSNWNYKUyFD0LIk6acnkc=";
assets = { assets = {
# MIT licensed # MIT licensed
"geoip.dat" = let "geoip.dat" = let
geoipRev = "202106240309"; geoipRev = "202107290023";
geoipSha256 = "0ypydpgvizf9pfdxna3f6fqn1svsrkac0p3j9s63y55gbqpglacq"; geoipSha256 = "14xgy0bsamj2k4knfs1r453yp27wq8qmjqifq63zbp4lb9v8xnjy";
in fetchurl { in fetchurl {
url = "https://github.com/v2fly/geoip/releases/download/${geoipRev}/geoip.dat"; url = "https://github.com/v2fly/geoip/releases/download/${geoipRev}/geoip.dat";
sha256 = geoipSha256; sha256 = geoipSha256;
@ -26,8 +26,8 @@ let
# MIT licensed # MIT licensed
"geosite.dat" = let "geosite.dat" = let
geositeRev = "20210626145509"; geositeRev = "20210727125446";
geositeSha256 = "0skhwwlzlyh8rvzyblg1l2xw1bawqs12i6zw5sv3d55pnw7wmf2z"; geositeSha256 = "14z1419dkbippm12z6gvwh3q1wd6x1p4sk6zp2i4qa408i1gc81c";
in fetchurl { in fetchurl {
url = "https://github.com/v2fly/domain-list-community/releases/download/${geositeRev}/dlc.dat"; url = "https://github.com/v2fly/domain-list-community/releases/download/${geositeRev}/dlc.dat";
sha256 = geositeSha256; sha256 = geositeSha256;

View file

@ -0,0 +1,62 @@
{ lib
, stdenv
, fetchFromGitHub
, substituteAll
, cmake
, pkg-config
, ffmpeg
, libX11
, drmSupport ? true, libdrm
, notifySupport ? true, libnotify
, pulseaudioSupport ? true, libpulseaudio
}:
stdenv.mkDerivation rec {
pname = "replay-sorcery";
version = "0.5.0";
src = fetchFromGitHub {
owner = "matanui159";
repo = "ReplaySorcery";
rev = version;
fetchSubmodules = true;
sha256 = "sha256-HPkSOwfwcg4jLUzKfqdXgLu7mgD5H4wb9d2BrqWQeHc=";
};
patches = [
# Use global config generated by NixOS (/etc/replay-sorcery.conf)
# instead of $out/etc/replay-sorcery.conf.
./fix-global-config.patch
] ++ lib.optional notifySupport (substituteAll {
# Patch in libnotify if support is enabled. Can't use makeWrapper
# since it would break the security wrapper in the NixOS module.
src = ./hardcode-libnotify.patch;
inherit libnotify;
});
nativeBuildInputs = [
cmake
pkg-config
];
buildInputs = [ ffmpeg libX11 ]
++ lib.optional drmSupport libdrm
++ lib.optional pulseaudioSupport libpulseaudio;
cmakeFlags = [
"-DRS_SYSTEMD_DIR=${placeholder "out"}/lib/systemd/user"
# SETUID & SETGID permissions required for hardware accelerated
# video capture can't be set during the build. Use the NixOS
# module if you want hardware accelerated video capture.
"-DRS_SETID=OFF"
];
meta = with lib; {
description = "An open-source, instant-replay solution for Linux";
homepage = "https://github.com/matanui159/ReplaySorcery";
license = licenses.gpl3Plus;
maintainers = with maintainers; [ kira-bruneau ];
platforms = platforms.linux;
};
}

View file

@ -0,0 +1,13 @@
diff --git a/src/rsbuild.h.in b/src/rsbuild.h.in
index ff0a0f6..5529556 100644
--- a/src/rsbuild.h.in
+++ b/src/rsbuild.h.in
@@ -20,7 +20,7 @@
#ifndef RS_BUILD_H
#define RS_BUILD_H
-#define RS_BUILD_GLOBAL_CONFIG "@CMAKE_INSTALL_PREFIX@/etc/replay-sorcery.conf"
+#define RS_BUILD_GLOBAL_CONFIG "/etc/replay-sorcery.conf"
#define RS_BUILD_LOCAL_CONFIG "%s/.config/replay-sorcery.conf"
#cmakedefine RS_BUILD_PTHREAD_FOUND

View file

@ -0,0 +1,25 @@
diff --git a/src/config.c b/src/config.c
index 3af7455..12cb6b5 100644
--- a/src/config.c
+++ b/src/config.c
@@ -129,7 +129,7 @@ static const AVOption configOptions[] = {
CONFIG_CONST(alt, RS_CONFIG_KEYMOD_ALT, keyMods),
CONFIG_CONST(super, RS_CONFIG_KEYMOD_SUPER, keyMods),
CONFIG_STRING(outputFile, "~/Videos/ReplaySorcery_%F_%H-%M-%S.mp4"),
- CONFIG_STRING(outputCommand, "notify-send " RS_NAME " \"Saved replay as %s\""),
+ CONFIG_STRING(outputCommand, "@libnotify@/bin/notify-send " RS_NAME " \"Saved replay as %s\""),
{NULL}};
static const AVClass configClass = {
diff --git a/sys/replay-sorcery.conf b/sys/replay-sorcery.conf
index 5cd0aa6..c600e7f 100644
--- a/sys/replay-sorcery.conf
+++ b/sys/replay-sorcery.conf
@@ -123,5 +123,5 @@ outputFile = ~/Videos/ReplaySorcery_%F_%H-%M-%S.mp4
# A command to run when a video is successfully saved
# Possible values: a printf formatted command
-# Default value: notify-send ReplaySorcery "Saved replay as %s"
-outputCommand = notify-send ReplaySorcery "Saved replay as %s"
+# Default value: @libnotify@/bin/notify-send ReplaySorcery "Saved replay as %s"
+outputCommand = @libnotify@/bin/notify-send ReplaySorcery "Saved replay as %s"

View file

@ -0,0 +1,32 @@
{ lib
, fetchFromGitHub
, rustPlatform
, pkg-config
, gtk3
, gtk-layer-shell
}:
rustPlatform.buildRustPackage rec {
pname = "sirula";
version = "unstable-2021-07-11";
src = fetchFromGitHub {
owner = "DorianRudolph";
repo = "sirula";
rev = "574725bc307fc704c42380cd0fa50b0b80c4764d";
sha256 = "1m58j1hymjw4l2z1jdfirw1vb3rblc1qffpvc2lqy99frfz0dlvp";
};
cargoSha256 = "0wk90p20qkbpr866h8cvdshr8cl2kmc3dh2zxws5mlsh3sx2ld4w";
nativeBuildInputs = [ pkg-config ];
buildInputs = [ gtk3 gtk-layer-shell ];
meta = with lib; {
description = "Simple app launcher for wayland written in rust";
homepage = "https://github.com/DorianRudolph/sirula";
license = with licenses; [ gpl3Plus ];
maintainers = with maintainers; [ twitchyliquid64 ];
};
}

View file

@ -658,6 +658,8 @@ in
singularity-tools = callPackage ../build-support/singularity-tools { }; singularity-tools = callPackage ../build-support/singularity-tools { };
sirula = callPackage ../tools/wayland/sirula { };
srcOnly = callPackage ../build-support/src-only { }; srcOnly = callPackage ../build-support/src-only { };
substituteAll = callPackage ../build-support/substitute/substitute-all.nix { }; substituteAll = callPackage ../build-support/substitute/substitute-all.nix { };
@ -3331,6 +3333,8 @@ in
razergenie = libsForQt5.callPackage ../applications/misc/razergenie { }; razergenie = libsForQt5.callPackage ../applications/misc/razergenie { };
replay-sorcery = callPackage ../tools/video/replay-sorcery { };
ring-daemon = callPackage ../applications/networking/instant-messengers/ring-daemon { }; ring-daemon = callPackage ../applications/networking/instant-messengers/ring-daemon { };
ripasso-cursive = callPackage ../tools/security/ripasso/cursive.nix { ripasso-cursive = callPackage ../tools/security/ripasso/cursive.nix {
@ -32025,7 +32029,7 @@ in
unicode-paracode = callPackage ../tools/misc/unicode { }; unicode-paracode = callPackage ../tools/misc/unicode { };
unixcw = callPackage ../applications/radio/unixcw { }; unixcw = libsForQt5.callPackage ../applications/radio/unixcw { };
vault = callPackage ../tools/security/vault { }; vault = callPackage ../tools/security/vault { };