diff options
Diffstat (limited to 'nixpkgs/pkgs/applications/graphics/pencil/default.nix')
-rw-r--r-- | nixpkgs/pkgs/applications/graphics/pencil/default.nix | 106 |
1 files changed, 106 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/applications/graphics/pencil/default.nix b/nixpkgs/pkgs/applications/graphics/pencil/default.nix new file mode 100644 index 000000000000..edd923822ea3 --- /dev/null +++ b/nixpkgs/pkgs/applications/graphics/pencil/default.nix @@ -0,0 +1,106 @@ +{ stdenv, fetchurl, lib, makeWrapper, wrapGAppsHook, + # build dependencies + alsaLib, atk, at-spi2-atk, at-spi2-core, cairo, cups, dbus, expat, fontconfig, + freetype, gdk-pixbuf, glib, glibc, gtk3, libuuid, nspr, nss, pango, + xorg, systemd +}: +let + + deps = [ + alsaLib + atk + at-spi2-atk + at-spi2-core + cairo + cups + dbus + expat + fontconfig + freetype + gdk-pixbuf + glib + glibc + gtk3 + libuuid + nspr + nss + pango + xorg.libX11 + xorg.libxcb + xorg.libXScrnSaver + xorg.libXcomposite + xorg.libXcursor + xorg.libXdamage + xorg.libXext + xorg.libXfixes + xorg.libXi + xorg.libXrandr + xorg.libXrender + xorg.libXtst + stdenv.cc.cc.lib + stdenv.cc.cc + ]; + +in stdenv.mkDerivation rec { + version = "3.1.0"; + pname = "pencil"; + + src = fetchurl { + url = "http://pencil.evolus.vn/dl/V${version}.ga/pencil_${version}.ga_amd64.deb"; + sha256 = "01ae54b1a1351b909eb2366c6ec00816e1deba370e58f35601cf7368f10aaba3"; + }; + + sourceRoot = "."; + + unpackCmd = '' + ar p "$src" data.tar.gz | tar xz + ''; + + dontBuild = true; + + nativeBuildInputs = [ makeWrapper wrapGAppsHook ]; + + buildInputs = deps; + + installPhase = '' + mkdir -p $out/bin $out/opt $out/share/applications + cp -R usr/share $out/ + cp -R opt/pencil*/ $out/opt/pencil + cp $out/opt/pencil/pencil.desktop $out/share/applications/ + + # fix the path in the desktop file + substituteInPlace \ + $out/share/applications/pencil.desktop \ + --replace /opt/ $out/opt/ + + # symlink the binary to bin/ + ln -s $out/opt/pencil/pencil $out/bin/pencil + ''; + + + preFixup = let + packages = deps; + libPathNative = lib.makeLibraryPath packages; + libPath64 = lib.makeSearchPathOutput "lib" "lib64" packages; + libPath = "${libPathNative}:${libPath64}"; + in '' + # patch executable + patchelf \ + --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \ + --set-rpath "${libPath}:$out/opt/pencil" \ + $out/opt/pencil/pencil + + # fix missing libudev + ln -s ${systemd.lib}/lib/libudev.so.1 $out/opt/pencil/libudev.so.1 + wrapProgram $out/opt/pencil/pencil \ + --prefix LD_LIBRARY_PATH : $out/opt/pencil + ''; + + meta = with stdenv.lib; { + description = "GUI prototyping/mockup tool"; + homepage = "https://pencil.evolus.vn/"; + license = licenses.gpl2; # Commercial license is also available + maintainers = with maintainers; [ bjornfor prikhi mrVanDalo ]; + platforms = platforms.linux; + }; +} |