about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--pkgs/applications/misc/crow-translate/default.nix74
-rw-r--r--pkgs/applications/misc/crow-translate/dont-fetch-external-libs.patch33
-rw-r--r--pkgs/applications/misc/crow-translate/fix-qttranslations-path.patch13
-rw-r--r--pkgs/applications/misc/signumone-ks/default.nix55
-rw-r--r--pkgs/development/tools/analysis/tflint/default.nix6
-rw-r--r--pkgs/development/tools/sumneko-lua-language-server/default.nix52
-rw-r--r--pkgs/games/domination/default.nix93
-rw-r--r--pkgs/games/jumpnbump/default.nix55
-rw-r--r--pkgs/misc/uboot/0001-configs-rpi-allow-for-bigger-kernels.patch30
-rw-r--r--pkgs/misc/uboot/default.nix4
-rw-r--r--pkgs/tools/misc/psw/default.nix26
-rw-r--r--pkgs/tools/misc/urn-timer/default.nix66
-rw-r--r--pkgs/tools/security/crlfuzz/default.nix27
-rw-r--r--pkgs/top-level/all-packages.nix16
-rw-r--r--pkgs/top-level/perl-packages.nix8
15 files changed, 550 insertions, 8 deletions
diff --git a/pkgs/applications/misc/crow-translate/default.nix b/pkgs/applications/misc/crow-translate/default.nix
new file mode 100644
index 000000000000..120bc768c398
--- /dev/null
+++ b/pkgs/applications/misc/crow-translate/default.nix
@@ -0,0 +1,74 @@
+{ stdenv
+, mkDerivation
+, fetchFromGitHub
+, substituteAll
+, cmake
+, extra-cmake-modules
+, qttools
+, leptonica
+, tesseract4
+, qtmultimedia
+, qtx11extras
+, qttranslations
+}:
+let
+  singleapplication = fetchFromGitHub {
+    owner = "itay-grudev";
+    repo = "SingleApplication";
+    rev = "v3.2.0";
+    sha256 = "0w3z97dcqcz3bf7w6fja4smkafmx9kvhzb9px4k2nfmmyxh4yfma";
+  };
+  qtaskbarcontrol = fetchFromGitHub {
+    owner = "Skycoder42";
+    repo = "QTaskbarControl";
+    rev = "2.0.2";
+    sha256 = "0iymcvq3pv07fs9l4kh6hi1igqr7957iqndhsmg9fqkalf8nqyad";
+  };
+  qhotkey = fetchFromGitHub {
+    owner = "Skycoder42";
+    repo = "QHotkey";
+    rev = "1.4.2";
+    sha256 = "0391fkqrxqmzpvms4rk06aq05l308k6sadp6y3czq0gx2kng8mn9";
+  };
+  qonlinetranslator = fetchFromGitHub {
+    owner = "crow-translate";
+    repo = "QOnlineTranslator";
+    rev = "1.4.1";
+    sha256 = "1c6a8mdxms5vh8l7shi2kqdhafbzm50pbz6g1hhgg6qslla0vfn0";
+  };
+in
+mkDerivation rec {
+  pname = "crow-translate";
+  version = "2.6.2";
+
+  src = fetchFromGitHub {
+    owner = "crow-translate";
+    repo = "crow-translate";
+    rev = version;
+    sha256 = "1jgpqynmxmh6mrknpk5fh96lbdg799axp4cyn5rvalg3sdxajmqc";
+  };
+
+  patches = [
+    (substituteAll {
+      src = ./dont-fetch-external-libs.patch;
+      inherit singleapplication qtaskbarcontrol qhotkey qonlinetranslator;
+    })
+    (substituteAll {
+      # See https://github.com/NixOS/nixpkgs/issues/86054
+      src = ./fix-qttranslations-path.patch;
+      inherit qttranslations;
+    })
+  ];
+
+  nativeBuildInputs = [ cmake extra-cmake-modules qttools ];
+
+  buildInputs = [ leptonica tesseract4 qtmultimedia qtx11extras ];
+
+  meta = with stdenv.lib; {
+    description = "A simple and lightweight translator that allows to translate and speak text using Google, Yandex and Bing";
+    homepage = "https://crow-translate.github.io/";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ sikmir ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/applications/misc/crow-translate/dont-fetch-external-libs.patch b/pkgs/applications/misc/crow-translate/dont-fetch-external-libs.patch
new file mode 100644
index 000000000000..b5f8d4606aa0
--- /dev/null
+++ b/pkgs/applications/misc/crow-translate/dont-fetch-external-libs.patch
@@ -0,0 +1,33 @@
+diff --git i/cmake/ExternalLibraries.cmake w/cmake/ExternalLibraries.cmake
+index d8c88ae..47a12c0 100644
+--- i/cmake/ExternalLibraries.cmake
++++ w/cmake/ExternalLibraries.cmake
+@@ -2,24 +2,20 @@ include(FetchContent)
+ 
+ set(QAPPLICATION_CLASS QApplication)
+ FetchContent_Declare(SingleApplication
+-    GIT_REPOSITORY https://github.com/itay-grudev/SingleApplication
+-    GIT_TAG v3.2.0
++    SOURCE_DIR @singleapplication@
+ )
+ 
+ FetchContent_Declare(QTaskbarControl
+-    GIT_REPOSITORY https://github.com/Skycoder42/QTaskbarControl
+-    GIT_TAG 2.0.2
++    SOURCE_DIR @qtaskbarcontrol@
+ )
+ 
+ option(QHOTKEY_INSTALL OFF)
+ FetchContent_Declare(QHotkey
+-    GIT_REPOSITORY https://github.com/Skycoder42/QHotkey
+-    GIT_TAG 1.4.2
++    SOURCE_DIR @qhotkey@
+ )
+ 
+ FetchContent_Declare(QOnlineTranslator
+-    GIT_REPOSITORY https://github.com/crow-translate/QOnlineTranslator
+-    GIT_TAG 1.4.1
++    SOURCE_DIR @qonlinetranslator@
+ )
+ 
+ FetchContent_MakeAvailable(SingleApplication QTaskbarControl QHotkey QOnlineTranslator)
diff --git a/pkgs/applications/misc/crow-translate/fix-qttranslations-path.patch b/pkgs/applications/misc/crow-translate/fix-qttranslations-path.patch
new file mode 100644
index 000000000000..816b6c51886a
--- /dev/null
+++ b/pkgs/applications/misc/crow-translate/fix-qttranslations-path.patch
@@ -0,0 +1,13 @@
+diff --git i/src/settings/appsettings.cpp w/src/settings/appsettings.cpp
+index 7be4573..e65994e 100644
+--- i/src/settings/appsettings.cpp
++++ w/src/settings/appsettings.cpp
+@@ -82,7 +82,7 @@ void AppSettings::applyLanguage(QLocale::Language lang)
+         QLocale::setDefault(QLocale(lang));
+ 
+     s_appTranslator.load(QLocale(), QStringLiteral(PROJECT_NAME), QStringLiteral("_"), QStandardPaths::locate(QStandardPaths::AppDataLocation, QStringLiteral("translations"), QStandardPaths::LocateDirectory));
+-    s_qtTranslator.load(QLocale(), QStringLiteral("qt"), QStringLiteral("_"), QLibraryInfo::location(QLibraryInfo::TranslationsPath));
++    s_qtTranslator.load(QLocale(), QStringLiteral("qt"), QStringLiteral("_"), QLatin1String("@qttranslations@/translations"));
+ }
+ 
+ QLocale::Language AppSettings::defaultLanguage()
diff --git a/pkgs/applications/misc/signumone-ks/default.nix b/pkgs/applications/misc/signumone-ks/default.nix
new file mode 100644
index 000000000000..cf6fcb201672
--- /dev/null
+++ b/pkgs/applications/misc/signumone-ks/default.nix
@@ -0,0 +1,55 @@
+{ stdenv, fetchurl, dpkg, autoPatchelfHook, makeWrapper,
+  atk, ffmpeg, gdk-pixbuf, glibc, gtk3, libav_0_8, libXtst }:
+
+stdenv.mkDerivation rec {
+  pname = "signumone-ks";
+  version = "3.1.2";
+
+  src = fetchurl {
+    url = "https://cdn-dist.signum.one/${version}/${pname}-${version}.deb";
+    sha256 = "4efd80e61619ccf26df1292194fcec68eb14d77dfcf0a1a673da4cf5bf41f4b7";
+  };
+
+  # Necessary to avoid using multiple ffmpeg and gtk libs
+  autoPatchelfIgnoreMissingDeps = true;
+
+  nativeBuildInputs = [
+    autoPatchelfHook
+    dpkg
+    makeWrapper
+  ];
+
+  buildInputs = [
+    atk glibc gdk-pixbuf stdenv.cc.cc ffmpeg
+    libav_0_8 gtk3 libXtst
+  ];
+
+  libPath = stdenv.lib.makeLibraryPath buildInputs;
+
+  unpackPhase = ''
+    dpkg-deb -x ${src} ./
+  '';
+
+  installPhase = ''
+    DESKTOP_PATH=$out/share/applications/signumone-ks.desktop
+
+    mkdir -p $out/bin $out/share/applications
+    mv opt/SignumOne-KS/SignumOne-KS.desktop $DESKTOP_PATH
+    mv opt $out
+
+    substituteInPlace $DESKTOP_PATH --replace 'Exec=/opt/SignumOne-KS' Exec=$out/bin
+    substituteInPlace $DESKTOP_PATH --replace 'Icon=' Icon=$out
+
+    makeWrapper $out/opt/SignumOne-KS/SignumOne-KS \
+      $out/bin/SignumOne-KS \
+      --prefix LD_LIBRARY_PATH : ${libPath}
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Digital signature tool for Costa Rican electronic invoicing";
+    homepage = "https://signum.one/download.html";
+    license = licenses.unfree;
+    maintainers = with maintainers; [ wolfangaukang ];
+    platforms = [ "x86_64-linux" ];
+  };
+}
diff --git a/pkgs/development/tools/analysis/tflint/default.nix b/pkgs/development/tools/analysis/tflint/default.nix
index c8bd6223e92b..617d255d7e51 100644
--- a/pkgs/development/tools/analysis/tflint/default.nix
+++ b/pkgs/development/tools/analysis/tflint/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "tflint";
-  version = "0.23.0";
+  version = "0.23.1";
 
   src = fetchFromGitHub {
     owner = "terraform-linters";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1j6a956cbmsc9fy500sl5z6l7q5sc4fna772v5m10w0hq0vw6sk5";
+    sha256 = "19vgan743xsnglwva93fs4sqcbpqbyrxbgn5qff809ns8hj8ir94";
   };
 
