From 4733735ebf6e10668c22980a574a539c369c45e8 Mon Sep 17 00:00:00 2001 From: Serge Bazanski Date: Tue, 28 Jul 2020 21:43:04 +0200 Subject: [PATCH] xbattbar: init at 1.4.9 --- pkgs/applications/misc/xbattbar/default.nix | 46 +++++++++++++++++++ .../misc/xbattbar/sys-by-default.patch | 26 +++++++++++ pkgs/top-level/all-packages.nix | 2 + 3 files changed, 74 insertions(+) create mode 100644 pkgs/applications/misc/xbattbar/default.nix create mode 100644 pkgs/applications/misc/xbattbar/sys-by-default.patch diff --git a/pkgs/applications/misc/xbattbar/default.nix b/pkgs/applications/misc/xbattbar/default.nix new file mode 100644 index 00000000000..0864e24f8c9 --- /dev/null +++ b/pkgs/applications/misc/xbattbar/default.nix @@ -0,0 +1,46 @@ +{ stdenv, fetchgit, libX11, perl, ... }: + +stdenv.mkDerivation rec { + pname = "xbattbar"; + version = "1.4.9"; + + # The current active upstream of xbattbar seems to be the Debian source + # repository. + src = fetchgit { + url = "https://salsa.debian.org/debian/xbattbar.git"; + rev = "upstream/${version}"; + sha256 = "10w7gs0l4hzhdn38yqyr3az7n4ncmfnd6hhhly6lk5dg7k441ck6"; + }; + + buildInputs = [ libX11 ]; + + # The following patches are applied: + # - sys-by-default: remove the APM checker binary, make the sys checker + # script the default. Rationale: checking battery status by /proc/apm is + # extremely oldschool and does not work on NixOS, while the sysfs script + # does. + # - perl shebang patches for acpi/sys scripts + # - unhardcode path to checker scripts + patchPhase = '' + patch -p1 < ${./sys-by-default.patch} + sed -i -e "s,/usr/lib/xbattbar/,$out/libexec/," xbattbar.c + sed -i -e "s,/usr/bin/perl,${perl}/bin/perl," xbattbar-check-acpi + sed -i -e "s,/usr/bin/perl,${perl}/bin/perl," xbattbar-check-sys + ''; + + installPhase = '' + mkdir -p $out/bin + mkdir -p $out/libexec + install -m 0755 xbattbar $out/bin/ + install -m 0755 xbattbar-check-acpi $out/libexec/ + install -m 0755 xbattbar-check-sys $out/libexec/ + ''; + + meta = with stdenv.lib; { + description = "Display battery status in X11"; + homepage = "https://salsa.debian.org/debian/xbattbar"; + license = licenses.gpl2Plus; + platforms = platforms.linux; + maintainers = [ maintainers.q3k ]; + }; +} diff --git a/pkgs/applications/misc/xbattbar/sys-by-default.patch b/pkgs/applications/misc/xbattbar/sys-by-default.patch new file mode 100644 index 00000000000..367f7217eec --- /dev/null +++ b/pkgs/applications/misc/xbattbar/sys-by-default.patch @@ -0,0 +1,26 @@ +diff --git a/xbattbar.c b/xbattbar.c +index 1e26019..cb3eab5 100644 +--- a/xbattbar.c ++++ b/xbattbar.c +@@ -75,9 +75,8 @@ char *ONOUT_C = "olive drab"; + char *OFFIN_C = "blue"; + char *OFFOUT_C = "red"; + +-char *EXTERNAL_CHECK = "/usr/lib/xbattbar/xbattbar-check-apm"; ++char *EXTERNAL_CHECK = "/usr/lib/xbattbar/xbattbar-check-sys"; + char *EXTERNAL_CHECK_ACPI = "/usr/lib/xbattbar/xbattbar-check-acpi"; +-char *EXTERNAL_CHECK_SYS = "/usr/lib/xbattbar/xbattbar-check-sys"; + + int alwaysontop = False; + +@@ -245,10 +244,6 @@ main(int argc, char **argv) + EXTERNAL_CHECK = EXTERNAL_CHECK_ACPI; + break; + +- case 'r': +- EXTERNAL_CHECK = EXTERNAL_CHECK_SYS; +- break; +- + case 's': + EXTERNAL_CHECK = optarg; + break; diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index d1fe2683ab6..9d45cbd7ec6 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -23430,6 +23430,8 @@ in xautomation = callPackage ../tools/X11/xautomation { }; xawtv = callPackage ../applications/video/xawtv { }; + + xbattbar = callPackage ../applications/misc/xbattbar { }; xbindkeys = callPackage ../tools/X11/xbindkeys { };