rdma-core: 54.0 -> 55.0 (#364655)
[NixPkgs.git] / pkgs / applications / science / electronics / eagle / eagle.nix
blob3277bda1326c76e66174c920f5b316f01f4e6716
2   lib,
3   stdenv,
4   mkDerivation,
5   fetchurl,
6   makeDesktopItem,
7   libXrender,
8   libXrandr,
9   libXcursor,
10   libX11,
11   libXext,
12   libXi,
13   libxcb,
14   libGL,
15   glib,
16   nss,
17   nspr,
18   expat,
19   alsa-lib,
20   qtbase,
21   qtdeclarative,
22   qtsvg,
23   qtlocation,
24   qtwebchannel,
25   qtwebengine,
28 let
29   libPath = lib.makeLibraryPath [
30     libXrender
31     libXrandr
32     libXcursor
33     libX11
34     libXext
35     libXi
36     libxcb
37     libGL
38     glib
39     nss
40     nspr
41     expat
42     alsa-lib
43     qtbase
44     qtdeclarative
45     qtsvg
46     qtlocation
47     qtwebchannel
48     qtwebengine
49   ];
51 mkDerivation rec {
52   pname = "eagle";
53   version = "9.6.2";
55   src = fetchurl {
56     url = "https://eagle-updates.circuits.io/downloads/${
57       builtins.replaceStrings [ "." ] [ "_" ] version
58     }/Autodesk_EAGLE_${version}_English_Linux_64bit.tar.gz";
59     sha256 = "18syygnskl286kn8aqfzzdsyzq59d2w19y1h1ynyxsnrvkyv71h0";
60   };
62   desktopItem = makeDesktopItem {
63     name = "eagle";
64     exec = "eagle";
65     icon = "eagle";
66     comment = "Schematic capture and PCB layout";
67     desktopName = "Eagle";
68     genericName = "Schematic editor";
69     categories = [ "Development" ];
70   };
72   buildInputs = [
73     libXrender
74     libXrandr
75     libXcursor
76     libX11
77     libXext
78     libXi
79     libxcb
80     libGL
81     glib
82     nss
83     nspr
84     expat
85     alsa-lib
86     qtbase
87     qtdeclarative
88     qtsvg
89     qtlocation
90     qtwebchannel
91     qtwebengine
92   ];
94   installPhase = ''
95     # Extract eagle tarball
96     mkdir "$out"
97     tar -xzf "$src" -C "$out"
99     # Install manpage
100     mkdir -p "$out"/share/man/man1
101     ln -s "$out"/eagle-${version}/doc/eagle.1 "$out"/share/man/man1/eagle.1
103     patchelf \
104       --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
105       --set-rpath "${libPath}:$out/eagle-${version}/lib:${lib.getLib stdenv.cc.cc}/lib" \
106       "$out"/eagle-${version}/eagle
108     mkdir -p "$out"/bin
109     ln -s "$out"/eagle-${version}/eagle "$out"/bin/eagle
111     # Remove bundled libraries that are available in nixpkgs
112     # TODO: There still may be unused bundled libraries
113     rm "$out"/eagle-${version}/lib/libQt5*.so.5
114     rm "$out"/eagle-${version}/lib/{libxcb-*.so.*,libX*.so.*,libxshmfence.so.1}
115     rm "$out"/eagle-${version}/lib/{libEGL.so.1,libglapi.so.0,libgbm.so.1}
117     # No longer needed (we don't use the bundled Qt libraries)
118     rm -r "$out"/eagle-${version}/libexec
119     rm -r "$out"/eagle-${version}/plugins
121     # Make desktop item
122     mkdir -p "$out"/share/applications
123     cp "$desktopItem"/share/applications/* "$out"/share/applications/
124     mkdir -p "$out"/share/pixmaps
125     ln -s "$out/eagle-${version}/bin/eagle-logo.png" "$out"/share/pixmaps/eagle.png
126   '';
128   meta = with lib; {
129     description = "Schematic editor and PCB layout tool from Autodesk (formerly CadSoft)";
130     homepage = "https://www.autodesk.com/products/eagle/overview";
131     sourceProvenance = with sourceTypes; [ binaryNativeCode ];
132     license = licenses.unfree;
133     platforms = [ "x86_64-linux" ];
134     maintainers = [ ];
135   };