nixpkgs/pkgs/os-specific/linux/usbguard-notifier/default.nix
Sergei Trofimovich bac74d4085 usbguard-notifier: fix build against gcc-13
Without the change `usbguard-notifier` fails the build on `staging-next`
as:

    In file included from src/Notifier.hpp:24,
                     from src/Main.cpp:21:
    src/Serializer.hpp:35:5: error: 'uint32_t' does not name a type
       35 |     uint32_t device_id;
          |     ^~~~~~~~
    src/Serializer.hpp:25:1: note: 'uint32_t' is defined in header '<cstdint>'; did you forget to '#include <cstdint>'?
       24 | #include <map>
      +++ |+#include <cstdint>
       25 | #include <string>
2024-01-04 10:12:18 +00:00

55 lines
1.4 KiB
Nix

{
lib,
stdenv,
fetchFromGitHub,
fetchpatch,
autoreconfHook,
pkg-config,
libqb,
usbguard,
librsvg,
libnotify,
catch2,
asciidoc,
}:
stdenv.mkDerivation rec {
pname = "usbguard-notifier";
version = "0.1.0";
src = fetchFromGitHub {
owner = "Cropi";
repo = pname;
rev = "${pname}-${version}";
hash = "sha256-gWvCGSbOuey2ELAPD2WCG4q77IClL0S7rE2RaUJDc1I=";
};
patches = [
# gcc-13 compatibility upstream fix:
# https://github.com/Cropi/usbguard-notifier/pull/74
(fetchpatch {
name = "gcc-13.patch";
url = "https://github.com/Cropi/usbguard-notifier/commit/f4586b732c8a7379aacbc9899173beeacfd54793.patch";
hash = "sha256-2q/qD6yEQUPxA/UutGIZKFJ3hHJ8ZlGMZI1wJyMRbmo=";
})
];
nativeBuildInputs = [ autoreconfHook pkg-config asciidoc ];
buildInputs = [ libqb usbguard librsvg libnotify ];
configureFlags = [ "CPPFLAGS=-I${catch2}/include/catch2" ];
prePatch = ''
substituteInPlace configure.ac \
--replace 'AC_MSG_FAILURE([Cannot detect the systemd system unit dir])' \
'systemd_unit_dir="$out/lib/systemd/user"'
'';
meta = {
description = "Notifications for detecting usbguard policy and device presence changes";
homepage = "https://github.com/Cropi/usbguard-notifier";
maintainers = with lib.maintainers; [ fpletz ];
platforms = lib.platforms.linux;
license = lib.licenses.gpl2Plus;
};
}