-  vendorSha256 = "1x7gxjl98i36vsch6b3w6iqyq6q8mj4x9gylk2fihq50c3qq4mk4";
+  vendorSha256 = "1y6ra9bkp6wl0pikvyqywhg5w18v3glnyvwqrddkkkabspl05nqx";
 
   doCheck = false;
 
diff --git a/pkgs/development/tools/sumneko-lua-language-server/default.nix b/pkgs/development/tools/sumneko-lua-language-server/default.nix
new file mode 100644
index 000000000000..05281f1bb83c
--- /dev/null
+++ b/pkgs/development/tools/sumneko-lua-language-server/default.nix
@@ -0,0 +1,52 @@
+{ stdenv, fetchFromGitHub, ninja, makeWrapper }:
+
+stdenv.mkDerivation rec {
+  pname = "sumneko-lua-language-server";
+  version = "1.11.2";
+
+  src = fetchFromGitHub {
+    owner = "sumneko";
+    repo = "lua-language-server";
+    rev = version;
+    sha256 = "1cnzwfqmzlzi6797l37arhhx2l6wsvs3jjgxdxwdbgq3rfz1ncr8";
+    fetchSubmodules = true;
+  };
+
+  nativeBuildInputs = [
+    ninja
+    makeWrapper
+  ];
+
+  preBuild = ''
+    cd 3rd/luamake
+  '';
+
+  ninjaFlags = [
+    "-f ninja/linux.ninja"
+    ];
+
+  postBuild = ''
+    cd ../..
+    ./3rd/luamake/luamake rebuild
+  '';
+
+  installPhase = ''
+    mkdir -p $out/bin $out/extras
+    cp -r ./{locale,meta,script,*.lua} $out/extras/
+    cp ./bin/Linux/{bee.so,lpeglabel.so} $out/extras
+    cp ./bin/Linux/lua-language-server $out/extras/.lua-language-server-unwrapped
+    makeWrapper $out/extras/.lua-language-server-unwrapped \
+      $out/bin/lua-language-server \
+      --add-flags "-E $out/extras/main.lua \
+      --logpath='~/.cache/sumneko_lua/log' \
+      --metapath='~/.cache/sumneko_lua/meta'"
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Lua Language Server coded by Lua ";
+    homepage = "https://github.com/sumneko/lua-language-server";
+    license = licenses.mit;
+    maintainers = with maintainers; [ mjlbach ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/games/domination/default.nix b/pkgs/games/domination/default.nix
new file mode 100644
index 000000000000..37c7d37741b8
--- /dev/null
+++ b/pkgs/games/domination/default.nix
@@ -0,0 +1,93 @@
+{ stdenv
+, fetchsvn
+# jdk8 is needed for building, but the game runs on newer jres as well
+, jdk8
+, jre
+, ant
+, makeWrapper
+, makeDesktopItem
+}:
+
+let
+  desktopItem = makeDesktopItem {
+    type = "Application";
+    name = "Domination";
+    desktopName = "Domination";
+    exec = "domination";
+    icon = "domination";
+  };
+  editorDesktopItem = makeDesktopItem {
+    type = "Application";
+    name = "Domination Map Editor";
+    desktopName = "Domination Map Editor";
+    exec = "domination-map-editor";
+    icon = "domination";
+  };
+
+in stdenv.mkDerivation {
+  pname = "domination";
+  version = "1.2.3";
+
+  # The .zip releases do not contain the build.xml file
+  src = fetchsvn {
+    url = "https://svn.code.sf.net/p/domination/code/Domination";
+    # There are no tags in the repository.
+    # Look for commits like "new version x.y.z info on website"
+    # or "website update for x.y.z".
+    rev = "1964";
+    sha256 = "0718gns8d69a1dfq3ywc9kddl1khnrmxqyal7brckbjgay8dq42f";
+  };
+
+  nativeBuildInputs = [
+    jdk8
+    ant
+    makeWrapper
+  ];
+
+  buildPhase = "ant";
+
+  installPhase = ''
+    # Remove unnecessary files and launchers (they'd need to be wrapped anyway)
+    rm -r \
+      build/game/src.zip \
+      build/game/*.sh \
+      build/game/*.cmd \
+      build/game/*.exe \
+      build/game/*.app
+
+    mkdir -p $out/share/domination
+    cp -r build/game/* $out/share/domination/
+
+    # Reimplement the two launchers mentioned in Unix_shortcutSpec.xml with makeWrapper
+    mkdir -p $out/bin
+    makeWrapper ${jre}/bin/java $out/bin/domination \
+      --run "cd $out/share/domination" \
+      --add-flags "-jar $out/share/domination/Domination.jar"
+    makeWrapper ${jre}/bin/java $out/bin/domination-map-editor \
+      --run "cd $out/share/domination" \
+      --add-flags "-cp $out/share/domination/Domination.jar net.yura.domination.ui.swinggui.SwingGUIFrame"
+
+    install -Dm644 \
+      ${desktopItem}/share/applications/Domination.desktop \
+      $out/share/applications/Domination.desktop
+    install -Dm644 \
+      "${editorDesktopItem}/share/applications/Domination Map Editor.desktop" \
+      "$out/share/applications/Domination Map Editor.desktop"
+    install -Dm644 build/game/resources/icon.png $out/share/pixmaps/domination.png
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = "http://domination.sourceforge.net/";
+    downloadPage = "http://domination.sourceforge.net/download.shtml";
+    description = "A game that is a bit like the board game Risk or RisiKo";
+    longDescription = ''
+      Domination is a game that is a bit like the well known board game of Risk
+      or RisiKo. It has many game options and includes many maps.
+      It includes a map editor, a simple map format, multiplayer network play,
+      single player, hotseat, 5 user interfaces and many more features.
+    '';
+    license = licenses.gpl3;
+    maintainers = with maintainers; [ fgaz ];
+    platforms = platforms.all;
+  };
+}
diff --git a/pkgs/games/jumpnbump/default.nix b/pkgs/games/jumpnbump/default.nix
new file mode 100644
index 000000000000..d81aece0e821
--- /dev/null
+++ b/pkgs/games/jumpnbump/default.nix
@@ -0,0 +1,55 @@
+{ stdenv
+, fetchFromGitLab
+, fetchzip
+, SDL2, SDL2_mixer, SDL2_net
+, gtk3, gobject-introspection
+, python3Packages
+, wrapGAppsHook
+}:
+
+let data = fetchzip {
+  url = "https://mirandir.pagesperso-orange.fr/files/additional-levels.tar.xz";
+  sha256 = "167hisscsbldrwrs54gq6446shl8h26qdqigmfg0lq3daynqycg2";
+}; in
+
+stdenv.mkDerivation rec {
+  pname = "jumpnbump";
+  version = "1.70-dev";
+
+  # By targeting the development version, we can omit the patches Arch uses
+  src = fetchFromGitLab {
+    domain = "gitlab.com";
+    owner = "LibreGames";
+    repo = pname;
+    rev = "5744738211ca691444f779aafee3537fb3562516";
+    sha256 = "0f1k26jicmb95bx19wgcdpwsbbl343i7mqqqc2z9lkb8drlsyqcy";
+  };
+
+  makeFlags = [ "PREFIX=$(out)" ];
+
+  nativeBuildInputs = [ python3Packages.wrapPython wrapGAppsHook ];
+  buildInputs = [ SDL2 SDL2_mixer SDL2_net gtk3 gobject-introspection ];
+
+  postInstall = ''
+    make -C menu PREFIX=$out all install
+    cp -r ${data}/* $out/share/jumpnbump/
+    rm $out/share/applications/jumpnbump-menu.desktop
+    sed -ie 's+Exec=jumpnbump+Exec=jumpnbump-menu+' $out/share/applications/jumpnbump.desktop
+  '';
+
+  pythonPath = with python3Packages; [ pygobject3 pillow ];
+  preFixup = ''
+    buildPythonPath "$out $pythonPath"
+  '';
+  postFixup = ''
+    wrapPythonPrograms
+  '';
+
+  meta = with stdenv.lib; {
+    description = "cute, true multiplayer platform game with bunnies";
+    homepage    = "https://libregames.gitlab.io/jumpnbump/";
+    license     = licenses.gpl2Plus;
+    maintainers = with maintainers; [ iblech ];
+    platforms   = platforms.unix;
+  };
+}
diff --git a/pkgs/misc/uboot/0001-configs-rpi-allow-for-bigger-kernels.patch b/pkgs/misc/uboot/0001-configs-rpi-allow-for-bigger-kernels.patch
new file mode 100644
index 000000000000..ca82e82123b8
--- /dev/null
+++ b/pkgs/misc/uboot/0001-configs-rpi-allow-for-bigger-kernels.patch
@@ -0,0 +1,30 @@
+From 3c6b7c0922370e9d0c1705706e7c47dcd234e6c8 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Milan=20P=C3=A4ssler?= <milan@petabyte.dev>
+Date: Wed, 30 Dec 2020 11:49:16 +0100
+Subject: [PATCH] configs/rpi: allow for bigger kernels
+
+---
+ include/configs/rpi.h | 8 ++++----
+ 1 file changed, 4 insertions(+), 4 deletions(-)
+
+diff --git a/include/configs/rpi.h b/include/configs/rpi.h
+index 834f1cd2..b63ee96f 100644
+--- a/include/configs/rpi.h
++++ b/include/configs/rpi.h
+@@ -163,10 +163,10 @@
+    "fdt_high=" FDT_HIGH "\0" \
+    "initrd_high=" INITRD_HIGH "\0" \
+    "kernel_addr_r=0x00080000\0" \
+-   "scriptaddr=0x02400000\0" \
+-   "pxefile_addr_r=0x02500000\0" \
+-   "fdt_addr_r=0x02600000\0" \
+-   "ramdisk_addr_r=0x02700000\0"
++   "scriptaddr=0x02c00000\0" \
++   "pxefile_addr_r=0x02d00000\0" \
++   "fdt_addr_r=0x02e00000\0" \
++   "ramdisk_addr_r=0x02f00000\0"
+
+ #if CONFIG_IS_ENABLED(CMD_MMC)
+    #define BOOT_TARGET_MMC(func) \
+--
+2.29.2
diff --git a/pkgs/misc/uboot/default.nix b/pkgs/misc/uboot/default.nix
index c841c69446fc..b1e8e7f2b240 100644
--- a/pkgs/misc/uboot/default.nix
+++ b/pkgs/misc/uboot/default.nix
@@ -40,7 +40,9 @@ let
 
     src = if src == null then defaultSrc else src;
 
-    patches = extraPatches;
+    patches = [
+      ./0001-configs-rpi-allow-for-bigger-kernels.patch
+    ] ++ extraPatches;
 
     postPatch = ''
       patchShebangs tools
diff --git a/pkgs/tools/misc/psw/default.nix b/pkgs/tools/misc/psw/default.nix
new file mode 100644
index 000000000000..562810313019
--- /dev/null
+++ b/pkgs/tools/misc/psw/default.nix
@@ -0,0 +1,26 @@
+{ lib
+, fetchFromGitHub
+, rustPlatform
+}:
+
+rustPlatform.buildRustPackage rec {
+  pname = "psw";
+  version = "0.1.2";
+
+  src = fetchFromGitHub {
+    owner = "Wulfsta";
+    repo = pname;
+    rev = version;
+    sha256 = "10raj4899i01f5v13w0wxdnjjicql2wjblkq1zcagrfv3ly3d0fy";
+  };
+
+  cargoSha256 = "1w18rym0xnjk7vhrb2dc4cvhg659zbq5d2153gw2snxcbs7gh7r1";
+
+  meta = with lib; {
+    description = "A command line tool to write random bytes to stdout";
+    homepage = "https://github.com/Wulfsta/psw";
+    license = with licenses; [ asl20 /* or */ mit ];
+    maintainers = with maintainers; [ wulfsta ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/tools/misc/urn-timer/default.nix b/pkgs/tools/misc/urn-timer/default.nix
new file mode 100644
index 000000000000..a6871526f181
--- /dev/null
+++ b/pkgs/tools/misc/urn-timer/default.nix
@@ -0,0 +1,66 @@
+{ stdenv
+, fetchFromGitHub
+, fetchpatch
+, unstableGitUpdater
+, xxd
+, pkg-config
+, imagemagick
+, wrapGAppsHook
+, gtk3
+, jansson
+}:
+
+stdenv.mkDerivation {
+  pname = "urn-timer";
+  version = "unstable-2017-08-20";
+
+  src = fetchFromGitHub {
+    owner = "3snowp7im";
+    repo = "urn";
+    rev = "246a7a642fa7a673166c1bd281585d0fc22e75b2";
+    sha256 = "0bniwf3nhsqapsss9m9y9ylh38v6v7q45999wa1qcsddpa72k0i0";
+    fetchSubmodules = true;
+  };
+
+  patches = [
+    # https://github.com/3snowp7im/urn/pull/50
+    (fetchpatch {
+      name = "stop-hardcoding-prefix";
+      url = "https://github.com/3snowp7im/urn/commit/6054ee62dcd6095e31e8fb2a229155dbbcb39f68.patch";
+      sha256 = "1xdkylbqlqjwqx4pb9v1snf81ag7b6q8vybirz3ibsv6iy79v9pk";
+    })
+    # https://github.com/3snowp7im/urn/pull/53
+    (fetchpatch {
+      name = "create-installation-directories";
+      url = "https://github.com/3snowp7im/urn/commit/fb032851b9c5bebb5066d306f5366f0be34f0797.patch";
+      sha256 = "0jjhcz4n8bm3hl56rvjzkvxr6imc05qlyavzjrlafa19hf036g4a";
+    })
+  ];
+
+  postPatch = ''substituteInPlace GNUmakefile --replace 'rsync -a --exclude=".*"' 'cp -r' '';
+
+  nativeBuildInputs = [
+    xxd
+    pkg-config
+    imagemagick
+    wrapGAppsHook
+  ];
+
+  buildInputs = [
+    gtk3
+    jansson
+  ];
+
+  makeFlags = [ "PREFIX=$(out)" ];
+
+  passthru.updateScript = unstableGitUpdater {
+    url = "https://github.com/3snowp7im/urn.git";
+  };
+
+  meta = with stdenv.lib; {
+    homepage = "https://github.com/3snowp7im/urn";
+    description = "Split tracker / timer for speedrunning with GTK+ frontend";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ fgaz ];
+  };
+}
diff --git a/pkgs/tools/security/crlfuzz/default.nix b/pkgs/tools/security/crlfuzz/default.nix
new file mode 100644
index 000000000000..2e4b17170c65
--- /dev/null
+++ b/pkgs/tools/security/crlfuzz/default.nix
@@ -0,0 +1,27 @@
+{ buildGoModule
+, fetchFromGitHub
+, stdenv
+}:
+
+buildGoModule rec {
+  pname = "crlfuzz";
+  version = "1.4.0";
+
+  src = fetchFromGitHub {
+    owner = "dwisiswant0";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "03g7z7cczn52hvg6srp1i5xhdbpia226adrh2d54cs640063bx3m";
+  };
+
+  vendorSha256 = "19cj07f7d3ksp7lh5amdjz1s8p7xmqbwal4vp61al82n8944ify8";
+
+  doCheck = true;
+
+  meta = with stdenv.lib; {
+    description = "Tool to scan for CRLF vulnerability";
+    homepage = "https://github.com/dwisiswant0/crlfuzz";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index ebaf61a4de2b..1f0c4582820f 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -208,6 +208,8 @@ in
 
   cpu-x = callPackage ../applications/misc/cpu-x { };
 
+  crow-translate = libsForQt5.callPackage ../applications/misc/crow-translate { };
+
   dhallToNix = callPackage ../build-support/dhall-to-nix.nix {
     inherit dhall-nix;
   };
@@ -3032,6 +3034,8 @@ in
 
   cmt = callPackage ../applications/audio/cmt {};
 
+  crlfuzz = callPackage ../tools/security/crlfuzz {};
+
   hedgedoc = callPackage ../servers/web-apps/hedgedoc { };
 
   colord = callPackage ../tools/misc/colord { };
@@ -5090,6 +5094,8 @@ in
 
   jnettop = callPackage ../tools/networking/jnettop { };
 
+  jumpnbump = callPackage ../games/jumpnbump { };
+
   junkie = callPackage ../tools/networking/junkie { };
 
   just = callPackage ../development/tools/just { };
@@ -6890,6 +6896,8 @@ in
     openssl = openssl_1_0_2;
   };
 
+  psw = callPackage ../tools/misc/psw { };
+
   pws = callPackage ../tools/misc/pws { };
 
   cntlm = callPackage ../tools/networking/cntlm { };
@@ -7481,6 +7489,8 @@ in
   # aka., pgp-tools
   signing-party = callPackage ../tools/security/signing-party { };
 
+  signumone-ks = callPackage ../applications/misc/signumone-ks { };
+
   silc_client = callPackage ../applications/networking/instant-messengers/silc-client { };
 
   silc_server = callPackage ../servers/silc-server { };
@@ -8194,6 +8204,8 @@ in
 
   urlview = callPackage ../applications/misc/urlview {};
 
+  urn-timer = callPackage ../tools/misc/urn-timer { };
+
   ursadb = callPackage ../servers/ursadb {};
 
   usbmuxd = callPackage ../tools/misc/usbmuxd {};
@@ -26076,6 +26088,8 @@ in
 
   displaycal = callPackage ../applications/graphics/displaycal {};
 
+  domination = callPackage ../games/domination { };
+
   drumkv1 = libsForQt5.callPackage ../applications/audio/drumkv1 { };
 
   duckmarines = callPackage ../games/duckmarines { love = love_0_10; };
@@ -28836,6 +28850,8 @@ in
 
   sqsh = callPackage ../development/tools/sqsh { };
 
+  sumneko-lua-language-server = callPackage ../development/tools/sumneko-lua-language-server { };
+
   go-swag = callPackage ../development/tools/go-swag { };
 
   go-swagger = callPackage ../development/tools/go-swagger { };
diff --git a/pkgs/top-level/perl-packages.nix b/pkgs/top-level/perl-packages.nix
index 2f8100bd6fda..e39504935bd6 100644
--- a/pkgs/top-level/perl-packages.nix
+++ b/pkgs/top-level/perl-packages.nix
@@ -612,13 +612,13 @@ let
 
   Appcpm = buildPerlModule {
     pname = "App-cpm";
-    version = "0.996";
+    version = "0.997000";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/S/SK/SKAJI/App-cpm-0.996.tar.gz";
-      sha256 = "5684535511e5abc0aa8eb6105b13f5759b5d03b6808f30149508358b0a11f595";
+      url = "mirror://cpan/authors/id/S/SK/SKAJI/App-cpm-0.997000.tar.gz";
+      sha256 = "6bf25a25dfb2331dee623d5cc3d030d9be647e7c766e82196a383f16b92e419f";
     };
     buildInputs = [ ModuleBuildTiny ];
-    propagatedBuildInputs = [ CPANCommonIndex CPANDistnameInfo ClassTiny CommandRunner ExtUtilsInstallPaths FileCopyRecursive Filepushd HTTPTinyish MenloLegacy ModuleCPANfile ParallelPipes locallib ];
+    propagatedBuildInputs = [ CPANCommonIndex CPANDistnameInfo ClassTiny CommandRunner ExtUtilsInstall ExtUtilsInstallPaths FileCopyRecursive Filepushd HTTPTinyish MenloLegacy ModuleCPANfile ParsePMFile ParallelPipes locallib ];
     nativeBuildInputs = lib.optional stdenv.isDarwin shortenPerlShebang;
     postInstall = lib.optionalString stdenv.isDarwin ''
       shortenPerlShebang $out/bin/cpm