diff options
Diffstat (limited to 'nixpkgs/pkgs/applications/science/electronics/bitscope/common.nix')
-rw-r--r-- | nixpkgs/pkgs/applications/science/electronics/bitscope/common.nix | 64 |
1 files changed, 64 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/applications/science/electronics/bitscope/common.nix b/nixpkgs/pkgs/applications/science/electronics/bitscope/common.nix new file mode 100644 index 000000000000..64777b5a0ac8 --- /dev/null +++ b/nixpkgs/pkgs/applications/science/electronics/bitscope/common.nix @@ -0,0 +1,64 @@ +{ atk +, buildFHSUserEnv +, cairo +, dpkg +, gdk_pixbuf +, glib +, gtk2-x11 +, makeWrapper +, pango +, stdenv +, xorg +}: + +{ src, toolName, version, ... } @ attrs: +let + wrapBinary = libPaths: binaryName: '' + wrapProgram "$out/bin/${binaryName}" \ + --prefix LD_LIBRARY_PATH : "${stdenv.lib.makeLibraryPath libPaths}" + ''; + pkg = stdenv.mkDerivation (rec { + inherit (attrs) version src; + + name = "${toolName}-${version}"; + + meta = with stdenv.lib; { + homepage = http://bitscope.com/software/; + license = licenses.unfree; + platforms = [ "x86_64-linux" ]; + maintainers = with maintainers; [ + vidbina + ]; + } // (attrs.meta or {}); + + buildInputs = [ + dpkg + makeWrapper + ]; + + libs = attrs.libs or [ + atk + cairo + gdk_pixbuf + glib + gtk2-x11 + pango + xorg.libX11 + ]; + + dontBuild = true; + + unpackPhase = attrs.unpackPhase or '' + dpkg-deb -x ${attrs.src} ./ + ''; + + installPhase = attrs.installPhase or '' + mkdir -p "$out/bin" + cp -a usr/* "$out/" + ${(wrapBinary libs) attrs.toolName} + ''; + }); +in buildFHSUserEnv { + name = "${attrs.toolName}-${attrs.version}"; + runScript = "${pkg.outPath}/bin/${attrs.toolName}"; +} // { inherit (pkg) meta name; } |