diff options
18 files changed, 304 insertions, 32 deletions
diff --git a/maintainers/maintainer-list.nix b/maintainers/maintainer-list.nix index a7be95bc58b6..953b7ae9423e 100644 --- a/maintainers/maintainer-list.nix +++ b/maintainers/maintainer-list.nix @@ -9083,6 +9083,12 @@ githubId = 844343; name = "Thiago K. Okada"; }; + thibautmarty = { + email = "github@thibautmarty.fr"; + github = "ThibautMarty"; + githubId = 3268082; + name = "Thibaut Marty"; + }; thmzlt = { email = "git@thomazleite.com"; github = "thmzlt"; diff --git a/nixos/tests/all-tests.nix b/nixos/tests/all-tests.nix index 7d83b952f948..902c3bbc65e9 100644 --- a/nixos/tests/all-tests.nix +++ b/nixos/tests/all-tests.nix @@ -147,6 +147,7 @@ in haproxy = handleTest ./haproxy.nix {}; hardened = handleTest ./hardened.nix {}; hedgedoc = handleTest ./hedgedoc.nix {}; + herbstluftwm = handleTest ./herbstluftwm.nix {}; installed-tests = pkgs.recurseIntoAttrs (handleTest ./installed-tests {}); oci-containers = handleTestOn ["x86_64-linux"] ./oci-containers.nix {}; # 9pnet_virtio used to mount /nix partition doesn't support diff --git a/nixos/tests/herbstluftwm.nix b/nixos/tests/herbstluftwm.nix new file mode 100644 index 000000000000..2c98cceee6a2 --- /dev/null +++ b/nixos/tests/herbstluftwm.nix @@ -0,0 +1,38 @@ +import ./make-test-python.nix ({ lib, ...} : { + name = "herbstluftwm"; + + meta = { + maintainers = with lib.maintainers; [ thibautmarty ]; + timeout = 30; + }; + + machine = { pkgs, lib, ... }: { + imports = [ ./common/x11.nix ./common/user-account.nix ]; + test-support.displayManager.auto.user = "alice"; + services.xserver.displayManager.defaultSession = lib.mkForce "none+herbstluftwm"; + services.xserver.windowManager.herbstluftwm.enable = true; + environment.systemPackages = [ pkgs.dzen2 ]; # needed for upstream provided panel + }; + + testScript = '' + with subtest("ensure x starts"): + machine.wait_for_x() + machine.wait_for_file("/home/alice/.Xauthority") + machine.succeed("xauth merge ~alice/.Xauthority") + + with subtest("ensure client is available"): + machine.succeed("herbstclient --version") + + with subtest("ensure keybindings are set"): + machine.wait_until_succeeds("herbstclient list_keybinds | grep xterm") + + with subtest("ensure panel starts"): + machine.wait_for_window("dzen title") + + with subtest("ensure we can open a new terminal"): + machine.send_key("alt-ret") + machine.wait_for_window(r"alice.*?machine") + machine.sleep(2) + machine.screenshot("terminal") + ''; +}) diff --git a/pkgs/applications/audio/ft2-clone/default.nix b/pkgs/applications/audio/ft2-clone/default.nix index c1b8b808a1df..d9d2570d0a87 100644 --- a/pkgs/applications/audio/ft2-clone/default.nix +++ b/pkgs/applications/audio/ft2-clone/default.nix @@ -13,13 +13,13 @@ stdenv.mkDerivation rec { pname = "ft2-clone"; - version = "1.42"; + version = "1.43"; src = fetchFromGitHub { owner = "8bitbubsy"; repo = "ft2-clone"; rev = "v${version}"; - sha256 = "0w3c1rgm8qlqi50gavrcjz40xb0nkis4i9mvpwmvzmdv9nipxry9"; + sha256 = "sha256-OIQk7ngg1wsB6DFcxhrviPGlhzdaAWBi9C2roSNg1eI="; }; # Adapt the linux-only CMakeLists to darwin (more reliable than make-macos.sh) diff --git a/pkgs/applications/graphics/fondo/default.nix b/pkgs/applications/graphics/fondo/default.nix index ee75d6e1ae05..6aa84846f3a2 100644 --- a/pkgs/applications/graphics/fondo/default.nix +++ b/pkgs/applications/graphics/fondo/default.nix @@ -21,13 +21,13 @@ stdenv.mkDerivation rec { pname = "fondo"; - version = "1.5.0"; + version = "1.5.1"; src = fetchFromGitHub { owner = "calo001"; repo = pname; rev = version; - sha256 = "1zmrpk0b5z6m956j923njn6dpqdm2p8653a325hgjjjq0sgwbhj2"; + sha256 = "sha256-eGHgZm9Q6JnY6OQNAyrFvRsuyuFnruMJNckOCCiO4Ug="; }; nativeBuildInputs = [ diff --git a/pkgs/applications/networking/znc/modules.nix b/pkgs/applications/networking/znc/modules.nix index 5edb777ac519..a72618d935d4 100644 --- a/pkgs/applications/networking/znc/modules.nix +++ b/pkgs/applications/networking/znc/modules.nix @@ -119,21 +119,21 @@ in { palaver = zncDerivation rec { name = "znc-palaver-${version}"; - version = "2018-09-18"; + version = "2020-07-18"; module_name = "palaver"; src = fetchFromGitHub { owner = "cocodelabs"; repo = "znc-palaver"; - rev = "c70e8112686f917d39197d582db36c3ea37a4cb6"; - sha256 = "1gjr8yqgpkpcc18rf0zfgil3rcd1ihqk0q9f8rwbfvs5381h3c58"; + rev = "825cb6814d64006ca0f85fec23fa0a8a3a2d14ca"; + sha256 = "zXWPIxhO5Z2L6f+Hf3vIpEh6V4kjUONWAaKexKLECc8="; }; meta = with lib; { description = "Palaver ZNC module"; homepage = "https://github.com/cocodelabs/znc-palaver"; license = licenses.mit; - maintainers = with maintainers; [ kiwi ]; + maintainers = with maintainers; [ kiwi szlend ]; }; }; diff --git a/pkgs/applications/version-management/git-and-tools/git-ignore/default.nix b/pkgs/applications/version-management/git-and-tools/git-ignore/default.nix index 884eed2e2efb..d594b9961419 100644 --- a/pkgs/applications/version-management/git-and-tools/git-ignore/default.nix +++ b/pkgs/applications/version-management/git-and-tools/git-ignore/default.nix @@ -4,16 +4,16 @@ with rustPlatform; buildRustPackage rec { pname = "git-ignore"; - version = "1.0.0"; + version = "1.1.1"; src = fetchFromGitHub { owner = "sondr3"; repo = pname; rev = "v${version}"; - sha256 = "0krz50pw9bkyzl78bvppk6skbpjp8ga7bd34jya4ha1xfmd8p89c"; + sha256 = "sha256-bKIBPqGKiS3ey8vH2F4EoleV1H2PTOp+71d/YW3jkT0="; }; - cargoSha256 = "0vcg2pl0s329fr8p23pwdx2jy7qahbr7n337ib61f69aaxi1xmq0"; + cargoSha256 = "sha256-D1CIITuZSAsKYsK8U0q8HwPsYCyrfkTXZThxufEEkWU="; nativeBuildInputs = [ pkgconfig installShellFiles ]; buildInputs = [ openssl ] diff --git a/pkgs/applications/window-managers/herbstluftwm/default.nix b/pkgs/applications/window-managers/herbstluftwm/default.nix index c4bdcb4ca753..1ec1e2e995cc 100644 --- a/pkgs/applications/window-managers/herbstluftwm/default.nix +++ b/pkgs/applications/window-managers/herbstluftwm/default.nix @@ -1,35 +1,38 @@ -{ lib, stdenv, fetchurl, cmake, pkgconfig, glib, libX11, libXext, libXinerama, libXrandr -, withDoc ? stdenv.buildPlatform == stdenv.targetPlatform, asciidoc ? null }: +{ lib, stdenv, fetchurl, cmake, pkgconfig, python3, libX11, libXext, libXinerama, libXrandr, asciidoc +, xdotool, xorgserver, xsetroot, xterm, runtimeShell +, nixosTests }: # Doc generation is disabled by default when cross compiling because asciidoc -# does not cross compile for now +# dependency is broken when cross compiling for now -assert withDoc -> asciidoc != null; +let + cross = stdenv.buildPlatform != stdenv.targetPlatform; -stdenv.mkDerivation rec { +in stdenv.mkDerivation rec { pname = "herbstluftwm"; - version = "0.8.3"; + version = "0.9.1"; src = fetchurl { url = "https://herbstluftwm.org/tarballs/herbstluftwm-${version}.tar.gz"; - sha256 = "1qmb4pjf2f6g0dvcg11cw9njwmxblhqzd70ai8qnlgqw1iz3nkm1"; + sha256 = "0r4qaklv97qcq8p0pnz4f2zqg69vfai6c2qi1ydi2kz24xqjf5hy"; }; outputs = [ "out" - ] ++ lib.optionals withDoc [ - "doc" + "doc" # share/doc exists with examples even without generated html documentation + ] ++ lib.optionals (!cross) [ "man" ]; cmakeFlags = [ "-DCMAKE_INSTALL_SYSCONF_PREFIX=${placeholder "out"}/etc" - ] ++ lib.optional (!withDoc) "-DWITH_DOCUMENTATION=OFF"; + ] ++ lib.optional cross "-DWITH_DOCUMENTATION=OFF"; nativeBuildInputs = [ cmake pkgconfig - ] ++ lib.optional withDoc asciidoc; + python3 + ] ++ lib.optional (!cross) asciidoc; buildInputs = [ libX11 @@ -38,10 +41,50 @@ stdenv.mkDerivation rec { libXrandr ]; - meta = { + patches = [ + ./test-path-environment.patch + ]; + + postPatch = '' + patchShebangs doc/gendoc.py + + # fix /etc/xdg/herbstluftwm paths in documentation and scripts + grep -rlZ /etc/xdg/herbstluftwm share/ doc/ scripts/ | while IFS="" read -r -d "" path; do + substituteInPlace "$path" --replace /etc/xdg/herbstluftwm $out/etc/xdg/herbstluftwm + done + + # fix shebang in generated scripts + substituteInPlace tests/conftest.py --replace "/usr/bin/env bash" ${runtimeShell} + substituteInPlace tests/test_herbstluftwm.py --replace "/usr/bin/env bash" ${runtimeShell} + ''; + + doCheck = true; + + checkInputs = [ + (python3.withPackages (ps: with ps; [ ewmh pytest xlib ])) + xdotool + xorgserver + xsetroot + xterm + python3.pkgs.pytestCheckHook + ]; + + # make the package's module avalaible + preCheck = '' + export PYTHONPATH="$PYTHONPATH:../python" + ''; + + pytestFlagsArray = [ "../tests" ]; + + passthru = { + tests.herbstluftwm = nixosTests.herbstluftwm; + }; + + meta = with lib; { description = "A manual tiling window manager for X"; homepage = "https://herbstluftwm.org/"; - license = lib.licenses.bsd2; - platforms = lib.platforms.linux; + license = licenses.bsd2; + platforms = platforms.linux; + maintainers = with maintainers; [ thibautmarty ]; }; } diff --git a/pkgs/applications/window-managers/herbstluftwm/test-path-environment.patch b/pkgs/applications/window-managers/herbstluftwm/test-path-environment.patch new file mode 100644 index 000000000000..dab30d8ac71a --- /dev/null +++ b/pkgs/applications/window-managers/herbstluftwm/test-path-environment.patch @@ -0,0 +1,10 @@ +--- a/tests/conftest.py ++++ b/tests/conftest.py +@@ -43,6 +43,7 @@ + self.next_client_id = 0 + self.env = { + 'DISPLAY': display, ++ 'PATH': os.environ['PATH'] + } + self.env = extend_env_with_whitelist(self.env) + self.hlwm_process = hlwm_process diff --git a/pkgs/desktops/lxde/core/lxsession/default.nix b/pkgs/desktops/lxde/core/lxsession/default.nix new file mode 100644 index 000000000000..16264522f28f --- /dev/null +++ b/pkgs/desktops/lxde/core/lxsession/default.nix @@ -0,0 +1,67 @@ +{ lib +, stdenv +, fetchFromGitHub +, autoconf +, automake +, docbook_xml_dtd_412 +, docbook_xsl +, intltool +, libxml2 +, libxslt +, pkg-config +, wrapGAppsHook +, gtk2-x11 +, libX11 +, polkit +, vala +}: + +stdenv.mkDerivation rec { + pname = "lxsession"; + version = "0.5.5"; + + src = fetchFromGitHub { + owner = "lxde"; + repo = "lxsession"; + rev = version; + sha256 = "17sqsx57ymrimm5jfmcyrp7b0nzi41bcvpxsqckmwbhl19g6c17d"; + }; + + patches = [ ./xmlcatalog_patch.patch ]; + + nativeBuildInputs = [ + autoconf + automake + docbook_xml_dtd_412 + docbook_xsl + intltool + libxml2 + libxslt + pkg-config + wrapGAppsHook + ]; + + buildInputs = [ + gtk2-x11 + libX11 + polkit + vala + ]; + + configureFlags = [ + "--enable-man" + "--disable-buildin-clipboard" + "--disable-buildin-polkit" + "--with-xml-catalog=${docbook_xml_dtd_412}/xml/dtd/docbook/catalog.xml" + ]; + + preConfigure = "./autogen.sh"; + + meta = with lib; { + description = "Classic LXDE session manager"; + license = licenses.gpl2Plus; + homepage = "https://wiki.lxde.org/en/LXSession"; + maintainers = [ maintainers.shamilton ]; + platforms = platforms.linux; + }; +} diff --git a/pkgs/desktops/lxde/core/lxsession/xmlcatalog_patch.patch b/pkgs/desktops/lxde/core/lxsession/xmlcatalog_patch.patch new file mode 100644 index 000000000000..644518a6eb2a --- /dev/null +++ b/pkgs/desktops/lxde/core/lxsession/xmlcatalog_patch.patch @@ -0,0 +1,23 @@ +diff --color -ur a/configure.ac b/configure.ac +--- a/configure.ac 2021-01-18 12:39:19.556844678 +0100 ++++ b/configure.ac 2021-01-18 17:26:47.989410501 +0100 +@@ -167,18 +167,7 @@ + AM_GLIB_GNU_GETTEXT + AC_DEFINE_UNQUOTED(GETTEXT_PACKAGE,"$GETTEXT_PACKAGE", [Gettext package.]) + +-if test x"$enable_man" = x"yes"; then +- AC_PATH_PROG([XSLTPROC], [xsltproc]) +- if test -z "$XSLTPROC"; then +- enable_man=no +- fi +- +- dnl check for DocBook DTD and stylesheets in the local catalog. +- JH_CHECK_XML_CATALOG([-//OASIS//DTD DocBook XML V4.1.2//EN], +- [DocBook XML DTD V4.1.2], [], enable_man=no) +- JH_CHECK_XML_CATALOG([http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl], +- [DocBook XSL Stylesheets >= 1.70.1], [], enable_man=no) +-fi ++AC_PATH_PROG([XSLTPROC], [xsltproc]) + + AM_CONDITIONAL(ENABLE_REGENERATE_MAN, test "x$enable_man" != "xno") + diff --git a/pkgs/development/tools/git-quick-stats/default.nix b/pkgs/development/tools/git-quick-stats/default.nix index 500c9a55c1d8..2b775de4e43d 100644 --- a/pkgs/development/tools/git-quick-stats/default.nix +++ b/pkgs/development/tools/git-quick-stats/default.nix @@ -11,13 +11,13 @@ stdenv.mkDerivation rec { pname = "git-quick-stats"; - version = "2.1.4"; + version = "2.1.5"; src = fetchFromGitHub { repo = "git-quick-stats"; owner = "arzzen"; rev = version; - sha256 = "0fg0fijghcz7hvbc9y8dfksz0qmsz700kc2mfb03y90kja99v68y"; + sha256 = "sha256-d5B+SSUXtOD4x+dChQsUCkiHuHcW3lOrL4QhQekY7cA="; }; nativeBuildInputs = [ makeWrapper ]; diff --git a/pkgs/games/quake3/content/hires.nix b/pkgs/games/quake3/content/hires.nix new file mode 100644 index 000000000000..7314028d5405 --- /dev/null +++ b/pkgs/games/quake3/content/hires.nix @@ -0,0 +1,26 @@ +{ stdenv, lib, fetchzip }: + +stdenv.mkDerivation { + pname = "quake3hires"; + version = "2020-01-20"; # Unknown version, used the date of web.archive.org capture. + + src = fetchzip { + url = "https://web.archive.org/web/20200120024216/http://ioquake3.org/files/xcsv_hires.zip"; + sha256 = "09vhrray8mh1ic2qgcwv0zlmsnz789y32dkkvrz1vdki4yqkf717"; + stripRoot = false; + }; + + buildCommand = '' + mkdir -p $out/baseq3 + install -Dm444 $src/xcsv_bq3hi-res.pk3 $out/baseq3/xcsv_bq3hi-res.pk3 + ''; + + preferLocalBuild = true; + + meta = with lib; { + description = "Quake 3 high-resolution textures"; + license = licenses.cc0; + platforms = platforms.all; + maintainers = with maintainers; [ rvolosatovs ]; + }; +} diff --git a/pkgs/tools/graphics/gifski/default.nix b/pkgs/tools/graphics/gifski/default.nix index 94756ee94562..0ce24482164e 100644 --- a/pkgs/tools/graphics/gifski/default.nix +++ b/pkgs/tools/graphics/gifski/default.nix @@ -2,16 +2,16 @@ rustPlatform.buildRustPackage rec { pname = "gifski"; - version = "1.2.4"; + version = "1.2.6"; src = fetchFromGitHub { owner = "ImageOptim"; repo = "gifski"; rev = version; - sha256 = "0mr4ni75klmzfjivfv5xmcdw03y1gjvkz1d297gwh46zq1q7blf3"; + sha256 = "sha256-pnaNBjMKWfnCHG4MTLS2tJ2lrKxH6tcnvbOFZSDtPJY="; }; - cargoSha256 = "0wm139lik6w2hwg72j8hcphp0z89bbabfxjmfyqrih6akyzb0l01"; + cargoSha256 = "sha256-M5LEoEaWKT6nfQsnuqfyRBtDILewAxzMs7d6DvhkvFg="; nativeBuildInputs = [ pkg-config ]; diff --git a/pkgs/tools/misc/gammy/default.nix b/pkgs/tools/misc/gammy/default.nix index cb8f491069a8..9f9a73a989e1 100644 --- a/pkgs/tools/misc/gammy/default.nix +++ b/pkgs/tools/misc/gammy/default.nix @@ -2,7 +2,7 @@ let pname = "gammy"; - version = "0.9.59"; + version = "0.9.62"; in stdenv.mkDerivation { @@ -12,7 +12,7 @@ stdenv.mkDerivation { owner = "Fushko"; repo = pname; rev = "v${version}"; - sha256 = "1iz41larqr6ss5kar1pds6zgcrch6ch34cr0ngd71gcaxal0rb72"; + sha256 = "sha256-fyr+khLgaX5xbKCW3pqt6fFvZBHGEVs1BsMireZDxP0="; }; nativeBuildInputs = [ qmake wrapQtAppsHook ]; diff --git a/pkgs/tools/security/bypass403/default.nix b/pkgs/tools/security/bypass403/default.nix new file mode 100644 index 000000000000..5bf40766883a --- /dev/null +++ b/pkgs/tools/security/bypass403/default.nix @@ -0,0 +1,25 @@ +{ buildGoModule +, fetchFromGitHub +, lib +}: + +buildGoModule rec { + pname = "bypass403"; + version = "1.4.0"; + + src = fetchFromGitHub { + owner = "drsigned"; + repo = pname; + rev = "v${version}"; + sha256 = "1x3a4lnxjxbv80kaydy57809n9r7vzci9ki4f98smf3w04s86rcl"; + }; + + vendorSha256 = "1bp6bf99rxlyg91pn1y228q18lawpykmvkl22cydmclms0q0n238"; + + meta = with lib; { + description = "Tool to bypass 403 Forbidden responses"; + homepage = "https://github.com/drsigned/bypass403"; + license = with licenses; [ mit ]; + maintainers = with maintainers; [ fab ]; + }; +} diff --git a/pkgs/tools/security/corsmisc/default.nix b/pkgs/tools/security/corsmisc/default.nix new file mode 100644 index 000000000000..4c64677f3240 --- /dev/null +++ b/pkgs/tools/security/corsmisc/default.nix @@ -0,0 +1,25 @@ +{ buildGoModule +, fetchFromGitHub +, lib +}: + +buildGoModule rec { + pname = "corsmisc"; + version = "1.3.0"; + + src = fetchFromGitHub { + owner = "drsigned"; + repo = pname; + rev = "v${version}"; + sha256 = "18a70v093jl85vnih80i50wvac8hsg3f2gmcws9jyhj2brndq2qj"; + }; + + vendorSha256 = "1bp6bf99rxlyg91pn1y228q18lawpykmvkl22cydmclms0q0n238"; + + meta = with lib; { + description = "Tool to discover CORS misconfigurations vulnerabilities"; + homepage = "https://github.com/drsigned/corsmisc"; + 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 51e3f9eb130d..d2307064c634 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -1144,6 +1144,8 @@ in coolreader = libsForQt5.callPackage ../applications/misc/coolreader {}; + corsmisc = callPackage ../tools/security/corsmisc { }; + cozy = callPackage ../applications/audio/cozy-audiobooks { }; cpuid = callPackage ../os-specific/linux/cpuid { }; @@ -1710,6 +1712,8 @@ in textual-window-manager = tmux; }; + bypass403 = callPackage ../tools/security/bypass403 { }; + bsh = fetchurl { url = "http://www.beanshell.org/bsh-2.0b5.jar"; sha256 = "0p2sxrpzd0vsk11zf3kb5h12yl1nq4yypb5mpjrm8ww0cfaijck2"; @@ -11003,6 +11007,8 @@ in lxrandr = callPackage ../desktops/lxde/core/lxrandr { }; + lxsession = callPackage ../desktops/lxde/core/lxsession { }; + kona = callPackage ../development/interpreters/kona {}; lolcode = callPackage ../development/interpreters/lolcode { }; @@ -26670,6 +26676,8 @@ in quake3pointrelease = callPackage ../games/quake3/content/pointrelease.nix { }; + quake3hires = callPackage ../games/quake3/content/hires.nix { }; + quakespasm = callPackage ../games/quakespasm { }; vkquake = callPackage ../games/quakespasm/vulkan.nix { }; |