anvil-editor: init at 0.4
[NixPkgs.git] / pkgs / applications / science / electronics / eagle / eagle.nix
bloba8da40bd070b21ed284ae782c7cc6520f3caf44c
1 { lib, stdenv, mkDerivation, fetchurl, makeDesktopItem
2 , libXrender, libXrandr, libXcursor, libX11, libXext, libXi, libxcb
3  , libGL, glib, nss, nspr, expat, alsa-lib
4 , qtbase, qtdeclarative, qtsvg, qtlocation, qtwebchannel, qtwebengine
5 }:
7 let
8   libPath = lib.makeLibraryPath
9     [ libXrender libXrandr libXcursor libX11 libXext libXi libxcb
10       libGL glib nss nspr expat alsa-lib
11       qtbase qtdeclarative qtsvg qtlocation qtwebchannel qtwebengine
12     ];
13   in
14   mkDerivation rec {
15     pname = "eagle";
16     version = "9.6.2";
18     src = fetchurl {
19       url = "https://eagle-updates.circuits.io/downloads/${builtins.replaceStrings ["."] ["_"] version}/Autodesk_EAGLE_${version}_English_Linux_64bit.tar.gz";
20       sha256 = "18syygnskl286kn8aqfzzdsyzq59d2w19y1h1ynyxsnrvkyv71h0";
21     };
23     desktopItem = makeDesktopItem {
24       name = "eagle";
25       exec = "eagle";
26       icon = "eagle";
27       comment = "Schematic capture and PCB layout";
28       desktopName = "Eagle";
29       genericName = "Schematic editor";
30       categories = [ "Development" ];
31     };
33     buildInputs =
34       [ libXrender libXrandr libXcursor libX11 libXext libXi libxcb
35         libGL glib nss nspr expat alsa-lib
36         qtbase qtdeclarative qtsvg qtlocation qtwebchannel qtwebengine
37       ];
39     installPhase = ''
40       # Extract eagle tarball
41       mkdir "$out"
42       tar -xzf "$src" -C "$out"
44       # Install manpage
45       mkdir -p "$out"/share/man/man1
46       ln -s "$out"/eagle-${version}/doc/eagle.1 "$out"/share/man/man1/eagle.1
48       patchelf \
49         --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
50         --set-rpath "${libPath}:$out/eagle-${version}/lib:${lib.getLib stdenv.cc.cc}/lib" \
51         "$out"/eagle-${version}/eagle
53       mkdir -p "$out"/bin
54       ln -s "$out"/eagle-${version}/eagle "$out"/bin/eagle
56       # Remove bundled libraries that are available in nixpkgs
57       # TODO: There still may be unused bundled libraries
58       rm "$out"/eagle-${version}/lib/libQt5*.so.5
59       rm "$out"/eagle-${version}/lib/{libxcb-*.so.*,libX*.so.*,libxshmfence.so.1}
60       rm "$out"/eagle-${version}/lib/{libEGL.so.1,libglapi.so.0,libgbm.so.1}
62       # No longer needed (we don't use the bundled Qt libraries)
63       rm -r "$out"/eagle-${version}/libexec
64       rm -r "$out"/eagle-${version}/plugins
66       # Make desktop item
67       mkdir -p "$out"/share/applications
68       cp "$desktopItem"/share/applications/* "$out"/share/applications/
69       mkdir -p "$out"/share/pixmaps
70       ln -s "$out/eagle-${version}/bin/eagle-logo.png" "$out"/share/pixmaps/eagle.png
71     '';
73     meta = with lib; {
74       description = "Schematic editor and PCB layout tool from Autodesk (formerly CadSoft)";
75       homepage = "https://www.autodesk.com/products/eagle/overview";
76       sourceProvenance = with sourceTypes; [ binaryNativeCode ];
77       license = licenses.unfree;
78       platforms = [ "x86_64-linux" ];
79       maintainers = [ ];
80     };
81   }