From b135222dc7ab3e97bef0a80cd41c9f19a1222abf Mon Sep 17 00:00:00 2001 From: Grimmauld Date: Thu, 22 May 2025 10:13:27 +0200 Subject: [PATCH 1/5] libusb1: propagate udevCheckHook Dependents of `libusb1` specifically deal with hardware devices, often specifically exposing udev rules for those. It makes sense to propagate the `udevCheckHook` here. Dependents still need to enable `doInstallCheck`. It is possible to opt out of `udevCheckHook` by setting `env.dontUdevCheck`. --- pkgs/by-name/li/libusb1/package.nix | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/pkgs/by-name/li/libusb1/package.nix b/pkgs/by-name/li/libusb1/package.nix index 5a82af646da50..004ac429328a5 100644 --- a/pkgs/by-name/li/libusb1/package.nix +++ b/pkgs/by-name/li/libusb1/package.nix @@ -8,6 +8,7 @@ enableUdev ? stdenv.hostPlatform.isLinux && !stdenv.hostPlatform.isStatic && !stdenv.hostPlatform.isAndroid, udev, + udevCheckHook, withExamples ? false, withStatic ? false, withDocs ? stdenv.buildPlatform.canExecute stdenv.hostPlatform, @@ -35,6 +36,10 @@ stdenv.mkDerivation rec { ] ++ lib.optionals withDocs [ doxygen ]; propagatedBuildInputs = lib.optional enableUdev udev; + # Many dependents are dealing with hardware devices, exposing udev rules for them. + # Checking these by propagated hook might improve discoverability + propagatedNativeBuildInputs = lib.optional enableUdev udevCheckHook; + dontDisableStatic = withStatic; # libusb-1.0.rc:11: fatal error: opening dependency file .deps/libusb-1.0.Tpo: No such file or directory From 65012b363e86df989f2986700c52c45a90c205c7 Mon Sep 17 00:00:00 2001 From: Grimmauld Date: Fri, 23 May 2025 12:07:11 +0200 Subject: [PATCH 2/5] treewide: enable `doPostInstall` for libusb1 packages that expose udev rules `libusb1` propagates the `udevCheckHook`. Packages which depend on `libusb1` and expose udev rules should enable the `doPostInstall` flag. --- pkgs/applications/graphics/sane/backends/default.nix | 2 ++ pkgs/applications/misc/moolticute/default.nix | 2 ++ pkgs/applications/misc/openambit/default.nix | 4 ++++ pkgs/applications/radio/limesuite/default.nix | 2 ++ pkgs/applications/radio/qdmr/default.nix | 2 ++ pkgs/applications/radio/rtl-sdr/default.nix | 2 ++ pkgs/applications/science/electronics/dsview/default.nix | 2 ++ .../science/electronics/openhantek6022/default.nix | 2 ++ pkgs/by-name/ai/airspy/package.nix | 2 ++ pkgs/by-name/cc/cc-tool/package.nix | 2 ++ pkgs/by-name/cc/ccid/package.nix | 6 ++++++ pkgs/by-name/cu/cutecapture/package.nix | 2 ++ pkgs/by-name/dd/ddcutil/package.nix | 1 + pkgs/by-name/de/dediprog-sf100/package.nix | 1 + pkgs/by-name/dm/dmrconfig/package.nix | 1 + pkgs/by-name/do/dolphin-emu-primehack/package.nix | 2 ++ pkgs/by-name/do/dolphin-emu/package.nix | 2 ++ pkgs/by-name/ec/ecpdap/package.nix | 2 ++ pkgs/by-name/eg/eg25-manager/package.nix | 1 + pkgs/by-name/em/em100/package.nix | 2 ++ pkgs/by-name/ep/epsonscan2/package.nix | 2 ++ pkgs/by-name/fl/flashprog/package.nix | 2 ++ pkgs/by-name/fl/flashrom/package.nix | 1 + pkgs/by-name/gp/gpsd/package.nix | 2 ++ pkgs/by-name/ha/hackrf/package.nix | 2 ++ pkgs/by-name/im/imsprog/package.nix | 2 ++ pkgs/by-name/ip/ipad_charge/package.nix | 2 ++ pkgs/by-name/ip/ipp-usb/package.nix | 2 ++ pkgs/by-name/li/libbladeRF/package.nix | 2 ++ pkgs/by-name/li/libedgetpu/package.nix | 2 ++ pkgs/by-name/li/libftdi1/package.nix | 2 ++ pkgs/by-name/li/libgphoto2/package.nix | 2 ++ pkgs/by-name/li/libirecovery/package.nix | 2 ++ pkgs/by-name/li/libjaylink/package.nix | 2 ++ pkgs/by-name/li/libmtp/package.nix | 2 ++ pkgs/by-name/li/libnitrokey/package.nix | 2 ++ pkgs/by-name/li/libticables2/package.nix | 2 ++ pkgs/by-name/li/libuldaq/package.nix | 2 ++ pkgs/by-name/lm/lm4flash/package.nix | 2 ++ pkgs/by-name/mi/minipro/package.nix | 2 ++ pkgs/by-name/mo/mouse_m908/package.nix | 2 ++ pkgs/by-name/nu/nut/package.nix | 2 ++ pkgs/by-name/nx/nxpmicro-mfgtools/package.nix | 2 ++ pkgs/by-name/op/opencbm/package.nix | 2 ++ pkgs/by-name/op/openocd/package.nix | 2 ++ pkgs/by-name/op/openrgb/package.nix | 4 ++++ pkgs/by-name/op/openterface-qt/package.nix | 2 ++ pkgs/by-name/or/orbuculum/package.nix | 2 ++ pkgs/by-name/rk/rkdeveloptool-pine64/package.nix | 2 ++ pkgs/by-name/rp/rpcs3/package.nix | 2 ++ pkgs/by-name/rt/rtl_fm_streamer/package.nix | 2 ++ pkgs/by-name/sc/sc-controller/package.nix | 4 ++++ pkgs/by-name/st/stlink/package.nix | 2 ++ pkgs/by-name/ti/tiscamera/package.nix | 2 ++ pkgs/by-name/ub/ubertooth/package.nix | 2 ++ pkgs/by-name/uh/uhd/package.nix | 2 ++ pkgs/by-name/up/upower/package.nix | 1 + pkgs/by-name/us/usbmuxd/package.nix | 2 ++ pkgs/by-name/us/usbmuxd2/package.nix | 2 ++ pkgs/by-name/uu/uuu/package.nix | 2 ++ pkgs/by-name/wc/wch-isp/package.nix | 2 ++ pkgs/by-name/xf/xfel/package.nix | 2 ++ pkgs/by-name/yu/yubikey-personalization/package.nix | 2 ++ pkgs/development/libraries/libiio/default.nix | 2 ++ pkgs/development/libraries/pipewire/default.nix | 1 + .../libraries/science/astronomy/indilib/default.nix | 3 +++ .../libraries/science/astronomy/indilib/indi-3rdparty.nix | 4 ++++ pkgs/development/tools/libsigrok/default.nix | 4 ++++ pkgs/misc/drivers/utsushi/default.nix | 2 +- pkgs/tools/misc/heimdall/default.nix | 2 ++ pkgs/tools/misc/qflipper/default.nix | 2 ++ pkgs/tools/misc/system-config-printer/default.nix | 1 + 72 files changed, 150 insertions(+), 1 deletion(-) diff --git a/pkgs/applications/graphics/sane/backends/default.nix b/pkgs/applications/graphics/sane/backends/default.nix index 2777e107511a3..1c821164ffc97 100644 --- a/pkgs/applications/graphics/sane/backends/default.nix +++ b/pkgs/applications/graphics/sane/backends/default.nix @@ -175,6 +175,8 @@ stdenv.mkDerivation rec { # https://github.com/NixOS/nixpkgs/issues/224569 enableParallelInstalling = false; + doInstallCheck = true; + passthru.tests = { inherit (nixosTests) sane; }; diff --git a/pkgs/applications/misc/moolticute/default.nix b/pkgs/applications/misc/moolticute/default.nix index b8023272f60f1..e6692affc0657 100644 --- a/pkgs/applications/misc/moolticute/default.nix +++ b/pkgs/applications/misc/moolticute/default.nix @@ -37,6 +37,8 @@ mkDerivation rec { qtwebsockets ]; + doInstallCheck = true; + preConfigure = "mkdir -p build && cd build"; qmakeFlags = [ "../Moolticute.pro" ]; diff --git a/pkgs/applications/misc/openambit/default.nix b/pkgs/applications/misc/openambit/default.nix index 9f80b8ee31682..9dcc3dac7cbb8 100644 --- a/pkgs/applications/misc/openambit/default.nix +++ b/pkgs/applications/misc/openambit/default.nix @@ -49,7 +49,11 @@ mkDerivation rec { doInstallCheck = true; installCheckPhase = '' + runHook preInstallCheck + $out/bin/openambit --version + + runHook postInstallCheck ''; postInstall = '' diff --git a/pkgs/applications/radio/limesuite/default.nix b/pkgs/applications/radio/limesuite/default.nix index 40929d11910dc..70fea61eff97e 100644 --- a/pkgs/applications/radio/limesuite/default.nix +++ b/pkgs/applications/radio/limesuite/default.nix @@ -46,6 +46,8 @@ stdenv.mkDerivation rec { wxGTK32 ]; + doInstallCheck = true; + postInstall = '' install -Dm444 -t $out/lib/udev/rules.d ../udev-rules/64-limesuite.rules install -Dm444 -t $out/share/limesuite bin/Release/lms7suite_mcu/* diff --git a/pkgs/applications/radio/qdmr/default.nix b/pkgs/applications/radio/qdmr/default.nix index 6e023899d639f..510b1f102b346 100644 --- a/pkgs/applications/radio/qdmr/default.nix +++ b/pkgs/applications/radio/qdmr/default.nix @@ -62,6 +62,8 @@ stdenv.mkDerivation rec { cp ${src}/dist/99-qdmr.rules $out/etc/udev/rules.d/ ''; + doInstallCheck = true; + meta = { description = "GUI application and command line tool for programming DMR radios"; homepage = "https://dm3mat.darc.de/qdmr/"; diff --git a/pkgs/applications/radio/rtl-sdr/default.nix b/pkgs/applications/radio/rtl-sdr/default.nix index 9697488a7b7d9..e49832d1f1f7a 100644 --- a/pkgs/applications/radio/rtl-sdr/default.nix +++ b/pkgs/applications/radio/rtl-sdr/default.nix @@ -28,6 +28,8 @@ let "-DWITH_RPC=ON" ]; + doInstallCheck = true; + postPatch = '' substituteInPlace CMakeLists.txt \ --replace '/etc/udev/rules.d' "$out/etc/udev/rules.d" \ diff --git a/pkgs/applications/science/electronics/dsview/default.nix b/pkgs/applications/science/electronics/dsview/default.nix index 44a1e07ced10c..661bf9f3fc084 100644 --- a/pkgs/applications/science/electronics/dsview/default.nix +++ b/pkgs/applications/science/electronics/dsview/default.nix @@ -52,6 +52,8 @@ stdenv.mkDerivation (finalAttrs: { python3 ] ++ lib.optional stdenv.hostPlatform.isLinux qtwayland; + doInstallCheck = true; + meta = { description = "GUI program for supporting various instruments from DreamSourceLab, including logic analyzer, oscilloscope, etc"; mainProgram = "DSView"; diff --git a/pkgs/applications/science/electronics/openhantek6022/default.nix b/pkgs/applications/science/electronics/openhantek6022/default.nix index 9aab0615d9fc6..bf45edb15e8ba 100644 --- a/pkgs/applications/science/electronics/openhantek6022/default.nix +++ b/pkgs/applications/science/electronics/openhantek6022/default.nix @@ -41,6 +41,8 @@ mkDerivation rec { sed -i 's#/usr/share#share#g' CMakeLists.txt ''; + doInstallCheck = true; + meta = with lib; { description = "Free software for Hantek and compatible (Voltcraft/Darkwire/Protek/Acetech) USB digital signal oscilloscopes"; mainProgram = "OpenHantek"; diff --git a/pkgs/by-name/ai/airspy/package.nix b/pkgs/by-name/ai/airspy/package.nix index c6f19b1a47bd4..2209b21e3c270 100644 --- a/pkgs/by-name/ai/airspy/package.nix +++ b/pkgs/by-name/ai/airspy/package.nix @@ -26,6 +26,8 @@ stdenv.mkDerivation rec { cmake pkg-config ]; + + doInstallCheck = true; buildInputs = [ libusb1 ]; cmakeFlags = lib.optionals stdenv.hostPlatform.isLinux [ "-DINSTALL_UDEV_RULES=ON" ]; diff --git a/pkgs/by-name/cc/cc-tool/package.nix b/pkgs/by-name/cc/cc-tool/package.nix index ee09f80585a4c..5691929654b4f 100644 --- a/pkgs/by-name/cc/cc-tool/package.nix +++ b/pkgs/by-name/cc/cc-tool/package.nix @@ -33,6 +33,8 @@ stdenv.mkDerivation { --replace 'MODE="0666"' 'MODE="0660", GROUP="plugdev", TAG+="uaccess"' ''; + doInstallCheck = true; + postInstall = '' install -D udev/90-cc-debugger.rules $out/lib/udev/rules.d/90-cc-debugger.rules ''; diff --git a/pkgs/by-name/cc/ccid/package.nix b/pkgs/by-name/cc/ccid/package.nix index 9f4f625ae2375..f46499111ae39 100644 --- a/pkgs/by-name/cc/ccid/package.nix +++ b/pkgs/by-name/cc/ccid/package.nix @@ -53,6 +53,8 @@ stdenv.mkDerivation rec { zlib ]; + doInstallCheck = true; + postInstall = '' install -Dm 0444 -t $out/lib/udev/rules.d ../src/92_pcscd_ccid.rules substituteInPlace $out/lib/udev/rules.d/92_pcscd_ccid.rules \ @@ -68,11 +70,15 @@ stdenv.mkDerivation rec { }; installCheckPhase = '' + runHook preInstallCheck + [ -f $out/etc/reader.conf.d/libccidtwin ] [ -f $out/lib/udev/rules.d/92_pcscd_ccid.rules ] [ -f $out/pcsc/drivers/ifd-ccid.bundle/Contents/Info.plist ] [ -f $out/pcsc/drivers/ifd-ccid.bundle/Contents/Linux/libccid.so ] [ -f $out/pcsc/drivers/serial/libccidtwin.so ] + + runHook preInstallCheck ''; meta = with lib; { diff --git a/pkgs/by-name/cu/cutecapture/package.nix b/pkgs/by-name/cu/cutecapture/package.nix index 1c49e8c834d13..17b8a059a88b7 100644 --- a/pkgs/by-name/cu/cutecapture/package.nix +++ b/pkgs/by-name/cu/cutecapture/package.nix @@ -34,6 +34,8 @@ stdenv.mkDerivation (finalAttrs: { EOF ''; + doInstallCheck = true; + postInstall = '' install -Dm644 -t $out/lib/udev/rules.d 95-{3,}dscapture.rules install -Dm444 -t $out/share/applications Cute{3,}DSCapture.desktop diff --git a/pkgs/by-name/dd/ddcutil/package.nix b/pkgs/by-name/dd/ddcutil/package.nix index 12754468dea7a..2f33d0f66a845 100644 --- a/pkgs/by-name/dd/ddcutil/package.nix +++ b/pkgs/by-name/dd/ddcutil/package.nix @@ -39,6 +39,7 @@ stdenv.mkDerivation rec { ]; enableParallelBuilding = true; + doInstallCheck = true; meta = with lib; { homepage = "http://www.ddcutil.com/"; diff --git a/pkgs/by-name/de/dediprog-sf100/package.nix b/pkgs/by-name/de/dediprog-sf100/package.nix index 48b6e67e01430..ea9abd8f5be2b 100644 --- a/pkgs/by-name/de/dediprog-sf100/package.nix +++ b/pkgs/by-name/de/dediprog-sf100/package.nix @@ -27,6 +27,7 @@ stdenv.mkDerivation (finalAttrs: { buildInputs = [ libusb1 ]; nativeBuildInputs = [ pkg-config ]; + doInstallCheck = true; udevRules = pkgs.writeText "dediprog.rules" '' ACTION=="add", SUBSYSTEM=="usb", ATTRS{idVendor}=="0483", ATTRS{idProduct}=="dada", MODE="660", GROUP="plugdev" ''; diff --git a/pkgs/by-name/dm/dmrconfig/package.nix b/pkgs/by-name/dm/dmrconfig/package.nix index 2821b9996c461..6cd3f95b3c7b0 100644 --- a/pkgs/by-name/dm/dmrconfig/package.nix +++ b/pkgs/by-name/dm/dmrconfig/package.nix @@ -32,6 +32,7 @@ stdenv.mkDerivation rec { systemd ]; + doInstallCheck = true; preConfigure = '' substituteInPlace Makefile \ --replace /usr/local/bin/dmrconfig $out/bin/dmrconfig diff --git a/pkgs/by-name/do/dolphin-emu-primehack/package.nix b/pkgs/by-name/do/dolphin-emu-primehack/package.nix index cddbe407e301d..dc8764653dce2 100644 --- a/pkgs/by-name/do/dolphin-emu-primehack/package.nix +++ b/pkgs/by-name/do/dolphin-emu-primehack/package.nix @@ -142,6 +142,8 @@ stdenv.mkDerivation (finalAttrs: { --replace-fail 'if(LIBUSB_FOUND AND NOT APPLE)' 'if(LIBUSB_FOUND)' ''; + doInstallCheck = true; + postInstall = '' mv $out/bin/dolphin-emu $out/bin/dolphin-emu-primehack diff --git a/pkgs/by-name/do/dolphin-emu/package.nix b/pkgs/by-name/do/dolphin-emu/package.nix index 79e3435445149..add6ec45b66d8 100644 --- a/pkgs/by-name/do/dolphin-emu/package.nix +++ b/pkgs/by-name/do/dolphin-emu/package.nix @@ -156,6 +156,8 @@ stdenv.mkDerivation (finalAttrs: { "--set QT_QPA_PLATFORM xcb" ]; + doInstallCheck = true; + postInstall = lib.optionalString stdenv.hostPlatform.isLinux '' install -D $src/Data/51-usb-device.rules $out/etc/udev/rules.d/51-usb-device.rules diff --git a/pkgs/by-name/ec/ecpdap/package.nix b/pkgs/by-name/ec/ecpdap/package.nix index 7b594468a732a..549762e32f4ce 100644 --- a/pkgs/by-name/ec/ecpdap/package.nix +++ b/pkgs/by-name/ec/ecpdap/package.nix @@ -24,6 +24,8 @@ rustPlatform.buildRustPackage rec { buildInputs = [ libusb1 ]; + doInstallCheck = true; + postInstall = '' mkdir -p $out/etc/udev/rules.d cp drivers/*.rules $out/etc/udev/rules.d diff --git a/pkgs/by-name/eg/eg25-manager/package.nix b/pkgs/by-name/eg/eg25-manager/package.nix index f76b07173fc97..a168ee59ceb43 100644 --- a/pkgs/by-name/eg/eg25-manager/package.nix +++ b/pkgs/by-name/eg/eg25-manager/package.nix @@ -51,6 +51,7 @@ stdenv.mkDerivation (finalAttrs: { ]; strictDeps = true; + doInstallCheck = true; meta = { description = "Manager daemon for the Quectel EG25 mobile broadband modem found on the Pine64 PinePhone and PinePhone Pro"; diff --git a/pkgs/by-name/em/em100/package.nix b/pkgs/by-name/em/em100/package.nix index c755b66869e4f..866ff412a0374 100644 --- a/pkgs/by-name/em/em100/package.nix +++ b/pkgs/by-name/em/em100/package.nix @@ -30,6 +30,8 @@ stdenv.mkDerivation { "makedpfw" ]; + doInstallCheck = true; + installPhase = '' runHook preInstall install -Dm755 em100 $out/bin/em100 diff --git a/pkgs/by-name/ep/epsonscan2/package.nix b/pkgs/by-name/ep/epsonscan2/package.nix index 358012828acc9..bf596d39b4b19 100644 --- a/pkgs/by-name/ep/epsonscan2/package.nix +++ b/pkgs/by-name/ep/epsonscan2/package.nix @@ -114,6 +114,8 @@ stdenv.mkDerivation { "-DNO_GUI=ON" ]; + doInstallCheck = true; + postInstall = '' # But when we put all the libraries in lib/${system}-gnu, then SANE can't find the diff --git a/pkgs/by-name/fl/flashprog/package.nix b/pkgs/by-name/fl/flashprog/package.nix index 29e01cf79b7c1..e78025cea23fc 100644 --- a/pkgs/by-name/fl/flashprog/package.nix +++ b/pkgs/by-name/fl/flashprog/package.nix @@ -58,6 +58,8 @@ stdenv.mkDerivation (finalAttrs: { install -Dm644 ../util/50-flashprog.rules "$out/lib/udev/rules.d/50-flashprog.rules" ''; + doInstallCheck = true; + passthru.updateScript = gitUpdater { rev-prefix = "v"; allowedVersions = "^[0-9\\.]+$"; diff --git a/pkgs/by-name/fl/flashrom/package.nix b/pkgs/by-name/fl/flashrom/package.nix index 77ea39d341281..2994a67399daf 100644 --- a/pkgs/by-name/fl/flashrom/package.nix +++ b/pkgs/by-name/fl/flashrom/package.nix @@ -63,6 +63,7 @@ stdenv.mkDerivation (finalAttrs: { ]; doCheck = !stdenv.hostPlatform.isDarwin; + doInstallCheck = true; postInstall = '' install -Dm644 $NIX_BUILD_TOP/$sourceRoot/util/flashrom_udev.rules $out/lib/udev/rules.d/flashrom.rules diff --git a/pkgs/by-name/gp/gpsd/package.nix b/pkgs/by-name/gp/gpsd/package.nix index 553f2780c4488..abd9e8a596038 100644 --- a/pkgs/by-name/gp/gpsd/package.nix +++ b/pkgs/by-name/gp/gpsd/package.nix @@ -121,6 +121,8 @@ stdenv.mkDerivation rec { mkdir -p "$out/lib/udev/rules.d" ''; + doInstallCheck = true; + installTargets = [ "install" "udev-install" diff --git a/pkgs/by-name/ha/hackrf/package.nix b/pkgs/by-name/ha/hackrf/package.nix index 999353e527bd1..1bdd32f0afda4 100644 --- a/pkgs/by-name/ha/hackrf/package.nix +++ b/pkgs/by-name/ha/hackrf/package.nix @@ -38,6 +38,8 @@ stdenv.mkDerivation rec { cd host ''; + doInstallCheck = true; + postPatch = '' substituteInPlace host/cmake/modules/FindFFTW.cmake \ --replace "find_library (FFTW_LIBRARIES NAMES fftw3)" "find_library (FFTW_LIBRARIES NAMES fftw3f)" diff --git a/pkgs/by-name/im/imsprog/package.nix b/pkgs/by-name/im/imsprog/package.nix index 7c0fb436f3119..c78a167c24de4 100644 --- a/pkgs/by-name/im/imsprog/package.nix +++ b/pkgs/by-name/im/imsprog/package.nix @@ -60,6 +60,8 @@ stdenv.mkDerivation (finalAttrs: { }" ''; + doInstallCheck = true; + meta = { changelog = "https://github.com/bigbigmdm/IMSProg/releases/tag/v${finalAttrs.version}"; description = "A free I2C EEPROM programmer tool for CH341A device"; diff --git a/pkgs/by-name/ip/ipad_charge/package.nix b/pkgs/by-name/ip/ipad_charge/package.nix index aeb4fc2ea222a..4cd28169fbcdc 100644 --- a/pkgs/by-name/ip/ipad_charge/package.nix +++ b/pkgs/by-name/ip/ipad_charge/package.nix @@ -18,6 +18,8 @@ stdenv.mkDerivation rec { buildInputs = [ libusb1 ]; + doInstallCheck = true; + postPatch = '' substituteInPlace Makefile \ --replace " -o root -g root" "" \ diff --git a/pkgs/by-name/ip/ipp-usb/package.nix b/pkgs/by-name/ip/ipp-usb/package.nix index 76fa581d83d0a..c2350842ee2fa 100644 --- a/pkgs/by-name/ip/ipp-usb/package.nix +++ b/pkgs/by-name/ip/ipp-usb/package.nix @@ -40,6 +40,8 @@ buildGoModule rec { vendorHash = null; + doInstallCheck = true; + postInstall = '' # to accomodate the makefile cp $out/bin/ipp-usb . diff --git a/pkgs/by-name/li/libbladeRF/package.nix b/pkgs/by-name/li/libbladeRF/package.nix index ccf75f7e7aab1..f09ab673cd87c 100644 --- a/pkgs/by-name/li/libbladeRF/package.nix +++ b/pkgs/by-name/li/libbladeRF/package.nix @@ -54,6 +54,8 @@ stdenv.mkDerivation rec { sed -i 's/$(hostname)/hostname/' host/utilities/bladeRF-cli/src/cmd/doc/generate.bash ''; + doInstallCheck = true; + cmakeFlags = [ "-DBUILD_DOCUMENTATION=ON" diff --git a/pkgs/by-name/li/libedgetpu/package.nix b/pkgs/by-name/li/libedgetpu/package.nix index 563e4d56dda1c..86679e8bb7c55 100644 --- a/pkgs/by-name/li/libedgetpu/package.nix +++ b/pkgs/by-name/li/libedgetpu/package.nix @@ -61,6 +61,8 @@ stdenv.mkDerivation { flatbuffers_23_5_26 ]; + doInstallCheck = true; + nativeBuildInputs = [ xxd ]; NIX_CXXSTDLIB_COMPILE = "-std=c++17"; diff --git a/pkgs/by-name/li/libftdi1/package.nix b/pkgs/by-name/li/libftdi1/package.nix index eda5731f57ba0..c2c3613c9f7fc 100644 --- a/pkgs/by-name/li/libftdi1/package.nix +++ b/pkgs/by-name/li/libftdi1/package.nix @@ -43,6 +43,8 @@ stdenv.mkDerivation { strictDeps = true; + doInstallCheck = true; + nativeBuildInputs = [ cmake diff --git a/pkgs/by-name/li/libgphoto2/package.nix b/pkgs/by-name/li/libgphoto2/package.nix index e3101400b22c0..f2dcce8066fd7 100644 --- a/pkgs/by-name/li/libgphoto2/package.nix +++ b/pkgs/by-name/li/libgphoto2/package.nix @@ -45,6 +45,8 @@ stdenv.mkDerivation rec { gd ]; + doInstallCheck = true; + # These are mentioned in the Requires line of libgphoto's pkg-config file. propagatedBuildInputs = [ libexif ]; diff --git a/pkgs/by-name/li/libirecovery/package.nix b/pkgs/by-name/li/libirecovery/package.nix index f9be0ab0146bc..3b34944a82219 100644 --- a/pkgs/by-name/li/libirecovery/package.nix +++ b/pkgs/by-name/li/libirecovery/package.nix @@ -36,6 +36,8 @@ stdenv.mkDerivation rec { libimobiledevice-glue ]; + doInstallCheck = true; + preAutoreconf = '' export RELEASE_VERSION=${version} ''; diff --git a/pkgs/by-name/li/libjaylink/package.nix b/pkgs/by-name/li/libjaylink/package.nix index 8e343447441c7..4976341c2700e 100644 --- a/pkgs/by-name/li/libjaylink/package.nix +++ b/pkgs/by-name/li/libjaylink/package.nix @@ -29,6 +29,8 @@ stdenv.mkDerivation (finalAttrs: { buildInputs = [ libusb1 ]; + doInstallCheck = true; + postPatch = '' substituteInPlace contrib/60-libjaylink.rules \ --replace-fail 'GROUP="plugdev"' 'GROUP="jlink"' diff --git a/pkgs/by-name/li/libmtp/package.nix b/pkgs/by-name/li/libmtp/package.nix index dae6f4450e859..d3edc7c2cf418 100644 --- a/pkgs/by-name/li/libmtp/package.nix +++ b/pkgs/by-name/li/libmtp/package.nix @@ -58,6 +58,8 @@ stdenv.mkDerivation rec { enableParallelBuilding = true; + doInstallCheck = true; + meta = with lib; { homepage = "https://github.com/libmtp/libmtp"; description = "Implementation of Microsoft's Media Transfer Protocol"; diff --git a/pkgs/by-name/li/libnitrokey/package.nix b/pkgs/by-name/li/libnitrokey/package.nix index 5b73a5963bb74..5b084bc64a69f 100644 --- a/pkgs/by-name/li/libnitrokey/package.nix +++ b/pkgs/by-name/li/libnitrokey/package.nix @@ -37,6 +37,8 @@ stdenv.mkDerivation (finalAttrs: { propagatedBuildInputs = [ hidapi ]; + doInstallCheck = true; + meta = with lib; { description = "Communicate with Nitrokey devices in a clean and easy manner"; homepage = "https://github.com/Nitrokey/libnitrokey"; diff --git a/pkgs/by-name/li/libticables2/package.nix b/pkgs/by-name/li/libticables2/package.nix index 162b8332c7f5f..73919235a1892 100644 --- a/pkgs/by-name/li/libticables2/package.nix +++ b/pkgs/by-name/li/libticables2/package.nix @@ -40,6 +40,8 @@ stdenv.mkDerivation rec { "--enable-libusb10" ]; + doInstallCheck = true; + postInstall = '' mkdir -p $out/etc/udev/rules.d cat > $out/etc/udev/rules.d/69-libsane.rules << EOF diff --git a/pkgs/by-name/li/libuldaq/package.nix b/pkgs/by-name/li/libuldaq/package.nix index cb5adc4c45603..a0736e822e5ff 100644 --- a/pkgs/by-name/li/libuldaq/package.nix +++ b/pkgs/by-name/li/libuldaq/package.nix @@ -27,6 +27,8 @@ stdenv.mkDerivation rec { buildInputs = [ libusb1 ]; + doInstallCheck = true; + meta = with lib; { description = "Library to talk to uldaq devices"; longDescription = '' diff --git a/pkgs/by-name/lm/lm4flash/package.nix b/pkgs/by-name/lm/lm4flash/package.nix index ca94fa67ff78a..46bfbe2c3e41d 100644 --- a/pkgs/by-name/lm/lm4flash/package.nix +++ b/pkgs/by-name/lm/lm4flash/package.nix @@ -37,6 +37,8 @@ stdenv.mkDerivation rec { installFlags = [ "PREFIX=$(out)" ]; + doInstallCheck = true; + postInstall = '' install -Dm644 "${stellaris-udev-rules}" "$out/etc/udev/rules.d/61.stellpad.rules" ''; diff --git a/pkgs/by-name/mi/minipro/package.nix b/pkgs/by-name/mi/minipro/package.nix index b48a4033690fb..da7a2774f83bd 100644 --- a/pkgs/by-name/mi/minipro/package.nix +++ b/pkgs/by-name/mi/minipro/package.nix @@ -29,6 +29,8 @@ stdenv.mkDerivation rec { "CFLAGS=-O2" ]; + doInstallCheck = true; + meta = with lib; { homepage = "https://gitlab.com/DavidGriffith/minipro"; description = "Open source program for controlling the MiniPRO TL866xx series of chip programmers"; diff --git a/pkgs/by-name/mo/mouse_m908/package.nix b/pkgs/by-name/mo/mouse_m908/package.nix index 56e320c0ba04b..8b0797f541144 100644 --- a/pkgs/by-name/mo/mouse_m908/package.nix +++ b/pkgs/by-name/mo/mouse_m908/package.nix @@ -25,6 +25,8 @@ stdenv.mkDerivation (finalAttrs: { buildInputs = [ libusb1 ]; + doInstallCheck = true; + # Uses proper nix directories rather than the ones specified in the makefile installPhase = '' runHook preInstall diff --git a/pkgs/by-name/nu/nut/package.nix b/pkgs/by-name/nu/nut/package.nix index 6f5e774b74a7e..cbda0ad87a4a5 100644 --- a/pkgs/by-name/nu/nut/package.nix +++ b/pkgs/by-name/nu/nut/package.nix @@ -72,6 +72,8 @@ stdenv.mkDerivation rec { makeWrapper ]; + doInstallCheck = true; + configureFlags = [ "--with-all" "--with-ssl" diff --git a/pkgs/by-name/nx/nxpmicro-mfgtools/package.nix b/pkgs/by-name/nx/nxpmicro-mfgtools/package.nix index 17d14dce081c4..2f1886881d44a 100644 --- a/pkgs/by-name/nx/nxpmicro-mfgtools/package.nix +++ b/pkgs/by-name/nx/nxpmicro-mfgtools/package.nix @@ -37,6 +37,8 @@ stdenv.mkDerivation rec { zstd ]; + doInstallCheck = true; + preConfigure = "echo ${version} > .tarball-version"; postInstall = '' diff --git a/pkgs/by-name/op/opencbm/package.nix b/pkgs/by-name/op/opencbm/package.nix index 88fc9aa8a15b8..31986058429a8 100644 --- a/pkgs/by-name/op/opencbm/package.nix +++ b/pkgs/by-name/op/opencbm/package.nix @@ -37,6 +37,8 @@ stdenv.mkDerivation rec { ncurses ]; + doInstallCheck = true; + meta = with lib; { description = "Kernel driver and development library to control serial CBM devices"; longDescription = '' diff --git a/pkgs/by-name/op/openocd/package.nix b/pkgs/by-name/op/openocd/package.nix index 618b998eefcb6..9ce9e0f79f645 100644 --- a/pkgs/by-name/op/openocd/package.nix +++ b/pkgs/by-name/op/openocd/package.nix @@ -61,6 +61,8 @@ stdenv.mkDerivation rec { enableParallelBuilding = true; + doInstallCheck = true; + env.NIX_CFLAGS_COMPILE = toString ( lib.optionals stdenv.cc.isGNU [ "-Wno-error=cpp" diff --git a/pkgs/by-name/op/openrgb/package.nix b/pkgs/by-name/op/openrgb/package.nix index 1974573c5a330..06d4cea41ef29 100644 --- a/pkgs/by-name/op/openrgb/package.nix +++ b/pkgs/by-name/op/openrgb/package.nix @@ -52,7 +52,11 @@ stdenv.mkDerivation (finalAttrs: { doInstallCheck = true; installCheckPhase = '' + runHook preInstallCheck + HOME=$TMPDIR $out/bin/openrgb --help > /dev/null + + runHook postInstallCheck ''; passthru.withPlugins = diff --git a/pkgs/by-name/op/openterface-qt/package.nix b/pkgs/by-name/op/openterface-qt/package.nix index 543c192aa9726..6642e3597c016 100644 --- a/pkgs/by-name/op/openterface-qt/package.nix +++ b/pkgs/by-name/op/openterface-qt/package.nix @@ -56,6 +56,8 @@ stdenv.mkDerivation (final: { runHook postInstall ''; + doInstallCheck = true; + desktopItems = [ (makeDesktopItem { name = "openterfaceQT"; diff --git a/pkgs/by-name/or/orbuculum/package.nix b/pkgs/by-name/or/orbuculum/package.nix index 8b20e5e78edf2..19dbc67986bcb 100644 --- a/pkgs/by-name/or/orbuculum/package.nix +++ b/pkgs/by-name/or/orbuculum/package.nix @@ -40,6 +40,8 @@ stdenv.mkDerivation rec { SDL2 ]; + doInstallCheck = true; + installFlags = [ "INSTALL_ROOT=$(out)/" ]; diff --git a/pkgs/by-name/rk/rkdeveloptool-pine64/package.nix b/pkgs/by-name/rk/rkdeveloptool-pine64/package.nix index b7328a63d90ad..19cb218444fef 100644 --- a/pkgs/by-name/rk/rkdeveloptool-pine64/package.nix +++ b/pkgs/by-name/rk/rkdeveloptool-pine64/package.nix @@ -38,6 +38,8 @@ stdenv.mkDerivation { buildInputs = [ libusb1 ]; + doInstallCheck = true; + meta = { homepage = "https://gitlab.com/pine64-org/quartz-bsp/rkdeveloptool/"; description = "Tool from Rockchip to communicate with Rockusb devices (pine64 fork)"; diff --git a/pkgs/by-name/rp/rpcs3/package.nix b/pkgs/by-name/rp/rpcs3/package.nix index 93166a211e2f7..d45d147036738 100644 --- a/pkgs/by-name/rp/rpcs3/package.nix +++ b/pkgs/by-name/rp/rpcs3/package.nix @@ -142,6 +142,8 @@ stdenv.mkDerivation { qtwayland ]; + doInstallCheck = true; + preFixup = '' qtWrapperArgs+=("''${gappsWrapperArgs[@]}") ''; diff --git a/pkgs/by-name/rt/rtl_fm_streamer/package.nix b/pkgs/by-name/rt/rtl_fm_streamer/package.nix index d2505587201a5..ff1857e6d2cf8 100644 --- a/pkgs/by-name/rt/rtl_fm_streamer/package.nix +++ b/pkgs/by-name/rt/rtl_fm_streamer/package.nix @@ -41,6 +41,8 @@ stdenv.mkDerivation (finalAttrs: { (lib.cmakeBool "INSTALL_UDEV_RULES" stdenv.hostPlatform.isLinux) ]; + doInstallCheck = true; + meta = { description = "Turns your Realtek RTL2832 based DVB dongle into a FM radio stereo receiver"; homepage = "https://github.com/AlbrechtL/rtl_fm_streamer"; diff --git a/pkgs/by-name/sc/sc-controller/package.nix b/pkgs/by-name/sc/sc-controller/package.nix index f8d2206399918..54247f1569b36 100644 --- a/pkgs/by-name/sc/sc-controller/package.nix +++ b/pkgs/by-name/sc/sc-controller/package.nix @@ -14,6 +14,7 @@ libXfixes, libusb1, udev, + udevCheckHook, gtk-layer-shell, }: @@ -31,6 +32,7 @@ python3Packages.buildPythonApplication rec { nativeBuildInputs = [ wrapGAppsHook3 gobject-introspection + udevCheckHook ]; buildInputs = [ @@ -89,6 +91,8 @@ python3Packages.buildPythonApplication rec { ) ''; + doInstallCheck = true; + meta = { homepage = "https://github.com/C0rn3j/sc-controller"; # donations: https://www.patreon.com/kozec diff --git a/pkgs/by-name/st/stlink/package.nix b/pkgs/by-name/st/stlink/package.nix index b88b06393fed5..c9ae3cee563db 100644 --- a/pkgs/by-name/st/stlink/package.nix +++ b/pkgs/by-name/st/stlink/package.nix @@ -56,6 +56,8 @@ stdenv.mkDerivation rec { wrapGAppsHook3 ]; + doInstallCheck = true; + cmakeFlags = [ "-DSTLINK_MODPROBED_DIR=${placeholder "out"}/etc/modprobe.d" "-DSTLINK_UDEV_RULES_DIR=${placeholder "out"}/lib/udev/rules.d" diff --git a/pkgs/by-name/ti/tiscamera/package.nix b/pkgs/by-name/ti/tiscamera/package.nix index d3aacec4e45a2..94f27080d7e98 100644 --- a/pkgs/by-name/ti/tiscamera/package.nix +++ b/pkgs/by-name/ti/tiscamera/package.nix @@ -129,6 +129,8 @@ stdenv.mkDerivation rec { dontWrapQtApps = true; + doInstallCheck = true; + preFixup = '' gappsWrapperArgs+=("''${qtWrapperArgs[@]}") ''; diff --git a/pkgs/by-name/ub/ubertooth/package.nix b/pkgs/by-name/ub/ubertooth/package.nix index ea8cd38a1d16e..9663fa2812f96 100644 --- a/pkgs/by-name/ub/ubertooth/package.nix +++ b/pkgs/by-name/ub/ubertooth/package.nix @@ -41,6 +41,8 @@ stdenv.mkDerivation rec { "-DUDEV_RULES_GROUP=${udevGroup}" ]; + doInstallCheck = true; + meta = with lib; { description = "Open source wireless development platform suitable for Bluetooth experimentation"; homepage = "https://github.com/greatscottgadgets/ubertooth"; diff --git a/pkgs/by-name/uh/uhd/package.nix b/pkgs/by-name/uh/uhd/package.nix index 6ff0c16a31068..100df1c585794 100644 --- a/pkgs/by-name/uh/uhd/package.nix +++ b/pkgs/by-name/uh/uhd/package.nix @@ -178,6 +178,8 @@ stdenv.mkDerivation (finalAttrs: { # many tests fails on darwin, according to ofborg doCheck = !stdenv.hostPlatform.isDarwin; + doInstallCheck = true; + # Build only the host software preConfigure = "cd host"; patches = [ diff --git a/pkgs/by-name/up/upower/package.nix b/pkgs/by-name/up/upower/package.nix index b0c0c09573d30..52d3d5795a1a8 100644 --- a/pkgs/by-name/up/upower/package.nix +++ b/pkgs/by-name/up/upower/package.nix @@ -162,6 +162,7 @@ stdenv.mkDerivation (finalAttrs: { ]; doCheck = true; + doInstallCheck = true; postPatch = '' patchShebangs src/linux/integration-test.py diff --git a/pkgs/by-name/us/usbmuxd/package.nix b/pkgs/by-name/us/usbmuxd/package.nix index bf0ac9051ef27..0ef091ded10f7 100644 --- a/pkgs/by-name/us/usbmuxd/package.nix +++ b/pkgs/by-name/us/usbmuxd/package.nix @@ -38,6 +38,8 @@ stdenv.mkDerivation rec { "--with-systemdsystemunitdir=${placeholder "out"}/lib/systemd/system" ]; + doInstallCheck = true; + meta = with lib; { homepage = "https://github.com/libimobiledevice/usbmuxd"; description = "Socket daemon to multiplex connections from and to iOS devices"; diff --git a/pkgs/by-name/us/usbmuxd2/package.nix b/pkgs/by-name/us/usbmuxd2/package.nix index 788b54b58f7e4..8bf55a74bfcd2 100644 --- a/pkgs/by-name/us/usbmuxd2/package.nix +++ b/pkgs/by-name/us/usbmuxd2/package.nix @@ -72,6 +72,8 @@ clangStdenv.mkDerivation rec { libusb1 ]; + doInstallCheck = true; + configureFlags = [ "--with-udevrulesdir=${placeholder "out"}/lib/udev/rules.d" "--with-systemdsystemunitdir=${placeholder "out"}/lib/systemd/system" diff --git a/pkgs/by-name/uu/uuu/package.nix b/pkgs/by-name/uu/uuu/package.nix index 295063456c635..1d7ee0625f94a 100644 --- a/pkgs/by-name/uu/uuu/package.nix +++ b/pkgs/by-name/uu/uuu/package.nix @@ -61,6 +61,8 @@ stdenv.mkDerivation (finalAttrs: { cat <($out/bin/uuu -udev) > $out/lib/udev/rules.d/70-uuu.rules ''; + doInstallCheck = true; + meta = with lib; { description = "Freescale/NXP I.MX Chip image deploy tools"; homepage = "https://github.com/nxp-imx/mfgtools"; diff --git a/pkgs/by-name/wc/wch-isp/package.nix b/pkgs/by-name/wc/wch-isp/package.nix index afc68ea32573f..09beba2b96f30 100644 --- a/pkgs/by-name/wc/wch-isp/package.nix +++ b/pkgs/by-name/wc/wch-isp/package.nix @@ -29,6 +29,8 @@ stdenv.mkDerivation rec { "install-rules" ]; + doInstallCheck = true; + meta = { description = "Firmware programmer for WCH microcontrollers over USB"; mainProgram = "wch-isp"; diff --git a/pkgs/by-name/xf/xfel/package.nix b/pkgs/by-name/xf/xfel/package.nix index c4fe659c96d2c..cdd368dc24185 100644 --- a/pkgs/by-name/xf/xfel/package.nix +++ b/pkgs/by-name/xf/xfel/package.nix @@ -26,6 +26,8 @@ stdenv.mkDerivation (finalAttrs: { "PREFIX=/" ]; + doInstallCheck = true; + meta = { description = "Tooling for working with the FEL mode on Allwinner SoCs"; homepage = "https://github.com/xboot/xfel"; diff --git a/pkgs/by-name/yu/yubikey-personalization/package.nix b/pkgs/by-name/yu/yubikey-personalization/package.nix index 135279a27b0ef..e7627b241c9a6 100644 --- a/pkgs/by-name/yu/yubikey-personalization/package.nix +++ b/pkgs/by-name/yu/yubikey-personalization/package.nix @@ -48,6 +48,8 @@ stdenv.mkDerivation rec { doCheck = true; + doInstallCheck = true; + postInstall = '' # Don't use 70-yubikey.rules because it depends on ConsoleKit install -D -t $out/lib/udev/rules.d 69-yubikey.rules diff --git a/pkgs/development/libraries/libiio/default.nix b/pkgs/development/libraries/libiio/default.nix index c63778c9b9d64..582382b8a2a37 100644 --- a/pkgs/development/libraries/libiio/default.nix +++ b/pkgs/development/libraries/libiio/default.nix @@ -59,6 +59,8 @@ stdenv.mkDerivation rec { ++ lib.optional avahiSupport avahi ++ lib.optional stdenv.hostPlatform.isLinux libaio; + doInstallCheck = true; + cmakeFlags = [ "-DUDEV_RULES_INSTALL_DIR=${placeholder "out"}/lib/udev/rules.d" diff --git a/pkgs/development/libraries/pipewire/default.nix b/pkgs/development/libraries/pipewire/default.nix index 97d05c5ab0fa9..ac6e27088d881 100644 --- a/pkgs/development/libraries/pipewire/default.nix +++ b/pkgs/development/libraries/pipewire/default.nix @@ -244,6 +244,7 @@ stdenv.mkDerivation (finalAttrs: { FONTCONFIG_FILE = makeFontsConf { fontDirectories = [ ]; }; doCheck = true; + doInstallCheck = true; postUnpack = '' patchShebangs ${finalAttrs.src.name}/doc/*.py diff --git a/pkgs/development/libraries/science/astronomy/indilib/default.nix b/pkgs/development/libraries/science/astronomy/indilib/default.nix index 8a4ca2f65cdee..0bd95a5639348 100644 --- a/pkgs/development/libraries/science/astronomy/indilib/default.nix +++ b/pkgs/development/libraries/science/astronomy/indilib/default.nix @@ -16,6 +16,7 @@ gsl, fftw, gtest, + udevCheckHook, indi-full, }: @@ -32,6 +33,7 @@ stdenv.mkDerivation (finalAttrs: { nativeBuildInputs = [ cmake + udevCheckHook ]; buildInputs = [ @@ -60,6 +62,7 @@ stdenv.mkDerivation (finalAttrs: { checkInputs = [ gtest ]; doCheck = true; + doInstallCheck = true; # Socket address collisions between tests enableParallelChecking = false; diff --git a/pkgs/development/libraries/science/astronomy/indilib/indi-3rdparty.nix b/pkgs/development/libraries/science/astronomy/indilib/indi-3rdparty.nix index eb1673875ddbd..d924ae431d788 100644 --- a/pkgs/development/libraries/science/astronomy/indilib/indi-3rdparty.nix +++ b/pkgs/development/libraries/science/astronomy/indilib/indi-3rdparty.nix @@ -37,6 +37,7 @@ limesuite, pkg-config, zeromq, + udevCheckHook, }: let @@ -86,6 +87,7 @@ let cmake ninja pkg-config + udevCheckHook ] ++ nativeBuildInputs; checkInputs = [ gtest ]; @@ -103,6 +105,8 @@ let ${postInstall} ''; + doInstallCheck = true; + meta = with lib; { diff --git a/pkgs/development/tools/libsigrok/default.nix b/pkgs/development/tools/libsigrok/default.nix index fa291ee2a13e4..691d4f60ca271 100644 --- a/pkgs/development/tools/libsigrok/default.nix +++ b/pkgs/development/tools/libsigrok/default.nix @@ -65,10 +65,14 @@ stdenv.mkDerivation { doInstallCheck = true; installCheckPhase = '' + runHook preInstallCheck + # assert that c++ bindings are included # note that this is only true for modern (>0.5) versions; the 0.3 series does not have these [[ -f $out/include/libsigrokcxx/libsigrokcxx.hpp ]] \ || { echo 'C++ bindings were not generated; check configure output'; false; } + + runHook postInstallCheck ''; meta = with lib; { diff --git a/pkgs/misc/drivers/utsushi/default.nix b/pkgs/misc/drivers/utsushi/default.nix index 436319b6b6e97..e826fa31fb7a7 100644 --- a/pkgs/misc/drivers/utsushi/default.nix +++ b/pkgs/misc/drivers/utsushi/default.nix @@ -112,7 +112,7 @@ stdenv.mkDerivation rec { enableParallelBuilding = true; - doInstallCheck = false; + doInstallCheck = true; postInstall = lib.optionalString withNetworkScan '' ln -s ${utsushi-networkscan}/libexec/utsushi/networkscan $out/libexec/utsushi diff --git a/pkgs/tools/misc/heimdall/default.nix b/pkgs/tools/misc/heimdall/default.nix index 90af4652dad1a..546652aa09162 100644 --- a/pkgs/tools/misc/heimdall/default.nix +++ b/pkgs/tools/misc/heimdall/default.nix @@ -41,6 +41,8 @@ mkDerivation rec { substituteInPlace libpit/CMakeLists.txt --replace "-std=gnu++11" "" ''; + doInstallCheck = true; + installPhase = lib.optionalString (stdenv.hostPlatform.isDarwin && enableGUI) '' mkdir -p $out/Applications diff --git a/pkgs/tools/misc/qflipper/default.nix b/pkgs/tools/misc/qflipper/default.nix index b8e971e767e77..e1528ddfb915a 100644 --- a/pkgs/tools/misc/qflipper/default.nix +++ b/pkgs/tools/misc/qflipper/default.nix @@ -95,6 +95,8 @@ mkDerivation { cp installer-assets/udev/42-flipperzero.rules $out/etc/udev/rules.d/ ''; + doInstallCheck = true; + passthru.updateScript = nix-update-script { }; meta = with lib; { diff --git a/pkgs/tools/misc/system-config-printer/default.nix b/pkgs/tools/misc/system-config-printer/default.nix index aa1d78d7658da..5bb9af4aafb38 100644 --- a/pkgs/tools/misc/system-config-printer/default.nix +++ b/pkgs/tools/misc/system-config-printer/default.nix @@ -119,6 +119,7 @@ stdenv.mkDerivation rec { ]; doCheck = true; + doInstallCheck = true; postInstall = '' buildPythonPath "$out $pythonPath" From 2ab54cf2f685c6eb11a8444cd06668de7ac38ff6 Mon Sep 17 00:00:00 2001 From: Grimmauld Date: Wed, 21 May 2025 20:31:26 +0200 Subject: [PATCH 3/5] digitalbitbox: fix udev rules, add checkUdevHook --- pkgs/applications/misc/digitalbitbox/default.nix | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/pkgs/applications/misc/digitalbitbox/default.nix b/pkgs/applications/misc/digitalbitbox/default.nix index 1aa3ca72eb619..bc923b7c2ce2f 100644 --- a/pkgs/applications/misc/digitalbitbox/default.nix +++ b/pkgs/applications/misc/digitalbitbox/default.nix @@ -17,11 +17,12 @@ qtwebsockets, qtmultimedia, udevRule51 ? '' - , SUBSYSTEM=="usb", TAG+="uaccess", TAG+="udev-acl", SYMLINK+="dbb%n", ATTRS{idVendor}=="03eb", ATTRS{idProduct}=="2402" - , '', + SUBSYSTEM=="usb", TAG+="uaccess", TAG+="udev-acl", SYMLINK+="dbb%n", ATTRS{idVendor}=="03eb", ATTRS{idProduct}=="2402" + '', udevRule52 ? '' - , KERNEL=="hidraw*", SUBSYSTEM=="hidraw", ATTRS{idVendor}=="03eb", ATTRS{idProduct}=="2402", TAG+="uaccess", TAG+="udev-acl", SYMLINK+="dbbf%n" - , '', + KERNEL=="hidraw*", SUBSYSTEM=="hidraw", ATTRS{idVendor}=="03eb", ATTRS{idProduct}=="2402", TAG+="uaccess", TAG+="udev-acl", SYMLINK+="dbbf%n" + '', + udevCheckHook, writeText, }: @@ -66,6 +67,7 @@ mkDerivation rec { makeWrapper pkg-config qttools + udevCheckHook ]; buildInputs = [ @@ -121,6 +123,8 @@ mkDerivation rec { enableParallelBuilding = true; + doInstallCheck = true; + meta = with lib; { description = "QT based application for the Digital Bitbox hardware wallet"; longDescription = '' From 2c14bf92a1553220142dd167a2d2b3cd70eaa5a8 Mon Sep 17 00:00:00 2001 From: Grimmauld Date: Thu, 22 May 2025 00:13:57 +0200 Subject: [PATCH 4/5] treewide: add udevCheckHook to packages with udev rules output - [x] `{ doInstallCheck = false; name = "acpilight-1.2"; }` - Configuration file /nix/store/sckm27vsrh58glp3acw07z8jdmpj72q7-acpilight-1.2/etc/udev/rules.d/90-backlight.rules is marked executable. Please remove executable permission bits. Proceeding anyway. - [x] `{ doInstallCheck = false; name = "airspy-1.0.10"; }` - propagated via libusb1 - [ ] `{ doInstallCheck = false; name = "alsa-utils-1.2.13"; }` - /nix/store/pj5lqap32lsaipnmr1pjp8zi6zmc1ng2-alsa-utils-1.2.13/lib/udev/rules.d/90-alsa-restore.rules:16 GOTO="alsa_restore_std" has no matching label, ignoring. - /nix/store/pj5lqap32lsaipnmr1pjp8zi6zmc1ng2-alsa-utils-1.2.13/lib/udev/rules.d/90-alsa-restore.rules:16 The line has no effect any more, dropping. - /nix/store/pj5lqap32lsaipnmr1pjp8zi6zmc1ng2-alsa-utils-1.2.13/lib/udev/rules.d/90-alsa-restore.rules:20 GOTO="alsa_restore_std" has no matching label, ignoring. - /nix/store/pj5lqap32lsaipnmr1pjp8zi6zmc1ng2-alsa-utils-1.2.13/lib/udev/rules.d/90-alsa-restore.rules:20 The line has no effect any more, dropping. - /nix/store/pj5lqap32lsaipnmr1pjp8zi6zmc1ng2-alsa-utils-1.2.13/lib/udev/rules.d/90-alsa-restore.rules: udev rules check failed. - [x] `{ doInstallCheck = false; name = "amazon-ec2-net-utils-2.5.5"; }` - [x] `{ doInstallCheck = true; name = "amazon-ec2-utils-2.2.0"; }` - has butchered pre/post phases, needs some proper cleaning up - [x] `{ doInstallCheck = false; name = "android-udev-rules-20250314"; }` - Configuration file /nix/store/30028n5xqh5lr1lxvm1vsmgxrpyk65fj-android-udev-rules-20250314/lib/udev/rules.d/51-android.rules is marked executable. Please remove executable permission bits. Proceeding anyway. - [x] `{ doInstallCheck = false; name = "antimicrox-3.5.1"; }` - [x] `{ doInstallCheck = false; name = "apio-udev-rules-0.9.5"; }` - Configuration file /nix/store/hh4k648cymsa3dq966f6ivf2l0i528vx-apio-udev-rules-0.9.5/lib/udev/rules.d/70-fpga-ftdi.rules is marked executable. Please remove executable permission bits. Proceeding anyway. - Configuration file /nix/store/hh4k648cymsa3dq966f6ivf2l0i528vx-apio-udev-rules-0.9.5/lib/udev/rules.d/70-fpga-serial.rules is marked executable. Please remove executable permission bits. Proceeding anyway. - [x] `{ doInstallCheck = false; name = "argyllcms-3.3.0"; }` - [ ] `{ doInstallCheck = false; name = "artisan-3.1.4"; }` - ???? No udev rules - [x] `{ doInstallCheck = false; name = "asdbctl-1.0.0"; }` - [x] `{ doInstallCheck = false; name = "asusctl-6.1.12"; }` - [x] `{ doInstallCheck = true; name = "autorandr-1.15"; }` - [ ] `{ doInstallCheck = false; name = "bazecor-1.7.0"; }` - wrapAppImage does not support postInstallCheck: https://github.com/NixOS/nixpkgs/blob/a094b5d8cce756083b19c6931d2ba52a1b1e45f1/pkgs/build-support/appimage/default.nix#L60-L79 - [x] `{ doInstallCheck = false; name = "bcachefs-tools-1.25.2"; }` - [x] `{ doInstallCheck = false; name = "bcache-tools-1.0.8"; }` - [x] `{ doInstallCheck = false; name = "bitbox-bridge-1.6.1"; }` - [x] `{ doInstallCheck = false; name = "bitbox-4.46.3"; }` - Configuration file /nix/store/jxcdrn03zwv4npdif9r0zhz68f06w911-bitbox-4.46.3/lib/udev/rules.d/51-hid-digitalbitbox.rules is marked executable. Please remove executable permission bits. Proceeding anyway. - Configuration file /nix/store/jxcdrn03zwv4npdif9r0zhz68f06w911-bitbox-4.46.3/lib/udev/rules.d/52-hid-digitalbitbox.rules is marked executable. Please remove executable permission bits. Proceeding anyway. - Configuration file /nix/store/jxcdrn03zwv4npdif9r0zhz68f06w911-bitbox-4.46.3/lib/udev/rules.d/53-hid-bitbox02.rules is marked executable. Please remove executable permission bits. Proceeding anyway. - Configuration file /nix/store/jxcdrn03zwv4npdif9r0zhz68f06w911-bitbox-4.46.3/lib/udev/rules.d/54-hid-bitbox02.rules is marked executable. Please remove executable permission bits. Proceeding anyway. - [x] `{ doInstallCheck = false; name = "bluez-5.80"; }` - [x] `{ doInstallCheck = false; name = "bluez-5.80"; }` - ***staged*** - [x] `{ doInstallCheck = true; name = "bmputil-0.1.3"; }` - [x] `{ doInstallCheck = false; name = "bolt-0.9.8"; }` - [ ] `{ doInstallCheck = false; name = "bottles"; }` - ??? no udev - [x] `{ doInstallCheck = true; name = "python3.12-boxflat-1.30.1"; }` - [x] `{ doInstallCheck = false; name = "brightnessctl-0.5.1"; }` - [x] `{ doInstallCheck = false; name = "brillo-1.4.13"; }` - [x] `{ doInstallCheck = false; name = "brltty-6.7"; }` - [x] `{ doInstallCheck = false; name = "btrfs-progs-6.14"; }` - [x] `{ doInstallCheck = false; name = "casync-2-unstable-2023-10-16"; }` - [x] `{ doInstallCheck = false; name = "ccid-1.6.2"; }` - propagated via libusb1 - `meta.platforms` is `unix`, but installs udev rules unconditionally. This seems silly. - has butchered pre/post phases - [x] `{ doInstallCheck = false; name = "cc-tool-unstable-2020-05-19"; }` - Configuration file /nix/store/0nv753w4k0vpv7k032gdj3mfadlxvy81-cc-tool-unstable-2020-05-19/lib/udev/rules.d/90-cc-debugger.rules is marked executable. Please remove executable permission bits. Proceeding anyway. - [ ] `{ doInstallCheck = false; name = "chrysalis-0.13.3"; }` - wrapAppImage does not support postInstallCheck - [x] `{ doInstallCheck = false; name = "ckb-next-0.6.2"; }` - [x] `{ doInstallCheck = true; name = "cm-rgb-0.3.6"; }` - [x] `{ doInstallCheck = false; name = "colord-1.4.6"; }` - [x] `{ doInstallCheck = false; name = "comedilib-0.12.0"; }` - [x] `{ doInstallCheck = false; name = "cpu-energy-meter-1.2"; }` - [ ] `{ doInstallCheck = false; name = "cura-appimage-5.10.0"; }` - ??? no udev rules - [x] `{ doInstallCheck = false; name = "cutecapture-1.4.0"; }` - propagated via libusb1 - [x] `{ doInstallCheck = false; name = "dataexplorer-3.9.3"; }` - [x] `{ doInstallCheck = false; name = "ddcutil-2.2.0"; }` - propagated via libusb1 - [x] `{ doInstallCheck = false; name = "dduper-0.04"; }` - [x] `{ doInstallCheck = false; name = "dediprog-sf100-linux-1.14.21-x"; }` - propagated via libusb1 - [x] `{ doInstallCheck = false; name = "dde-daemon-6.0.43"; }` - [x] `{ doInstallCheck = false; name = "digitalbitbox-3.0.0"; }` - /nix/store/m78h8jh8sqxqycw4y4h4pmhj8q7blmjf-digitalbitbox-3.0.0/etc/udev/rules.d/51-hid-digitalbox.rules:1 style: stray leading comma. - /nix/store/m78h8jh8sqxqycw4y4h4pmhj8q7blmjf-digitalbitbox-3.0.0/etc/udev/rules.d/51-hid-digitalbox.rules:2 style: stray leading comma. - /nix/store/m78h8jh8sqxqycw4y4h4pmhj8q7blmjf-digitalbitbox-3.0.0/etc/udev/rules.d/51-hid-digitalbox.rules:2 The line has no effect, ignoring. - /nix/store/m78h8jh8sqxqycw4y4h4pmhj8q7blmjf-digitalbitbox-3.0.0/etc/udev/rules.d/51-hid-digitalbox.rules: udev rules check failed. - /nix/store/m78h8jh8sqxqycw4y4h4pmhj8q7blmjf-digitalbitbox-3.0.0/etc/udev/rules.d/52-hid-digitalbox.rules:1 style: stray leading comma. - /nix/store/m78h8jh8sqxqycw4y4h4pmhj8q7blmjf-digitalbitbox-3.0.0/etc/udev/rules.d/52-hid-digitalbox.rules:2 style: stray leading comma. - /nix/store/m78h8jh8sqxqycw4y4h4pmhj8q7blmjf-digitalbitbox-3.0.0/etc/udev/rules.d/52-hid-digitalbox.rules:2 The line has no effect, ignoring. - /nix/store/m78h8jh8sqxqycw4y4h4pmhj8q7blmjf-digitalbitbox-3.0.0/etc/udev/rules.d/52-hid-digitalbox.rules: udev rules check failed. - fixed - [x] `{ doInstallCheck = false; name = "direwolf-1.7"; }` - [x] `{ doInstallCheck = false; name = "dmrconfig-1.1"; }` - propagated via libusb1 - Configuration file /nix/store/bymjc5sh1jpk7lk7j1whwd63wl3sagic-dmrconfig-1.1/lib/udev/rules.d/99-dmr.rules is marked executable. Please remove executable permission bits. Proceeding anyway. - [x] `{ doInstallCheck = false; name = "dolphin-emu-2503a"; }` - Configuration file /nix/store/z22spasql9rrkgn4lrxpsv6zhm1jhg10-dolphin-emu-2503a/etc/udev/rules.d/51-usb-device.rules is marked executable. Please remove executable permission bits. Proceeding anyway. - [x] `{ doInstallCheck = false; name = "dolphin-emu-primehack-1.0.7a"; }` - Configuration file /nix/store/2kjvxh1m2b7aiw240sj76gd7fp8kd96i-dolphin-emu-primehack-1.0.7a/etc/udev/rules.d/51-usb-device.rules is marked executable. Please remove executable permission bits. Proceeding anyway - [x] `{ doInstallCheck = false; name = "drbd-9.27.0"; }` - [x] `{ doInstallCheck = false; name = "dsview-1.3.2"; }` - [x] `{ doInstallCheck = false; name = "easypdkprog-1.3"; }` - [x] `{ doInstallCheck = false; name = "ecpdap-0.2.0"; }` - propagated via libusb1 - [x] `{ doInstallCheck = false; name = "edgetx-2.11.0-rc3"; }` - [x] `{ doInstallCheck = false; name = "eg25-manager-0.5.2"; }` - propagated via libusb1 - [x] `{ doInstallCheck = false; name = "elogind-255.5"; }` - can be built without systemd - [x] `{ doInstallCheck = false; name = "em100-0-unstable-2024-11-14"; }` - propagated via libusb1 - [x] `{ doInstallCheck = false; name = "epsonscan2-6.7.70.0-01-2025"; }` - propagated via libusb1 - [ ] `{ doInstallCheck = false; name = "eudev-3.2.14"; }` - not viable, skipped - [x] `{ doInstallCheck = false; name = "feedbackd-0.8.1"; }` - [x] `{ doInstallCheck = false; name = "ffado-2.4.9"; }` - [x] `{ doInstallCheck = false; name = "ffado-2.4.9"; }` - [x] `{ doInstallCheck = false; name = "flashprog-1.4"; }` - propagated via libusb1 - [x] `{ doInstallCheck = false; name = "flashrom-1.5.1"; }` - propagated via libusb1 - [x] `{ doInstallCheck = false; name = "foo2zjs-20210116"; }` - [x] `{ doInstallCheck = false; name = "footswitch-unstable-2023-10-10"; }` - [x] `{ doInstallCheck = false; name = "fuse-3.16.2"; }` - ***staged*** - [x] `{ doInstallCheck = false; name = "g810-led-0.4.3"; }` - Configuration file /nix/store/klh2fxrrkcj9zy6r2pd4x3csldinnnj9-g810-led-0.4.3/etc/udev/rules.d/90-g810-led.rules is marked executable. Please remove executable permission bits. Proceeding anyway. - [x] `{ doInstallCheck = false; name = "game-devices-udev-rules-0.23"; }` - [x] `{ doInstallCheck = false; name = "gdm-48.0"; }` - [x] `{ doInstallCheck = false; name = "gfs2-utils-3.6.1"; }` - [x] `{ doInstallCheck = true; name = "glasgow-0-unstable-2025-01-26"; }` - [x] `{ doInstallCheck = false; name = "gmobile"; }` - [x] `{ doInstallCheck = false; name = "gnome-settings-daemon-46.0"; }` - [x] `{ doInstallCheck = false; name = "gnome-settings-daemon-48.1"; }` - [x] `{ doInstallCheck = false; name = "gobi_loader-0.7"; }` - Configuration file /nix/store/nr89b2svcjgsxl5jla8w77y33dcm5nwj-gobi_loader-0.7/lib/udev/rules.d/60-gobi.rules is marked executable. Please remove executable permission bits. Proceeding anyway. - [x] `{ doInstallCheck = false; name = "google-compute-engine-20190124"; }` - needed `doCheck = true`, but nothing exploded - [x] `{ doInstallCheck = false; name = "google-guest-configs-20211116.00"; }` - [x] `{ doInstallCheck = false; name = "goxlr-utility-1.2.2"; }` - [x] `{ doInstallCheck = false; name = "gpsd-3.25"; }` - propagated via libusb1 - [x] `{ doInstallCheck = false; name = "gradm-3.1-202111052217"; }` - [x] `{ doInstallCheck = false; name = "gummy-0.6.1"; }` - [x] `{ doInstallCheck = false; name = "hackrf-2024.02.1"; }` - propagated via libusb1 - [ ] `{ doInstallCheck = false; name = "handheld-daemon-3.15.3"; }` - wrapAppImage does not support postInstallCheck - [x] `{ doInstallCheck = false; name = "hdapsd-20141203"; }` - [x] `{ doInstallCheck = false; name = "headsetcontrol-3.0.0"; }` - [x] `{ doInstallCheck = false; name = "heimdall-gui-1.4.2"; }` - propagated via libusb1 - [x] `{ doInstallCheck = false; name = "heimdall-1.4.2"; }` - propagated via libusb1 - [ ] `{ doInstallCheck = false; name = "heroic-2.16.1"; }` - ??? no udev - [x] `{ doInstallCheck = true; name = "hplip-3.24.4"; }` - propagated via libusb1 - [x] `{ doInstallCheck = true; name = "huion-switcher-0.5.0"; }` - [x] `{ doInstallCheck = false; name = "iio-sensor-proxy-3.7"; }` - [x] `{ doInstallCheck = false; name = "imsprog-1.5.3"; }` - propagated via libusb1 - [x] `{ doInstallCheck = false; name = "incus-6.12.0"; }` - [x] `{ doInstallCheck = false; name = "incus-lts-6.0.4"; }` - [x] `{ doInstallCheck = false; name = "indi-3rdparty-indi-aagcloudwatcher-ng-2.1.3"; }` - [x] `{ doInstallCheck = false; name = "indi-3rdparty-indi-aok-2.1.3"; }` - [x] `{ doInstallCheck = false; name = "indi-3rdparty-indi-apogee-2.1.3"; }` - [x] `{ doInstallCheck = false; name = "indi-3rdparty-indi-armadillo-platypus-2.1.3"; }` - [x] `{ doInstallCheck = false; name = "indi-3rdparty-indi-astarbox-2.1.3"; }` - [x] `{ doInstallCheck = false; name = "indi-3rdparty-indi-avalon-2.1.3"; }` - [x] `{ doInstallCheck = false; name = "indi-3rdparty-indi-avalonud-2.1.3"; }` - [x] `{ doInstallCheck = false; name = "indi-3rdparty-indi-beefocus-2.1.3"; }` - [x] `{ doInstallCheck = false; name = "indi-3rdparty-indi-bresserexos2-2.1.3"; }` - [x] `{ doInstallCheck = false; name = "indi-3rdparty-indi-celestronaux-2.1.3"; }` - [x] `{ doInstallCheck = false; name = "indi-3rdparty-indi-dsi-2.1.3"; }` - [x] `{ doInstallCheck = false; name = "indi-3rdparty-indi-duino-2.1.3"; }` - [x] `{ doInstallCheck = false; name = "indi-3rdparty-indi-eqmod-2.1.3"; }` - [x] `{ doInstallCheck = false; name = "indi-3rdparty-indi-ffmv-2.1.3"; }` - [x] `{ doInstallCheck = false; name = "indi-3rdparty-indi-fishcamp-2.1.3"; }` - [x] `{ doInstallCheck = false; name = "indi-3rdparty-indi-fli-2.1.3"; }` - [x] `{ doInstallCheck = false; name = "indi-3rdparty-indi-gige-2.1.3"; }` - [x] `{ doInstallCheck = false; name = "indi-3rdparty-indi-gphoto-2.1.3"; }` - [x] `{ doInstallCheck = false; name = "indi-3rdparty-indi-gpio-2.1.3"; }` - [x] `{ doInstallCheck = false; name = "indi-3rdparty-indi-gpsd-2.1.3"; }` - [x] `{ doInstallCheck = false; name = "indi-3rdparty-indi-gpsnmea-2.1.3"; }` - [x] `{ doInstallCheck = false; name = "indi-3rdparty-indi-limesdr-2.1.3"; }` - [x] `{ doInstallCheck = false; name = "indi-3rdparty-indi-maxdomeii-2.1.3"; }` - [x] `{ doInstallCheck = false; name = "indi-3rdparty-indi-mgen-2.1.3"; }` - [x] `{ doInstallCheck = false; name = "indi-3rdparty-indi-nexdome-2.1.3"; }` - [x] `{ doInstallCheck = false; name = "indi-3rdparty-indi-nightscape-2.1.3"; }` - [x] `{ doInstallCheck = false; name = "indi-3rdparty-indi-nut-2.1.3"; }` - [x] `{ doInstallCheck = false; name = "indi-3rdparty-indi-ocs-2.1.3"; }` - [x] `{ doInstallCheck = false; name = "indi-3rdparty-indi-orion-ssg3-2.1.3"; }` - [x] `{ doInstallCheck = false; name = "indi-3rdparty-indi-rolloffino-2.1.3"; }` - [x] `{ doInstallCheck = false; name = "indi-3rdparty-indi-rtklib-2.1.3"; }` - [x] `{ doInstallCheck = false; name = "indi-3rdparty-indi-shelyak-2.1.3"; }` - [x] `{ doInstallCheck = false; name = "indi-3rdparty-indi-starbook-2.1.3"; }` - [x] `{ doInstallCheck = false; name = "indi-3rdparty-indi-starbook-ten-2.1.3"; }` - [x] `{ doInstallCheck = false; name = "indi-3rdparty-indi-sx-2.1.3"; }` - [x] `{ doInstallCheck = false; name = "indi-3rdparty-indi-talon6-2.1.3"; }` - [x] `{ doInstallCheck = false; name = "indi-3rdparty-indi-webcam-2.1.3"; }` - [x] `{ doInstallCheck = false; name = "indi-3rdparty-indi-weewx-json-2.1.3"; }` - [x] `{ doInstallCheck = false; name = "indi-full-2.1.3"; }` - [x] `{ doInstallCheck = false; name = "indilib-2.1.3"; }` - [x] `{ doInstallCheck = false; name = "infnoise-0.3.3"; }` - [x] `{ doInstallCheck = true; name = "inkscape-silhouette-1.29"; }` - [x] `{ doInstallCheck = false; name = "inputmodule-control-0.2.0"; }` - [x] `{ doInstallCheck = false; name = "input-remapper-2.1.1"; }` - doCheck defaults to false - [x] `{ doInstallCheck = false; name = "ipad_charge-2015-02-03"; }` - [x] `{ doInstallCheck = false; name = "ipp-usb-0.9.30"; }` - propagated via libusb1 - [x] `{ doInstallCheck = false; name = "iptsd-3"; }` - [x] `{ doInstallCheck = false; name = "joycond-unstable-2021-07-30"; }` - [x] `{ doInstallCheck = false; name = "k40-whisperer-0.68"; }` - has butchered pre/post phases - [x] `{ doInstallCheck = false; name = "ledger-udev-rules-0-unstable-2024-02-12"; }` - [x] `{ doInstallCheck = false; name = "libbladeRF-2.5.0"; }` - propagated via libusb1 - [x] `{ doInstallCheck = false; name = "libedgetpu-0-unstable-2024-03-14"; }` - propagated via libusb1 - [x] `{ doInstallCheck = false; name = "libfido2-1.15.0"; }` - [x] `{ doInstallCheck = true; name = "libfprint-1.94.9"; }` - [x] `{ doInstallCheck = true; name = "libfprint-tod-1.94.9+tod1"; }` - [ ] `{ doInstallCheck = false; name = "libftdi-1.5-unstable-2023-12-21"; }` - propagated via libusb1 - seems to ignore phase??? - [x] `{ doInstallCheck = false; name = "libgphoto2-2.5.31"; }` - propagated via libusb1 - [x] `{ doInstallCheck = false; name = "libgpod-0.8.3"; }` - [x] `{ doInstallCheck = false; name = "libiio-0.24"; }` - propagated via libusb1 - [x] `{ doInstallCheck = false; name = "libinput-1.27.1"; }` - [ ] `{ doInstallCheck = false; name = "libirecovery-1.2.1"; }` - propagated via libusb1 - /nix/store/srmj1r8hp8ipwc0s5gz8wdv8gpcy8f25-libirecovery-1.2.1/lib/udev/rules.d/39-libirecovery.rules:4 Invalid key/value pair, ignoring. - /nix/store/srmj1r8hp8ipwc0s5gz8wdv8gpcy8f25-libirecovery-1.2.1/lib/udev/rules.d/39-libirecovery.rules:7 Invalid key/value pair, ignoring. - /nix/store/srmj1r8hp8ipwc0s5gz8wdv8gpcy8f25-libirecovery-1.2.1/lib/udev/rules.d/39-libirecovery.rules: udev rules check failed. - [x] `{ doInstallCheck = false; name = "libjaylink-0.4.0"; }` - propagated via libusb1 - [x] `{ doInstallCheck = false; name = "libmtp-1.1.22"; }` - propagated via libusb1 - [x] `{ doInstallCheck = false; name = "libnitrokey-3.8"; }` - propagated via libusb1 - [x] `{ doInstallCheck = false; name = "libpsm2-12.0.1"; }` - [x] `{ doInstallCheck = false; name = "bluez-qt-5.116.0"; }` - [x] `{ doInstallCheck = false; name = "plasma-remotecontrollers-5.27.11"; }` - [x] `{ doInstallCheck = true; name = "libsigrok-0.5.2-unstable-2024-10-20"; }` - propagated via libusb1 - has butchered pre/post phases - [x] `{ doInstallCheck = false; name = "libticables2-1.3.5"; }` - propagated via libusb1 - [x] `{ doInstallCheck = false; name = "libuldaq-1.2.1"; }` - propagated via libusb1 - [x] `{ doInstallCheck = false; name = "libwacom-2.15.0"; }` - [x] `{ doInstallCheck = false; name = "libwacom-surface-2.15.0"; }` - [x] `{ doInstallCheck = false; name = "libwebcam-0.2.5"; }` - [x] `{ doInstallCheck = false; name = "light-1.2.2"; }` - [x] `{ doInstallCheck = false; name = "limesuite-23.11.0"; }` - propagated via libusb1 - [x] `{ doInstallCheck = false; name = "limesuite-23.11.0"; }` - propagated via libusb1 - [x] `{ doInstallCheck = false; name = "linuxconsoletools-1.8.1"; }` - [x] `{ doInstallCheck = false; name = "linux-gpib-user-4.3.6"; }` - [x] `{ doInstallCheck = false; name = "nxp-pn5xx-0.4-unstable-2025-02-08-5.10.235"; }` - [x] `{ doInstallCheck = false; name = "openrazer-3.10.1-5.10.235"; }` - [x] `{ doInstallCheck = false; name = "nxp-pn5xx-0.4-unstable-2025-02-08-5.15.179"; }` - [x] `{ doInstallCheck = false; name = "openrazer-3.10.1-5.15.179"; }` - [x] `{ doInstallCheck = false; name = "nxp-pn5xx-0.4-unstable-2025-02-08-5.15.183"; }` - [x] `{ doInstallCheck = false; name = "openrazer-3.10.1-5.15.183"; }` - [x] `{ doInstallCheck = false; name = "nxp-pn5xx-0.4-unstable-2025-02-08-5.4.293"; }` - [x] `{ doInstallCheck = false; name = "openrazer-3.10.1-5.4.293"; }` - [x] `{ doInstallCheck = false; name = "nxp-pn5xx-0.4-unstable-2025-02-08-6.12.29"; }` - [x] `{ doInstallCheck = false; name = "openrazer-3.10.1-6.12.29"; }` - [x] `{ doInstallCheck = false; name = "nxp-pn5xx-0.4-unstable-2025-02-08-6.13.7"; }` - [x] `{ doInstallCheck = false; name = "openrazer-3.10.1-6.13.7"; }` - [x] `{ doInstallCheck = false; name = "nxp-pn5xx-0.4-unstable-2025-02-08-6.13.12"; }` - [x] `{ doInstallCheck = false; name = "openrazer-3.10.1-6.13.12"; }` - [x] `{ doInstallCheck = false; name = "nxp-pn5xx-0.4-unstable-2025-02-08-6.14.7"; }` - [x] `{ doInstallCheck = false; name = "openrazer-3.10.1-6.14.7"; }` - [x] `{ doInstallCheck = false; name = "nxp-pn5xx-0.4-unstable-2025-02-08-6.1.131"; }` - [x] `{ doInstallCheck = false; name = "openrazer-3.10.1-6.1.131"; }` - [x] `{ doInstallCheck = false; name = "nxp-pn5xx-0.4-unstable-2025-02-08-6.1.139"; }` - [x] `{ doInstallCheck = false; name = "openrazer-3.10.1-6.1.139"; }` - [x] `{ doInstallCheck = false; name = "nxp-pn5xx-0.4-unstable-2025-02-08-6.6.83"; }` - [x] `{ doInstallCheck = false; name = "openrazer-3.10.1-6.6.83"; }` - [x] `{ doInstallCheck = false; name = "nxp-pn5xx-0.4-unstable-2025-02-08-6.6.91"; }` - [x] `{ doInstallCheck = false; name = "openrazer-3.10.1-6.6.91"; }` - [x] `{ doInstallCheck = false; name = "nxp-pn5xx-0.4-unstable-2025-02-08-6.13.12"; }` - [x] `{ doInstallCheck = false; name = "openrazer-3.10.1-6.13.12"; }` - [x] `{ doInstallCheck = false; name = "nxp-pn5xx-0.4-unstable-2025-02-08-6.12.19"; }` - [x] `{ doInstallCheck = false; name = "openrazer-3.10.1-6.12.19"; }` - [x] `{ doInstallCheck = false; name = "nxp-pn5xx-0.4-unstable-2025-02-08-6.12.29"; }` - [x] `{ doInstallCheck = false; name = "openrazer-3.10.1-6.12.29"; }` - [x] `{ doInstallCheck = false; name = "nxp-pn5xx-0.4-unstable-2025-02-08-6.14.7"; }` - [x] `{ doInstallCheck = false; name = "openrazer-3.10.1-6.14.7"; }` - [x] `{ doInstallCheck = false; name = "nxp-pn5xx-0.4-unstable-2025-02-08-6.12.28"; }` - [x] `{ doInstallCheck = false; name = "openrazer-3.10.1-6.12.28"; }` - [x] `{ doInstallCheck = false; name = "nxp-pn5xx-0.4-unstable-2025-02-08-6.14.6"; }` - [x] `{ doInstallCheck = false; name = "openrazer-3.10.1-6.14.6"; }` - [x] `{ doInstallCheck = false; name = "nxp-pn5xx-0.4-unstable-2025-02-08-6.14.7"; }` - [x] `{ doInstallCheck = false; name = "openrazer-3.10.1-6.14.7"; }` - [x] `{ doInstallCheck = true; name = "liquidctl-1.15.0"; }` - [x] `{ doInstallCheck = false; name = "lm4flash-0.1.3"; }` - propagated via libusb1 - [x] `{ doInstallCheck = false; name = "ltunify-0.3"; }` - [ ] `{ doInstallCheck = false; name = "luminance-1.1.0"; }` - hackage, skipped - [ ] `{ doInstallCheck = false; name = "lutris-0.5.19"; }` - fhsenv, skipped - [x] `{ doInstallCheck = false; name = "lvm2-with-dmeventd-2.03.31"; }` - has butchered pre/post phases - ***staged locally*** - [x] `{ doInstallCheck = false; name = "lvm2-2.03.31"; }` - has butchered pre/post phases - ***staged locally*** - [x] `{ doInstallCheck = false; name = "lvm2-with-dmeventd-with-vdo-2.03.31"; }` - has butchered pre/post phases - ***staged locally*** - [x] `{ doInstallCheck = false; name = "M33-Linux-unstable-2016-06-23"; }` - has butchered pre/post phases - Configuration file /nix/store/m4mixbgrz9b0l6qy9q4nsmqdq772jfyq-M33-Linux-unstable-2016-06-23/lib/udev/rules.d/90-micro-3d-local.rules is marked executable. Please remove executable permission bits. Proceeding anyway. - [x] `{ doInstallCheck = false; name = "mate-settings-daemon-1.28.0"; }` - [x] `{ doInstallCheck = false; name = "mdadm-4.3"; }` - [x] `{ doInstallCheck = false; name = "mdevctl-1.4.0"; }` - [x] `{ doInstallCheck = false; name = "media-player-info-26"; }` - [x] `{ doInstallCheck = false; name = "meletrix-udev-rules-0-unstable-2023-10-20"; }` - [x] `{ doInstallCheck = false; name = "minipro-0.7.2"; }` - propagated via libusb1 - [x] `{ doInstallCheck = true; name = "mkosi-25.3-unstable-2025-04-01"; }` - uses udev rules, but does not output them - [x] `{ doInstallCheck = true; name = "modemmanager-1.22.0"; }` - [x] `{ doInstallCheck = false; name = "moolticute-1.03.0"; }` - propagated via libusb1 - [x] `{ doInstallCheck = false; name = "mouse-actions-gui-0.4.5"; }` - [x] `{ doInstallCheck = false; name = "mouse-actions-0.4.5"; }` - [x] `{ doInstallCheck = false; name = "mouse_m908-3.4"; }` - propagated via libusb1 - [x] `{ doInstallCheck = false; name = "multipath-tools-0.9.8"; }` - [x] `{ doInstallCheck = false; name = "mutter-46.8"; }` - [x] `{ doInstallCheck = false; name = "mutter-48.2"; }` - [x] `{ doInstallCheck = false; name = "networkmanager-1.52.0"; }` - [x] `{ doInstallCheck = false; name = "nfs-utils-2.7.1"; }` - [x] `{ doInstallCheck = false; name = "nitrokey-udev-rules-1.1.0"; }` - Configuration file /nix/store/dni4l2ikb7qrj6j78arkj09h4f6i3qx1-nitrokey-udev-rules-1.1.0/etc/udev/rules.d/41-nitrokey.rules is marked executable. Please remove executable permission bits. Proceeding anyway. - [ ] `{ doInstallCheck = false; name = "ns-usbloader-7.1"; }` - [x] `{ doInstallCheck = false; name = "numworks-udev-rules-unstable-2020-08-31"; }` - [x] `{ doInstallCheck = false; name = "nut-2.8.2"; }` - [x] `{ doInstallCheck = false; name = "nvme-cli-2.11"; }` - [x] `{ doInstallCheck = false; name = "nxpmicro-mfgtools-1.5.139"; }` - propagated via libusb1 - Configuration file /nix/store/rara91k0ck7658px2296inp4v7av8hhj-nxpmicro-mfgtools-1.5.139/lib/udev/rules.d/70-uuu.rules is marked executable. Please remove executable permission bits. Proceeding anyway. - [ ] `{ doInstallCheck = false; name = "ocf-resource-agents"; }` - runCommand, no install check - [x] `{ doInstallCheck = true; name = "openambit-0.5"; }` - propagated via libusb1 - has butchered pre/post phases - [x] `{ doInstallCheck = false; name = "opencbm-0.4.99.104"; }` - propagated via libusb1 - [x] `{ doInstallCheck = false; name = "openhantek6022-3.4.0"; }` - propagated via libusb1 - [x] `{ doInstallCheck = false; name = "open-iscsi-2.1.11"; }` - [x] `{ doInstallCheck = false; name = "openobex-1.7.2"; }` - [x] `{ doInstallCheck = false; name = "openocd-0.12.0"; }` - propagated via libusb1 - [x] `{ doInstallCheck = false; name = "openocd-rp2040-0.12.0"; }` - propagated via libusb1 - [x] `{ doInstallCheck = true; name = "openrgb-0.9"; }` - propagated via libusb1 - [x] `{ doInstallCheck = true; name = "openrgb-0.9"; }` - propagated via libusb1 - [x] `{ doInstallCheck = true; name = "openswitcher-0.11.0"; }` - [x] `{ doInstallCheck = true; name = "OpenTabletDriver-0.6.5.1"; }` - [x] `{ doInstallCheck = false; name = "openterface-qt-0.3.12"; }` - propagated via libusb1 - [x] `{ doInstallCheck = false; name = "opentx-2.3.15"; }` - [x] `{ doInstallCheck = false; name = "open-vm-tools-12.5.0"; }` - [x] `{ doInstallCheck = false; name = "open-vm-tools-12.5.0"; }` - [x] `{ doInstallCheck = false; name = "orbuculum-2.1.0"; }` - propagated via libusb1 - [x] `{ doInstallCheck = false; name = "oversteer-0.8.3"; }` - [x] `{ doInstallCheck = false; name = "pcmciautils-018"; }` - [x] `{ doInstallCheck = false; name = "python3.12-persistent-evdev-unstable-2022-05-07"; }` - [x] `{ doInstallCheck = false; name = "phodav-3.0"; }` - [x] `{ doInstallCheck = false; name = "picoprobe-udev-rules-unstable-2023-01-31"; }` - Configuration file /nix/store/7yf9s8l8zjs49ccxyqq5bn6m6i1nsr1f-picoprobe-udev-rules-unstable-2023-01-31/lib/udev/rules.d/69-probe-rs.rules is marked executable. Please remove executable permission bits. Proceeding anyway - [x] `{ doInstallCheck = true; name = "picotool-2.1.1"; }` - propagated via libusb1 - [x] `{ doInstallCheck = false; name = "pipewire-1.4.2"; }` - propagated via libusb1 - [x] `{ doInstallCheck = true; name = "platformio-6.1.18"; }` - [x] `{ doInstallCheck = false; name = "polar-unstable-2021-01-12"; }` - [x] `{ doInstallCheck = false; name = "projecteur-0.10"; }` - [x] `{ doInstallCheck = false; name = "proxmark3-4.20142"; }` - [x] `{ doInstallCheck = false; name = "prusa-slicer-2.9.0"; }` - [x] `{ doInstallCheck = false; name = "pulseaudio-17.0"; }` - [x] `{ doInstallCheck = false; name = "pulseaudio-17.0"; }` - [x] `{ doInstallCheck = true; name = "python3.12-busylight-for-humans-0.33.3"; }` - [x] `{ doInstallCheck = true; name = "python3.12-openant-unstable-1.3.1"; }` - [x] `{ doInstallCheck = true; name = "python3.12-py3buddy-1.0"; }` - Configuration file /nix/store/242snzks6b64a0jwwdk1xcwz16z8inmq-python3.12-py3buddy-1.0/lib/udev/rules.d/99-ibuddy.rules is marked executable. Please remove executable permission bits. Proceeding anyway. - [x] `{ doInstallCheck = true; name = "python3.12-rfcat-2.0.1"; }` - [x] `{ doInstallCheck = true; name = "python3.12-seabreeze-2.10.1"; }` - [x] `{ doInstallCheck = true; name = "python3.12-sigrok-0.5.2-unstable-2024-10-20"; }` - [ ] `{ doInstallCheck = false; name = "soapysdr-0.8.1-unstable-2025-03-30-03"; }` - ??? no udev rules - [x] `{ doInstallCheck = true; name = "python3.13-busylight-for-humans-0.33.3"; }` - [x] `{ doInstallCheck = false; name = "python3.13-google-compute-engine-20190124"; }` - [x] `{ doInstallCheck = false; name = "libiio-0.24"; }` - [x] `{ doInstallCheck = true; name = "python3.13-liquidctl-1.15.0"; }` - [x] `{ doInstallCheck = true; name = "python3.13-openant-unstable-1.3.1"; }` - [x] `{ doInstallCheck = true; name = "python3.13-py3buddy-1.0"; }` - [x] `{ doInstallCheck = true; name = "python3.13-seabreeze-2.10.1"; }` - [x] `{ doInstallCheck = true; name = "python3.13-sigrok-0.5.2-unstable-2024-10-20"; }` - [ ] `{ doInstallCheck = false; name = "soapysdr-0.8.1-unstable-2025-03-30-03"; }` - ??? no udev rules - [x] `{ doInstallCheck = false; name = "qdmr-0.12.1"; }` - propagated via libusb1 - [x] `{ doInstallCheck = false; name = "qFlipper-1.3.3"; }` - [x] `{ doInstallCheck = false; name = "qlcplus-4.13.1"; }` - [x] `{ doInstallCheck = false; name = "qmk-udev-rules-0.27.13"; }` - Configuration file /nix/store/kzj3frkxnk0nggywz29mmdb8bv4yfgg7-qmk-udev-rules-0.27.13/lib/udev/rules.d/50-qmk.rules is marked executable. Please remove executable permission bits. Proceeding anyway. - [x] `{ doInstallCheck = false; name = "quark-goldleaf-1.0.0"; }` - [x] `{ doInstallCheck = false; name = "rdma-core-57.0"; }` - [x] `{ doInstallCheck = false; name = "rfkill-udev"; }` - [ ] `{ doInstallCheck = false; name = "python3.12-rivalcfg-4.14.0"; }` - skipped, broken tests - [x] `{ doInstallCheck = false; name = "rkdeveloptool-unstable-2021-09-04"; }` - propagated via libusb1 - [ ] `{ doInstallCheck = false; name = "roccat-tools-5.9.0"; }` - /nix/store/bh790j6va11b5zagkhy4429j2dvng3jq-roccat-tools-5.9.0/lib/udev/rules.d/90-roccat-kone.rules:17 Invalid value "/nix/store/xy4jjgw87sbgwylm5kn047d9gkbhsr9x-bash-5.2p37/bin/bash -c 'ROCCAT_PATH=$(roccatkonecontrol -p); if test $? -eq 0; then chgrp roccat $ROCCAT_PATH/*; fi'" for RUN (char 82: invalid substitution type), ignoring. - /nix/store/bh790j6va11b5zagkhy4429j2dvng3jq-roccat-tools-5.9.0/lib/udev/rules.d/90-roccat-kone.rules:18 Invalid value "/nix/store/xy4jjgw87sbgwylm5kn047d9gkbhsr9x-bash-5.2p37/bin/bash -c 'ROCCAT_PATH=$(roccatkonecontrol -p); if test $? -eq 0; then chgrp roccat $ROCCAT_PATH/*; fi'" for RUN (char 82: invalid substitution type), ignoring. - /nix/store/bh790j6va11b5zagkhy4429j2dvng3jq-roccat-tools-5.9.0/lib/udev/rules.d/90-roccat-kone.rules: udev rules check failed. - [ ] `{ doInstallCheck = false; name = "rpcs3-0.0.36-17736-c86a25079"; }` - propagated via libusb1 - Configuration file /nix/store/wvspxipk6bzc042cfh5mjcw7j038hsjk-rpcs3-0.0.36-17736-c86a25079/etc/udev/rules.d/99-ds3-controllers.rules is marked executable. Please remove executable permission bits. Proceeding anyway. - Configuration file /nix/store/wvspxipk6bzc042cfh5mjcw7j038hsjk-rpcs3-0.0.36-17736-c86a25079/etc/udev/rules.d/99-ds4-controllers.rules is marked executable. Please remove executable permission bits. Proceeding anyway. - Configuration file /nix/store/wvspxipk6bzc042cfh5mjcw7j038hsjk-rpcs3-0.0.36-17736-c86a25079/etc/udev/rules.d/99-dualsense-controllers.rules is marked executable. Please remove executable permission bits. Proceeding anyway. - [x] `{ doInstallCheck = false; name = "rtl_fm_streamer-unstable-2021-06-08"; }` - propagated via libusb1 - [x] `{ doInstallCheck = false; name = "rtl-sdr-librtlsdr-0.9.0"; }` - propagated via libusb1 - [x] `{ doInstallCheck = false; name = "rtl-sdr-osmocom-2.0.1"; }` - propagated via libusb1 - [x] `{ doInstallCheck = false; name = "rtl-sdr-blog-1.3.5"; }` - propagated via libusb1 - [x] `{ doInstallCheck = true; name = "rust-streamdeck-0.9.0"; }` - [x] `{ doInstallCheck = false; name = "rwedid-0.3.2"; }` - [x] `{ doInstallCheck = false; name = "sane-backends-1.3.1"; }` - propagated via libusb1 - [x] `{ doInstallCheck = true; name = "sc-controller-0.5.2"; }` - NOT propagated via libusb1: not in buildInputs - [x] `{ doInstallCheck = false; name = "snagboot-2.2"; }` - [ ] `{ doInstallCheck = false; name = "soapysdr-0.8.1-unstable-2025-03-30-03"; }` - ??? no udev rules - [x] `{ doInstallCheck = true; name = "solaar-1.1.14"; }` - [x] `{ doInstallCheck = true; name = "solaar-1.1.14"; }` - [x] `{ doInstallCheck = false; name = "solo2-cli-0.2.2"; }` - Configuration file /nix/store/djjqw8ii7fbszmay3hzq139mg78r2gqi-solo2-cli-0.2.2/lib/udev/rules.d/70-solo2.rules is marked executable. Please remove executable permission bits. Proceeding anyway. - [ ] `{ doInstallCheck = false; name = "sparrow-desktop-2.0.0"; }` - untested (BIIG build, valkey in the closure was annoyingly flaky) - [ ] `{ doInstallCheck = false; name = "sparrow-unwrapped-2.0.0"; }` - untested (BIIG build, valkey in the closure was annoyingly flaky) - [x] `{ doInstallCheck = false; name = "speakersafetyd-1.0.2"; }` - [x] `{ doInstallCheck = false; name = "steam-devices-udev-rules-1.0.0.61-unstable-2024-05-22"; }` - [ ] `{ doInstallCheck = false; name = "steam"; }` - skipped: wrapper, no installCheck - [ ] `{ doInstallCheck = false; name = "steam-run"; }` - skipped: fhs environment - [x] `{ doInstallCheck = false; name = "stlink-1.8.0"; }` - propagated via libusb1 - [x] `{ doInstallCheck = false; name = "stlink-1.8.0"; }` - propagated via libusb1 - [x] `{ doInstallCheck = false; name = "stratisd-3.7.3"; }` - [x] `{ doInstallCheck = false; name = "stratisd-3.7.3"; }` - [x] `{ doInstallCheck = false; name = "streamcontroller-1.5.0-beta.8"; }` - [ ] `{ doInstallCheck = true; name = "streamdeck-ui-4.1.3"; }` - had butchered post phase - seems to ignore hook - [x] `{ doInstallCheck = false; name = "sunshine-2025.122.141614"; }` - [x] `{ doInstallCheck = false; name = "supergfxctl-5.2.7"; }` - [x] `{ doInstallCheck = false; name = "super-slicer-2.5.60.0"; }` - [x] `{ doInstallCheck = false; name = "super-slicer-2.5.59.13"; }` - [x] `{ doInstallCheck = false; name = "swayosd-0.2.0"; }` - [x] `{ doInstallCheck = false; name = "system-config-printer-1.5.18"; }` - [ ] `{ doInstallCheck = false; name = "systemd-minimal-257.5"; }` - skipped: inf rec - [ ] `{ doInstallCheck = false; name = "systemd-257.5"; }` - skipped: inf rec - [ ] `{ doInstallCheck = false; name = "systemd-257.5"; }` - skipped: inf rec - [x] `{ doInstallCheck = false; name = "thunderbolt-0.9.3"; }` - [x] `{ doInstallCheck = false; name = "tiny-dfr-0.3.2"; }` - [x] `{ doInstallCheck = false; name = "tiscamera-1.1.1"; }` - propagated via libusb1 - [x] `{ doInstallCheck = false; name = "tlp-1.8.0"; }` - [x] `{ doInstallCheck = false; name = "trezor-udev-rules-unstable-2019-07-17"; }` - has butchered pre/post phases - [x] `{ doInstallCheck = false; name = "tsduck-3.40-4165"; }` - [x] `{ doInstallCheck = false; name = "ubertooth-2020-12-R1"; }` - propagated via libusb1 - [x] `{ doInstallCheck = false; name = "udisks-2.10.1"; }` - [x] `{ doInstallCheck = false; name = "uhd-4.7.0.0"; }` - propagated via libusb1 - [x] `{ doInstallCheck = false; name = "upower-1.90.6"; }` - propagated via libusb1 - [x] `{ doInstallCheck = false; name = "usb-blaster-udev-rules"; }` - [x] `{ doInstallCheck = false; name = "usbkvm-0.2.0"; }` - [x] `{ doInstallCheck = false; name = "usb-modeswitch-data-20191128"; }` - [x] `{ doInstallCheck = false; name = "usbmuxd2-unstable-2023-12-12"; }` - propagated via libusb1 - [x] `{ doInstallCheck = false; name = "usbmuxd-1.1.1+date=2023-05-05"; }` - propagated via libusb1 - [x] `{ doInstallCheck = false; name = "usbrelayd-1.2.1"; }` - [x] `{ doInstallCheck = false; name = "usbsdmux-24.1.1"; }` - [ ] `{ doInstallCheck = false; name = "imagescan-3.65.0"; }` - propagated via libusb1 - [x] `{ doInstallCheck = false; name = "uuu-1.5.201"; }` - propagated via libusb1 - [x] `{ doInstallCheck = false; name = "uvcdynctrl-0.3.0"; }` - [x] `{ doInstallCheck = false; name = "v4l-utils-1.24.1"; }` - [ ] `{ doInstallCheck = false; name = "Vial-0.7.3"; }` - appimage, no install checks - [ ] `{ doInstallCheck = false; name = "via-3.0.0"; }` - appimage, no install checks - [x] `{ doInstallCheck = false; name = "waagent-2.13.1.1"; }` - [x] `{ doInstallCheck = false; name = "wch-isp-0.4.1"; }` - propagated via libusb1 - [ ] `{ doInstallCheck = false; name = "wine-wow-10.0"; }` - skipped - [x] `{ doInstallCheck = false; name = "wooting-udev-rules-0-unstable-2024-11-20"; }` - [x] `{ doInstallCheck = false; name = "xe-guest-utilities-8.4.0"; }` - Configuration file /nix/store/4ainz0zf0577288qjkvfslf8kl0zhp0b-xe-guest-utilities-8.4.0/etc/udev/rules.d/z10_xen-vcpu-hotplug.rules is marked executable. Please remove executable permission bits. Proceeding anyway. - [x] `{ doInstallCheck = false; name = "xf86-input-wacom-1.2.3"; }` - [x] `{ doInstallCheck = false; name = "xfel-1.3.2"; }` - propagated via libusb1 - [ ] `{ doInstallCheck = false; name = "xf86-input-vmmouse-13.2.0"; }` - skipped: `# THIS IS A GENERATED FILE. DO NOT EDIT!` - [ ] `{ doInstallCheck = false; name = "xpra-6.3"; }` - [x] `{ doInstallCheck = false; name = "xr-hardware-1.1.1"; }` - [ ] `{ doInstallCheck = false; name = "yubikey-personalization-1.20.0"; }` - propagated via libusb1 - Configuration file /nix/store/y6bp1cqla1xhs23a9zsddrf1mqxg2amq-yubikey-personalization-1.20.0/lib/udev/rules.d/69-yubikey.rules is marked executable. Please remove executable permission bits. Proceeding anyway. - [x] `{ doInstallCheck = false; name = "zfs-user-2.2.7"; }` - [x] `{ doInstallCheck = false; name = "zfs-user-2.3.2"; }` - [x] `{ doInstallCheck = false; name = "zsa-udev-rules-unstable-2023-11-30"; }` - [ ] `{ doInstallCheck = false; name = "zsnes2-2.0.12"; }` --- .../blockchains/sparrow/default.nix | 4 ++ pkgs/applications/emulators/zsnes/2.x.nix | 4 ++ .../extensions/silhouette/default.nix | 4 +- pkgs/applications/misc/opentx/default.nix | 4 ++ .../misc/prusa-slicer/default.nix | 4 ++ pkgs/applications/misc/qlcplus/default.nix | 4 ++ pkgs/applications/radio/direwolf/default.nix | 8 +++- .../science/electronics/linux-gpib/user.nix | 4 ++ pkgs/by-name/ac/acpilight/package.nix | 6 +++ .../am/amazon-ec2-net-utils/package.nix | 4 ++ pkgs/by-name/am/amazon-ec2-utils/package.nix | 6 +++ .../by-name/an/android-udev-rules/package.nix | 6 +++ pkgs/by-name/ap/apio-udev-rules/package.nix | 7 ++++ pkgs/by-name/ar/argyllcms/package.nix | 4 ++ pkgs/by-name/as/asdbctl/package.nix | 4 ++ pkgs/by-name/as/asusctl/package.nix | 3 ++ pkgs/by-name/au/autorandr/package.nix | 2 + pkgs/by-name/bc/bcache-tools/package.nix | 8 +++- pkgs/by-name/bc/bcachefs-tools/package.nix | 4 ++ pkgs/by-name/bi/bitbox-bridge/package.nix | 4 ++ pkgs/by-name/bi/bitbox/package.nix | 4 ++ pkgs/by-name/bl/bluez/package.nix | 3 ++ pkgs/by-name/bm/bmputil/package.nix | 2 + pkgs/by-name/bo/bolt/package.nix | 4 ++ pkgs/by-name/bo/boxflat/package.nix | 2 + pkgs/by-name/br/brightnessctl/package.nix | 8 +++- pkgs/by-name/br/brillo/package.nix | 8 +++- pkgs/by-name/br/brltty/package.nix | 4 ++ pkgs/by-name/bt/btrfs-progs/package.nix | 6 +++ pkgs/by-name/ca/casync/package.nix | 15 +++++-- pkgs/by-name/co/colord/package.nix | 4 ++ pkgs/by-name/co/comedilib/package.nix | 4 ++ pkgs/by-name/cp/cpu-energy-meter/package.nix | 6 +++ pkgs/by-name/da/dataexplorer/package.nix | 4 ++ pkgs/by-name/dd/dduper/package.nix | 7 ++++ pkgs/by-name/ea/easypdkprog/package.nix | 7 ++++ pkgs/by-name/ed/edgetx/package.nix | 4 ++ pkgs/by-name/el/elogind/package.nix | 42 +++++++++++-------- pkgs/by-name/fe/feedbackd/package.nix | 4 ++ pkgs/by-name/fo/foo2zjs/package.nix | 3 ++ pkgs/by-name/fo/footswitch/package.nix | 8 +++- pkgs/by-name/g8/g810-led/package.nix | 7 ++++ .../ga/game-devices-udev-rules/package.nix | 7 ++++ pkgs/by-name/gd/gdm/package.nix | 4 ++ pkgs/by-name/gf/gfs2-utils/package.nix | 3 ++ pkgs/by-name/gm/gmobile/package.nix | 4 ++ .../gn/gnome-settings-daemon/package.nix | 4 ++ pkgs/by-name/go/gobi_loader/package.nix | 7 ++++ .../go/google-guest-configs/package.nix | 8 +++- pkgs/by-name/go/goxlr-utility/package.nix | 4 ++ pkgs/by-name/gr/gradm/package.nix | 4 ++ pkgs/by-name/gu/gummy/package.nix | 4 ++ pkgs/by-name/hd/hdapsd/package.nix | 7 ++++ pkgs/by-name/he/headsetcontrol/package.nix | 4 ++ pkgs/by-name/hu/huion-switcher/package.nix | 2 + pkgs/by-name/ii/iio-sensor-proxy/package.nix | 4 ++ pkgs/by-name/in/incus/generic.nix | 4 ++ pkgs/by-name/in/infnoise/package.nix | 7 ++++ .../in/inputmodule-control/package.nix | 8 +++- pkgs/by-name/ip/iptsd/package.nix | 4 ++ pkgs/by-name/jo/joycond/package.nix | 4 ++ pkgs/by-name/k4/k40-whisperer/package.nix | 8 +++- pkgs/by-name/le/ledger-udev-rules/package.nix | 7 ++++ pkgs/by-name/li/libfido2/package.nix | 4 ++ pkgs/by-name/li/libfprint/package.nix | 2 + pkgs/by-name/li/libpsm2/package.nix | 8 +++- pkgs/by-name/li/libwacom/package.nix | 3 ++ pkgs/by-name/li/libwebcam/package.nix | 4 ++ pkgs/by-name/li/light/package.nix | 8 +++- pkgs/by-name/li/linuxConsoleTools/package.nix | 8 +++- pkgs/by-name/lt/ltunify/package.nix | 7 ++++ pkgs/by-name/m3/m33-linux/package.nix | 7 ++++ pkgs/by-name/md/mdadm4/package.nix | 8 +++- pkgs/by-name/md/mdevctl/package.nix | 4 ++ pkgs/by-name/me/media-player-info/package.nix | 4 ++ .../me/meletrix-udev-rules/package.nix | 7 ++++ pkgs/by-name/mo/modemmanager/package.nix | 2 + pkgs/by-name/mo/mouse-actions-gui/package.nix | 4 ++ pkgs/by-name/mo/mouse-actions/package.nix | 4 ++ pkgs/by-name/mu/multipath-tools/package.nix | 4 ++ pkgs/by-name/mu/mutter/package.nix | 4 ++ pkgs/by-name/mu/mutter46/package.nix | 4 ++ pkgs/by-name/nf/nfs-utils/package.nix | 4 ++ .../ni/nitrokey-udev-rules/package.nix | 8 +++- pkgs/by-name/ns/ns-usbloader/package.nix | 4 ++ .../nu/numworks-udev-rules/package.nix | 12 +++++- pkgs/by-name/nv/nvme-cli/package.nix | 4 ++ pkgs/by-name/op/open-vm-tools/package.nix | 4 ++ pkgs/by-name/op/openiscsi/package.nix | 4 ++ pkgs/by-name/op/openobex/package.nix | 4 ++ pkgs/by-name/op/openswitcher/package.nix | 2 + pkgs/by-name/op/opentabletdriver/package.nix | 2 + pkgs/by-name/ov/oversteer/package.nix | 4 ++ pkgs/by-name/pc/pcmciaUtils/package.nix | 7 ++++ pkgs/by-name/ph/phodav/package.nix | 4 ++ .../pi/picoprobe-udev-rules/package.nix | 7 ++++ pkgs/by-name/qm/qmk-udev-rules/package.nix | 7 ++++ pkgs/by-name/qu/quark-goldleaf/package.nix | 4 ++ pkgs/by-name/rd/rdma-core/package.nix | 4 ++ pkgs/by-name/ro/roccat-tools/package.nix | 4 ++ pkgs/by-name/ru/rust-streamdeck/package.nix | 6 ++- pkgs/by-name/rw/rwedid/package.nix | 4 ++ pkgs/by-name/sn/snagboot/package.nix | 8 ++-- pkgs/by-name/so/solaar/package.nix | 2 + pkgs/by-name/so/solo2-cli/package.nix | 3 ++ pkgs/by-name/sp/speakersafetyd/package.nix | 7 +++- .../st/steam-devices-udev-rules/package.nix | 7 ++++ pkgs/by-name/st/stratisd/package.nix | 4 ++ pkgs/by-name/st/streamcontroller/package.nix | 4 ++ pkgs/by-name/st/streamdeck-ui/package.nix | 4 +- pkgs/by-name/su/sunshine/package.nix | 4 ++ pkgs/by-name/su/supergfxctl/package.nix | 8 +++- pkgs/by-name/sw/swayosd/package.nix | 4 ++ pkgs/by-name/th/thunderbolt/package.nix | 4 ++ pkgs/by-name/ti/tiny-dfr/package.nix | 8 +++- pkgs/by-name/tr/trezor-udev-rules/package.nix | 7 ++++ pkgs/by-name/ts/tsduck/package.nix | 3 ++ pkgs/by-name/uh/uhk-udev-rules/package.nix | 7 ++++ .../us/usb-blaster-udev-rules/package.nix | 12 +++++- pkgs/by-name/us/usb-modeswitch/data.nix | 8 +++- pkgs/by-name/us/usbkvm/package.nix | 4 ++ pkgs/by-name/us/usbsdmux/package.nix | 8 +++- pkgs/by-name/uv/uvcdynctrl/package.nix | 4 ++ pkgs/by-name/wa/waagent/package.nix | 8 +++- .../by-name/wo/wooting-udev-rules/package.nix | 12 +++++- .../by-name/xe/xe-guest-utilities/package.nix | 7 ++++ pkgs/by-name/xf/xf86_input_wacom/package.nix | 4 ++ pkgs/by-name/xp/xpra/package.nix | 4 +- pkgs/by-name/xr/xr-hardware/package.nix | 7 ++++ pkgs/by-name/zs/zsa-udev-rules/package.nix | 7 ++++ .../deepin/go-package/dde-daemon/default.nix | 4 ++ .../mate/mate-settings-daemon/default.nix | 4 ++ .../plasma-5/plasma-remotecontrollers.nix | 3 ++ pkgs/development/embedded/platformio/core.nix | 2 + .../libraries/kde-frameworks/bluez-qt.nix | 7 +++- .../development/libraries/libgpod/default.nix | 4 ++ .../libraries/libinput/default.nix | 4 ++ .../busylight-for-humans/default.nix | 2 + .../python-modules/liquidctl/default.nix | 2 + .../python-modules/openant/default.nix | 6 ++- .../python-modules/py3buddy/default.nix | 3 ++ .../python-modules/rfcat/default.nix | 5 +++ .../python-modules/seabreeze/default.nix | 2 + pkgs/os-specific/linux/drbd/utils.nix | 4 ++ pkgs/os-specific/linux/ffado/default.nix | 3 ++ pkgs/os-specific/linux/fuse/common.nix | 3 ++ pkgs/os-specific/linux/lvm2/common.nix | 4 +- pkgs/os-specific/linux/nxp-pn5xx/default.nix | 5 ++- pkgs/os-specific/linux/openrazer/driver.nix | 5 ++- pkgs/os-specific/linux/projecteur/default.nix | 4 ++ pkgs/os-specific/linux/rfkill/udev.nix | 7 ++++ pkgs/os-specific/linux/udisks/2-default.nix | 3 ++ pkgs/os-specific/linux/usbrelay/daemon.nix | 8 +++- pkgs/os-specific/linux/v4l-utils/default.nix | 4 ++ pkgs/os-specific/linux/zfs/generic.nix | 8 +++- pkgs/servers/persistent-evdev/default.nix | 14 +++++-- pkgs/servers/pulseaudio/default.nix | 5 +++ .../inputmethods/input-remapper/default.nix | 2 + pkgs/tools/misc/antimicrox/default.nix | 4 ++ pkgs/tools/misc/ckb-next/default.nix | 4 ++ pkgs/tools/misc/polar/default.nix | 7 ++++ pkgs/tools/misc/tlp/default.nix | 8 +++- .../networking/networkmanager/default.nix | 4 ++ pkgs/tools/security/proxmark3/default.nix | 4 ++ pkgs/tools/system/cm-rgb/default.nix | 3 ++ .../google-compute-engine/default.nix | 6 ++- pkgs/tools/virtualization/mkosi/default.nix | 2 + 167 files changed, 827 insertions(+), 64 deletions(-) diff --git a/pkgs/applications/blockchains/sparrow/default.nix b/pkgs/applications/blockchains/sparrow/default.nix index 0af0f39ae44f0..11a8fd7dcd924 100644 --- a/pkgs/applications/blockchains/sparrow/default.nix +++ b/pkgs/applications/blockchains/sparrow/default.nix @@ -20,6 +20,7 @@ gnupg, libusb1, pcsclite, + udevCheckHook, }: let @@ -221,6 +222,7 @@ stdenvNoCC.mkDerivation rec { nativeBuildInputs = [ makeWrapper copyDesktopItems + udevCheckHook ]; desktopItems = [ @@ -277,6 +279,8 @@ stdenvNoCC.mkDerivation rec { runHook postInstall ''; + doInstallCheck = true; + meta = with lib; { description = "Modern desktop Bitcoin wallet application supporting most hardware wallets and built on common standards such as PSBT, with an emphasis on transparency and usability"; homepage = "https://sparrowwallet.com"; diff --git a/pkgs/applications/emulators/zsnes/2.x.nix b/pkgs/applications/emulators/zsnes/2.x.nix index cc0ae95a1a277..ead5cd4289f42 100644 --- a/pkgs/applications/emulators/zsnes/2.x.nix +++ b/pkgs/applications/emulators/zsnes/2.x.nix @@ -10,6 +10,7 @@ nasm, pkg-config, zlib, + udevCheckHook, }: stdenv.mkDerivation (finalAttrs: { @@ -26,6 +27,7 @@ stdenv.mkDerivation (finalAttrs: { nativeBuildInputs = [ nasm pkg-config + udevCheckHook ]; buildInputs = [ @@ -56,6 +58,8 @@ stdenv.mkDerivation (finalAttrs: { install -Dm644 icons/64x64x32.png $out/share/icons/hicolor/64x64/apps/zsnes.png ''; + doInstallCheck = true; + meta = { homepage = "https://github.com/xyproto/zsnes"; description = "Maintained fork of zsnes"; diff --git a/pkgs/applications/graphics/inkscape/extensions/silhouette/default.nix b/pkgs/applications/graphics/inkscape/extensions/silhouette/default.nix index 084edb23f2db4..233689c15db6f 100644 --- a/pkgs/applications/graphics/inkscape/extensions/silhouette/default.nix +++ b/pkgs/applications/graphics/inkscape/extensions/silhouette/default.nix @@ -2,8 +2,8 @@ fetchFromGitHub, lib, gettext, - pkgs, python3, + udevCheckHook, umockdev, writeScript, }: @@ -54,6 +54,7 @@ python3.pkgs.buildPythonApplication rec { nativeCheckInputs = [ python3.pkgs.pytestCheckHook + udevCheckHook umockdev ]; @@ -62,6 +63,7 @@ python3.pkgs.buildPythonApplication rec { ]; doCheck = true; + doInstallCheck = true; installPhase = '' runHook preInstall diff --git a/pkgs/applications/misc/opentx/default.nix b/pkgs/applications/misc/opentx/default.nix index fba0292455a78..c3e100db084bd 100644 --- a/pkgs/applications/misc/opentx/default.nix +++ b/pkgs/applications/misc/opentx/default.nix @@ -12,6 +12,7 @@ gtest, dfu-util, avrdude, + udevCheckHook, }: mkDerivation rec { @@ -30,6 +31,7 @@ mkDerivation rec { gcc-arm-embedded python3Packages.pillow qttools + udevCheckHook ]; buildInputs = [ @@ -54,6 +56,8 @@ mkDerivation rec { "-DCMAKE_SKIP_BUILD_RPATH=ON" ]; + doInstallCheck = true; + meta = with lib; { description = "OpenTX Companion transmitter support software"; longDescription = '' diff --git a/pkgs/applications/misc/prusa-slicer/default.nix b/pkgs/applications/misc/prusa-slicer/default.nix index e075bf766c1f5..ae04c2e6ff593 100644 --- a/pkgs/applications/misc/prusa-slicer/default.nix +++ b/pkgs/applications/misc/prusa-slicer/default.nix @@ -38,6 +38,7 @@ ctestCheckHook, withSystemd ? lib.meta.availableOn stdenv.hostPlatform systemd, systemd, + udevCheckHook, wxGTK-override ? null, opencascade-override ? null, }: @@ -96,6 +97,7 @@ stdenv.mkDerivation (finalAttrs: { pkg-config wrapGAppsHook3 wxGTK-override' + udevCheckHook ]; buildInputs = @@ -138,6 +140,8 @@ stdenv.mkDerivation (finalAttrs: { separateDebugInfo = true; + doInstallCheck = true; + # The build system uses custom logic - defined in # cmake/modules/FindNLopt.cmake in the package source - for finding the nlopt # library, which doesn't pick up the package in the nix store. We diff --git a/pkgs/applications/misc/qlcplus/default.nix b/pkgs/applications/misc/qlcplus/default.nix index e61fbe2864e50..e93a3d61f028d 100644 --- a/pkgs/applications/misc/qlcplus/default.nix +++ b/pkgs/applications/misc/qlcplus/default.nix @@ -14,6 +14,7 @@ libusb-compat-0_1, libsndfile, libmad, + udevCheckHook, }: mkDerivation rec { @@ -30,6 +31,7 @@ mkDerivation rec { nativeBuildInputs = [ qmake pkg-config + udevCheckHook ]; buildInputs = [ udev @@ -60,6 +62,8 @@ mkDerivation rec { enableParallelBuilding = true; + doInstallCheck = true; + postInstall = '' ln -sf $out/lib/*/libqlcplus* $out/lib ''; diff --git a/pkgs/applications/radio/direwolf/default.nix b/pkgs/applications/radio/direwolf/default.nix index f35f66ecc2a4a..d90ea4269101a 100644 --- a/pkgs/applications/radio/direwolf/default.nix +++ b/pkgs/applications/radio/direwolf/default.nix @@ -13,6 +13,7 @@ python3, espeak, udev, + udevCheckHook, extraScripts ? false, }: @@ -27,7 +28,10 @@ stdenv.mkDerivation rec { hash = "sha256-Vbxc6a6CK+wrBfs15dtjfRa1LJDKKyHMrg8tqsF7EX4="; }; - nativeBuildInputs = [ cmake ]; + nativeBuildInputs = [ + cmake + udevCheckHook + ]; strictDeps = true; @@ -71,6 +75,8 @@ stdenv.mkDerivation rec { --replace espeak ${espeak}/bin/espeak ''; + doInstallCheck = true; + meta = with lib; { description = "Soundcard Packet TNC, APRS Digipeater, IGate, APRStt gateway"; homepage = "https://github.com/wb2osz/direwolf/"; diff --git a/pkgs/applications/science/electronics/linux-gpib/user.nix b/pkgs/applications/science/electronics/linux-gpib/user.nix index f7cb2d7daea4e..25b8e27e73cf4 100644 --- a/pkgs/applications/science/electronics/linux-gpib/user.nix +++ b/pkgs/applications/science/electronics/linux-gpib/user.nix @@ -7,6 +7,7 @@ bison, flex, automake, + udevCheckHook, }: stdenv.mkDerivation ( @@ -22,11 +23,14 @@ stdenv.mkDerivation ( bison flex automake + udevCheckHook ]; configureFlags = [ "--sysconfdir=$(out)/etc" "--prefix=$(out)" ]; + + doInstallCheck = true; } ) diff --git a/pkgs/by-name/ac/acpilight/package.nix b/pkgs/by-name/ac/acpilight/package.nix index ec59a26099353..5988f6ba58fc6 100644 --- a/pkgs/by-name/ac/acpilight/package.nix +++ b/pkgs/by-name/ac/acpilight/package.nix @@ -4,6 +4,7 @@ fetchgit, python3, coreutils, + udevCheckHook, }: stdenv.mkDerivation rec { @@ -31,6 +32,11 @@ stdenv.mkDerivation rec { makeFlags = [ "DESTDIR=$(out) prefix=" ]; + nativeBuildInputs = [ + udevCheckHook + ]; + doInstallCheck = true; + meta = with lib; { homepage = "https://gitlab.com/wavexx/acpilight"; description = "ACPI backlight control"; diff --git a/pkgs/by-name/am/amazon-ec2-net-utils/package.nix b/pkgs/by-name/am/amazon-ec2-net-utils/package.nix index 5a73c36f8cc89..79927266aba39 100644 --- a/pkgs/by-name/am/amazon-ec2-net-utils/package.nix +++ b/pkgs/by-name/am/amazon-ec2-net-utils/package.nix @@ -12,6 +12,7 @@ makeWrapper, nix-update-script, systemd, + udevCheckHook, util-linux, }: @@ -31,6 +32,7 @@ stdenv.mkDerivation rec { nativeBuildInputs = [ installShellFiles makeWrapper + udevCheckHook ]; buildInputs = [ @@ -101,6 +103,8 @@ stdenv.mkDerivation rec { runHook postInstall ''; + doInstallCheck = true; + outputs = [ "out" "man" diff --git a/pkgs/by-name/am/amazon-ec2-utils/package.nix b/pkgs/by-name/am/amazon-ec2-utils/package.nix index 348cc82459582..e3e2cab53826c 100644 --- a/pkgs/by-name/am/amazon-ec2-utils/package.nix +++ b/pkgs/by-name/am/amazon-ec2-utils/package.nix @@ -12,6 +12,7 @@ nix-update-script, python3, stdenv, + udevCheckHook, util-linux, }: @@ -31,6 +32,7 @@ stdenv.mkDerivation rec { nativeBuildInputs = [ installShellFiles makeWrapper + udevCheckHook ]; buildInputs = [ @@ -92,7 +94,11 @@ stdenv.mkDerivation rec { # We can't run `ec2-metadata` since it calls IMDS even with `--help`. installCheckPhase = '' + runHook preInstallCheck + $out/bin/ebsnvme-id --help + + runHook postInstallCheck ''; passthru = { diff --git a/pkgs/by-name/an/android-udev-rules/package.nix b/pkgs/by-name/an/android-udev-rules/package.nix index 9e8eb2f5a069f..9bd73e743ad58 100644 --- a/pkgs/by-name/an/android-udev-rules/package.nix +++ b/pkgs/by-name/an/android-udev-rules/package.nix @@ -2,6 +2,7 @@ lib, stdenv, fetchFromGitHub, + udevCheckHook, }: ## Usage @@ -25,6 +26,11 @@ stdenv.mkDerivation rec { runHook postInstall ''; + nativeBuildInputs = [ + udevCheckHook + ]; + doInstallCheck = true; + meta = with lib; { homepage = "https://github.com/M0Rf30/android-udev-rules"; description = "Android udev rules list aimed to be the most comprehensive on the net"; diff --git a/pkgs/by-name/ap/apio-udev-rules/package.nix b/pkgs/by-name/ap/apio-udev-rules/package.nix index 0e31914a8c9fb..5a159d7549b30 100644 --- a/pkgs/by-name/ap/apio-udev-rules/package.nix +++ b/pkgs/by-name/ap/apio-udev-rules/package.nix @@ -2,6 +2,7 @@ lib, stdenvNoCC, fetchFromGitHub, + udevCheckHook, }: stdenvNoCC.mkDerivation (finalAttrs: { @@ -17,6 +18,12 @@ stdenvNoCC.mkDerivation (finalAttrs: { dontBuild = true; + nativeBuildInputs = [ + udevCheckHook + ]; + + doInstallCheck = true; + # 80-* renamed to 70-* for uaccess TAG installPhase = '' runHook preInstall diff --git a/pkgs/by-name/ar/argyllcms/package.nix b/pkgs/by-name/ar/argyllcms/package.nix index f430676270222..cf9ddf139dc05 100644 --- a/pkgs/by-name/ar/argyllcms/package.nix +++ b/pkgs/by-name/ar/argyllcms/package.nix @@ -20,6 +20,7 @@ openssl, buildPackages, replaceVars, + udevCheckHook, writeScript, }: @@ -36,6 +37,7 @@ stdenv.mkDerivation rec { nativeBuildInputs = [ jam + udevCheckHook unzip ]; @@ -164,6 +166,8 @@ stdenv.mkDerivation rec { ''; + doInstallCheck = true; + passthru = { updateScript = writeScript "update-argyllcms" '' #!/usr/bin/env nix-shell diff --git a/pkgs/by-name/as/asdbctl/package.nix b/pkgs/by-name/as/asdbctl/package.nix index d6edeff45b598..29d261d6b1a90 100644 --- a/pkgs/by-name/as/asdbctl/package.nix +++ b/pkgs/by-name/as/asdbctl/package.nix @@ -5,6 +5,7 @@ rustPlatform, pkg-config, udev, + udevCheckHook, }: rustPlatform.buildRustPackage (finalAttrs: { @@ -23,6 +24,7 @@ rustPlatform.buildRustPackage (finalAttrs: { nativeBuildInputs = [ pkg-config + udevCheckHook ]; buildInputs = lib.optionals stdenv.hostPlatform.isLinux [ @@ -35,6 +37,8 @@ rustPlatform.buildRustPackage (finalAttrs: { $out/lib/udev/rules.d/20-asd-backlight.rules ''; + doInstallCheck = true; + meta = { description = "Apple Studio Display brightness controll"; mainProgram = "asdbctl"; diff --git a/pkgs/by-name/as/asusctl/package.nix b/pkgs/by-name/as/asusctl/package.nix index edaff5e252cfa..671d0d8407096 100644 --- a/pkgs/by-name/as/asusctl/package.nix +++ b/pkgs/by-name/as/asusctl/package.nix @@ -14,6 +14,7 @@ seatd, wayland, glibc, + udevCheckHook, }: rustPlatform.buildRustPackage rec { pname = "asusctl"; @@ -61,6 +62,7 @@ rustPlatform.buildRustPackage rec { nativeBuildInputs = [ pkg-config rustPlatform.bindgenHook + udevCheckHook ]; buildInputs = [ @@ -85,6 +87,7 @@ rustPlatform.buildRustPackage rec { # upstream has minimal tests, so don't rebuild twice doCheck = false; + doInstallCheck = true; postInstall = '' make prefix=$out install-data diff --git a/pkgs/by-name/au/autorandr/package.nix b/pkgs/by-name/au/autorandr/package.nix index 26e0b1c696183..02da6e73800e5 100644 --- a/pkgs/by-name/au/autorandr/package.nix +++ b/pkgs/by-name/au/autorandr/package.nix @@ -6,6 +6,7 @@ xrandr, installShellFiles, desktop-file-utils, + udevCheckHook, }: python3.pkgs.buildPythonApplication rec { @@ -23,6 +24,7 @@ python3.pkgs.buildPythonApplication rec { nativeBuildInputs = [ installShellFiles desktop-file-utils + udevCheckHook ]; propagatedBuildInputs = with python3.pkgs; [ packaging ]; diff --git a/pkgs/by-name/bc/bcache-tools/package.nix b/pkgs/by-name/bc/bcache-tools/package.nix index c070b5c10c943..5006b80e97c35 100644 --- a/pkgs/by-name/bc/bcache-tools/package.nix +++ b/pkgs/by-name/bc/bcache-tools/package.nix @@ -6,6 +6,7 @@ util-linux, bash, replaceVars, + udevCheckHook, }: stdenv.mkDerivation rec { @@ -19,9 +20,14 @@ stdenv.mkDerivation rec { hash = "sha256-6gy0ymecMgEHXbwp/nXHlrUEeDFnmFXWZZPlzP292g4="; }; - nativeBuildInputs = [ pkg-config ]; + nativeBuildInputs = [ + pkg-config + udevCheckHook + ]; buildInputs = [ util-linux ]; + doInstallCheck = true; + # * Remove broken install rules (they ignore $PREFIX) for stuff we don't need # anyway (it's distro specific stuff). # * Fixup absolute path to modprobe. diff --git a/pkgs/by-name/bc/bcachefs-tools/package.nix b/pkgs/by-name/bc/bcachefs-tools/package.nix index 08362e6e2c243..9243639bc51fd 100644 --- a/pkgs/by-name/bc/bcachefs-tools/package.nix +++ b/pkgs/by-name/bc/bcachefs-tools/package.nix @@ -24,6 +24,7 @@ nixosTests, installShellFiles, fuseSupport ? false, + udevCheckHook, }: stdenv.mkDerivation (finalAttrs: { @@ -45,6 +46,7 @@ stdenv.mkDerivation (finalAttrs: { rustPlatform.bindgenHook makeWrapper installShellFiles + udevCheckHook ]; buildInputs = [ @@ -84,6 +86,8 @@ stdenv.mkDerivation (finalAttrs: { # FIXME: Try enabling this once the default linux kernel is at least 6.7 doCheck = false; # needs bcachefs module loaded on builder + doInstallCheck = true; + postPatch = '' substituteInPlace Makefile \ --replace-fail "target/release/bcachefs" "target/${stdenv.hostPlatform.rust.rustcTargetSpec}/release/bcachefs" diff --git a/pkgs/by-name/bi/bitbox-bridge/package.nix b/pkgs/by-name/bi/bitbox-bridge/package.nix index 2d1cec1e76c1e..1b484eb5f1c89 100644 --- a/pkgs/by-name/bi/bitbox-bridge/package.nix +++ b/pkgs/by-name/bi/bitbox-bridge/package.nix @@ -7,6 +7,7 @@ libudev-zero, nixosTests, nix-update-script, + udevCheckHook, }: rustPlatform.buildRustPackage (finalAttrs: { @@ -30,6 +31,7 @@ rustPlatform.buildRustPackage (finalAttrs: { nativeBuildInputs = [ pkg-config + udevCheckHook ]; buildInputs = lib.optionals stdenv.hostPlatform.isLinux [ @@ -43,6 +45,8 @@ rustPlatform.buildRustPackage (finalAttrs: { install -Dm644 bitbox-bridge/release/linux/hid-digitalbitbox.rules $out/etc/udev/rules.d/50-hid-digitalbitbox.rules ''; + doInstallCheck = true; + passthru = { tests.basic = nixosTests.bitbox-bridge; updateScript = nix-update-script { }; diff --git a/pkgs/by-name/bi/bitbox/package.nix b/pkgs/by-name/bi/bitbox/package.nix index cb040646f5161..f3986470e8c56 100644 --- a/pkgs/by-name/bi/bitbox/package.nix +++ b/pkgs/by-name/bi/bitbox/package.nix @@ -6,6 +6,7 @@ clang, go, libsForQt5, + udevCheckHook, }: stdenv.mkDerivation rec { @@ -76,8 +77,11 @@ stdenv.mkDerivation rec { clang go libsForQt5.wrapQtAppsHook + udevCheckHook ]; + doInstallCheck = true; + meta = { description = "Companion app for the BitBox02 hardware wallet"; homepage = "https://bitbox.swiss/app/"; diff --git a/pkgs/by-name/bl/bluez/package.nix b/pkgs/by-name/bl/bluez/package.nix index f9d8d0cadba9f..0eacc0f081418 100644 --- a/pkgs/by-name/bl/bluez/package.nix +++ b/pkgs/by-name/bl/bluez/package.nix @@ -23,6 +23,7 @@ lib.meta.availableOn stdenv.hostPlatform gobject-introspection && stdenv.hostPlatform.emulatorAvailable buildPackages, gitUpdater, + udevCheckHook, }: stdenv.mkDerivation (finalAttrs: { @@ -51,6 +52,7 @@ stdenv.mkDerivation (finalAttrs: { pkg-config python3Packages.pygments python3Packages.wrapPython + udevCheckHook ]; outputs = [ @@ -121,6 +123,7 @@ stdenv.mkDerivation (finalAttrs: { ]; doCheck = stdenv.hostPlatform.isx86_64; + doInstallCheck = true; postInstall = let diff --git a/pkgs/by-name/bm/bmputil/package.nix b/pkgs/by-name/bm/bmputil/package.nix index 0bee84d8ed26d..be962985b51bb 100644 --- a/pkgs/by-name/bm/bmputil/package.nix +++ b/pkgs/by-name/bm/bmputil/package.nix @@ -4,6 +4,7 @@ fetchFromGitHub, rustPlatform, versionCheckHook, + udevCheckHook, }: rustPlatform.buildRustPackage rec { pname = "bmputil"; @@ -24,6 +25,7 @@ rustPlatform.buildRustPackage rec { ''; nativeInstallCheckInputs = [ versionCheckHook ]; + nativeBuildInputs = [ udevCheckHook ]; versionCheckProgramArg = "--version"; doInstallCheck = true; diff --git a/pkgs/by-name/bo/bolt/package.nix b/pkgs/by-name/bo/bolt/package.nix index a88bcfb607028..0e430dd08f027 100644 --- a/pkgs/by-name/bo/bolt/package.nix +++ b/pkgs/by-name/bo/bolt/package.nix @@ -18,6 +18,7 @@ glib, systemd, polkit, + udevCheckHook, }: stdenv.mkDerivation rec { @@ -56,6 +57,7 @@ stdenv.mkDerivation rec { ninja pkg-config glib + udevCheckHook ]; buildInputs = [ @@ -86,6 +88,8 @@ stdenv.mkDerivation rec { "-Dlocalstatedir=/var" ]; + doInstallCheck = true; + PKG_CONFIG_SYSTEMD_SYSTEMDSYSTEMUNITDIR = "${placeholder "out"}/lib/systemd/system"; PKG_CONFIG_UDEV_UDEVDIR = "${placeholder "out"}/lib/udev"; diff --git a/pkgs/by-name/bo/boxflat/package.nix b/pkgs/by-name/bo/boxflat/package.nix index e41ca19949040..fc73d80a5330d 100644 --- a/pkgs/by-name/bo/boxflat/package.nix +++ b/pkgs/by-name/bo/boxflat/package.nix @@ -9,6 +9,7 @@ copyDesktopItems, makeDesktopItem, nix-update-script, + udevCheckHook, }: python3Packages.buildPythonPackage rec { @@ -41,6 +42,7 @@ python3Packages.buildPythonPackage rec { copyDesktopItems wrapGAppsHook4 gobject-introspection + udevCheckHook ]; postPatch = '' diff --git a/pkgs/by-name/br/brightnessctl/package.nix b/pkgs/by-name/br/brightnessctl/package.nix index 843af6877465b..3762598709dce 100644 --- a/pkgs/by-name/br/brightnessctl/package.nix +++ b/pkgs/by-name/br/brightnessctl/package.nix @@ -5,6 +5,7 @@ pkg-config, systemd, coreutils, + udevCheckHook, }: stdenv.mkDerivation rec { @@ -37,9 +38,14 @@ stdenv.mkDerivation rec { "install_udev_rules" ]; - nativeBuildInputs = [ pkg-config ]; + nativeBuildInputs = [ + pkg-config + udevCheckHook + ]; buildInputs = [ systemd ]; + doInstallCheck = true; + meta = with lib; { homepage = "https://github.com/Hummer12007/brightnessctl"; description = "This program allows you read and control device brightness"; diff --git a/pkgs/by-name/br/brillo/package.nix b/pkgs/by-name/br/brillo/package.nix index ed67064892d45..7bece9462dd4a 100644 --- a/pkgs/by-name/br/brillo/package.nix +++ b/pkgs/by-name/br/brillo/package.nix @@ -5,6 +5,7 @@ go-md2man, coreutils, replaceVars, + udevCheckHook, }: stdenv.mkDerivation rec { @@ -26,13 +27,18 @@ stdenv.mkDerivation rec { }) ]; - nativeBuildInputs = [ go-md2man ]; + nativeBuildInputs = [ + go-md2man + udevCheckHook + ]; makeFlags = [ "PREFIX=$(out)" "AADIR=$(out)/etc/apparmor.d" ]; + doInstallCheck = true; + installTargets = [ "install-dist" ]; meta = with lib; { diff --git a/pkgs/by-name/br/brltty/package.nix b/pkgs/by-name/br/brltty/package.nix index 556cf7bad5565..7e4dca73324d4 100644 --- a/pkgs/by-name/br/brltty/package.nix +++ b/pkgs/by-name/br/brltty/package.nix @@ -16,6 +16,7 @@ systemdSupport ? lib.meta.availableOn stdenv.hostPlatform systemd, systemd, ncurses, + udevCheckHook, }: stdenv.mkDerivation rec { @@ -32,6 +33,7 @@ stdenv.mkDerivation rec { python3.pkgs.cython python3.pkgs.setuptools tcl + udevCheckHook ]; buildInputs = [ @@ -41,6 +43,8 @@ stdenv.mkDerivation rec { ++ lib.optional alsaSupport alsa-lib ++ lib.optional systemdSupport systemd; + doInstallCheck = true; + meta = { description = "Access software for a blind person using a braille display"; longDescription = '' diff --git a/pkgs/by-name/bt/btrfs-progs/package.nix b/pkgs/by-name/bt/btrfs-progs/package.nix index dead16e648bfe..f27c337caadce 100644 --- a/pkgs/by-name/bt/btrfs-progs/package.nix +++ b/pkgs/by-name/bt/btrfs-progs/package.nix @@ -16,6 +16,7 @@ btrfs-progs, gitUpdater, udevSupport ? true, + udevCheckHook, }: stdenv.mkDerivation rec { @@ -31,6 +32,9 @@ stdenv.mkDerivation rec { [ pkg-config ] + ++ lib.optionals udevSupport [ + udevCheckHook + ] ++ [ (buildPackages.python3.withPackages ( ps: with ps; [ @@ -75,6 +79,8 @@ stdenv.mkDerivation rec { enableParallelBuilding = true; + doInstallCheck = true; + passthru.tests = { simple-filesystem = runCommand "btrfs-progs-create-fs" { } '' mkdir -p $out diff --git a/pkgs/by-name/ca/casync/package.nix b/pkgs/by-name/ca/casync/package.nix index 703af1ab01c71..4f2863a6be609 100644 --- a/pkgs/by-name/ca/casync/package.nix +++ b/pkgs/by-name/ca/casync/package.nix @@ -19,6 +19,7 @@ udevSupport ? true, glibcLocales, rsync, + udevCheckHook, }: stdenv.mkDerivation { @@ -49,10 +50,14 @@ stdenv.mkDerivation { python3 sphinx ]; - nativeCheckInputs = [ - glibcLocales - rsync - ]; + nativeCheckInputs = + [ + glibcLocales + rsync + ] + ++ lib.optionals udevSupport [ + udevCheckHook + ]; postPatch = '' for f in test/test-*.sh.in; do @@ -72,6 +77,8 @@ stdenv.mkDerivation { export LC_ALL="en_US.utf-8" ''; + doInstallCheck = true; + meta = with lib; { description = "Content-Addressable Data Synchronizer"; mainProgram = "casync"; diff --git a/pkgs/by-name/co/colord/package.nix b/pkgs/by-name/co/colord/package.nix index d3ffa44b89d10..52b99912eb970 100644 --- a/pkgs/by-name/co/colord/package.nix +++ b/pkgs/by-name/co/colord/package.nix @@ -31,6 +31,7 @@ gtk-doc, libxslt, enableDaemon ? true, + udevCheckHook, }: stdenv.mkDerivation rec { @@ -91,6 +92,7 @@ stdenv.mkDerivation rec { shared-mime-info vala wrapGAppsNoGuiHook + udevCheckHook ] ++ lib.optionals (!stdenv.buildPlatform.canExecute stdenv.hostPlatform) [ mesonEmulatorHook @@ -116,6 +118,8 @@ stdenv.mkDerivation rec { polkit ]; + doInstallCheck = true; + postInstall = '' glib-compile-schemas $out/share/glib-2.0/schemas ''; diff --git a/pkgs/by-name/co/comedilib/package.nix b/pkgs/by-name/co/comedilib/package.nix index 42d9ca0a5de23..ff73498c8cb12 100644 --- a/pkgs/by-name/co/comedilib/package.nix +++ b/pkgs/by-name/co/comedilib/package.nix @@ -11,6 +11,7 @@ swig, perl, python3, + udevCheckHook, }: stdenv.mkDerivation (finalAttrs: { @@ -34,6 +35,7 @@ stdenv.mkDerivation (finalAttrs: { docbook_xsl python3 perl + udevCheckHook ]; preConfigure = '' @@ -45,6 +47,8 @@ stdenv.mkDerivation (finalAttrs: { "--sysconfdir=${placeholder "out"}/etc" ]; + doInstallCheck = true; + outputs = [ "out" "dev" diff --git a/pkgs/by-name/cp/cpu-energy-meter/package.nix b/pkgs/by-name/cp/cpu-energy-meter/package.nix index 42d496badab35..859997a80affa 100644 --- a/pkgs/by-name/cp/cpu-energy-meter/package.nix +++ b/pkgs/by-name/cp/cpu-energy-meter/package.nix @@ -3,6 +3,7 @@ stdenv, fetchFromGitHub, libcap, + udevCheckHook, }: stdenv.mkDerivation rec { pname = "cpu-energy-meter"; @@ -22,6 +23,11 @@ stdenv.mkDerivation rec { ''; buildInputs = [ libcap ]; + nativeBuildInputs = [ + udevCheckHook + ]; + + doInstallCheck = true; env.NIX_CFLAGS_COMPILE = "-fcommon"; diff --git a/pkgs/by-name/da/dataexplorer/package.nix b/pkgs/by-name/da/dataexplorer/package.nix index eaaf050368cc6..82dee8da062ba 100644 --- a/pkgs/by-name/da/dataexplorer/package.nix +++ b/pkgs/by-name/da/dataexplorer/package.nix @@ -8,6 +8,7 @@ swt, makeWrapper, strip-nondeterminism, + udevCheckHook, }: let swt-jdk17 = swt.override { jdk = jdk17; }; @@ -26,6 +27,7 @@ stdenv.mkDerivation (finalAttrs: { jdk17 makeWrapper strip-nondeterminism + udevCheckHook ]; buildPhase = '' @@ -40,6 +42,8 @@ stdenv.mkDerivation (finalAttrs: { # ant -f build/build.xml check #''; + doInstallCheck = true; + installPhase = '' runHook preInstall diff --git a/pkgs/by-name/dd/dduper/package.nix b/pkgs/by-name/dd/dduper/package.nix index 34bf7fc39d97f..d8221833d934d 100644 --- a/pkgs/by-name/dd/dduper/package.nix +++ b/pkgs/by-name/dd/dduper/package.nix @@ -5,6 +5,7 @@ fetchFromGitHub, btrfs-progs, python3, + udevCheckHook, }: let @@ -39,6 +40,12 @@ stdenv.mkDerivation rec { py3 ]; + nativeBuildInputs = [ + udevCheckHook + ]; + + doInstallCheck = true; + patchPhase = '' substituteInPlace ./dduper --replace "/usr/sbin/btrfs.static" "${btrfsProgsPatched}/bin/btrfs" ''; diff --git a/pkgs/by-name/ea/easypdkprog/package.nix b/pkgs/by-name/ea/easypdkprog/package.nix index b4c86551e142a..82ddba4c4404e 100644 --- a/pkgs/by-name/ea/easypdkprog/package.nix +++ b/pkgs/by-name/ea/easypdkprog/package.nix @@ -2,6 +2,7 @@ stdenv, lib, fetchFromGitHub, + udevCheckHook, }: stdenv.mkDerivation rec { @@ -15,6 +16,12 @@ stdenv.mkDerivation rec { sha256 = "0hc3gdmn6l01z63hzzwdhbdyy288gh5v219bsfm8fb1498vpnd6f"; }; + nativeBuildInputs = [ + udevCheckHook + ]; + + doInstallCheck = true; + installPhase = '' install -Dm755 -t $out/bin easypdkprog diff --git a/pkgs/by-name/ed/edgetx/package.nix b/pkgs/by-name/ed/edgetx/package.nix index 12f6516b01864..7e3a704eab36b 100644 --- a/pkgs/by-name/ed/edgetx/package.nix +++ b/pkgs/by-name/ed/edgetx/package.nix @@ -14,6 +14,7 @@ gtest, miniz, yaml-cpp, + udevCheckHook, # List of targets to build simulators for targetsToBuild ? import ./targets.nix, }: @@ -55,6 +56,7 @@ stdenv.mkDerivation (finalAttrs: { pythonEnv libsForQt5.qttools libsForQt5.wrapQtAppsHook + udevCheckHook ]; buildInputs = [ @@ -85,6 +87,8 @@ stdenv.mkDerivation (finalAttrs: { patchShebangs companion/util radio/util ''; + doInstallCheck = true; + cmakeFlags = [ # Unvendoring these libraries is infeasible. At least lets reuse the same sources. (lib.cmakeFeature "FETCHCONTENT_SOURCE_DIR_GOOGLETEST" "${gtest.src}") diff --git a/pkgs/by-name/el/elogind/package.nix b/pkgs/by-name/el/elogind/package.nix index ed9345d5fbf79..205f81de27817 100644 --- a/pkgs/by-name/el/elogind/package.nix +++ b/pkgs/by-name/el/elogind/package.nix @@ -27,6 +27,7 @@ docbook_xsl_ns, docbook_xml_dtd_42, docbook_xml_dtd_45, + udevCheckHook, # Defaulting to false because usually the rationale for using elogind is to # use it in situation where a systemd dependency does not work (especially @@ -45,25 +46,30 @@ stdenv.mkDerivation rec { hash = "sha256-4KZr/NiiGVwzdDROhiX3GEQTUyIGva6ezb+xC2U3bkg="; }; - nativeBuildInputs = [ - meson - ninja - m4 - pkg-config - gperf - getent - libcap - gettext - libxslt.bin # xsltproc - docbook5 - docbook_xsl - docbook_xsl_ns - docbook_xml_dtd_42 - docbook_xml_dtd_45 # needed for docbook without Internet + nativeBuildInputs = + [ + meson + ninja + m4 + pkg-config + gperf + getent + libcap + gettext + libxslt.bin # xsltproc + docbook5 + docbook_xsl + docbook_xsl_ns + docbook_xml_dtd_42 + docbook_xml_dtd_45 # needed for docbook without Internet - python3Packages.python - python3Packages.jinja2 - ]; + python3Packages.python + python3Packages.jinja2 + ] + ++ lib.optionals enableSystemd [ + # udevCheckHook introduces a dependency on systemdMinimal + udevCheckHook + ]; buildInputs = [ acl diff --git a/pkgs/by-name/fe/feedbackd/package.nix b/pkgs/by-name/fe/feedbackd/package.nix index 5092424b39e9f..812c7a4ad66d4 100644 --- a/pkgs/by-name/fe/feedbackd/package.nix +++ b/pkgs/by-name/fe/feedbackd/package.nix @@ -21,6 +21,7 @@ gmobile, umockdev, feedbackd-device-themes, + udevCheckHook, nix-update-script, }: @@ -58,6 +59,7 @@ stdenv.mkDerivation (finalAttrs: { pkg-config vala wrapGAppsHook3 + udevCheckHook ]; buildInputs = [ @@ -98,6 +100,8 @@ stdenv.mkDerivation (finalAttrs: { fi ''; + doInstallCheck = true; + passthru = { updateScript = nix-update-script { }; }; diff --git a/pkgs/by-name/fo/foo2zjs/package.nix b/pkgs/by-name/fo/foo2zjs/package.nix index be8ed41f5217e..009b2b061cf32 100644 --- a/pkgs/by-name/fo/foo2zjs/package.nix +++ b/pkgs/by-name/fo/foo2zjs/package.nix @@ -6,6 +6,7 @@ bc, ghostscript, systemd, + udevCheckHook, vim, time, }: @@ -24,6 +25,7 @@ stdenv.mkDerivation rec { foomatic-filters ghostscript vim + udevCheckHook ]; buildInputs = [ @@ -72,6 +74,7 @@ stdenv.mkDerivation rec { nativeCheckInputs = [ time ]; doCheck = false; # fails to find its own binary. Also says "Tests will pass only if you are using ghostscript-8.71-16.fc14". + doInstallCheck = true; preInstall = '' mkdir -pv $out/{etc/udev/rules.d,lib/udev/rules.d,etc/hotplug/usb} diff --git a/pkgs/by-name/fo/footswitch/package.nix b/pkgs/by-name/fo/footswitch/package.nix index 61d33b71761da..7e0597dd34c87 100644 --- a/pkgs/by-name/fo/footswitch/package.nix +++ b/pkgs/by-name/fo/footswitch/package.nix @@ -4,6 +4,7 @@ fetchFromGitHub, pkg-config, hidapi, + udevCheckHook, }: stdenv.mkDerivation { @@ -17,7 +18,10 @@ stdenv.mkDerivation { hash = "sha256-vwjeWjIXQiFJ0o/wgEBrKP3hQi8Xa/azVS1IE/Q/MyY="; }; - nativeBuildInputs = [ pkg-config ]; + nativeBuildInputs = [ + pkg-config + udevCheckHook + ]; buildInputs = [ hidapi ]; postPatch = '' @@ -31,6 +35,8 @@ stdenv.mkDerivation { mkdir -p $out/bin $out/lib/udev/rules.d ''; + doInstallCheck = true; + meta = with lib; { description = "Command line utlities for programming PCsensor and Scythe foot switches"; homepage = "https://github.com/rgerganov/footswitch"; diff --git a/pkgs/by-name/g8/g810-led/package.nix b/pkgs/by-name/g8/g810-led/package.nix index 977007b86f5ff..07232b3e6f469 100644 --- a/pkgs/by-name/g8/g810-led/package.nix +++ b/pkgs/by-name/g8/g810-led/package.nix @@ -3,6 +3,7 @@ stdenv, fetchFromGitHub, hidapi, + udevCheckHook, profile ? "/etc/g810-led/profile", }: @@ -30,6 +31,12 @@ stdenv.mkDerivation (finalAttrs: { hidapi ]; + nativeBuildInputs = [ + udevCheckHook + ]; + + doInstallCheck = true; + installPhase = '' runHook preInstall diff --git a/pkgs/by-name/ga/game-devices-udev-rules/package.nix b/pkgs/by-name/ga/game-devices-udev-rules/package.nix index f4b50120ef208..3d635c584e34d 100644 --- a/pkgs/by-name/ga/game-devices-udev-rules/package.nix +++ b/pkgs/by-name/ga/game-devices-udev-rules/package.nix @@ -3,6 +3,7 @@ stdenv, fetchFromGitea, bash, + udevCheckHook, }: stdenv.mkDerivation (finalAttrs: { @@ -17,6 +18,12 @@ stdenv.mkDerivation (finalAttrs: { hash = "sha256-dWWo3qXnxdLP68NuFKM4/Cw5yE6uAsWzj0vZa9UTT0U="; }; + nativeBuildInputs = [ + udevCheckHook + ]; + + doInstallCheck = true; + postInstall = '' install -Dm444 -t "$out/lib/udev/rules.d" *.rules substituteInPlace $out/lib/udev/rules.d/71-powera-controllers.rules \ diff --git a/pkgs/by-name/gd/gdm/package.nix b/pkgs/by-name/gd/gdm/package.nix index 99967c83fd4d2..48e06fd286d33 100644 --- a/pkgs/by-name/gd/gdm/package.nix +++ b/pkgs/by-name/gd/gdm/package.nix @@ -31,6 +31,7 @@ dbus, nixos-icons, runCommand, + udevCheckHook, }: let @@ -74,6 +75,7 @@ stdenv.mkDerivation (finalAttrs: { ninja pkg-config gobject-introspection + udevCheckHook ]; buildInputs = [ @@ -144,6 +146,8 @@ stdenv.mkDerivation (finalAttrs: { --replace-fail "dconf_prefix = dconf_dep.get_variable(pkgconfig: 'prefix')" "dconf_prefix = gdm_prefix" ''; + doInstallCheck = true; + preInstall = '' install -D ${override} "$DESTDIR/$out/share/glib-2.0/schemas/org.gnome.login-screen.gschema.override" ''; diff --git a/pkgs/by-name/gf/gfs2-utils/package.nix b/pkgs/by-name/gf/gfs2-utils/package.nix index e20818abfae47..92359f15f0b64 100644 --- a/pkgs/by-name/gf/gfs2-utils/package.nix +++ b/pkgs/by-name/gf/gfs2-utils/package.nix @@ -9,6 +9,7 @@ bzip2, check, ncurses, + udevCheckHook, util-linux, zlib, }: @@ -34,6 +35,7 @@ stdenv.mkDerivation rec { bison flex pkg-config + udevCheckHook ]; buildInputs = [ bzip2 @@ -44,6 +46,7 @@ stdenv.mkDerivation rec { nativeCheckInputs = [ check ]; doCheck = true; + doInstallCheck = true; enableParallelBuilding = true; diff --git a/pkgs/by-name/gm/gmobile/package.nix b/pkgs/by-name/gm/gmobile/package.nix index da85a98db2444..f0b0c84737311 100644 --- a/pkgs/by-name/gm/gmobile/package.nix +++ b/pkgs/by-name/gm/gmobile/package.nix @@ -10,6 +10,7 @@ json-glib, libuev, gobject-introspection, + udevCheckHook, }: stdenv.mkDerivation (finalAttrs: { @@ -31,6 +32,7 @@ stdenv.mkDerivation (finalAttrs: { ninja pkg-config gobject-introspection + udevCheckHook ]; buildInputs = [ @@ -39,6 +41,8 @@ stdenv.mkDerivation (finalAttrs: { libuev ]; + doInstallCheck = true; + meta = { description = "Functions useful in mobile related, glib based projects"; homepage = "https://gitlab.gnome.org/World/Phosh/gmobile"; diff --git a/pkgs/by-name/gn/gnome-settings-daemon/package.nix b/pkgs/by-name/gn/gnome-settings-daemon/package.nix index afaee31db68f0..a4fd4a916ed1b 100644 --- a/pkgs/by-name/gn/gnome-settings-daemon/package.nix +++ b/pkgs/by-name/gn/gnome-settings-daemon/package.nix @@ -38,6 +38,7 @@ tzdata, gcr_4, gnome-session-ctl, + udevCheckHook, withSystemd ? lib.meta.availableOn stdenv.hostPlatform systemd, }: @@ -76,6 +77,7 @@ stdenv.mkDerivation (finalAttrs: { docbook_xsl wrapGAppsHook3 python3 + udevCheckHook ]; buildInputs = @@ -125,6 +127,8 @@ stdenv.mkDerivation (finalAttrs: { done ''; + doInstallCheck = true; + passthru = { updateScript = gnome.updateScript { packageName = "gnome-settings-daemon"; diff --git a/pkgs/by-name/go/gobi_loader/package.nix b/pkgs/by-name/go/gobi_loader/package.nix index d878df522d758..42a4a9502bb28 100644 --- a/pkgs/by-name/go/gobi_loader/package.nix +++ b/pkgs/by-name/go/gobi_loader/package.nix @@ -2,6 +2,7 @@ lib, stdenv, fetchurl, + udevCheckHook, }: stdenv.mkDerivation rec { @@ -18,6 +19,12 @@ stdenv.mkDerivation rec { substituteInPlace 60-gobi.rules --replace "/lib/firmware" "/run/current-system/firmware" ''; + nativeBuildInputs = [ + udevCheckHook + ]; + + doInstallCheck = true; + makeFlags = [ "prefix=${placeholder "out"}" ]; meta = with lib; { diff --git a/pkgs/by-name/go/google-guest-configs/package.nix b/pkgs/by-name/go/google-guest-configs/package.nix index 5a3bf68579a92..de856f0d0d57e 100644 --- a/pkgs/by-name/go/google-guest-configs/package.nix +++ b/pkgs/by-name/go/google-guest-configs/package.nix @@ -11,6 +11,7 @@ gnugrep, gnused, nvme-cli, + udevCheckHook, }: stdenv.mkDerivation rec { @@ -34,7 +35,10 @@ stdenv.mkDerivation rec { iproute2 ]; - nativeBuildInputs = [ makeWrapper ]; + nativeBuildInputs = [ + makeWrapper + udevCheckHook + ]; dontConfigure = true; dontBuild = true; @@ -49,6 +53,8 @@ stdenv.mkDerivation rec { patch -p1 < ./fix-paths.patch ''; + doInstallCheck = true; + installPhase = '' mkdir -p $out/{bin,etc,lib} cp -r src/etc/{modprobe.d,sysctl.d} $out/etc diff --git a/pkgs/by-name/go/goxlr-utility/package.nix b/pkgs/by-name/go/goxlr-utility/package.nix index 2d1cf6eef7eff..4dea6891fbbfa 100644 --- a/pkgs/by-name/go/goxlr-utility/package.nix +++ b/pkgs/by-name/go/goxlr-utility/package.nix @@ -8,6 +8,7 @@ dbus, openssl, speechd-minimal, + udevCheckHook, }: rustPlatform.buildRustPackage rec { @@ -35,10 +36,13 @@ rustPlatform.buildRustPackage rec { pkg-config installShellFiles rustPlatform.bindgenHook + udevCheckHook ]; buildFeatures = [ "tts" ]; + doInstallCheck = true; + postInstall = '' install -Dm644 "50-goxlr.rules" "$out/etc/udev/rules.d/50-goxlr.rules" install -Dm644 "daemon/resources/goxlr-utility.png" "$out/share/icons/hicolor/48x48/apps/goxlr-utility.png" diff --git a/pkgs/by-name/gr/gradm/package.nix b/pkgs/by-name/gr/gradm/package.nix index d92f7c90119c2..cd01e6ee96e8c 100644 --- a/pkgs/by-name/gr/gradm/package.nix +++ b/pkgs/by-name/gr/gradm/package.nix @@ -5,6 +5,7 @@ bison, flex, pam, + udevCheckHook, }: stdenv.mkDerivation (finalAttrs: { @@ -19,6 +20,7 @@ stdenv.mkDerivation (finalAttrs: { nativeBuildInputs = [ bison flex + udevCheckHook ]; buildInputs = [ pam ]; @@ -47,6 +49,8 @@ stdenv.mkDerivation (finalAttrs: { mkdir -p "$out/etc/udev/rules.d" ''; + doInstallCheck = true; + postInstall = "rmdir $out/dev"; meta = { diff --git a/pkgs/by-name/gu/gummy/package.nix b/pkgs/by-name/gu/gummy/package.nix index e43ac701772aa..e6d5695e8f6f3 100644 --- a/pkgs/by-name/gu/gummy/package.nix +++ b/pkgs/by-name/gu/gummy/package.nix @@ -15,6 +15,7 @@ fmt, nlohmann_json, spdlog, + udevCheckHook, nix-update-script, }: @@ -32,6 +33,7 @@ stdenv.mkDerivation (finalAttrs: { nativeBuildInputs = [ cmake + udevCheckHook ]; buildInputs = [ @@ -68,6 +70,8 @@ stdenv.mkDerivation (finalAttrs: { ln -s $out/libexec/gummyd $out/bin/gummyd ''; + doInstallCheck = true; + passthru.tests.version = testers.testVersion { package = finalAttrs.finalPackage; }; passthru.updateScript = nix-update-script { }; diff --git a/pkgs/by-name/hd/hdapsd/package.nix b/pkgs/by-name/hd/hdapsd/package.nix index 76e2dc4c4fc43..2783c2ddaf0fb 100644 --- a/pkgs/by-name/hd/hdapsd/package.nix +++ b/pkgs/by-name/hd/hdapsd/package.nix @@ -2,6 +2,7 @@ lib, stdenv, fetchurl, + udevCheckHook, }: stdenv.mkDerivation rec { @@ -13,6 +14,12 @@ stdenv.mkDerivation rec { sha256 = "0ppgrfabd0ivx9hyny3c3rv4rphjyxcdsd5svx5pgfai49mxnl36"; }; + nativeBuildInputs = [ + udevCheckHook + ]; + + doInstallCheck = true; + postInstall = builtins.readFile ./postInstall.sh; meta = with lib; { diff --git a/pkgs/by-name/he/headsetcontrol/package.nix b/pkgs/by-name/he/headsetcontrol/package.nix index 4ca12f94739db..05f3ffec1834b 100644 --- a/pkgs/by-name/he/headsetcontrol/package.nix +++ b/pkgs/by-name/he/headsetcontrol/package.nix @@ -5,6 +5,7 @@ fetchpatch, cmake, hidapi, + udevCheckHook, }: stdenv.mkDerivation rec { @@ -27,12 +28,15 @@ stdenv.mkDerivation rec { nativeBuildInputs = [ cmake + udevCheckHook ]; buildInputs = [ hidapi ]; + doInstallCheck = true; + meta = with lib; { description = "Sidetone and Battery status for Logitech G930, G533, G633, G933 SteelSeries Arctis 7/PRO 2019 and Corsair VOID (Pro)"; longDescription = '' diff --git a/pkgs/by-name/hu/huion-switcher/package.nix b/pkgs/by-name/hu/huion-switcher/package.nix index 668543cb4e36c..34ac7cca29391 100644 --- a/pkgs/by-name/hu/huion-switcher/package.nix +++ b/pkgs/by-name/hu/huion-switcher/package.nix @@ -6,6 +6,7 @@ udev, pkg-config, installShellFiles, + udevCheckHook, versionCheckHook, }: @@ -24,6 +25,7 @@ rustPlatform.buildRustPackage (finalAttrs: { nativeBuildInputs = [ pkg-config installShellFiles + udevCheckHook ]; useFetchCargoVendor = true; diff --git a/pkgs/by-name/ii/iio-sensor-proxy/package.nix b/pkgs/by-name/ii/iio-sensor-proxy/package.nix index e8d95bba9f4e4..dee2b98620a66 100644 --- a/pkgs/by-name/ii/iio-sensor-proxy/package.nix +++ b/pkgs/by-name/ii/iio-sensor-proxy/package.nix @@ -11,6 +11,7 @@ libgudev, systemd, polkit, + udevCheckHook, }: stdenv.mkDerivation rec { @@ -44,6 +45,7 @@ stdenv.mkDerivation rec { libxml2 ninja pkg-config + udevCheckHook ]; mesonFlags = [ @@ -51,6 +53,8 @@ stdenv.mkDerivation rec { (lib.mesonOption "systemdsystemunitdir" "${placeholder "out"}/lib/systemd/system") ]; + doInstallCheck = true; + meta = with lib; { description = "Proxy for sending IIO sensor data to D-Bus"; mainProgram = "monitor-sensor"; diff --git a/pkgs/by-name/in/incus/generic.nix b/pkgs/by-name/in/incus/generic.nix index eaf1a746cc2dd..7e2f5affe07d2 100644 --- a/pkgs/by-name/in/incus/generic.nix +++ b/pkgs/by-name/in/incus/generic.nix @@ -21,6 +21,7 @@ pkg-config, sqlite, udev, + udevCheckHook, installShellFiles, nix-update-script, nixosTests, @@ -85,6 +86,7 @@ buildGoModule (finalAttrs: { installShellFiles pkg-config docsPython + udevCheckHook ]; buildInputs = [ @@ -129,6 +131,8 @@ buildGoModule (finalAttrs: { in [ "-skip=^${builtins.concatStringsSep "$|^" skippedTests}$" ]; + doInstallCheck = true; + postInstall = '' installShellCompletion --cmd incus \ --bash <($out/bin/incus completion bash) \ diff --git a/pkgs/by-name/in/infnoise/package.nix b/pkgs/by-name/in/infnoise/package.nix index 08ee53e739f1e..b67b86b6649ac 100644 --- a/pkgs/by-name/in/infnoise/package.nix +++ b/pkgs/by-name/in/infnoise/package.nix @@ -5,6 +5,7 @@ fetchpatch, libftdi, testers, + udevCheckHook, }: stdenv.mkDerivation (finalAttrs: { @@ -32,6 +33,12 @@ stdenv.mkDerivation (finalAttrs: { buildInputs = [ libftdi ]; + nativeBuildInputs = [ + udevCheckHook + ]; + + doInstallCheck = true; + makefile = "Makefile.linux"; makeFlags = [ "PREFIX=$(out)" ]; postPatch = '' diff --git a/pkgs/by-name/in/inputmodule-control/package.nix b/pkgs/by-name/in/inputmodule-control/package.nix index 0133a868ad8b8..9a6f6149d09db 100644 --- a/pkgs/by-name/in/inputmodule-control/package.nix +++ b/pkgs/by-name/in/inputmodule-control/package.nix @@ -7,6 +7,7 @@ inputmodule-control, pkg-config, libudev-zero, + udevCheckHook, }: rustPlatform.buildRustPackage rec { @@ -25,9 +26,14 @@ rustPlatform.buildRustPackage rec { buildAndTestSubdir = "inputmodule-control"; - nativeBuildInputs = [ pkg-config ]; + nativeBuildInputs = [ + pkg-config + udevCheckHook + ]; buildInputs = [ libudev-zero ]; + doInstallCheck = true; + postInstall = '' install -Dm644 release/50-framework-inputmodule.rules $out/etc/udev/rules.d/50-framework-inputmodule.rules ''; diff --git a/pkgs/by-name/ip/iptsd/package.nix b/pkgs/by-name/ip/iptsd/package.nix index 82fbed29652a9..e1485e2d2e067 100644 --- a/pkgs/by-name/ip/iptsd/package.nix +++ b/pkgs/by-name/ip/iptsd/package.nix @@ -13,6 +13,7 @@ microsoft-gsl, spdlog, systemd, + udevCheckHook, }: stdenv.mkDerivation rec { @@ -31,6 +32,7 @@ stdenv.mkDerivation rec { meson ninja pkg-config + udevCheckHook ]; dontUseCmakeConfigure = true; @@ -45,6 +47,8 @@ stdenv.mkDerivation rec { systemd ]; + doInstallCheck = true; + # Original installs udev rules and service config into global paths postPatch = '' substituteInPlace etc/meson.build \ diff --git a/pkgs/by-name/jo/joycond/package.nix b/pkgs/by-name/jo/joycond/package.nix index 423bbe13b6682..dff9c042cba29 100644 --- a/pkgs/by-name/jo/joycond/package.nix +++ b/pkgs/by-name/jo/joycond/package.nix @@ -6,6 +6,7 @@ pkg-config, libevdev, udev, + udevCheckHook, acl, }: @@ -23,12 +24,15 @@ stdenv.mkDerivation { nativeBuildInputs = [ cmake pkg-config + udevCheckHook ]; buildInputs = [ libevdev udev ]; + doInstallCheck = true; + # CMake has hardcoded install paths installPhase = '' mkdir -p $out/{bin,etc/{systemd/system,udev/rules.d},lib/modules-load.d} diff --git a/pkgs/by-name/k4/k40-whisperer/package.nix b/pkgs/by-name/k4/k40-whisperer/package.nix index fe659cbe19c62..38d8100d34e78 100644 --- a/pkgs/by-name/k4/k40-whisperer/package.nix +++ b/pkgs/by-name/k4/k40-whisperer/package.nix @@ -6,6 +6,7 @@ fetchzip, inkscape, lib, + udevCheckHook, udevGroup ? "k40", }: @@ -35,7 +36,10 @@ stdenv.mkDerivation rec { sha256 = "sha256-Pc6iqBQUoI0dsrf+2dA1ZbxX+4Eks/lVgMGC4SR+oFI="; }; - nativeBuildInputs = [ makeWrapper ]; + nativeBuildInputs = [ + makeWrapper + udevCheckHook + ]; patchPhase = '' substituteInPlace svg_reader.py \ @@ -44,6 +48,8 @@ stdenv.mkDerivation rec { buildPhase = ""; + doInstallCheck = true; + installPhase = '' mkdir -p $out cp -p * $out diff --git a/pkgs/by-name/le/ledger-udev-rules/package.nix b/pkgs/by-name/le/ledger-udev-rules/package.nix index c0d7a8f183162..889bca5beb866 100644 --- a/pkgs/by-name/le/ledger-udev-rules/package.nix +++ b/pkgs/by-name/le/ledger-udev-rules/package.nix @@ -2,6 +2,7 @@ lib, stdenv, fetchFromGitHub, + udevCheckHook, }: stdenv.mkDerivation { @@ -15,6 +16,12 @@ stdenv.mkDerivation { sha256 = "sha256-5jN9xy3+kk540PAyfsxIqck9hdI3t2CNpgqKxLbAsDg="; }; + nativeBuildInputs = [ + udevCheckHook + ]; + + doInstallCheck = true; + dontBuild = true; dontConfigure = true; diff --git a/pkgs/by-name/li/libfido2/package.nix b/pkgs/by-name/li/libfido2/package.nix index f8e75b6acb8b1..69c6eae7acb19 100644 --- a/pkgs/by-name/li/libfido2/package.nix +++ b/pkgs/by-name/li/libfido2/package.nix @@ -8,6 +8,7 @@ libcbor, openssl, udev, + udevCheckHook, zlib, withPcsclite ? true, pcsclite, @@ -26,6 +27,7 @@ stdenv.mkDerivation rec { nativeBuildInputs = [ cmake pkg-config + udevCheckHook ]; buildInputs = @@ -45,6 +47,8 @@ stdenv.mkDerivation rec { "man" ]; + doInstallCheck = true; + cmakeFlags = [ "-DUDEV_RULES_DIR=${placeholder "out"}/etc/udev/rules.d" diff --git a/pkgs/by-name/li/libfprint/package.nix b/pkgs/by-name/li/libfprint/package.nix index dbb3a8d3ecab3..6e08860d3f3d8 100644 --- a/pkgs/by-name/li/libfprint/package.nix +++ b/pkgs/by-name/li/libfprint/package.nix @@ -12,6 +12,7 @@ gobject-introspection, cairo, libgudev, + udevCheckHook, gtk-doc, docbook-xsl-nons, docbook_xml_dtd_43, @@ -51,6 +52,7 @@ stdenv.mkDerivation (finalAttrs: { docbook-xsl-nons docbook_xml_dtd_43 gobject-introspection + udevCheckHook ]; buildInputs = [ diff --git a/pkgs/by-name/li/libpsm2/package.nix b/pkgs/by-name/li/libpsm2/package.nix index 45ae93c032c80..60eb292909c8d 100644 --- a/pkgs/by-name/li/libpsm2/package.nix +++ b/pkgs/by-name/li/libpsm2/package.nix @@ -4,6 +4,7 @@ fetchFromGitHub, numactl, pkg-config, + udevCheckHook, }: stdenv.mkDerivation rec { @@ -17,7 +18,10 @@ stdenv.mkDerivation rec { enableParallelBuilding = true; - nativeBuildInputs = [ pkg-config ]; + nativeBuildInputs = [ + pkg-config + udevCheckHook + ]; buildInputs = [ numactl ]; makeFlags = [ @@ -26,6 +30,8 @@ stdenv.mkDerivation rec { "WERROR=" ]; + doInstallCheck = true; + installFlags = [ "DESTDIR=$(out)" "UDEVDIR=/etc/udev" diff --git a/pkgs/by-name/li/libwacom/package.nix b/pkgs/by-name/li/libwacom/package.nix index 5132dd4881565..bb0d63c650e3c 100644 --- a/pkgs/by-name/li/libwacom/package.nix +++ b/pkgs/by-name/li/libwacom/package.nix @@ -7,6 +7,7 @@ glib, pkg-config, udev, + udevCheckHook, libevdev, libgudev, python3, @@ -38,6 +39,7 @@ stdenv.mkDerivation (finalAttrs: { meson ninja python3 + udevCheckHook ]; buildInputs = [ @@ -61,6 +63,7 @@ stdenv.mkDerivation (finalAttrs: { # Tests are in the `tests` pass-through derivation because one of them is flaky, frequently causing build failures. # See https://github.com/NixOS/nixpkgs/issues/328140 doCheck = false; + doInstallCheck = true; nativeCheckInputs = [ valgrind diff --git a/pkgs/by-name/li/libwebcam/package.nix b/pkgs/by-name/li/libwebcam/package.nix index d2759838ac5ea..aebf4eb6411b5 100644 --- a/pkgs/by-name/li/libwebcam/package.nix +++ b/pkgs/by-name/li/libwebcam/package.nix @@ -5,6 +5,7 @@ cmake, pkg-config, libxml2, + udevCheckHook, }: stdenv.mkDerivation rec { @@ -23,6 +24,7 @@ stdenv.mkDerivation rec { nativeBuildInputs = [ cmake pkg-config + udevCheckHook ]; buildInputs = [ libxml2 ]; @@ -45,6 +47,8 @@ stdenv.mkDerivation rec { ) ''; + doInstallCheck = true; + meta = with lib; { description = "Webcam-tools package"; platforms = platforms.linux; diff --git a/pkgs/by-name/li/light/package.nix b/pkgs/by-name/li/light/package.nix index 71967f7671703..6b1052e6fe6df 100644 --- a/pkgs/by-name/li/light/package.nix +++ b/pkgs/by-name/li/light/package.nix @@ -4,6 +4,7 @@ fetchFromGitLab, autoreconfHook, coreutils, + udevCheckHook, }: stdenv.mkDerivation { @@ -19,7 +20,10 @@ stdenv.mkDerivation { configureFlags = [ "--with-udev" ]; - nativeBuildInputs = [ autoreconfHook ]; + nativeBuildInputs = [ + autoreconfHook + udevCheckHook + ]; patches = [ ./0001-define-light-loglevel-as-extern.patch @@ -32,6 +36,8 @@ stdenv.mkDerivation { --replace-fail '/bin/chmod' '${coreutils}/bin/chmod' ''; + doInstallCheck = true; + meta = { description = "GNU/Linux application to control backlights"; homepage = "https://gitlab.com/dpeukert/light"; diff --git a/pkgs/by-name/li/linuxConsoleTools/package.nix b/pkgs/by-name/li/linuxConsoleTools/package.nix index 323c83b9d26b4..febe2f1d7095b 100644 --- a/pkgs/by-name/li/linuxConsoleTools/package.nix +++ b/pkgs/by-name/li/linuxConsoleTools/package.nix @@ -5,6 +5,7 @@ pkg-config, SDL, SDL2, + udevCheckHook, }: stdenv.mkDerivation rec { @@ -16,7 +17,10 @@ stdenv.mkDerivation rec { sha256 = "sha256-TaKXRceCt9sY9fN8Sed78WMSHdN2Hi/HY2+gy/NcJFY="; }; - nativeBuildInputs = [ pkg-config ]; + nativeBuildInputs = [ + pkg-config + udevCheckHook + ]; buildInputs = [ SDL SDL2 @@ -26,6 +30,8 @@ stdenv.mkDerivation rec { installFlags = [ "PREFIX=\"\"" ]; + doInstallCheck = true; + meta = with lib; { homepage = "https://sourceforge.net/projects/linuxconsole/"; description = "Set of tools for joysticks and serial peripherals"; diff --git a/pkgs/by-name/lt/ltunify/package.nix b/pkgs/by-name/lt/ltunify/package.nix index 14b54abeb52b2..d507cf119e329 100644 --- a/pkgs/by-name/lt/ltunify/package.nix +++ b/pkgs/by-name/lt/ltunify/package.nix @@ -2,6 +2,7 @@ lib, stdenv, fetchFromGitHub, + udevCheckHook, }: # Although we copy in the udev rules here, you probably just want to use @@ -18,6 +19,12 @@ stdenv.mkDerivation rec { sha256 = "sha256-9avri/2H0zv65tkBsIi9yVxx3eVS9oCkVCCFdjXqSgI="; }; + nativeBuildInputs = [ + udevCheckHook + ]; + + doInstallCheck = true; + makeFlags = [ "DESTDIR=$(out)" "bindir=/bin" diff --git a/pkgs/by-name/m3/m33-linux/package.nix b/pkgs/by-name/m3/m33-linux/package.nix index 30e81e238c699..a7816aaab499e 100644 --- a/pkgs/by-name/m3/m33-linux/package.nix +++ b/pkgs/by-name/m3/m33-linux/package.nix @@ -3,6 +3,7 @@ stdenv, fetchFromGitHub, fetchpatch, + udevCheckHook, }: stdenv.mkDerivation { @@ -26,6 +27,12 @@ stdenv.mkDerivation { }) ]; + nativeBuildInputs = [ + udevCheckHook + ]; + + doInstallCheck = true; + installPhase = '' install -Dm755 m33-linux $out/bin/m33-linux install -Dm755 90-micro-3d-local.rules $out/lib/udev/rules.d/90-micro-3d-local.rules diff --git a/pkgs/by-name/md/mdadm4/package.nix b/pkgs/by-name/md/mdadm4/package.nix index 082ddb9d57ba7..28ff372478a54 100644 --- a/pkgs/by-name/md/mdadm4/package.nix +++ b/pkgs/by-name/md/mdadm4/package.nix @@ -7,6 +7,7 @@ groff, system-sendmail, udev, + udevCheckHook, }: stdenv.mkDerivation rec { @@ -57,7 +58,12 @@ stdenv.mkDerivation rec { buildInputs = [ udev ]; - nativeBuildInputs = [ groff ]; + nativeBuildInputs = [ + groff + udevCheckHook + ]; + + doInstallCheck = true; postPatch = '' sed -e 's@/lib/udev@''${out}/lib/udev@' \ diff --git a/pkgs/by-name/md/mdevctl/package.nix b/pkgs/by-name/md/mdevctl/package.nix index 790c4cfad6f55..4bf612f4d9f3a 100644 --- a/pkgs/by-name/md/mdevctl/package.nix +++ b/pkgs/by-name/md/mdevctl/package.nix @@ -4,6 +4,7 @@ fetchCrate, docutils, installShellFiles, + udevCheckHook, }: rustPlatform.buildRustPackage rec { @@ -26,8 +27,11 @@ rustPlatform.buildRustPackage rec { nativeBuildInputs = [ docutils installShellFiles + udevCheckHook ]; + doInstallCheck = true; + postInstall = '' ln -s mdevctl $out/bin/lsmdev diff --git a/pkgs/by-name/me/media-player-info/package.nix b/pkgs/by-name/me/media-player-info/package.nix index 1249f4e411e38..2106ddcc598d4 100644 --- a/pkgs/by-name/me/media-player-info/package.nix +++ b/pkgs/by-name/me/media-player-info/package.nix @@ -6,6 +6,7 @@ pkg-config, python3, udev, + udevCheckHook, systemd, }: @@ -29,8 +30,11 @@ stdenv.mkDerivation rec { autoreconfHook pkg-config python3 + udevCheckHook ]; + doInstallCheck = true; + postPatch = '' patchShebangs ./tools ''; diff --git a/pkgs/by-name/me/meletrix-udev-rules/package.nix b/pkgs/by-name/me/meletrix-udev-rules/package.nix index cdbce4957d98a..bd8103780b698 100644 --- a/pkgs/by-name/me/meletrix-udev-rules/package.nix +++ b/pkgs/by-name/me/meletrix-udev-rules/package.nix @@ -1,6 +1,7 @@ { lib, stdenvNoCC, + udevCheckHook, }: stdenvNoCC.mkDerivation { pname = "meletrix-udev-rules"; @@ -11,6 +12,12 @@ stdenvNoCC.mkDerivation { dontUnpack = true; dontBuild = true; + nativeBuildInputs = [ + udevCheckHook + ]; + + doInstallCheck = true; + installPhase = '' install -Dpm644 $src $out/lib/udev/rules.d/70-meletrix.rules ''; diff --git a/pkgs/by-name/mo/modemmanager/package.nix b/pkgs/by-name/mo/modemmanager/package.nix index 5ccfa92549fbd..17a26744666cc 100644 --- a/pkgs/by-name/mo/modemmanager/package.nix +++ b/pkgs/by-name/mo/modemmanager/package.nix @@ -19,6 +19,7 @@ dbus, bash, gobject-introspection, + udevCheckHook, buildPackages, withIntrospection ? lib.meta.availableOn stdenv.hostPlatform gobject-introspection @@ -64,6 +65,7 @@ stdenv.mkDerivation rec { pkg-config libxslt python3 + udevCheckHook ] ++ lib.optionals withIntrospection [ gobject-introspection diff --git a/pkgs/by-name/mo/mouse-actions-gui/package.nix b/pkgs/by-name/mo/mouse-actions-gui/package.nix index 5fbec12b22934..a8ebb91f90fab 100644 --- a/pkgs/by-name/mo/mouse-actions-gui/package.nix +++ b/pkgs/by-name/mo/mouse-actions-gui/package.nix @@ -13,6 +13,7 @@ wrapGAppsHook3, libXtst, libevdev, + udevCheckHook, gtk3, libsoup_2_4, webkitgtk_4_0, @@ -37,6 +38,7 @@ rustPlatform.buildRustPackage rec { cargo-tauri_1.hook pkg-config wrapGAppsHook3 + udevCheckHook ]; buildInputs = [ @@ -61,6 +63,8 @@ rustPlatform.buildRustPackage rec { useFetchCargoVendor = true; cargoHash = "sha256-G5PQWPcPOVhq11BQIplbB3mLAGFCVm+vQ4eM4/5MFwI="; + doInstallCheck = true; + postInstall = '' install -Dm644 ${./80-mouse-actions.rules} $out/etc/udev/rules.d/80-mouse-actions.rules ''; diff --git a/pkgs/by-name/mo/mouse-actions/package.nix b/pkgs/by-name/mo/mouse-actions/package.nix index 0af970b8bc825..070a11dd102ad 100644 --- a/pkgs/by-name/mo/mouse-actions/package.nix +++ b/pkgs/by-name/mo/mouse-actions/package.nix @@ -7,6 +7,7 @@ libXi, libXtst, libevdev, + udevCheckHook, }: rustPlatform.buildRustPackage rec { @@ -23,6 +24,8 @@ rustPlatform.buildRustPackage rec { useFetchCargoVendor = true; cargoHash = "sha256-3ylJSb6ItIkOl5Unhnm5aL83mQvWIM0PUg+1lMtUbPY="; + doInstallCheck = true; + buildInputs = [ libX11 libXi @@ -32,6 +35,7 @@ rustPlatform.buildRustPackage rec { nativeBuildInputs = [ pkg-config + udevCheckHook ]; postInstall = '' diff --git a/pkgs/by-name/mu/multipath-tools/package.nix b/pkgs/by-name/mu/multipath-tools/package.nix index d2855287fe30a..ac5633b94f150 100644 --- a/pkgs/by-name/mu/multipath-tools/package.nix +++ b/pkgs/by-name/mu/multipath-tools/package.nix @@ -15,6 +15,7 @@ lvm2, readline, systemd, + udevCheckHook, util-linuxMinimal, cmocka, @@ -51,6 +52,7 @@ stdenv.mkDerivation rec { nativeBuildInputs = [ perl pkg-config + udevCheckHook ]; buildInputs = [ json_c @@ -81,6 +83,8 @@ stdenv.mkDerivation rec { ''; checkInputs = [ cmocka ]; + doInstallCheck = true; + passthru.tests = { inherit (nixosTests) iscsi-multipath-root; }; meta = with lib; { diff --git a/pkgs/by-name/mu/mutter/package.nix b/pkgs/by-name/mu/mutter/package.nix index 03ad81a4612e2..6985d21861102 100644 --- a/pkgs/by-name/mu/mutter/package.nix +++ b/pkgs/by-name/mu/mutter/package.nix @@ -65,6 +65,7 @@ desktop-file-utils, egl-wayland, graphene, + udevCheckHook, wayland, wayland-protocols, }: @@ -123,6 +124,7 @@ stdenv.mkDerivation (finalAttrs: { gi-docgen xorgserver gobject-introspection + udevCheckHook ]; buildInputs = [ @@ -201,6 +203,8 @@ stdenv.mkDerivation (finalAttrs: { separateDebugInfo = true; strictDeps = true; + doInstallCheck = true; + passthru = { libmutter_api_version = "16"; # bumped each dev cycle libdir = "${finalAttrs.finalPackage}/lib/mutter-${finalAttrs.passthru.libmutter_api_version}"; diff --git a/pkgs/by-name/mu/mutter46/package.nix b/pkgs/by-name/mu/mutter46/package.nix index cd3ee4ea8f2ac..4802ca437b0d8 100644 --- a/pkgs/by-name/mu/mutter46/package.nix +++ b/pkgs/by-name/mu/mutter46/package.nix @@ -62,6 +62,7 @@ desktop-file-utils, egl-wayland, graphene, + udevCheckHook, wayland, wayland-protocols, }: @@ -115,6 +116,7 @@ stdenv.mkDerivation (finalAttrs: { gi-docgen xorgserver gobject-introspection + udevCheckHook ]; buildInputs = [ @@ -186,6 +188,8 @@ stdenv.mkDerivation (finalAttrs: { separateDebugInfo = true; + doInstallCheck = true; + passthru = { libdir = "${finalAttrs.finalPackage}/lib/mutter-14"; diff --git a/pkgs/by-name/nf/nfs-utils/package.nix b/pkgs/by-name/nf/nfs-utils/package.nix index 532f87fecf118..f86b25bc3b6ca 100644 --- a/pkgs/by-name/nf/nfs-utils/package.nix +++ b/pkgs/by-name/nf/nfs-utils/package.nix @@ -24,6 +24,7 @@ openldap, cyrus_sasl, libxml2, + udevCheckHook, enablePython ? true, enableLdap ? true, }: @@ -58,6 +59,7 @@ stdenv.mkDerivation rec { pkg-config buildPackages.stdenv.cc rpcsvc-proto + udevCheckHook ]; buildInputs = @@ -142,6 +144,8 @@ stdenv.mkDerivation rec { "generator_dir=$(out)/etc/systemd/system-generators" ]; + doInstallCheck = true; + installFlags = [ "statedir=$(TMPDIR)" "statdpath=$(TMPDIR)" diff --git a/pkgs/by-name/ni/nitrokey-udev-rules/package.nix b/pkgs/by-name/ni/nitrokey-udev-rules/package.nix index c804aaa3bd6f2..022943c23b070 100644 --- a/pkgs/by-name/ni/nitrokey-udev-rules/package.nix +++ b/pkgs/by-name/ni/nitrokey-udev-rules/package.nix @@ -3,6 +3,7 @@ stdenvNoCC, fetchFromGitHub, python3, + udevCheckHook, }: stdenvNoCC.mkDerivation (finalAttrs: { @@ -16,7 +17,12 @@ stdenvNoCC.mkDerivation (finalAttrs: { hash = "sha256-LKpd6O9suAc2+FFgpuyTClEgL/JiZiokH3DV8P3C7Aw="; }; - nativeBuildInputs = [ python3 ]; + nativeBuildInputs = [ + python3 + udevCheckHook + ]; + + doInstallCheck = true; buildPhase = '' runHook preBuild diff --git a/pkgs/by-name/ns/ns-usbloader/package.nix b/pkgs/by-name/ns/ns-usbloader/package.nix index e06dd6f3b5d96..2e57912f8f8d3 100644 --- a/pkgs/by-name/ns/ns-usbloader/package.nix +++ b/pkgs/by-name/ns/ns-usbloader/package.nix @@ -9,6 +9,7 @@ gvfs, maven, jre, + udevCheckHook, }: let pkgDescription = "All-in-one tool for managing Nintendo Switch homebrew"; @@ -47,10 +48,13 @@ maven.buildMavenPackage rec { makeWrapper wrapGAppsHook3 gvfs + udevCheckHook ]; doCheck = false; + doInstallCheck = true; + # Don't wrap binaries twice. dontWrapGApps = true; diff --git a/pkgs/by-name/nu/numworks-udev-rules/package.nix b/pkgs/by-name/nu/numworks-udev-rules/package.nix index dbea6e4df79d9..425651c6c9376 100644 --- a/pkgs/by-name/nu/numworks-udev-rules/package.nix +++ b/pkgs/by-name/nu/numworks-udev-rules/package.nix @@ -1,4 +1,8 @@ -{ lib, stdenv }: +{ + lib, + stdenv, + udevCheckHook, +}: stdenv.mkDerivation rec { pname = "numworks-udev-rules"; @@ -7,6 +11,12 @@ stdenv.mkDerivation rec { udevRules = ./50-numworks-calculator.rules; dontUnpack = true; + nativeBuildInputs = [ + udevCheckHook + ]; + + doInstallCheck = true; + installPhase = '' install -Dm 644 "${udevRules}" "$out/lib/udev/rules.d/50-numworks-calculator.rules" ''; diff --git a/pkgs/by-name/nv/nvme-cli/package.nix b/pkgs/by-name/nv/nvme-cli/package.nix index 39f2da237ed5f..6724699e75ff3 100644 --- a/pkgs/by-name/nv/nvme-cli/package.nix +++ b/pkgs/by-name/nv/nvme-cli/package.nix @@ -9,6 +9,7 @@ json_c, zlib, python3Packages, + udevCheckHook, }: stdenv.mkDerivation rec { @@ -31,6 +32,7 @@ stdenv.mkDerivation rec { ninja pkg-config python3Packages.nose2 + udevCheckHook ]; buildInputs = [ libnvme @@ -38,6 +40,8 @@ stdenv.mkDerivation rec { zlib ]; + doInstallCheck = true; + meta = with lib; { inherit (src.meta) homepage; # https://nvmexpress.org/ description = "NVM-Express user space tooling for Linux"; diff --git a/pkgs/by-name/op/open-vm-tools/package.nix b/pkgs/by-name/op/open-vm-tools/package.nix index aa5290520a8cc..4d8c4523683f0 100644 --- a/pkgs/by-name/op/open-vm-tools/package.nix +++ b/pkgs/by-name/op/open-vm-tools/package.nix @@ -37,6 +37,7 @@ udev, util-linux, xmlsec, + udevCheckHook, withX ? true, }: let @@ -71,6 +72,7 @@ stdenv.mkDerivation (finalAttrs: { autoreconfHook makeWrapper pkg-config + udevCheckHook ]; buildInputs = @@ -140,6 +142,8 @@ stdenv.mkDerivation (finalAttrs: { enableParallelBuilding = true; + doInstallCheck = true; + preConfigure = '' mkdir -p ${placeholder "out"}/lib/udev/rules.d ''; diff --git a/pkgs/by-name/op/openiscsi/package.nix b/pkgs/by-name/op/openiscsi/package.nix index bf5dede122aa4..18e24429d8a97 100644 --- a/pkgs/by-name/op/openiscsi/package.nix +++ b/pkgs/by-name/op/openiscsi/package.nix @@ -13,6 +13,7 @@ systemd, runtimeShell, nixosTests, + udevCheckHook, }: stdenv.mkDerivation rec { @@ -31,6 +32,7 @@ stdenv.mkDerivation rec { pkg-config ninja perl + udevCheckHook ]; buildInputs = [ kmod @@ -57,6 +59,8 @@ stdenv.mkDerivation rec { "-Ddbroot=/etc/iscsi" ]; + doInstallCheck = true; + passthru.tests = { inherit (nixosTests) iscsi-root; }; meta = with lib; { diff --git a/pkgs/by-name/op/openobex/package.nix b/pkgs/by-name/op/openobex/package.nix index 6d1b867d4f559..e590a556ce2b3 100644 --- a/pkgs/by-name/op/openobex/package.nix +++ b/pkgs/by-name/op/openobex/package.nix @@ -6,6 +6,7 @@ bluez, libusb-compat-0_1, cmake, + udevCheckHook, }: stdenv.mkDerivation rec { @@ -20,12 +21,15 @@ stdenv.mkDerivation rec { nativeBuildInputs = [ pkg-config cmake + udevCheckHook ]; buildInputs = [ bluez libusb-compat-0_1 ]; + doInstallCheck = true; + configureFlags = [ "--enable-apps" ]; patchPhase = '' diff --git a/pkgs/by-name/op/openswitcher/package.nix b/pkgs/by-name/op/openswitcher/package.nix index 95f65aa83d79f..46d225094b01b 100644 --- a/pkgs/by-name/op/openswitcher/package.nix +++ b/pkgs/by-name/op/openswitcher/package.nix @@ -11,6 +11,7 @@ pkg-config, scdoc, wrapGAppsHook3, + udevCheckHook, }: python3Packages.buildPythonApplication rec { @@ -43,6 +44,7 @@ python3Packages.buildPythonApplication rec { pkg-config scdoc wrapGAppsHook3 + udevCheckHook ]; dontWrapGApps = true; diff --git a/pkgs/by-name/op/opentabletdriver/package.nix b/pkgs/by-name/op/opentabletdriver/package.nix index 1e682d20123ea..8f0fdcaf5b6ee 100644 --- a/pkgs/by-name/op/opentabletdriver/package.nix +++ b/pkgs/by-name/op/opentabletdriver/package.nix @@ -18,6 +18,7 @@ wrapGAppsHook3, versionCheckHook, nix-update-script, + udevCheckHook, }: buildDotnetModule (finalAttrs: { @@ -49,6 +50,7 @@ buildDotnetModule (finalAttrs: { nativeBuildInputs = [ copyDesktopItems wrapGAppsHook3 + udevCheckHook # Dependency of generate-rules.sh jq ]; diff --git a/pkgs/by-name/ov/oversteer/package.nix b/pkgs/by-name/ov/oversteer/package.nix index f172c31962920..fba7f747f78d7 100644 --- a/pkgs/by-name/ov/oversteer/package.nix +++ b/pkgs/by-name/ov/oversteer/package.nix @@ -17,6 +17,7 @@ gobject-introspection, bash, linuxConsoleTools, + udevCheckHook, }: let @@ -60,6 +61,7 @@ stdenv.mkDerivation { gobject-introspection meson udev + udevCheckHook ninja appstream appstream-glib @@ -93,6 +95,8 @@ stdenv.mkDerivation { --replace-fail /usr/bin/evdev-joystick ${linuxConsoleTools}/bin/evdev-joystick ''; + doInstallCheck = true; + patches = [ ]; meta = with lib; { diff --git a/pkgs/by-name/pc/pcmciaUtils/package.nix b/pkgs/by-name/pc/pcmciaUtils/package.nix index d6707a89d39e0..fed9e289757d8 100644 --- a/pkgs/by-name/pc/pcmciaUtils/package.nix +++ b/pkgs/by-name/pc/pcmciaUtils/package.nix @@ -8,6 +8,7 @@ sysfsutils, kmod, udev, + udevCheckHook, firmware ? config.pcmciaUtils.firmware or [ ], # Special pcmcia cards. configOpts ? config.pcmciaUtils.config or null, # Special hardware (map memory & port & irq) }: # used to generate postInstall script. @@ -30,6 +31,12 @@ stdenv.mkDerivation rec { flex ]; + nativeBuildInputs = [ + udevCheckHook + ]; + + doInstallCheck = true; + patchPhase = '' sed -i " diff --git a/pkgs/by-name/ph/phodav/package.nix b/pkgs/by-name/ph/phodav/package.nix index 9d3a5d1c47f75..d99a991249b6e 100644 --- a/pkgs/by-name/ph/phodav/package.nix +++ b/pkgs/by-name/ph/phodav/package.nix @@ -8,6 +8,7 @@ meson, ninja, gnome, + udevCheckHook, }: stdenv.mkDerivation rec { @@ -29,6 +30,7 @@ stdenv.mkDerivation rec { pkg-config meson ninja + udevCheckHook ]; buildInputs = [ @@ -45,6 +47,8 @@ stdenv.mkDerivation rec { NIX_LDFLAGS = lib.optionalString stdenv.hostPlatform.isDarwin "-lintl"; + doInstallCheck = true; + passthru = { updateScript = gnome.updateScript { packageName = pname; diff --git a/pkgs/by-name/pi/picoprobe-udev-rules/package.nix b/pkgs/by-name/pi/picoprobe-udev-rules/package.nix index 61c4a515c7008..8397d34d16b49 100644 --- a/pkgs/by-name/pi/picoprobe-udev-rules/package.nix +++ b/pkgs/by-name/pi/picoprobe-udev-rules/package.nix @@ -2,6 +2,7 @@ lib, stdenv, fetchurl, + udevCheckHook, }: ## Usage @@ -17,6 +18,12 @@ stdenv.mkDerivation { sha256 = "sha256-vQMPX3Amttja0u03KWGnPDAVTGM9ekJ+IBTjW+xlJS0="; }; + nativeBuildInputs = [ + udevCheckHook + ]; + + doInstallCheck = true; + dontUnpack = true; dontBuild = true; diff --git a/pkgs/by-name/qm/qmk-udev-rules/package.nix b/pkgs/by-name/qm/qmk-udev-rules/package.nix index d2bf06d03c0f8..5f4efb3b85938 100644 --- a/pkgs/by-name/qm/qmk-udev-rules/package.nix +++ b/pkgs/by-name/qm/qmk-udev-rules/package.nix @@ -2,6 +2,7 @@ lib, stdenv, fetchFromGitHub, + udevCheckHook, }: ## Usage @@ -20,6 +21,12 @@ stdenv.mkDerivation rec { dontBuild = true; + nativeBuildInputs = [ + udevCheckHook + ]; + + doInstallCheck = true; + installPhase = '' runHook preInstall diff --git a/pkgs/by-name/qu/quark-goldleaf/package.nix b/pkgs/by-name/qu/quark-goldleaf/package.nix index 7395bff0c8f8d..f58bc08f6a670 100644 --- a/pkgs/by-name/qu/quark-goldleaf/package.nix +++ b/pkgs/by-name/qu/quark-goldleaf/package.nix @@ -9,6 +9,7 @@ imagemagick, wrapGAppsHook3, gtk3, + udevCheckHook, }: let @@ -48,6 +49,7 @@ maven.buildMavenPackage rec { imagemagick # for icon conversion copyDesktopItems wrapGAppsHook3 + udevCheckHook ]; buildInputs = [ gtk3 ]; @@ -55,6 +57,8 @@ maven.buildMavenPackage rec { # don't double-wrap dontWrapGApps = true; + doInstallCheck = true; + installPhase = '' runHook preInstall diff --git a/pkgs/by-name/rd/rdma-core/package.nix b/pkgs/by-name/rd/rdma-core/package.nix index 36d43361053f2..71ee20681b9c5 100644 --- a/pkgs/by-name/rd/rdma-core/package.nix +++ b/pkgs/by-name/rd/rdma-core/package.nix @@ -10,6 +10,7 @@ iproute2, libnl, udev, + udevCheckHook, python3, perl, }: @@ -39,6 +40,7 @@ stdenv.mkDerivation (finalAttrs: { pandoc pkg-config python3 + udevCheckHook ]; buildInputs = [ @@ -73,6 +75,8 @@ stdenv.mkDerivation (finalAttrs: { done ''; + doInstallCheck = true; + meta = { description = "RDMA Core Userspace Libraries and Daemons"; homepage = "https://github.com/linux-rdma/rdma-core"; diff --git a/pkgs/by-name/ro/roccat-tools/package.nix b/pkgs/by-name/ro/roccat-tools/package.nix index 6bf02cbf351bd..35e2a6003faff 100644 --- a/pkgs/by-name/ro/roccat-tools/package.nix +++ b/pkgs/by-name/ro/roccat-tools/package.nix @@ -14,6 +14,7 @@ runtimeShell, coreutils, kmod, + udevCheckHook, }: stdenv.mkDerivation rec { @@ -43,6 +44,7 @@ stdenv.mkDerivation rec { cmake pkg-config gettext + udevCheckHook ]; buildInputs = [ dbus @@ -68,6 +70,8 @@ stdenv.mkDerivation rec { "-fcommon" ]; + doInstallCheck = true; + meta = { description = "Tools to configure ROCCAT devices"; homepage = "https://roccat.sourceforge.net/"; diff --git a/pkgs/by-name/ru/rust-streamdeck/package.nix b/pkgs/by-name/ru/rust-streamdeck/package.nix index 71e2937e4190c..8c8c8b2b5f31c 100644 --- a/pkgs/by-name/ru/rust-streamdeck/package.nix +++ b/pkgs/by-name/ru/rust-streamdeck/package.nix @@ -5,6 +5,7 @@ pkg-config, lib, udev, + udevCheckHook, nix-update-script, versionCheckHook, }: @@ -29,7 +30,10 @@ rustPlatform.buildRustPackage rec { cargoHash = "sha256-OiXpG45jwWydbpRHnbIlECOaa75CzUOmdWxZ3WE5+hY="; - nativeBuildInputs = [ pkg-config ]; + nativeBuildInputs = [ + pkg-config + udevCheckHook + ]; buildInputs = [ udev ]; doInstallCheck = true; diff --git a/pkgs/by-name/rw/rwedid/package.nix b/pkgs/by-name/rw/rwedid/package.nix index bc7dc2c048463..ecd59bcc1de20 100644 --- a/pkgs/by-name/rw/rwedid/package.nix +++ b/pkgs/by-name/rw/rwedid/package.nix @@ -3,6 +3,7 @@ rustPlatform, fetchFromGitea, pkg-config, + udevCheckHook, xz, }: @@ -23,12 +24,15 @@ rustPlatform.buildRustPackage rec { nativeBuildInputs = [ pkg-config + udevCheckHook ]; buildInputs = [ xz ]; + doInstallCheck = true; + postInstall = '' mkdir -p $out/etc/udev/rules.d echo 'SUBSYSTEM=="i2c-dev",KERNEL=="i2c-[0-9]*", ATTRS{class}=="0x030000", TAG+="uaccess"' > $out/etc/udev/rules.d/60-rwedid.rules diff --git a/pkgs/by-name/sn/snagboot/package.nix b/pkgs/by-name/sn/snagboot/package.nix index 62ee94c756b08..2582f8ac30776 100644 --- a/pkgs/by-name/sn/snagboot/package.nix +++ b/pkgs/by-name/sn/snagboot/package.nix @@ -6,6 +6,7 @@ snagboot, testers, gitUpdater, + udevCheckHook, }: python3Packages.buildPythonApplication rec { @@ -29,6 +30,10 @@ python3Packages.buildPythonApplication rec { "swig" ]; + nativeBuildInputs = [ + udevCheckHook + ]; + dependencies = with python3Packages; [ pyyaml pyusb @@ -55,9 +60,6 @@ python3Packages.buildPythonApplication rec { cp "$rules" "$out/lib/udev/rules.d/50-snagboot.rules" ''; - # There are no tests - doCheck = false; - passthru = { updateScript = gitUpdater { rev-prefix = "v"; diff --git a/pkgs/by-name/so/solaar/package.nix b/pkgs/by-name/so/solaar/package.nix index 7a52a9c948a7d..56a176b95886c 100644 --- a/pkgs/by-name/so/solaar/package.nix +++ b/pkgs/by-name/so/solaar/package.nix @@ -8,6 +8,7 @@ gdk-pixbuf, libappindicator, librsvg, + udevCheckHook, }: # Although we copy in the udev rules here, you probably just want to use @@ -33,6 +34,7 @@ python3Packages.buildPythonApplication rec { gdk-pixbuf gobject-introspection wrapGAppsHook3 + udevCheckHook ]; buildInputs = [ diff --git a/pkgs/by-name/so/solo2-cli/package.nix b/pkgs/by-name/so/solo2-cli/package.nix index 18f5e509a71f7..cc7e864410baf 100644 --- a/pkgs/by-name/so/solo2-cli/package.nix +++ b/pkgs/by-name/so/solo2-cli/package.nix @@ -7,6 +7,7 @@ pkg-config, pcsclite, udev, + udevCheckHook, }: rustPlatform.buildRustPackage rec { @@ -26,6 +27,7 @@ rustPlatform.buildRustPackage rec { nativeBuildInputs = [ installShellFiles pkg-config + udevCheckHook ]; buildInputs = @@ -42,6 +44,7 @@ rustPlatform.buildRustPackage rec { ''; doCheck = true; + doInstallCheck = true; buildFeatures = [ "cli" ]; diff --git a/pkgs/by-name/sp/speakersafetyd/package.nix b/pkgs/by-name/sp/speakersafetyd/package.nix index 6fac99af8fbcc..51f02ac93fa15 100644 --- a/pkgs/by-name/sp/speakersafetyd/package.nix +++ b/pkgs/by-name/sp/speakersafetyd/package.nix @@ -6,6 +6,7 @@ pkg-config, alsa-lib, rust, + udevCheckHook, }: rustPlatform.buildRustPackage rec { @@ -19,7 +20,10 @@ rustPlatform.buildRustPackage rec { useFetchCargoVendor = true; cargoHash = "sha256-DnOnqi60JsRX8yqEM/5zZ3yX/rk85/ruwL3aW1FRXKg="; - nativeBuildInputs = [ pkg-config ]; + nativeBuildInputs = [ + pkg-config + udevCheckHook + ]; buildInputs = [ alsa-lib ]; postPatch = '' @@ -38,6 +42,7 @@ rustPlatform.buildRustPackage rec { ]; dontCargoInstall = true; + doInstallCheck = true; meta = with lib; { description = "Userspace daemon written in Rust that implements an analogue of the Texas Instruments Smart Amp speaker protection model"; diff --git a/pkgs/by-name/st/steam-devices-udev-rules/package.nix b/pkgs/by-name/st/steam-devices-udev-rules/package.nix index 7290d0a5330ab..b6bc54e2da118 100644 --- a/pkgs/by-name/st/steam-devices-udev-rules/package.nix +++ b/pkgs/by-name/st/steam-devices-udev-rules/package.nix @@ -3,6 +3,7 @@ stdenvNoCC, fetchFromGitHub, bash, + udevCheckHook, nix-update-script, }: @@ -17,6 +18,12 @@ stdenvNoCC.mkDerivation { hash = "sha256-kBqWw3TlCSWS7gJXgza2ghemypQ0AEg7NhWqAFnal04="; }; + nativeBuildInputs = [ + udevCheckHook + ]; + + doInstallCheck = true; + installPhase = '' runHook preInstall diff --git a/pkgs/by-name/st/stratisd/package.nix b/pkgs/by-name/st/stratisd/package.nix index 1b82599286460..9c89d2057d4ad 100644 --- a/pkgs/by-name/st/stratisd/package.nix +++ b/pkgs/by-name/st/stratisd/package.nix @@ -23,6 +23,7 @@ curl, tpm2-tools, coreutils, + udevCheckHook, clevisSupport ? false, nixosTests, }: @@ -65,6 +66,7 @@ stdenv.mkDerivation rec { pkg-config asciidoc ncurses # tput + udevCheckHook ]; buildInputs = [ @@ -108,6 +110,8 @@ stdenv.mkDerivation rec { doCheck = true; checkTarget = "test"; + doInstallCheck = true; + # remove files for supporting dracut postInstall = '' mkdir -p "$initrd/bin" diff --git a/pkgs/by-name/st/streamcontroller/package.nix b/pkgs/by-name/st/streamcontroller/package.nix index 2054f05560b01..435a9398fa6e6 100644 --- a/pkgs/by-name/st/streamcontroller/package.nix +++ b/pkgs/by-name/st/streamcontroller/package.nix @@ -14,6 +14,7 @@ xdg-desktop-portal, xdg-desktop-portal-gtk, kdotool, + udevCheckHook, }: let # We have to hardcode revision because upstream often create multiple releases for the same version number. @@ -88,6 +89,7 @@ stdenv.mkDerivation { nativeBuildInputs = [ copyDesktopItems wrapGAppsHook4 + udevCheckHook gobject-introspection ]; @@ -195,6 +197,8 @@ stdenv.mkDerivation { websocket-client ]); + doInstallCheck = true; + meta = with lib; { description = "Elegant Linux app for the Elgato Stream Deck with support for plugins"; homepage = "https://core447.com/"; diff --git a/pkgs/by-name/st/streamdeck-ui/package.nix b/pkgs/by-name/st/streamdeck-ui/package.nix index 4400537bf7f1b..97c74918d1684 100644 --- a/pkgs/by-name/st/streamdeck-ui/package.nix +++ b/pkgs/by-name/st/streamdeck-ui/package.nix @@ -8,6 +8,7 @@ wrapGAppsHook3, writeText, xvfb-run, + udevCheckHook, }: python3Packages.buildPythonApplication rec { @@ -35,6 +36,7 @@ python3Packages.buildPythonApplication rec { copyDesktopItems qt6.wrapQtAppsHook wrapGAppsHook3 + udevCheckHook ]; propagatedBuildInputs = @@ -68,7 +70,7 @@ python3Packages.buildPythonApplication rec { export STREAMDECK_UI_LOG_FILE=$(pwd)/.streamdeck_ui.log xvfb-run pytest tests - runHook preCheck + runHook postCheck ''; postInstall = diff --git a/pkgs/by-name/su/sunshine/package.nix b/pkgs/by-name/su/sunshine/package.nix index 6a0de7ef3ef2f..3af68dcfa3d48 100644 --- a/pkgs/by-name/su/sunshine/package.nix +++ b/pkgs/by-name/su/sunshine/package.nix @@ -48,6 +48,7 @@ nlohmann_json, config, coreutils, + udevCheckHook, cudaSupport ? config.cudaSupport, cudaPackages ? { }, }: @@ -92,6 +93,7 @@ stdenv'.mkDerivation rec { wayland-scanner # Avoid fighting upstream's usage of vendored ffmpeg libraries autoPatchelfHook + udevCheckHook ] ++ lib.optionals cudaSupport [ autoAddDriverRunpath @@ -231,6 +233,8 @@ stdenv'.mkDerivation rec { install -Dm644 ../packaging/linux/${pname}.desktop $out/share/applications/${pname}.desktop ''; + doInstallCheck = true; + passthru = { tests.sunshine = nixosTests.sunshine; updateScript = ./updater.sh; diff --git a/pkgs/by-name/su/supergfxctl/package.nix b/pkgs/by-name/su/supergfxctl/package.nix index d0421bd1d902d..3252cffb74b43 100644 --- a/pkgs/by-name/su/supergfxctl/package.nix +++ b/pkgs/by-name/su/supergfxctl/package.nix @@ -4,6 +4,7 @@ fetchFromGitLab, pkg-config, systemd, + udevCheckHook, }: rustPlatform.buildRustPackage rec { @@ -25,12 +26,17 @@ rustPlatform.buildRustPackage rec { substituteInPlace data/99-nvidia-ac.rules --replace /usr/bin/systemctl ${systemd}/bin/systemctl ''; - nativeBuildInputs = [ pkg-config ]; + nativeBuildInputs = [ + pkg-config + udevCheckHook + ]; buildInputs = [ systemd ]; # upstream doesn't have tests, don't build twice just to find that out doCheck = false; + doInstallCheck = true; + postInstall = '' install -Dm444 -t $out/lib/udev/rules.d/ data/*.rules install -Dm444 -t $out/share/dbus-1/system.d/ data/org.supergfxctl.Daemon.conf diff --git a/pkgs/by-name/sw/swayosd/package.nix b/pkgs/by-name/sw/swayosd/package.nix index e4c63e331eea2..daac1e2c5dc19 100644 --- a/pkgs/by-name/sw/swayosd/package.nix +++ b/pkgs/by-name/sw/swayosd/package.nix @@ -18,6 +18,7 @@ sassc, stdenv, udev, + udevCheckHook, }: stdenv.mkDerivation rec { pname = "swayosd"; @@ -43,6 +44,7 @@ stdenv.mkDerivation rec { cargo ninja rustPlatform.cargoSetupHook + udevCheckHook ]; buildInputs = [ @@ -71,6 +73,8 @@ stdenv.mkDerivation rec { --replace /bin/chmod ${coreutils}/bin/chmod ''; + doInstallCheck = true; + meta = with lib; { description = "GTK based on screen display for keyboard shortcuts"; homepage = "https://github.com/ErikReider/SwayOSD"; diff --git a/pkgs/by-name/th/thunderbolt/package.nix b/pkgs/by-name/th/thunderbolt/package.nix index 9ed40b0d47416..b1a3986b66e9d 100644 --- a/pkgs/by-name/th/thunderbolt/package.nix +++ b/pkgs/by-name/th/thunderbolt/package.nix @@ -6,6 +6,7 @@ fetchFromGitHub, pkg-config, txt2tags, + udevCheckHook, }: stdenv.mkDerivation rec { @@ -22,6 +23,7 @@ stdenv.mkDerivation rec { cmake pkg-config txt2tags + udevCheckHook ]; buildInputs = [ boost ]; @@ -30,6 +32,8 @@ stdenv.mkDerivation rec { "-DUDEV_RULES_DIR=${placeholder "out"}/etc/udev/rules.d" ]; + doInstallCheck = true; + meta = { description = "Thunderbolt(TM) user-space components"; license = lib.licenses.bsd3; diff --git a/pkgs/by-name/ti/tiny-dfr/package.nix b/pkgs/by-name/ti/tiny-dfr/package.nix index 0f217d0f7492b..d2c08048e4773 100644 --- a/pkgs/by-name/ti/tiny-dfr/package.nix +++ b/pkgs/by-name/ti/tiny-dfr/package.nix @@ -10,6 +10,7 @@ libxml2, pango, udev, + udevCheckHook, }: rustPlatform.buildRustPackage rec { @@ -26,7 +27,10 @@ rustPlatform.buildRustPackage rec { useFetchCargoVendor = true; cargoHash = "sha256-9UlH2W8wNzdZJxIgOafGylliS2RjaBlpirxSWHJ/SIQ="; - nativeBuildInputs = [ pkg-config ]; + nativeBuildInputs = [ + pkg-config + udevCheckHook + ]; buildInputs = [ cairo gdk-pixbuf @@ -48,6 +52,8 @@ rustPlatform.buildRustPackage rec { cp -R share $out ''; + doInstallCheck = true; + meta = with lib; { homepage = "https://github.com/WhatAmISupposedToPutHere/tiny-dfr"; description = "Most basic dynamic function row daemon possible"; diff --git a/pkgs/by-name/tr/trezor-udev-rules/package.nix b/pkgs/by-name/tr/trezor-udev-rules/package.nix index 0c7f9871c4056..b30d43fa9d940 100644 --- a/pkgs/by-name/tr/trezor-udev-rules/package.nix +++ b/pkgs/by-name/tr/trezor-udev-rules/package.nix @@ -3,6 +3,7 @@ stdenv, fetchurl, nixosTests, + udevCheckHook, }: stdenv.mkDerivation rec { @@ -15,6 +16,12 @@ stdenv.mkDerivation rec { sha256 = "0vlxif89nsqpbnbz1vwfgpl1zayzmq87gw1snskn0qns6x2rpczk"; }; + nativeBuildInputs = [ + udevCheckHook + ]; + + doInstallCheck = true; + dontUnpack = true; installPhase = '' diff --git a/pkgs/by-name/ts/tsduck/package.nix b/pkgs/by-name/ts/tsduck/package.nix index 298b3c05c803d..f43dfb2d021db 100644 --- a/pkgs/by-name/ts/tsduck/package.nix +++ b/pkgs/by-name/ts/tsduck/package.nix @@ -9,6 +9,7 @@ python3, ruby, qpdf, + udevCheckHook, # build deps curl, glibcLocales, @@ -37,6 +38,7 @@ stdenv.mkDerivation (finalAttrs: { python3 ruby qpdf + udevCheckHook ]; buildInputs = [ @@ -71,6 +73,7 @@ stdenv.mkDerivation (finalAttrs: { patches = [ ./tests.patch ]; checkTarget = "test"; doCheck = true; + doInstallCheck = true; installTargets = [ "install-tools" diff --git a/pkgs/by-name/uh/uhk-udev-rules/package.nix b/pkgs/by-name/uh/uhk-udev-rules/package.nix index d8c9ccaf41252..a1cd473275420 100644 --- a/pkgs/by-name/uh/uhk-udev-rules/package.nix +++ b/pkgs/by-name/uh/uhk-udev-rules/package.nix @@ -2,12 +2,19 @@ lib, stdenv, uhk-agent, + udevCheckHook, }: stdenv.mkDerivation { pname = "uhk-udev-rules"; inherit (uhk-agent) version; + nativeBuildInputs = [ + udevCheckHook + ]; + + doInstallCheck = true; + dontUnpack = true; dontBuild = true; installPhase = '' diff --git a/pkgs/by-name/us/usb-blaster-udev-rules/package.nix b/pkgs/by-name/us/usb-blaster-udev-rules/package.nix index d04c8ddb93985..8267fb3e23bd6 100644 --- a/pkgs/by-name/us/usb-blaster-udev-rules/package.nix +++ b/pkgs/by-name/us/usb-blaster-udev-rules/package.nix @@ -1,4 +1,8 @@ -{ lib, stdenvNoCC }: +{ + lib, + stdenvNoCC, + udevCheckHook, +}: stdenvNoCC.mkDerivation rec { name = "usb-blaster-udev-rules"; @@ -6,6 +10,12 @@ stdenvNoCC.mkDerivation rec { udevRules = ./usb-blaster.rules; dontUnpack = true; + nativeBuildInputs = [ + udevCheckHook + ]; + + doInstallCheck = true; + installPhase = '' install -Dm 644 "${udevRules}" "$out/lib/udev/rules.d/51-usbblaster.rules" ''; diff --git a/pkgs/by-name/us/usb-modeswitch/data.nix b/pkgs/by-name/us/usb-modeswitch/data.nix index d767935592cd1..ba701dd43a5af 100644 --- a/pkgs/by-name/us/usb-modeswitch/data.nix +++ b/pkgs/by-name/us/usb-modeswitch/data.nix @@ -4,6 +4,7 @@ fetchurl, tcl, usb-modeswitch, + udevCheckHook, }: stdenv.mkDerivation rec { @@ -15,6 +16,8 @@ stdenv.mkDerivation rec { sha256 = "1ygahl3r26r38ai8yyblq9nhf3v5i6n6r6672p5wf88wg5h9n0rz"; }; + doInstallCheck = true; + makeFlags = [ "PREFIX=$(out)" "DESTDIR=$(out)" @@ -32,7 +35,10 @@ stdenv.mkDerivation rec { # we add tcl here so we can patch in support for new devices by dropping config into # the usb_modeswitch.d directory - nativeBuildInputs = [ tcl ]; + nativeBuildInputs = [ + tcl + udevCheckHook + ]; meta = with lib; { description = "Device database and the rules file for 'multi-mode' USB devices"; diff --git a/pkgs/by-name/us/usbkvm/package.nix b/pkgs/by-name/us/usbkvm/package.nix index f24a2d707a041..58326f8b23c61 100644 --- a/pkgs/by-name/us/usbkvm/package.nix +++ b/pkgs/by-name/us/usbkvm/package.nix @@ -12,6 +12,7 @@ python3, stdenv, udev, + udevCheckHook, wrapGAppsHook3, }: @@ -53,6 +54,7 @@ stdenv.mkDerivation { makeWrapper wrapGAppsHook3 udev + udevCheckHook ]; buildInputs = [ @@ -90,6 +92,8 @@ stdenv.mkDerivation { --prefix GST_PLUGIN_PATH : "${GST_PLUGIN_PATH}" ''; + doInstallCheck = true; + meta = { homepage = "https://github.com/carrotIndustries/usbkvm"; description = "An open-source USB KVM (Keyboard, Video and Mouse) adapter"; diff --git a/pkgs/by-name/us/usbsdmux/package.nix b/pkgs/by-name/us/usbsdmux/package.nix index d50dff5fe10f8..81f4346496907 100644 --- a/pkgs/by-name/us/usbsdmux/package.nix +++ b/pkgs/by-name/us/usbsdmux/package.nix @@ -2,6 +2,7 @@ lib, python3Packages, fetchPypi, + udevCheckHook, }: python3Packages.buildPythonApplication rec { @@ -20,8 +21,11 @@ python3Packages.buildPythonApplication rec { --replace-fail 'TAG+="uaccess", GROUP="plugdev"' 'TAG+="uaccess"' ''; - # usbsdmux is not meant to be used as an importable module and has no tests - doCheck = false; + nativeBuildInputs = [ + udevCheckHook + ]; + + doInstallCheck = true; postInstall = '' install -Dm0444 -t $out/lib/udev/rules.d/ contrib/udev/99-usbsdmux.rules diff --git a/pkgs/by-name/uv/uvcdynctrl/package.nix b/pkgs/by-name/uv/uvcdynctrl/package.nix index 91fa8a0eabf4a..a369d9941bc97 100644 --- a/pkgs/by-name/uv/uvcdynctrl/package.nix +++ b/pkgs/by-name/uv/uvcdynctrl/package.nix @@ -5,6 +5,7 @@ cmake, pkg-config, libxml2, + udevCheckHook, }: stdenv.mkDerivation { @@ -21,6 +22,7 @@ stdenv.mkDerivation { nativeBuildInputs = [ cmake pkg-config + udevCheckHook ]; buildInputs = [ libxml2 ]; @@ -37,6 +39,8 @@ stdenv.mkDerivation { done ''; + doInstallCheck = true; + meta = with lib; { description = "Simple interface for devices supported by the linux UVC driver"; homepage = "https://guvcview.sourceforge.net"; diff --git a/pkgs/by-name/wa/waagent/package.nix b/pkgs/by-name/wa/waagent/package.nix index 67d87e8125c29..a5f0efb924d12 100644 --- a/pkgs/by-name/wa/waagent/package.nix +++ b/pkgs/by-name/wa/waagent/package.nix @@ -6,6 +6,7 @@ bash, openssl, nixosTests, + udevCheckHook, }: let @@ -26,7 +27,12 @@ python.pkgs.buildPythonApplication rec { # Read-only file system: '/etc/ssh/sshd_config' ./dont-configure-sshd.patch ]; - doCheck = false; + + nativeBuildInputs = [ + udevCheckHook + ]; + + doInstallCheck = true; # Replace tools used in udev rules with their full path and ensure they are present. postPatch = '' diff --git a/pkgs/by-name/wo/wooting-udev-rules/package.nix b/pkgs/by-name/wo/wooting-udev-rules/package.nix index fabf716e3a516..40047cdade556 100644 --- a/pkgs/by-name/wo/wooting-udev-rules/package.nix +++ b/pkgs/by-name/wo/wooting-udev-rules/package.nix @@ -1,4 +1,8 @@ -{ lib, stdenv }: +{ + lib, + stdenv, + udevCheckHook, +}: stdenv.mkDerivation { pname = "wooting-udev-rules"; @@ -7,6 +11,12 @@ stdenv.mkDerivation { # Source: https://help.wooting.io/article/147-configuring-device-access-for-wootility-under-linux-udev-rules src = [ ./wooting.rules ]; + nativeBuildInputs = [ + udevCheckHook + ]; + + doInstallCheck = true; + dontUnpack = true; installPhase = '' diff --git a/pkgs/by-name/xe/xe-guest-utilities/package.nix b/pkgs/by-name/xe/xe-guest-utilities/package.nix index 4d63c8660ac39..7916753c4bdc8 100644 --- a/pkgs/by-name/xe/xe-guest-utilities/package.nix +++ b/pkgs/by-name/xe/xe-guest-utilities/package.nix @@ -3,6 +3,7 @@ buildGoModule, fetchFromGitHub, runtimeShell, + udevCheckHook, }: buildGoModule rec { @@ -16,6 +17,12 @@ buildGoModule rec { hash = "sha256-LpZx+Km2qRywYK/eFLP3aCDku6K6HC4+MzEODH+8Gvs="; }; + nativeBuildInputs = [ + udevCheckHook + ]; + + doInstallCheck = true; + deleteVendor = true; vendorHash = "sha256-X/BI+ZhoqCGCmJfccyEBVgZc70aRTp3rL5j+rBWG5fE="; diff --git a/pkgs/by-name/xf/xf86_input_wacom/package.nix b/pkgs/by-name/xf/xf86_input_wacom/package.nix index fff040ba00077..abd62e5ca57e5 100644 --- a/pkgs/by-name/xf/xf86_input_wacom/package.nix +++ b/pkgs/by-name/xf/xf86_input_wacom/package.nix @@ -14,6 +14,7 @@ pixman, pkg-config, udev, + udevCheckHook, utilmacros, xorgserver, }: @@ -32,6 +33,7 @@ stdenv.mkDerivation rec { nativeBuildInputs = [ autoreconfHook pkg-config + udevCheckHook ]; buildInputs = [ @@ -49,6 +51,8 @@ stdenv.mkDerivation rec { xorgserver ]; + doInstallCheck = true; + configureFlags = [ "--with-xorg-module-dir=${placeholder "out"}/lib/xorg/modules" "--with-sdkdir=${placeholder "out"}/include/xorg" diff --git a/pkgs/by-name/xp/xpra/package.nix b/pkgs/by-name/xp/xpra/package.nix index 3d10311d40c4f..398a96b5eba32 100644 --- a/pkgs/by-name/xp/xpra/package.nix +++ b/pkgs/by-name/xp/xpra/package.nix @@ -48,6 +48,7 @@ clang, withHtml ? true, xpra-html5, + udevCheckHook, }@args: let @@ -120,6 +121,7 @@ buildPythonApplication rec { pkg-config wrapGAppsHook3 pandoc + udevCheckHook ] ++ lib.optional withNvenc cudatoolkit; buildInputs = @@ -273,7 +275,7 @@ buildPythonApplication rec { ln -s ${xpra-html5}/share/xpra/www $out/share/xpra/www; ''; - doCheck = false; + # doCheck = false; enableParallelBuilding = true; diff --git a/pkgs/by-name/xr/xr-hardware/package.nix b/pkgs/by-name/xr/xr-hardware/package.nix index e920701d88c83..2b4cf4b923964 100644 --- a/pkgs/by-name/xr/xr-hardware/package.nix +++ b/pkgs/by-name/xr/xr-hardware/package.nix @@ -3,6 +3,7 @@ stdenvNoCC, fetchFromGitLab, nix-update-script, + udevCheckHook, }: stdenvNoCC.mkDerivation (finalAttrs: { pname = "xr-hardware"; @@ -16,6 +17,12 @@ stdenvNoCC.mkDerivation (finalAttrs: { hash = "sha256-w35/LoozCJz0ytHEHWsEdCaYYwyGU6sE13iMckVdOzY="; }; + nativeBuildInputs = [ + udevCheckHook + ]; + + doInstallCheck = true; + dontConfigure = true; dontBuild = true; diff --git a/pkgs/by-name/zs/zsa-udev-rules/package.nix b/pkgs/by-name/zs/zsa-udev-rules/package.nix index d862e347a6d52..39a2c2ba91060 100644 --- a/pkgs/by-name/zs/zsa-udev-rules/package.nix +++ b/pkgs/by-name/zs/zsa-udev-rules/package.nix @@ -2,6 +2,7 @@ lib, stdenv, fetchFromGitHub, + udevCheckHook, }: stdenv.mkDerivation { @@ -15,6 +16,12 @@ stdenv.mkDerivation { hash = "sha256-j9n3VoX+UngX12DF28rtNh+oy80Th1BINPQqk053lvE="; }; + nativeBuildInputs = [ + udevCheckHook + ]; + + doInstallCheck = true; + # Only copies udevs rules dontConfigure = true; dontBuild = true; diff --git a/pkgs/desktops/deepin/go-package/dde-daemon/default.nix b/pkgs/desktops/deepin/go-package/dde-daemon/default.nix index a33df2d59d104..56c6b7a8eade1 100644 --- a/pkgs/desktops/deepin/go-package/dde-daemon/default.nix +++ b/pkgs/desktops/deepin/go-package/dde-daemon/default.nix @@ -31,6 +31,7 @@ lshw, dmidecode, systemd, + udevCheckHook, }: buildGoModule rec { @@ -93,6 +94,7 @@ buildGoModule rec { gettext python3 wrapGAppsHook3 + udevCheckHook ]; buildInputs = [ @@ -127,6 +129,8 @@ buildGoModule rec { doCheck = false; + doInstallCheck = true; + preFixup = '' gappsWrapperArgs+=( --prefix PATH : "${ diff --git a/pkgs/desktops/mate/mate-settings-daemon/default.nix b/pkgs/desktops/mate/mate-settings-daemon/default.nix index 159822e99a28d..59f3ec38c5b5c 100644 --- a/pkgs/desktops/mate/mate-settings-daemon/default.nix +++ b/pkgs/desktops/mate/mate-settings-daemon/default.nix @@ -19,6 +19,7 @@ libpulseaudio, wrapGAppsHook3, mateUpdateScript, + udevCheckHook, }: stdenv.mkDerivation rec { @@ -34,6 +35,7 @@ stdenv.mkDerivation rec { gettext pkg-config wrapGAppsHook3 + udevCheckHook ]; buildInputs = [ @@ -55,6 +57,8 @@ stdenv.mkDerivation rec { enableParallelBuilding = true; + doInstallCheck = true; + passthru.updateScript = mateUpdateScript { inherit pname; }; meta = with lib; { diff --git a/pkgs/desktops/plasma-5/plasma-remotecontrollers.nix b/pkgs/desktops/plasma-5/plasma-remotecontrollers.nix index 8d52140a00221..1e6b4b2707d42 100644 --- a/pkgs/desktops/plasma-5/plasma-remotecontrollers.nix +++ b/pkgs/desktops/plasma-5/plasma-remotecontrollers.nix @@ -11,6 +11,7 @@ kpackage, kscreenlocker, kwindowsystem, + udevCheckHook, wayland, wayland-scanner, pkg-config, @@ -25,6 +26,7 @@ mkDerivation { nativeBuildInputs = [ extra-cmake-modules pkg-config + udevCheckHook wayland-scanner ]; buildInputs = [ @@ -45,4 +47,5 @@ mkDerivation { plasma-workspace plasma-wayland-protocols ]; + doInstallCheck = true; } diff --git a/pkgs/development/embedded/platformio/core.nix b/pkgs/development/embedded/platformio/core.nix index ece863e50baf2..7ad77d944485e 100644 --- a/pkgs/development/embedded/platformio/core.nix +++ b/pkgs/development/embedded/platformio/core.nix @@ -8,6 +8,7 @@ spdx-license-list-data, replaceVars, writableTmpDirAsHomeHook, + udevCheckHook, }: with python3Packages; @@ -57,6 +58,7 @@ buildPythonApplication rec { nativeBuildInputs = [ installShellFiles setuptools + udevCheckHook ]; pythonRelaxDeps = true; diff --git a/pkgs/development/libraries/kde-frameworks/bluez-qt.nix b/pkgs/development/libraries/kde-frameworks/bluez-qt.nix index d533986832cb3..a94d15596afb7 100644 --- a/pkgs/development/libraries/kde-frameworks/bluez-qt.nix +++ b/pkgs/development/libraries/kde-frameworks/bluez-qt.nix @@ -4,16 +4,21 @@ extra-cmake-modules, qtbase, qtdeclarative, + udevCheckHook, }: mkDerivation { pname = "bluez-qt"; - nativeBuildInputs = [ extra-cmake-modules ]; + nativeBuildInputs = [ + extra-cmake-modules + udevCheckHook + ]; buildInputs = [ qtdeclarative ]; propagatedBuildInputs = [ qtbase ]; preConfigure = '' substituteInPlace CMakeLists.txt \ --replace /lib/udev/rules.d "$bin/lib/udev/rules.d" ''; + doInstallCheck = true; meta.platforms = lib.platforms.linux; } diff --git a/pkgs/development/libraries/libgpod/default.nix b/pkgs/development/libraries/libgpod/default.nix index ead4701576c79..eefcb35fca606 100644 --- a/pkgs/development/libraries/libgpod/default.nix +++ b/pkgs/development/libraries/libgpod/default.nix @@ -16,6 +16,7 @@ libimobiledevice, monoSupport ? false, mono, + udevCheckHook, gtk-sharp-2_0, }: @@ -59,6 +60,7 @@ stdenv.mkDerivation rec { autoreconfHook intltool pkg-config + udevCheckHook ] ++ (with perlPackages; [ perl @@ -79,6 +81,8 @@ stdenv.mkDerivation rec { libimobiledevice ]; + doInstallCheck = true; + env = lib.optionalAttrs stdenv.cc.isGNU { NIX_CFLAGS_COMPILE = toString [ "-Wno-error=implicit-int" diff --git a/pkgs/development/libraries/libinput/default.nix b/pkgs/development/libraries/libinput/default.nix index af876a8d964de..a5fba6c8d91f8 100644 --- a/pkgs/development/libraries/libinput/default.nix +++ b/pkgs/development/libraries/libinput/default.nix @@ -24,6 +24,7 @@ python3, nixosTests, wayland-scanner, + udevCheckHook, }: let @@ -74,6 +75,7 @@ stdenv.mkDerivation rec { pkg-config meson ninja + udevCheckHook ] ++ lib.optionals documentationSupport [ doxygen @@ -122,6 +124,8 @@ stdenv.mkDerivation rec { doCheck = testsSupport && stdenv.hostPlatform == stdenv.buildPlatform; + doInstallCheck = true; + postPatch = '' patchShebangs \ test/symbols-leak-test \ diff --git a/pkgs/development/python-modules/busylight-for-humans/default.nix b/pkgs/development/python-modules/busylight-for-humans/default.nix index 6b04f233054b1..a978d0f8a7cbf 100644 --- a/pkgs/development/python-modules/busylight-for-humans/default.nix +++ b/pkgs/development/python-modules/busylight-for-humans/default.nix @@ -12,6 +12,7 @@ pythonOlder, typer, webcolors, + udevCheckHook, }: buildPythonPackage rec { @@ -42,6 +43,7 @@ buildPythonPackage rec { nativeCheckInputs = [ pytestCheckHook pytest-mock + udevCheckHook ]; disabledTestPaths = [ "tests/test_pydantic_models.py" ]; diff --git a/pkgs/development/python-modules/liquidctl/default.nix b/pkgs/development/python-modules/liquidctl/default.nix index 89baf11fa20c8..ea77d1181afc9 100644 --- a/pkgs/development/python-modules/liquidctl/default.nix +++ b/pkgs/development/python-modules/liquidctl/default.nix @@ -16,6 +16,7 @@ colorlog, crcmod, pillow, + udevCheckHook, }: buildPythonPackage rec { @@ -37,6 +38,7 @@ buildPythonPackage rec { setuptools setuptools-scm wheel + udevCheckHook ]; propagatedBuildInputs = [ diff --git a/pkgs/development/python-modules/openant/default.nix b/pkgs/development/python-modules/openant/default.nix index c97bee2183228..e0d8263fbbc20 100644 --- a/pkgs/development/python-modules/openant/default.nix +++ b/pkgs/development/python-modules/openant/default.nix @@ -8,6 +8,7 @@ influxdb-client, pyserial, pytestCheckHook, + udevCheckHook, }: buildPythonPackage rec { @@ -24,7 +25,10 @@ buildPythonPackage rec { hash = "sha256-wDtHlkVyD7mMDXZ4LGMgatr9sSlQKVbgkYsKvHGr9Pc="; }; - nativeBuildInputs = [ setuptools ]; + nativeBuildInputs = [ + setuptools + udevCheckHook + ]; postInstall = '' install -dm755 "$out/etc/udev/rules.d" diff --git a/pkgs/development/python-modules/py3buddy/default.nix b/pkgs/development/python-modules/py3buddy/default.nix index e076aa3b667e9..76cefcbe28c0f 100644 --- a/pkgs/development/python-modules/py3buddy/default.nix +++ b/pkgs/development/python-modules/py3buddy/default.nix @@ -4,6 +4,7 @@ fetchFromGitHub, python, pyusb, + udevCheckHook, }: buildPythonPackage rec { @@ -20,6 +21,8 @@ buildPythonPackage rec { dependencies = [ pyusb ]; + nativeBuildInputs = [ udevCheckHook ]; + dontConfigure = true; dontBuild = true; diff --git a/pkgs/development/python-modules/rfcat/default.nix b/pkgs/development/python-modules/rfcat/default.nix index 728d365e8c987..28c7484588702 100644 --- a/pkgs/development/python-modules/rfcat/default.nix +++ b/pkgs/development/python-modules/rfcat/default.nix @@ -10,6 +10,7 @@ pyusb, pytestCheckHook, pythonOlder, + udevCheckHook, }: buildPythonPackage rec { @@ -34,6 +35,10 @@ buildPythonPackage rec { pyusb ]; + nativeBuildInputs = [ + udevCheckHook + ]; + postInstall = lib.optionalString stdenv.hostPlatform.isLinux '' mkdir -p $out/etc/udev/rules.d cp etc/udev/rules.d/20-rfcat.rules $out/etc/udev/rules.d diff --git a/pkgs/development/python-modules/seabreeze/default.nix b/pkgs/development/python-modules/seabreeze/default.nix index d4244bbcdfef0..96f5f31d6fa16 100644 --- a/pkgs/development/python-modules/seabreeze/default.nix +++ b/pkgs/development/python-modules/seabreeze/default.nix @@ -9,6 +9,7 @@ pkgconfig, setuptools, setuptools-scm, + udevCheckHook, # dependneices numpy, @@ -56,6 +57,7 @@ buildPythonPackage rec { pkgconfig setuptools setuptools-scm + udevCheckHook ]; propagatedBuildInputs = [ diff --git a/pkgs/os-specific/linux/drbd/utils.nix b/pkgs/os-specific/linux/drbd/utils.nix index 408412481ac72..f5a6d84932247 100644 --- a/pkgs/os-specific/linux/drbd/utils.nix +++ b/pkgs/os-specific/linux/drbd/utils.nix @@ -14,6 +14,7 @@ perlPackages, systemd, keyutils, + udevCheckHook, # drbd-utils are compiled twice, once with forOCF = true to extract # its OCF definitions for use in the ocf-resource-agents derivation, @@ -38,6 +39,7 @@ stdenv.mkDerivation rec { docbook_xsl asciidoctor keyutils + udevCheckHook ]; buildInputs = [ @@ -120,6 +122,8 @@ stdenv.mkDerivation rec { enableParallelBuilding = true; + doInstallCheck = true; + passthru.tests.drbd = nixosTests.drbd; meta = with lib; { diff --git a/pkgs/os-specific/linux/ffado/default.nix b/pkgs/os-specific/linux/ffado/default.nix index 9f41411b2ab63..92203c758a570 100644 --- a/pkgs/os-specific/linux/ffado/default.nix +++ b/pkgs/os-specific/linux/ffado/default.nix @@ -17,6 +17,7 @@ which, withMixer ? false, qt5, + udevCheckHook, }: let @@ -73,6 +74,7 @@ stdenv.mkDerivation rec { scons pkg-config which + udevCheckHook ] ++ lib.optionals withMixer [ python @@ -116,6 +118,7 @@ stdenv.mkDerivation rec { enableParallelBuilding = true; dontWrapQtApps = true; strictDeps = true; + doInstallCheck = true; preFixup = lib.optionalString withMixer '' wrapQtApp "$bin/bin/ffado-mixer" diff --git a/pkgs/os-specific/linux/fuse/common.nix b/pkgs/os-specific/linux/fuse/common.nix index a2a9608fd35cc..617a86debe017 100644 --- a/pkgs/os-specific/linux/fuse/common.nix +++ b/pkgs/os-specific/linux/fuse/common.nix @@ -14,6 +14,7 @@ pkg-config, autoreconfHook, runtimeShell, + udevCheckHook, }: let @@ -60,6 +61,7 @@ stdenv.mkDerivation rec { meson ninja pkg-config + udevCheckHook ] else [ @@ -111,6 +113,7 @@ stdenv.mkDerivation rec { # v2: no tests, v3: all tests get skipped in a sandbox doCheck = false; + doInstallCheck = true; # Drop `/etc/fuse.conf` because it is a no-op config and # would conflict with our fuse module. diff --git a/pkgs/os-specific/linux/lvm2/common.nix b/pkgs/os-specific/linux/lvm2/common.nix index 9da06cc092367..190820804d083 100644 --- a/pkgs/os-specific/linux/lvm2/common.nix +++ b/pkgs/os-specific/linux/lvm2/common.nix @@ -13,6 +13,7 @@ enableDmeventd ? false, udevSupport ? !stdenv.hostPlatform.isStatic, udev, + udevCheckHook, onlyLib ? stdenv.hostPlatform.isStatic, # Otherwise we have a infinity recursion during static compilation enableUtilLinux ? !stdenv.hostPlatform.isStatic, @@ -46,7 +47,7 @@ stdenv.mkDerivation rec { inherit hash; }; - nativeBuildInputs = [ pkg-config ]; + nativeBuildInputs = [ pkg-config ] ++ lib.optionals udevSupport [ udevCheckHook ]; buildInputs = [ libaio @@ -132,6 +133,7 @@ stdenv.mkDerivation rec { ]; doCheck = false; # requires root + doInstallCheck = true; makeFlags = lib.optionals udevSupport [ diff --git a/pkgs/os-specific/linux/nxp-pn5xx/default.nix b/pkgs/os-specific/linux/nxp-pn5xx/default.nix index 4ca9db16e847b..d2b2ae1bdbe05 100644 --- a/pkgs/os-specific/linux/nxp-pn5xx/default.nix +++ b/pkgs/os-specific/linux/nxp-pn5xx/default.nix @@ -4,6 +4,7 @@ fetchFromGitHub, kernel, kernelModuleMakeFlags, + udevCheckHook, }: stdenv.mkDerivation (finalAttrs: { @@ -17,7 +18,7 @@ stdenv.mkDerivation (finalAttrs: { hash = "sha256-jVkcvURFlihKW2vFvAaqzKdtexPXywRa2LkPkIhmdeU="; }; - nativeBuildInputs = kernel.moduleBuildDependencies; + nativeBuildInputs = [ udevCheckHook ] ++ kernel.moduleBuildDependencies; makeFlags = kernelModuleMakeFlags ++ [ "KERNELRELEASE=${kernel.modDirVersion}" @@ -25,6 +26,8 @@ stdenv.mkDerivation (finalAttrs: { "INSTALL_MOD_PATH=$(out)/lib/modules/${kernel.modDirVersion}" ]; + doInstallCheck = true; + postInstall = '' mkdir -p $out/etc/udev/rules.d echo 'SUBSYSTEM=="misc", KERNEL=="pn544", MODE="0666", GROUP="dialout"' > $out/etc/udev/rules.d/99-nxp-pn5xx.rules diff --git a/pkgs/os-specific/linux/openrazer/driver.nix b/pkgs/os-specific/linux/openrazer/driver.nix index e6af64c8ebdaf..18fbc5f9ba951 100644 --- a/pkgs/os-specific/linux/openrazer/driver.nix +++ b/pkgs/os-specific/linux/openrazer/driver.nix @@ -5,6 +5,7 @@ kernelModuleMakeFlags, stdenv, lib, + udevCheckHook, util-linux, }: @@ -19,12 +20,14 @@ stdenv.mkDerivation ( pname = "openrazer"; version = "${common.version}-${kernel.version}"; - nativeBuildInputs = kernel.moduleBuildDependencies; + nativeBuildInputs = [ udevCheckHook ] ++ kernel.moduleBuildDependencies; makeFlags = kernelModuleMakeFlags ++ [ "KERNELDIR=${kernel.dev}/lib/modules/${kernel.modDirVersion}/build" ]; + doInstallCheck = true; + installPhase = '' runHook preInstall diff --git a/pkgs/os-specific/linux/projecteur/default.nix b/pkgs/os-specific/linux/projecteur/default.nix index fc74771d74d62..f90d77f5a2073 100644 --- a/pkgs/os-specific/linux/projecteur/default.nix +++ b/pkgs/os-specific/linux/projecteur/default.nix @@ -7,6 +7,7 @@ qtbase, qtgraphicaleffects, wrapQtAppsHook, + udevCheckHook, }: mkDerivation rec { @@ -34,8 +35,11 @@ mkDerivation rec { cmake pkg-config wrapQtAppsHook + udevCheckHook ]; + doInstallCheck = true; + cmakeFlags = [ "-DCMAKE_INSTALL_PREFIX:PATH=${placeholder "out"}" "-DPACKAGE_TARGETS=OFF" diff --git a/pkgs/os-specific/linux/rfkill/udev.nix b/pkgs/os-specific/linux/rfkill/udev.nix index 9d5ce46533e29..eb908a13622ac 100644 --- a/pkgs/os-specific/linux/rfkill/udev.nix +++ b/pkgs/os-specific/linux/rfkill/udev.nix @@ -2,6 +2,7 @@ lib, stdenv, replaceVarsWith, + udevCheckHook, }: # Provides a facility to hook into rfkill changes. @@ -38,6 +39,12 @@ in stdenv.mkDerivation { name = "rfkill-udev"; + nativeBuildInputs = [ + udevCheckHook + ]; + + doInstallCheck = true; + dontUnpack = true; dontBuild = true; diff --git a/pkgs/os-specific/linux/udisks/2-default.nix b/pkgs/os-specific/linux/udisks/2-default.nix index a29e669380c47..c736f540918ee 100644 --- a/pkgs/os-specific/linux/udisks/2-default.nix +++ b/pkgs/os-specific/linux/udisks/2-default.nix @@ -35,6 +35,7 @@ nilfs-utils, ntfs3g, nixosTests, + udevCheckHook, }: stdenv.mkDerivation rec { @@ -93,6 +94,7 @@ stdenv.mkDerivation rec { docbook_xml_dtd_412 docbook_xml_dtd_43 docbook_xsl + udevCheckHook ]; postPatch = lib.optionalString stdenv.hostPlatform.isMusl '' @@ -136,6 +138,7 @@ stdenv.mkDerivation rec { enableParallelBuilding = true; doCheck = true; + doInstallCheck = true; passthru = { inherit libblockdev; diff --git a/pkgs/os-specific/linux/usbrelay/daemon.nix b/pkgs/os-specific/linux/usbrelay/daemon.nix index ed63a5d154128..9ee094acac691 100644 --- a/pkgs/os-specific/linux/usbrelay/daemon.nix +++ b/pkgs/os-specific/linux/usbrelay/daemon.nix @@ -3,6 +3,7 @@ usbrelay, python3, installShellFiles, + udevCheckHook, }: let python = python3.withPackages ( @@ -26,12 +27,17 @@ stdenv.mkDerivation { --replace '/usr/sbin/usbrelayd' "$out/bin/usbrelayd" ''; - nativeBuildInputs = [ installShellFiles ]; + nativeBuildInputs = [ + installShellFiles + udevCheckHook + ]; buildInputs = [ python ]; dontBuild = true; + doInstallCheck = true; + installPhase = '' runHook preInstall; install -m 644 -D usbrelayd $out/bin/usbrelayd diff --git a/pkgs/os-specific/linux/v4l-utils/default.nix b/pkgs/os-specific/linux/v4l-utils/default.nix index 293af14921989..791cebda3abfc 100644 --- a/pkgs/os-specific/linux/v4l-utils/default.nix +++ b/pkgs/os-specific/linux/v4l-utils/default.nix @@ -7,6 +7,7 @@ argp-standalone, libjpeg, udev, + udevCheckHook, withUtils ? true, withGUI ? true, alsa-lib, @@ -54,6 +55,7 @@ stdenv.mkDerivation rec { nativeBuildInputs = [ pkg-config perl + udevCheckHook ] ++ lib.optional withQt wrapQtAppsHook; buildInputs = @@ -74,6 +76,8 @@ stdenv.mkDerivation rec { enableParallelBuilding = true; + doInstallCheck = true; + meta = with lib; { description = "V4L utils and libv4l, provide common image formats regardless of the v4l device"; homepage = "https://linuxtv.org/projects.php"; diff --git a/pkgs/os-specific/linux/zfs/generic.nix b/pkgs/os-specific/linux/zfs/generic.nix index 3360b2cc73196..7ffc5d8463cd6 100644 --- a/pkgs/os-specific/linux/zfs/generic.nix +++ b/pkgs/os-specific/linux/zfs/generic.nix @@ -10,6 +10,7 @@ let coreutils, linuxPackages, perl, + udevCheckHook, configFile ? "all", # Userspace dependencies @@ -145,7 +146,10 @@ let nukeReferences ] ++ optionals buildKernel (kernel.moduleBuildDependencies ++ [ perl ]) - ++ optional buildUser pkg-config; + ++ optionals buildUser [ + pkg-config + udevCheckHook + ]; buildInputs = optionals buildUser [ zlib @@ -198,6 +202,8 @@ let enableParallelBuilding = true; + doInstallCheck = true; + installFlags = [ "sysconfdir=\${out}/etc" "DEFAULT_INITCONF_DIR=\${out}/default" diff --git a/pkgs/servers/persistent-evdev/default.nix b/pkgs/servers/persistent-evdev/default.nix index 088607dbb592c..18ccb834d2f8d 100644 --- a/pkgs/servers/persistent-evdev/default.nix +++ b/pkgs/servers/persistent-evdev/default.nix @@ -4,6 +4,7 @@ fetchFromGitHub, evdev, pyudev, + udevCheckHook, }: buildPythonPackage rec { @@ -23,6 +24,12 @@ buildPythonPackage rec { pyudev ]; + nativeBuildInputs = [ + udevCheckHook + ]; + + doInstallCheck = true; + postPatch = '' patchShebangs bin/persistent-evdev.py ''; @@ -30,15 +37,16 @@ buildPythonPackage rec { dontBuild = true; installPhase = '' + runHook preInstall + mkdir -p $out/bin cp bin/persistent-evdev.py $out/bin mkdir -p $out/etc/udev/rules.d cp udev/60-persistent-input-uinput.rules $out/etc/udev/rules.d - ''; - # has no tests - doCheck = false; + runHook postInstall + ''; meta = with lib; { homepage = "https://github.com/aiberia/persistent-evdev"; diff --git a/pkgs/servers/pulseaudio/default.nix b/pkgs/servers/pulseaudio/default.nix index cdf726415a894..b07fd401f798d 100644 --- a/pkgs/servers/pulseaudio/default.nix +++ b/pkgs/servers/pulseaudio/default.nix @@ -20,6 +20,7 @@ sbc, bluez5, udev, + udevCheckHook, openssl, fftwFloat, soxr, @@ -110,6 +111,7 @@ stdenv.mkDerivation rec { perlPackages.perl perlPackages.XMLParser m4 + udevCheckHook ] ++ lib.optionals (!stdenv.hostPlatform.isDarwin) [ glib ] # gstreamer plugin discovery requires wrapping @@ -228,6 +230,9 @@ stdenv.mkDerivation rec { # tests fail on Darwin because of timeouts doCheck = !stdenv.hostPlatform.isDarwin; + + doInstallCheck = true; + preCheck = '' export HOME=$(mktemp -d) ''; diff --git a/pkgs/tools/inputmethods/input-remapper/default.nix b/pkgs/tools/inputmethods/input-remapper/default.nix index 583fc35dc4301..07d862c4d238c 100644 --- a/pkgs/tools/inputmethods/input-remapper/default.nix +++ b/pkgs/tools/inputmethods/input-remapper/default.nix @@ -19,6 +19,7 @@ procps, gtksourceview4, bash, + udevCheckHook, nixosTests, # Change the default log level to debug for easier debugging of package issues withDebugLogLevel ? false, @@ -65,6 +66,7 @@ in glib gobject-introspection pygobject3 + udevCheckHook ] ++ maybeXmodmap; dependencies = [ diff --git a/pkgs/tools/misc/antimicrox/default.nix b/pkgs/tools/misc/antimicrox/default.nix index 4fa71b40fbad7..3475d66f7e7e9 100644 --- a/pkgs/tools/misc/antimicrox/default.nix +++ b/pkgs/tools/misc/antimicrox/default.nix @@ -9,6 +9,7 @@ xorg, fetchFromGitHub, itstool, + udevCheckHook, }: mkDerivation rec { @@ -27,6 +28,7 @@ mkDerivation rec { extra-cmake-modules pkg-config itstool + udevCheckHook ]; buildInputs = [ SDL2 @@ -39,6 +41,8 @@ mkDerivation rec { --replace "/usr/lib/udev/rules.d/" "$out/lib/udev/rules.d/" ''; + doInstallCheck = true; + meta = with lib; { description = "GUI for mapping keyboard and mouse controls to a gamepad"; inherit (src.meta) homepage; diff --git a/pkgs/tools/misc/ckb-next/default.nix b/pkgs/tools/misc/ckb-next/default.nix index 921e1094997eb..7f07c7bb1077d 100644 --- a/pkgs/tools/misc/ckb-next/default.nix +++ b/pkgs/tools/misc/ckb-next/default.nix @@ -18,6 +18,7 @@ withPulseaudio ? stdenv.hostPlatform.isLinux, libpulseaudio, quazip, + udevCheckHook, }: stdenv.mkDerivation rec { @@ -46,6 +47,7 @@ stdenv.mkDerivation rec { wrapQtAppsHook pkg-config cmake + udevCheckHook ]; cmakeFlags = [ @@ -62,6 +64,8 @@ stdenv.mkDerivation rec { }) ]; + doInstallCheck = true; + postInstall = '' substituteInPlace "$out/lib/udev/rules.d/99-ckb-next-daemon.rules" \ --replace-fail "/usr/bin/env sed" "${lib.getExe gnused}" diff --git a/pkgs/tools/misc/polar/default.nix b/pkgs/tools/misc/polar/default.nix index 542f21ca09025..e53efaa241418 100644 --- a/pkgs/tools/misc/polar/default.nix +++ b/pkgs/tools/misc/polar/default.nix @@ -4,6 +4,7 @@ fetchFromGitHub, ruby, bundlerEnv, + udevCheckHook, }: let @@ -42,6 +43,12 @@ stdenv.mkDerivation rec { ruby ]; + nativeBuildInputs = [ + udevCheckHook + ]; + + doInstallCheck = true; + # See: https://wiki.nixos.org/wiki/Packaging/Ruby # # Put library content under lib/polar and the raw scripts under share/polar. diff --git a/pkgs/tools/misc/tlp/default.nix b/pkgs/tools/misc/tlp/default.nix index 5da5d402196bc..ad8c677ea5b6c 100644 --- a/pkgs/tools/misc/tlp/default.nix +++ b/pkgs/tools/misc/tlp/default.nix @@ -18,6 +18,7 @@ shellcheck, smartmontools, systemd, + udevCheckHook, util-linux, x86_energy_perf_policy, # RDW only works with NetworkManager, and thus is optional with default off @@ -46,7 +47,10 @@ stdenv.mkDerivation rec { ''; buildInputs = [ perl ]; - nativeBuildInputs = [ makeWrapper ]; + nativeBuildInputs = [ + makeWrapper + udevCheckHook + ]; # XXX: While [1] states that DESTDIR should not be used, and that the correct # variable to set is, in fact, PREFIX, tlp thinks otherwise. The Makefile for @@ -81,6 +85,8 @@ stdenv.mkDerivation rec { ]; checkTarget = [ "checkall" ]; + doInstallCheck = true; + # TODO: Consider using resholve here postInstall = let diff --git a/pkgs/tools/networking/networkmanager/default.nix b/pkgs/tools/networking/networkmanager/default.nix index e3daa878c5c5d..7b82c0d87c7c9 100644 --- a/pkgs/tools/networking/networkmanager/default.nix +++ b/pkgs/tools/networking/networkmanager/default.nix @@ -52,6 +52,7 @@ nixosTests, systemd, udev, + udevCheckHook, withSystemd ? lib.meta.availableOn stdenv.hostPlatform systemd, }: @@ -184,6 +185,7 @@ stdenv.mkDerivation (finalAttrs: { docbook_xml_dtd_42 docbook_xml_dtd_43 pythonForDocs + udevCheckHook ] ++ lib.optionals (!stdenv.buildPlatform.canExecute stdenv.hostPlatform) [ mesonEmulatorHook @@ -219,6 +221,8 @@ stdenv.mkDerivation (finalAttrs: { cp -r ${buildPackages.networkmanager.man} $man ''; + doInstallCheck = true; + passthru = { updateScript = gitUpdater { odd-unstable = true; diff --git a/pkgs/tools/security/proxmark3/default.nix b/pkgs/tools/security/proxmark3/default.nix index 6b86a9a76fd73..cbeb3cea6d832 100644 --- a/pkgs/tools/security/proxmark3/default.nix +++ b/pkgs/tools/security/proxmark3/default.nix @@ -12,6 +12,7 @@ whereami, lua, lz4, + udevCheckHook, withGui ? true, wrapQtAppsHook, qtbase, @@ -57,6 +58,7 @@ stdenv.mkDerivation (finalAttrs: { nativeBuildInputs = [ pkg-config gcc-arm-embedded + udevCheckHook ] ++ lib.optional withGui wrapQtAppsHook; buildInputs = [ @@ -86,6 +88,8 @@ stdenv.mkDerivation (finalAttrs: { ++ map (x: "SKIP_${x}=1") withoutFunctions; enableParallelBuilding = true; + doInstallCheck = true; + meta = with lib; { description = "Client for proxmark3, powerful general purpose RFID tool"; homepage = "https://github.com/RfidResearchGroup/proxmark3"; diff --git a/pkgs/tools/system/cm-rgb/default.nix b/pkgs/tools/system/cm-rgb/default.nix index 577cf0a179bb5..5a52a1527bbe8 100644 --- a/pkgs/tools/system/cm-rgb/default.nix +++ b/pkgs/tools/system/cm-rgb/default.nix @@ -9,6 +9,8 @@ hidapi, psutil, pygobject3, + udevCheckHook, + stdenv, }: buildPythonApplication rec { @@ -28,6 +30,7 @@ buildPythonApplication rec { # Populate GI_TYPELIB_PATH gobject-introspection wrapGAppsHook3 + udevCheckHook ]; propagatedBuildInputs = [ diff --git a/pkgs/tools/virtualization/google-compute-engine/default.nix b/pkgs/tools/virtualization/google-compute-engine/default.nix index d08d2c1eaf695..fe49936482c01 100644 --- a/pkgs/tools/virtualization/google-compute-engine/default.nix +++ b/pkgs/tools/virtualization/google-compute-engine/default.nix @@ -7,6 +7,7 @@ util-linux, setuptools, distro, + udevCheckHook, }: buildPythonPackage rec { @@ -26,6 +27,10 @@ buildPythonPackage rec { distro ]; + nativeBuildInputs = [ + udevCheckHook + ]; + postPatch = '' for file in $(find google_compute_engine -type f); do substituteInPlace "$file" \ @@ -53,7 +58,6 @@ buildPythonPackage rec { patchShebangs $out/bin/* ''; - doCheck = false; pythonImportsCheck = [ "google_compute_engine" ]; meta = with lib; { diff --git a/pkgs/tools/virtualization/mkosi/default.nix b/pkgs/tools/virtualization/mkosi/default.nix index 1163a909fec35..5bd8b763e8781 100644 --- a/pkgs/tools/virtualization/mkosi/default.nix +++ b/pkgs/tools/virtualization/mkosi/default.nix @@ -14,6 +14,7 @@ btrfs-progs, libseccomp, replaceVars, + udevCheckHook, # Python packages setuptools, @@ -110,6 +111,7 @@ buildPythonApplication rec { setuptools setuptools-scm wheel + udevCheckHook ]; dependencies = deps; From 99a82a9b826a6ce30481863b2bb859ec8e1e0599 Mon Sep 17 00:00:00 2001 From: Grimmauld Date: Wed, 28 May 2025 11:03:34 +0200 Subject: [PATCH 5/5] alsa-utils: disable udev rules output The udev rules are somewhat broken, with the goto targets just missing. NixOS has its own set of alsa rules files, so just remove the broken rules here. ``` $ udevadm verify --no-style /nix/store/xwwigrmbdipf38j6b9d4wjvrg5n42iq0-alsa-utils-1.2.13/lib/udev/rules.d/90-alsa-restore.rules /nix/store/xwwigrmbdipf38j6b9d4wjvrg5n42iq0-alsa-utils-1.2.13/lib/udev/rules.d/90-alsa-restore.rules:16 GOTO="alsa_restore_std" has no matching label, ignoring. /nix/store/xwwigrmbdipf38j6b9d4wjvrg5n42iq0-alsa-utils-1.2.13/lib/udev/rules.d/90-alsa-restore.rules:16 The line has no effect any more, dropping. /nix/store/xwwigrmbdipf38j6b9d4wjvrg5n42iq0-alsa-utils-1.2.13/lib/udev/rules.d/90-alsa-restore.rules:20 GOTO="alsa_restore_std" has no matching label, ignoring. /nix/store/xwwigrmbdipf38j6b9d4wjvrg5n42iq0-alsa-utils-1.2.13/lib/udev/rules.d/90-alsa-restore.rules:20 The line has no effect any more, dropping. /nix/store/xwwigrmbdipf38j6b9d4wjvrg5n42iq0-alsa-utils-1.2.13/lib/udev/rules.d/90-alsa-restore.rules: udev rules check failed. 1 udev rules files have been checked. Success: 0 Fail: 1 ``` --- pkgs/by-name/al/alsa-utils/package.nix | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/pkgs/by-name/al/alsa-utils/package.nix b/pkgs/by-name/al/alsa-utils/package.nix index f85f379380de1..436ab9438579b 100644 --- a/pkgs/by-name/al/alsa-utils/package.nix +++ b/pkgs/by-name/al/alsa-utils/package.nix @@ -67,6 +67,12 @@ stdenv.mkDerivation rec { wrapProgram $out/bin/aplay --set-default ALSA_PLUGIN_DIR ${plugin-dir} ''; + postInstall = '' + # udev rules are super broken, violating `udevadm verify` in various creative ways. + # NixOS has its own set of alsa udev rules, we can just delete the udev rules for this package + rm -rf $out/lib/udev + ''; + passthru.updateScript = directoryListingUpdater { url = "https://www.alsa-project.org/files/pub/utils/"; };