mirror of
https://github.com/NixOS/nixpkgs.git
synced 2024-12-27 08:04:14 +00:00
185fd61631
doBuild and doConfigure are not actually used by any builders, they were probably added by mistake and just confuse people.
81 lines
2.8 KiB
Nix
81 lines
2.8 KiB
Nix
{ stdenv, fetchurl, makeDesktopItem
|
|
, libXrender, libXrandr, libXcursor, libX11, libXext, libXi, libxcb
|
|
, libGL, glib, nss, nspr, expat, alsaLib
|
|
, qtbase, qtdeclarative, qtsvg, qtlocation, qtwebchannel, qtwebengine
|
|
}:
|
|
|
|
let
|
|
libPath = stdenv.lib.makeLibraryPath
|
|
[ libXrender libXrandr libXcursor libX11 libXext libXi libxcb
|
|
libGL glib nss nspr expat alsaLib
|
|
qtbase qtdeclarative qtsvg qtlocation qtwebchannel qtwebengine
|
|
];
|
|
in
|
|
stdenv.mkDerivation rec {
|
|
pname = "eagle";
|
|
version = "9.4.2";
|
|
|
|
src = fetchurl {
|
|
url = "https://eagle-updates.circuits.io/downloads/${builtins.replaceStrings ["."] ["_"] version}/Autodesk_EAGLE_${version}_English_Linux_64bit.tar.gz";
|
|
sha256 = "0lrwrvqcb91mcggmicvwjrngccsdy0f06l7a8nfgp9ckn4d9vmg2";
|
|
};
|
|
|
|
desktopItem = makeDesktopItem {
|
|
name = "eagle";
|
|
exec = "eagle";
|
|
icon = "eagle";
|
|
comment = "Schematic capture and PCB layout";
|
|
desktopName = "Eagle";
|
|
genericName = "Schematic editor";
|
|
categories = "Application;Development;";
|
|
};
|
|
|
|
buildInputs =
|
|
[ libXrender libXrandr libXcursor libX11 libXext libXi libxcb
|
|
libGL glib nss nspr expat alsaLib
|
|
qtbase qtdeclarative qtsvg qtlocation qtwebchannel qtwebengine
|
|
];
|
|
|
|
installPhase = ''
|
|
# Extract eagle tarball
|
|
mkdir "$out"
|
|
tar -xzf "$src" -C "$out"
|
|
|
|
# Install manpage
|
|
mkdir -p "$out"/share/man/man1
|
|
ln -s "$out"/eagle-${version}/doc/eagle.1 "$out"/share/man/man1/eagle.1
|
|
|
|
patchelf \
|
|
--set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
|
|
--set-rpath "${libPath}:$out/eagle-${version}/lib:${stdenv.cc.cc.lib}/lib" \
|
|
"$out"/eagle-${version}/eagle
|
|
|
|
mkdir -p "$out"/bin
|
|
ln -s "$out"/eagle-${version}/eagle "$out"/bin/eagle
|
|
|
|
# Remove bundled libraries that are available in nixpkgs
|
|
# TODO: There still may be unused bundled libraries
|
|
rm "$out"/eagle-${version}/lib/libQt5*.so.5
|
|
rm "$out"/eagle-${version}/lib/{libxcb-*.so.*,libX*.so.*,libxshmfence.so.1}
|
|
rm "$out"/eagle-${version}/lib/{libEGL.so.1,libglapi.so.0,libgbm.so.1}
|
|
|
|
# No longer needed (we don't use the bundled Qt libraries)
|
|
rm -r "$out"/eagle-${version}/libexec
|
|
rm -r "$out"/eagle-${version}/plugins
|
|
|
|
# Make desktop item
|
|
mkdir -p "$out"/share/applications
|
|
cp "$desktopItem"/share/applications/* "$out"/share/applications/
|
|
mkdir -p "$out"/share/icons
|
|
ln -s "$out/eagle-${version}/bin/eagle-logo.png" "$out"/share/icons/eagle.png
|
|
'';
|
|
|
|
meta = with stdenv.lib; {
|
|
description = "Schematic editor and PCB layout tool from Autodesk (formerly CadSoft)";
|
|
homepage = https://www.autodesk.com/products/eagle/overview;
|
|
license = licenses.unfree;
|
|
platforms = [ "x86_64-linux" ];
|
|
maintainers = [ maintainers.rittelle ];
|
|
};
|
|
}
|