diff --git a/maintainers/maintainer-list.nix b/maintainers/maintainer-list.nix index 8b265d59e6f..dfed0146d0e 100644 --- a/maintainers/maintainer-list.nix +++ b/maintainers/maintainer-list.nix @@ -3193,6 +3193,12 @@ githubId = 19961516; name = "Felix Weilbach"; }; + fliegendewurst = { + email = "arne.keller@posteo.de"; + github = "FliegendeWurst"; + githubId = 12560461; + name = "Arne Keller"; + }; flokli = { email = "flokli@flokli.de"; github = "flokli"; @@ -6325,6 +6331,12 @@ githubId = 1776903; name = "Andrew Abbott"; }; + mitchmindtree = { + email = "mail@mitchellnordine.com"; + github = "mitchmindtree"; + githubId = 4587373; + name = "Mitchell Nordine"; + }; mjanczyk = { email = "m@dragonvr.pl"; github = "mjanczyk"; diff --git a/pkgs/applications/audio/ardour/default.nix b/pkgs/applications/audio/ardour/default.nix index 26e25c687e7..b6643264071 100644 --- a/pkgs/applications/audio/ardour/default.nix +++ b/pkgs/applications/audio/ardour/default.nix @@ -16,6 +16,7 @@ , glibmm , graphviz , gtkmm2 +, harvid , itstool , libarchive , libjack2 @@ -35,6 +36,7 @@ , lilv , lrdf , lv2 +, makeWrapper , pango , perl , pkg-config @@ -49,6 +51,8 @@ , taglib , vamp-plugin-sdk , wafHook +, xjadeo +, videoSupport ? false }: stdenv.mkDerivation rec { pname = "ardour"; @@ -70,6 +74,7 @@ stdenv.mkDerivation rec { doxygen graphviz # for dot itstool + makeWrapper perl pkg-config python3 @@ -121,7 +126,7 @@ stdenv.mkDerivation rec { suil taglib vamp-plugin-sdk - ]; + ] ++ lib.optionals videoSupport [ harvid xjadeo ]; wafConfigureFlags = [ "--cxx11" @@ -158,6 +163,10 @@ stdenv.mkDerivation rec { "$out/share/icons/hicolor/''${size}x''${size}/apps/ardour6.png" done install -vDm 644 "ardour.1"* -t "$out/share/man/man1" + '' + lib.optionalString videoSupport '' + # `harvid` and `xjadeo` must be accessible in `PATH` for video to work. + wrapProgram "$out/bin/ardour6" \ + --prefix PATH : "${lib.makeBinPath [ harvid xjadeo ]}" ''; LINKFLAGS = "-lpthread"; @@ -174,8 +183,8 @@ stdenv.mkDerivation rec { https://community.ardour.org/donate ''; homepage = "https://ardour.org/"; - license = licenses.gpl2; + license = licenses.gpl2Plus; platforms = platforms.linux; - maintainers = with maintainers; [ goibhniu magnetophon ]; + maintainers = with maintainers; [ goibhniu magnetophon mitchmindtree ]; }; } diff --git a/pkgs/applications/networking/cluster/fluxcd/default.nix b/pkgs/applications/networking/cluster/fluxcd/default.nix index d82c6b45742..eb2e5e049cf 100644 --- a/pkgs/applications/networking/cluster/fluxcd/default.nix +++ b/pkgs/applications/networking/cluster/fluxcd/default.nix @@ -1,26 +1,39 @@ -{ lib, buildGoModule, fetchFromGitHub, installShellFiles }: +{ lib, buildGoModule, fetchFromGitHub, fetchzip, installShellFiles }: + +let + version = "0.10.0"; + + manifests = fetchzip { + url = "https://github.com/fluxcd/flux2/releases/download/v${version}/manifests.tar.gz"; + sha256 = "Der1Ud27eIV450KkxDTF2frmeKEHKsg6vJgdXE+3548="; + stripRoot = false; + }; +in buildGoModule rec { + inherit version; + pname = "fluxcd"; - version = "0.8.2"; src = fetchFromGitHub { owner = "fluxcd"; repo = "flux2"; rev = "v${version}"; - sha256 = "1yrjgjagh7jfzgvnj9wr71mk34x7yf66fwyby73f1pfi2cg49nhp"; + sha256 = "iJ6UyHbF4+RvfNoOuHt6X2R6XhpBe+t76deldwY5P2c="; }; - vendorSha256 = "0acxbmc4j1fcdja0s9g04f0kd34x54yfqismibfi40m2gzbg6ljr"; + vendorSha256 = "Z0keCr+KZ593c6a/56lYJwOgXu5hrUSn6N3NFf2LDUM="; nativeBuildInputs = [ installShellFiles ]; - doCheck = false; - subPackages = [ "cmd/flux" ]; buildFlagsArray = [ "-ldflags=-s -w -X main.VERSION=${version}" ]; + postUnpack = '' + cp -r ${manifests} source/cmd/flux/manifests + ''; + doInstallCheck = true; installCheckPhase = '' $out/bin/flux --version | grep ${version} > /dev/null diff --git a/pkgs/applications/office/trilium/0001-Use-console-logger-instead-of-rolling-files.patch b/pkgs/applications/office/trilium/0001-Use-console-logger-instead-of-rolling-files.patch index 1a4350ca71a..21b6b1c579c 100644 --- a/pkgs/applications/office/trilium/0001-Use-console-logger-instead-of-rolling-files.patch +++ b/pkgs/applications/office/trilium/0001-Use-console-logger-instead-of-rolling-files.patch @@ -1,17 +1,8 @@ -From 5be803a1171855f976a5b607970fa3949db72181 Mon Sep 17 00:00:00 2001 -From: Christian Kampka -Date: Mon, 9 Dec 2019 19:40:27 +0100 -Subject: [PATCH] Use console logger instead of rolling files - ---- - src/services/log.js | 26 +++----------------------- - 1 file changed, 3 insertions(+), 23 deletions(-) - diff --git a/src/services/log.js b/src/services/log.js -index 1514c209..456c3749 100644 +index b4c39e99..4c249154 100644 --- a/src/services/log.js +++ b/src/services/log.js -@@ -1,35 +1,15 @@ +@@ -1,14 +1,5 @@ "use strict"; -const fs = require('fs'); @@ -21,49 +12,50 @@ index 1514c209..456c3749 100644 - fs.mkdirSync(dataDir.LOG_DIR, 0o700); -} - --const logger = require('simple-node-logger').createRollingFileLogger({ -- errorEventName: 'error', -- logDirectory: dataDir.LOG_DIR, -- fileNamePattern: 'trilium-.log', -- dateFormat:'YYYY-MM-DD' --}); +-let logFile = null; - - function info(message) { - // info messages are logged asynchronously - setTimeout(() => { - console.log(message); + const SECOND = 1000; + const MINUTE = 60 * SECOND; + const HOUR = 60 * MINUTE; +@@ -16,41 +7,7 @@ const DAY = 24 * HOUR; + + const NEW_LINE = process.platform === "win32" ? '\r\n' : '\n'; + +-let todaysMidnight = null; - -- logger.info(message); - }, 0); +-initLogFile(); +- +-function getTodaysMidnight() { +- const now = new Date(); +- +- return new Date(now.getFullYear(), now.getMonth(), now.getDate()); +-} +- +-function initLogFile() { +- todaysMidnight = getTodaysMidnight(); +- +- const path = dataDir.LOG_DIR + '/trilium-' + formatDate() + '.log'; +- +- if (logFile) { +- logFile.end(); +- } +- +- logFile = fs.createWriteStream(path, {flags: 'a'}); +-} +- +-function checkDate(millisSinceMidnight) { +- if (millisSinceMidnight >= DAY) { +- initLogFile(); +- } +-} +- + function log(str) { +- const millisSinceMidnight = Date.now() - todaysMidnight.getTime(); +- +- checkDate(millisSinceMidnight); +- +- logFile.write(formatTime(millisSinceMidnight) + ' ' + str + NEW_LINE); +- + console.log(str); } - function error(message) { - message = "ERROR: " + message; - -- // we're using .info() instead of .error() because simple-node-logger emits weird error for showError() -- // errors are logged synchronously to make sure it doesn't get lost in case of crash -- logger.info(message); -- - console.trace(message); - } - -@@ -45,12 +25,12 @@ function request(req) { - if (req.url.includes(".js.map") || req.url.includes(".css.map")) { - return; - } -- -- logger.info(req.method + " " + req.url); -+ if(process.env.DEBUG) -+ console.log(req.method + " " + req.url); - } - - module.exports = { - info, - error, - request --}; -\ No newline at end of file -+}; --- -2.23.0 - diff --git a/pkgs/applications/office/trilium/default.nix b/pkgs/applications/office/trilium/default.nix index cb0781f74e1..0b191f58041 100644 --- a/pkgs/applications/office/trilium/default.nix +++ b/pkgs/applications/office/trilium/default.nix @@ -14,21 +14,21 @@ let meta = with lib; { inherit description; homepage = "https://github.com/zadam/trilium"; - license = licenses.agpl3; + license = licenses.agpl3Plus; platforms = [ "x86_64-linux" ]; - maintainers = with maintainers; [ emmanuelrosa dtzWill ]; + maintainers = with maintainers; [ fliegendewurst ]; }; - version = "0.43.4"; + version = "0.45.10"; desktopSource = { url = "https://github.com/zadam/trilium/releases/download/v${version}/trilium-linux-x64-${version}.tar.xz"; - sha256 = "0kjysam5alsmnj93fcqq1ivawnra42gn7dch99rrfmvbkxp7hhr8"; + sha256 = "06ykgcak7l3q812c4xrp720db3yq0v2lkrzkmwchlwp5rpwhqpck"; }; serverSource = { url = "https://github.com/zadam/trilium/releases/download/v${version}/trilium-linux-x64-server-${version}.tar.xz"; - sha256 = "128mvmp15mjpb5ipkmr0yn7ahby26shbix3f8q094f4zpxjp83zx"; + sha256 = "1252zgyb23vfvy63cqd8jdjbm4w9ddwnp32z5vf1fqvd2rrz6lz9"; }; in { @@ -95,12 +95,18 @@ in { libxkbfile ]; - patches = [ ./0001-Use-console-logger-instead-of-rolling-files.patch ] ; + patches = [ + # patch logger to use console instead of rolling files + ./0001-Use-console-logger-instead-of-rolling-files.patch + ]; + installPhase = '' + runHook preInstall mkdir -p $out/bin mkdir -p $out/share/trilium-server cp -r ./* $out/share/trilium-server + runHook postInstall ''; postFixup = '' diff --git a/pkgs/development/libraries/libplctag/default.nix b/pkgs/development/libraries/libplctag/default.nix new file mode 100644 index 00000000000..ba39926576d --- /dev/null +++ b/pkgs/development/libraries/libplctag/default.nix @@ -0,0 +1,27 @@ +{ lib +, stdenv +, cmake +, fetchFromGitHub +}: + +stdenv.mkDerivation rec { + pname = "libplctag"; + version = "2.3.5"; + + src = fetchFromGitHub { + owner = "libplctag"; + repo = "libplctag"; + rev = "v${version}"; + sha256 = "0brmzr863chybm5y0q5hld5mhf6kx0bl4dddr7j69adlraak7x6s"; + }; + + nativeBuildInputs = [ cmake ]; + + meta = with lib; { + homepage = "https://github.com/libplctag/libplctag"; + description = "Library that uses EtherNet/IP or Modbus TCP to read and write tags in PLCs"; + license = with licenses; [ lgpl2Plus mpl20 ]; + maintainers = with maintainers; [ petterstorvik ]; + platforms = platforms.all; + }; +} diff --git a/pkgs/tools/security/grype/default.nix b/pkgs/tools/security/grype/default.nix index dc4b487747c..6d67f038e4a 100644 --- a/pkgs/tools/security/grype/default.nix +++ b/pkgs/tools/security/grype/default.nix @@ -6,16 +6,16 @@ buildGoModule rec { pname = "grype"; - version = "0.7.0"; + version = "0.8.0"; src = fetchFromGitHub { owner = "anchore"; repo = pname; rev = "v${version}"; - sha256 = "sha256-co00Ye/QVNSG4h67m56+37JLilBVzHxUwMs1vS3wYX4="; + sha256 = "sha256-/OgAh33DF0UkBcc5GriGgeoZ7kae9GhGnUnIX6lGlys="; }; - vendorSha256 = "sha256-q7n8WLw/A2wr3z5h7zaFERY7lO5UIsmTD2mrcH/vpNs="; + vendorSha256 = "sha256-SGO8RKSOK0PHqSIJfTdcuAmqMtFuo9MBdiEylDUpOFo="; propagatedBuildInputs = [ docker ]; diff --git a/pkgs/tools/system/gdu/default.nix b/pkgs/tools/system/gdu/default.nix index 46ba57cea14..303e78d82ed 100644 --- a/pkgs/tools/system/gdu/default.nix +++ b/pkgs/tools/system/gdu/default.nix @@ -7,13 +7,13 @@ buildGoModule rec { pname = "gdu"; - version = "4.8.0"; + version = "4.8.1"; src = fetchFromGitHub { owner = "dundee"; repo = pname; rev = "v${version}"; - sha256 = "sha256-3u3tsUwxj7lzqoydycIoYSd7ifb9pLlehDA3NwvzPOo="; + sha256 = "sha256-3qx9nL1lzVbtvVW3O9kQw4FoVuCqo8fxl8u1WXZNRFs="; }; vendorSha256 = "sha256-QiO5p0x8kmIN6f0uYS0IR2MlWtRYTHeZpW6Nmupjias="; diff --git a/pkgs/tools/video/harvid/default.nix b/pkgs/tools/video/harvid/default.nix new file mode 100644 index 00000000000..812457f35cb --- /dev/null +++ b/pkgs/tools/video/harvid/default.nix @@ -0,0 +1,42 @@ +{ lib, stdenv, fetchFromGitHub, ffmpeg, libjpeg, libpng, pkg-config }: + +stdenv.mkDerivation rec { + pname = "harvid"; + version = "0.8.3"; + + src = fetchFromGitHub { + owner = "x42"; + repo = "harvid"; + rev = "v${version}"; + sha256 = "0l1plfsfh2ixhlzg3hqqvjj42z7g422718a9kgbh7b4p882n71x7"; + }; + + nativeBuildInputs = [ pkg-config ]; + + buildInputs = [ ffmpeg libjpeg libpng ]; + + makeFlags = [ "DESTDIR=$(out)" "libdir=\"/lib\"" ]; + + postInstall = '' + mkdir -p $out/bin + mv $out/usr/local/bin/* $out/bin + mv $out/usr/local/share $out/ + rm -r $out/usr + ''; + + meta = with lib; { + description = + "Decodes still images from movie files and serves them via HTTP"; + longDescription = '' + harvid's intended use-case is to efficiently provide frame-accurate data + and act as second level cache for rendering the video-timeline in Ardour, + but it is not limited to that: it has applications for any task that + requires a high-performance frame-accurate online image extraction + processor. + ''; + homepage = "http://x42.github.io/harvid"; + license = licenses.gpl2Plus; + platforms = platforms.linux; + maintainers = with maintainers; [ mitchmindtree ]; + }; +} diff --git a/pkgs/tools/video/xjadeo/default.nix b/pkgs/tools/video/xjadeo/default.nix new file mode 100644 index 00000000000..bcd6d5601c0 --- /dev/null +++ b/pkgs/tools/video/xjadeo/default.nix @@ -0,0 +1,48 @@ +{ lib, stdenv, autoreconfHook, fetchFromGitHub, ffmpeg, freetype, libGLU +, libjack2, liblo, libX11, libXv, pkg-config, portmidi, xorg }: + +stdenv.mkDerivation rec { + pname = "xjadeo"; + version = "0.8.10"; + + src = fetchFromGitHub { + owner = "x42"; + repo = "xjadeo"; + rev = "v${version}"; + sha256 = "0dma4cjgbrpy16x63zvfr0xss4lryl0zw7nvixvhq2f6z8day1ds"; + }; + + nativeBuildInputs = [ autoreconfHook pkg-config ]; + + buildInputs = [ + ffmpeg + libjack2 + libX11 + xorg.libXext + xorg.libXpm + # The following are recommended in the README, but are seemingly + # unnecessary for a successful build. That said, the result of including + # these in the build process is possibly required at runtime in some cases, + # but I've not the time to test thoroughly for these cases. Should + # consider investigating and splitting these into options in the future. + freetype + libGLU + liblo + libXv + portmidi + ]; + + meta = with lib; { + description = "The X Jack Video Monitor"; + longDescription = '' + Xjadeo is a software video player that displays a video-clip in sync with + an external time source (MTC, LTC, JACK-transport). Xjadeo is useful in + soundtrack composition, video monitoring or any task that requires to + synchronizing movie frames with external events. + ''; + homepage = "http://xjadeo.sourceforge.net"; + license = licenses.gpl2Plus; + platforms = platforms.linux; + maintainers = with maintainers; [ mitchmindtree ]; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 3b7831d8796..b18909f45c1 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -1381,6 +1381,8 @@ in hakrawler = callPackage ../tools/security/hakrawler { }; + harvid = callPackage ../tools/video/harvid { }; + hime = callPackage ../tools/inputmethods/hime {}; hinit = haskell.lib.justStaticExecutables haskellPackages.hinit; @@ -1427,6 +1429,8 @@ in passExtensions = recurseIntoAttrs pass.extensions; + xjadeo = callPackage ../tools/video/xjadeo { }; + asc-key-to-qr-code-gif = callPackage ../tools/security/asc-key-to-qr-code-gif { }; go-audit = callPackage ../tools/system/go-audit { }; @@ -6121,6 +6125,8 @@ in libnixxml = callPackage ../development/libraries/libnixxml { }; + libplctag = callPackage ../development/libraries/libplctag { }; + libpointmatcher = callPackage ../development/libraries/libpointmatcher { }; libportal = callPackage ../development/libraries/libportal { };