about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--maintainers/maintainer-list.nix6
-rw-r--r--nixos/tests/all-tests.nix1
-rw-r--r--nixos/tests/herbstluftwm.nix38
-rw-r--r--pkgs/applications/audio/ft2-clone/default.nix4
-rw-r--r--pkgs/applications/graphics/fondo/default.nix4
-rw-r--r--pkgs/applications/version-management/git-and-tools/git-ignore/default.nix6
-rw-r--r--pkgs/applications/window-managers/herbstluftwm/default.nix71
-rw-r--r--pkgs/applications/window-managers/herbstluftwm/test-path-environment.patch10
-rw-r--r--pkgs/desktops/lxde/core/lxsession/default.nix67
-rw-r--r--pkgs/desktops/lxde/core/lxsession/xmlcatalog_patch.patch23
-rw-r--r--pkgs/development/tools/git-quick-stats/default.nix4
-rw-r--r--pkgs/games/quake3/content/hires.nix26
-rw-r--r--pkgs/os-specific/linux/ebtables/default.nix16
-rw-r--r--pkgs/tools/graphics/gifski/default.nix6
-rw-r--r--pkgs/tools/misc/gammy/default.nix4
-rw-r--r--pkgs/top-level/all-packages.nix4
16 files changed, 257 insertions, 33 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/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/os-specific/linux/ebtables/default.nix b/pkgs/os-specific/linux/ebtables/default.nix
index 2045c4b112c8..bca24d9c9050 100644
--- a/pkgs/os-specific/linux/ebtables/default.nix
+++ b/pkgs/os-specific/linux/ebtables/default.nix
@@ -9,16 +9,22 @@ stdenv.mkDerivation rec {
     sha256 = "0apxgmkhsk3vxn9q3libxn3dgrdljrxyy4mli2gk49m7hi3na7xp";
   };
 
-  makeFlags =
-    [ "LIBDIR=$(out)/lib" "BINDIR=$(out)/sbin" "MANDIR=$(out)/share/man"
-      "ETCDIR=$(out)/etc" "INITDIR=$(TMPDIR)" "SYSCONFIGDIR=$(out)/etc/sysconfig"
-      "LOCALSTATEDIR=/var"
-    ];
+  makeFlags = [
+    "LIBDIR=$(out)/lib" "BINDIR=$(out)/sbin" "MANDIR=$(out)/share/man"
+    "ETCDIR=$(out)/etc" "INITDIR=$(TMPDIR)" "SYSCONFIGDIR=$(out)/etc/sysconfig"
+    "LOCALSTATEDIR=/var"
+  ];
 
   NIX_CFLAGS_COMPILE = "-Wno-error";
 
   preInstall = "mkdir -p $out/etc/sysconfig";
 
+  postInstall = ''
+    ln -s $out/sbin/ebtables-legacy          $out/sbin/ebtables
+    ln -s $out/sbin/ebtables-legacy-restore  $out/sbin/ebtables-restore
+    ln -s $out/sbin/ebtables-legacy-save     $out/sbin/ebtables-save
+  '';
+
   meta = with lib; {
     description = "A filtering tool for Linux-based bridging firewalls";
     homepage = "http://ebtables.sourceforge.net/";
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/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index 51e3f9eb130d..c5b83c5d9b22 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -11003,6 +11003,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 +26672,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 { };