From 7112cd88220dd53b95e8a5a43248f33328be357d Mon Sep 17 00:00:00 2001 From: Lana Black Date: Mon, 24 Sep 2018 19:40:45 +0000 Subject: [PATCH] nixos/hardware/bladeRF: init at 2.0.2 This allows to easily enable bladerf-related udev rules with nixos configuration. --- nixos/modules/hardware/bladeRF.nix | 28 +++++++++++++++++++ nixos/modules/module-list.nix | 1 + .../libraries/libbladeRF/default.nix | 14 ++++++++-- 3 files changed, 41 insertions(+), 2 deletions(-) create mode 100644 nixos/modules/hardware/bladeRF.nix diff --git a/nixos/modules/hardware/bladeRF.nix b/nixos/modules/hardware/bladeRF.nix new file mode 100644 index 000000000000..925443477143 --- /dev/null +++ b/nixos/modules/hardware/bladeRF.nix @@ -0,0 +1,28 @@ +{ config, lib, pkgs, ... }: + +with lib; + +let + cfg = config.hardware.bladeRF; + +in + +{ + options.hardware.bladeRF = { + enable = mkOption { + type = types.bool; + default = false; + description = '' + Enables udev rules for BladeRF devices. By default grants access + to users in the "bladerf" group. You may want to install the + libbladeRF package. + ''; + }; + + }; + + config = mkIf cfg.enable { + services.udev.packages = [ pkgs.libbladeRF ]; + users.groups.bladerf = {}; + }; +} \ No newline at end of file diff --git a/nixos/modules/module-list.nix b/nixos/modules/module-list.nix index 1a8f522a969d..aba2b3b562cf 100644 --- a/nixos/modules/module-list.nix +++ b/nixos/modules/module-list.nix @@ -33,6 +33,7 @@ ./config/vpnc.nix ./config/zram.nix ./hardware/all-firmware.nix + ./hardware/bladeRF.nix ./hardware/brightnessctl.nix ./hardware/ckb.nix ./hardware/cpu/amd-microcode.nix diff --git a/pkgs/development/libraries/libbladeRF/default.nix b/pkgs/development/libraries/libbladeRF/default.nix index ac8de886fad3..45f24fc5facf 100644 --- a/pkgs/development/libraries/libbladeRF/default.nix +++ b/pkgs/development/libraries/libbladeRF/default.nix @@ -1,4 +1,4 @@ -{ stdenv, lib, fetchFromGitHub, pkgconfig, cmake, git, doxygen, help2man, ncurses, tecla +{ stdenv, lib, fetchFromGitHub, fetchpatch, pkgconfig, cmake, git, doxygen, help2man, ncurses, tecla , libusb1, udev }: stdenv.mkDerivation rec { @@ -21,8 +21,17 @@ stdenv.mkDerivation rec { # Fixup shebang prePatch = "patchShebangs host/utilities/bladeRF-cli/src/cmd/doc/generate.bash"; + # Fixes macos and freebsd compilation issue. + # https://github.com/Nuand/bladeRF/commit/0cb4ea888543b2dc75b876f7024e180854fbe9c3 + patches = [ (fetchpatch { + name = "fix-OSX-and-FreeBSD-build.patch"; + url = "https://github.com/Nuand/bladeRF/commit/0cb4ea88.diff"; + sha256 = "1ccpa69vz2nlpdnxprh4rd1pgphk82z5lfmbrfdkn7srw6nxl469"; + }) + ]; + # Let us avoid nettools as a dependency. - patchPhase = '' + postPatch = '' sed -i 's/$(hostname)/hostname/' host/utilities/bladeRF-cli/src/cmd/doc/generate.bash ''; @@ -31,6 +40,7 @@ stdenv.mkDerivation rec { ] ++ lib.optionals stdenv.isLinux [ "-DUDEV_RULES_PATH=etc/udev/rules.d" "-DINSTALL_UDEV_RULES=ON" + "-DBLADERF_GROUP=bladerf" ]; hardeningDisable = [ "fortify" ];