uboot: (firmwareOdroidC2/C4) don't invoke patch tool, use patches = [] instead
https://github.com/NixOS/nixpkgs/blob/master/pkgs/stdenv/generic/setup.sh#L948 this can do it nicely. Signed-off-by: Anton Arapov <anton@deadbeef.mx>
This commit is contained in:
commit
56de2bcd43
30691 changed files with 3076956 additions and 0 deletions
137
pkgs/applications/science/electronics/picoscope/default.nix
Normal file
137
pkgs/applications/science/electronics/picoscope/default.nix
Normal file
|
|
@ -0,0 +1,137 @@
|
|||
{ stdenv, lib, fetchurl, dpkg, makeWrapper , mono, gtk-sharp-3_0
|
||||
, glib, libusb1 , zlib, gtk3-x11, callPackage
|
||||
, scopes ? [
|
||||
"picocv"
|
||||
"ps2000"
|
||||
"ps2000a"
|
||||
"ps3000"
|
||||
"ps3000a"
|
||||
"ps4000"
|
||||
"ps4000a"
|
||||
"ps5000"
|
||||
"ps5000a"
|
||||
"ps6000"
|
||||
"ps6000a"
|
||||
] }:
|
||||
|
||||
let
|
||||
shared_meta = lib:
|
||||
with lib; {
|
||||
homepage = "https://www.picotech.com/downloads/linux";
|
||||
maintainers = with maintainers; [ expipiplus1 wirew0rm ] ++ teams.lumiguide.members;
|
||||
platforms = [ "x86_64-linux" ];
|
||||
license = licenses.unfree;
|
||||
};
|
||||
|
||||
libpicoipp = callPackage ({ stdenv, lib, fetchurl, autoPatchelfHook, dpkg }:
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "libpicoipp";
|
||||
inherit (sources.libpicoipp) version;
|
||||
src = fetchurl { inherit (sources.libpicoipp) url sha256; };
|
||||
nativeBuildInputs = [ dpkg autoPatchelfHook ];
|
||||
buildInputs = [ stdenv.cc.cc.lib ];
|
||||
sourceRoot = ".";
|
||||
unpackCmd = "dpkg-deb -x $src .";
|
||||
installPhase = ''
|
||||
runHook preInstall
|
||||
mkdir -p $out/lib
|
||||
cp -d opt/picoscope/lib/* $out/lib
|
||||
install -Dt $out/usr/share/doc/libpicoipp usr/share/doc/libpicoipp/copyright
|
||||
runHook postInstall
|
||||
'';
|
||||
meta = with lib;
|
||||
shared_meta lib // {
|
||||
description = "library for picotech oscilloscope software";
|
||||
};
|
||||
}) { };
|
||||
|
||||
# If we don't have a platform available, put a dummy version here, so at
|
||||
# least evaluation succeeds.
|
||||
sources =
|
||||
(lib.importJSON ./sources.json).${stdenv.system} or { picoscope.version = "unknown"; };
|
||||
|
||||
scopePkg = name:
|
||||
{ url, version, sha256 }:
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "lib${name}";
|
||||
inherit version;
|
||||
src = fetchurl { inherit url sha256; };
|
||||
# picoscope does a signature check, so we can't patchelf these
|
||||
nativeBuildInputs = [ dpkg ];
|
||||
sourceRoot = ".";
|
||||
unpackCmd = "dpkg-deb -x $src .";
|
||||
installPhase = ''
|
||||
runHook preInstall
|
||||
mkdir -p $out/lib
|
||||
cp -d opt/picoscope/lib/* $out/lib
|
||||
runHook postInstall
|
||||
'';
|
||||
meta = with lib;
|
||||
shared_meta lib // {
|
||||
description = "library for picotech oscilloscope ${name} series";
|
||||
};
|
||||
};
|
||||
|
||||
scopePkgs = lib.mapAttrs scopePkg sources;
|
||||
|
||||
in stdenv.mkDerivation rec {
|
||||
pname = "picoscope";
|
||||
inherit (sources.picoscope) version;
|
||||
|
||||
src = fetchurl { inherit (sources.picoscope) url sha256; };
|
||||
|
||||
nativeBuildInputs = [ dpkg makeWrapper ];
|
||||
buildInputs = [ gtk-sharp-3_0 mono glib libusb1 zlib ];
|
||||
|
||||
unpackCmd = "dpkg-deb -x $src .";
|
||||
sourceRoot = ".";
|
||||
scopeLibs = lib.attrVals (map (x: "lib${x}") scopes) scopePkgs;
|
||||
MONO_PATH = "${gtk-sharp-3_0}/lib/mono/gtk-sharp-3.0:" + (lib.makeLibraryPath
|
||||
([
|
||||
glib
|
||||
gtk3-x11
|
||||
gtk-sharp-3_0
|
||||
libusb1
|
||||
zlib
|
||||
libpicoipp
|
||||
] ++ scopeLibs));
|
||||
|
||||
installPhase = ''
|
||||
runHook preInstall
|
||||
mkdir -p $out/
|
||||
cp -dr usr/share $out/share
|
||||
cp -dr opt/picoscope/* $out/
|
||||
makeWrapper "$(command -v mono)" $out/bin/picoscope \
|
||||
--add-flags $out/lib/PicoScope.GTK.exe \
|
||||
--prefix MONO_PATH : "$MONO_PATH" \
|
||||
--prefix LD_LIBRARY_PATH : "$MONO_PATH" \
|
||||
--set LANG C
|
||||
runHook postInstall
|
||||
'';
|
||||
|
||||
# usage:
|
||||
# services.udev.packages = [ pkgs.picoscope.rules ];
|
||||
# users.groups.pico = {};
|
||||
# users.users.you.extraGroups = [ "pico" ];
|
||||
passthru.rules = lib.writeTextDir "lib/udev/rules.d/95-pico.rules" ''
|
||||
SUBSYSTEMS=="usb", ATTRS{idVendor}=="0ce9", MODE="664",GROUP="pico"
|
||||
'';
|
||||
|
||||
meta = with lib;
|
||||
shared_meta lib // {
|
||||
description =
|
||||
"Oscilloscope application that works with all PicoScope models";
|
||||
longDescription = ''
|
||||
PicoScope for Linux is a powerful oscilloscope application that works
|
||||
with all PicoScope models. The most important features from PicoScope
|
||||
for Windows are included—scope, spectrum analyzer, advanced triggers,
|
||||
automated measurements, interactive zoom, persistence modes and signal
|
||||
generator control. More features are being added all the time.
|
||||
|
||||
Waveform captures can be saved for off-line analysis, and shared with
|
||||
PicoScope for Linux, PicoScope for macOS and PicoScope for Windows
|
||||
users, or exported in text, CSV and MathWorks MATLAB 4 formats.
|
||||
'';
|
||||
};
|
||||
}
|
||||
|
||||
Loading…
Add table
Add a link
Reference in a new issue