about summary refs log tree commit diff
path: root/pkgs/applications
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/applications')
-rw-r--r--pkgs/applications/altcoins/ledger-live-desktop/default.nix50
-rw-r--r--pkgs/applications/audio/qjackctl/default.nix4
-rw-r--r--pkgs/applications/audio/qmidinet/default.nix4
-rw-r--r--pkgs/applications/audio/qsampler/default.nix4
-rw-r--r--pkgs/applications/graphics/freecad/default.nix4
-rw-r--r--pkgs/applications/misc/gallery-dl/default.nix4
-rw-r--r--pkgs/applications/misc/gkrellm/default.nix4
-rw-r--r--pkgs/applications/misc/jgmenu/default.nix4
-rw-r--r--pkgs/applications/misc/yubioath-desktop/default.nix4
-rw-r--r--pkgs/applications/networking/browsers/qutebrowser/default.nix27
-rw-r--r--pkgs/applications/networking/flexget/default.nix4
-rw-r--r--pkgs/applications/networking/instant-messengers/wire-desktop/default.nix6
-rw-r--r--pkgs/applications/office/homebank/default.nix4
-rw-r--r--pkgs/applications/radio/urh/default.nix13
-rw-r--r--pkgs/applications/science/electronics/eagle/eagle.nix4
-rw-r--r--pkgs/applications/science/math/gmsh/default.nix4
-rw-r--r--pkgs/applications/version-management/smartgithg/default.nix112
-rwxr-xr-xpkgs/applications/version-management/smartgithg/install_freedesktop_items.sh11
18 files changed, 173 insertions, 94 deletions
diff --git a/pkgs/applications/altcoins/ledger-live-desktop/default.nix b/pkgs/applications/altcoins/ledger-live-desktop/default.nix
new file mode 100644
index 000000000000..0417d2913de5
--- /dev/null
+++ b/pkgs/applications/altcoins/ledger-live-desktop/default.nix
@@ -0,0 +1,50 @@
+{ stdenv, fetchurl, makeDesktopItem, makeWrapper, appimage-run }:
+
+stdenv.mkDerivation rec {
+  pname = "ledger-live-desktop";
+  version = "1.12.0";
+
+  src = fetchurl {
+    url = "https://github.com/LedgerHQ/${pname}/releases/download/v${version}/${pname}-${version}-linux-x86_64.AppImage";
+    sha256 = "0sn0ri8kqvy36d6vjwsb0mh54nwic58416m6q5drl1schsn6wyvj";
+  };
+
+  nativeBuildInputs = [ makeWrapper ];
+  buildInputs = [ appimage-run ];
+
+  desktopIcon = fetchurl {
+    url = "https://raw.githubusercontent.com/LedgerHQ/${pname}/v${version}/build/icon.png";
+    sha256 = "1mmfaf0yk7xf1kgbs3ka8wsbz1qgh60xj6z91ica1i7lw2qbdd5h";
+  };
+
+  desktopItem = makeDesktopItem {
+    name = pname;
+    exec = "${placeholder "out"}/bin/${pname}";
+    icon = pname;
+    desktopName = "Ledger Live";
+    categories = "Utility;";
+  };
+
+  unpackPhase = ":";
+
+  installPhase = ''
+    runHook preInstall
+
+    ${desktopItem.buildCommand}
+    install -D $src $out/share/${src.name}
+    install -Dm -x ${desktopIcon} \
+      $out/share/icons/hicolor/1024x1024/apps/${pname}.png
+    makeWrapper ${appimage-run}/bin/appimage-run $out/bin/${pname} \
+      --add-flags $out/share/${src.name}
+
+    runHook postInstall
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Wallet app for Ledger Nano S and Ledger Blue";
+    homepage = "https://www.ledger.com/live";
+    license = licenses.mit;
+    maintainers = with maintainers; [ thedavidmeister ];
+    platforms = [ "x86_64-linux" ];
+  };
+}
diff --git a/pkgs/applications/audio/qjackctl/default.nix b/pkgs/applications/audio/qjackctl/default.nix
index fbb2f498c0b1..15901915201b 100644
--- a/pkgs/applications/audio/qjackctl/default.nix
+++ b/pkgs/applications/audio/qjackctl/default.nix
@@ -1,14 +1,14 @@
 { stdenv, fetchurl, pkgconfig, alsaLib, libjack2, dbus, qtbase, qttools, qtx11extras }:
 
 stdenv.mkDerivation rec {
-  version = "0.5.8";
+  version = "0.5.9";
   name = "qjackctl-${version}";
 
   # some dependencies such as killall have to be installed additionally
 
   src = fetchurl {
     url = "mirror://sourceforge/qjackctl/${name}.tar.gz";
-    sha256 = "1r5hf3hcr20n93jrrm7xk2zf6yx264pcr4d10cpybhrancxh602n";
+    sha256 = "1saywsda9m124rmjp7i3n0llryaliabjxhqhvqr6dm983qy7pypk";
   };
 
   buildInputs = [
diff --git a/pkgs/applications/audio/qmidinet/default.nix b/pkgs/applications/audio/qmidinet/default.nix
index b596e74a2649..16e76bb631c9 100644
--- a/pkgs/applications/audio/qmidinet/default.nix
+++ b/pkgs/applications/audio/qmidinet/default.nix
@@ -1,12 +1,12 @@
 { stdenv, fetchurl, pkgconfig, qt5, alsaLib, libjack2 }:
 
 stdenv.mkDerivation rec {
-  version = "0.5.4";
+  version = "0.5.5";
   name = "qmidinet-${version}";
 
   src = fetchurl {
     url = "mirror://sourceforge/qmidinet/${name}.tar.gz";
-    sha256 = "1il4b8v3azb33yg4fy78npi56xlkz4n60f17sgvckyxb2yj57jwq";
+    sha256 = "0az20hh14g7k6h779dk1b6fshxnfj2664sj6ypgllzriwv430x9y";
   };
 
   hardeningDisable = [ "format" ];
diff --git a/pkgs/applications/audio/qsampler/default.nix b/pkgs/applications/audio/qsampler/default.nix
index b09aa835c9f2..4e6df82a32a9 100644
--- a/pkgs/applications/audio/qsampler/default.nix
+++ b/pkgs/applications/audio/qsampler/default.nix
@@ -3,11 +3,11 @@
 
 stdenv.mkDerivation rec {
   name = "qsampler-${version}";
-  version = "0.5.5";
+  version = "0.5.6";
 
   src = fetchurl {
     url = "mirror://sourceforge/qsampler/${name}.tar.gz";
-    sha256 = "1li2p8zknrdr62wlaassfvgski0rlbr3lvrzywbh32dq8j50w8zf";
+    sha256 = "0lx2mzyajmjckwfvgf8p8bahzpj0n0lflyip41jk32nwd2hzjhbs";
   };
 
   nativeBuildInputs = [ autoconf automake libtool pkgconfig qttools ];
diff --git a/pkgs/applications/graphics/freecad/default.nix b/pkgs/applications/graphics/freecad/default.nix
index 8fc39ded6383..8f0fe00a85e4 100644
--- a/pkgs/applications/graphics/freecad/default.nix
+++ b/pkgs/applications/graphics/freecad/default.nix
@@ -9,11 +9,11 @@ let
   pythonPackages = python3Packages;
 in stdenv.mkDerivation rec {
   name = "freecad-${version}";
-  version = "0.18.2";
+  version = "0.18.3";
 
   src = fetchurl {
     url = "https://github.com/FreeCAD/FreeCAD/archive/${version}.tar.gz";
-    sha256 = "1r5rhaiq22yhrfpmcmzx6bflqj6q9asbyjyfja4x4rzfy9yh0a4v";
+    sha256 = "07j7azgnicmd8cqnyskp15y44ykgj5qqz5y3w1jdynrv3yrvk1kz";
   };
 
   nativeBuildInputs = [ cmake ninja pkgconfig pythonPackages.pyside2-tools ];
diff --git a/pkgs/applications/misc/gallery-dl/default.nix b/pkgs/applications/misc/gallery-dl/default.nix
index cb04be4b6ea9..1ce9bfb1f67a 100644
--- a/pkgs/applications/misc/gallery-dl/default.nix
+++ b/pkgs/applications/misc/gallery-dl/default.nix
@@ -2,11 +2,11 @@
 
 python3Packages.buildPythonApplication rec {
   pname = "gallery_dl";
-  version = "1.8.6";
+  version = "1.10.1";
 
   src = python3Packages.fetchPypi {
     inherit pname version;
-    sha256 = "0in47v6c82a6mqg4wzxrji7wd8a9qh5386rsr77s3a8613am1n2x";
+    sha256 = "174d2q7w0kwa6xx9k3bl5gdwmk0gklvch963g7vl979wqsf7nskw";
   };
 
   doCheck = false;
diff --git a/pkgs/applications/misc/gkrellm/default.nix b/pkgs/applications/misc/gkrellm/default.nix
index b4fac899f66f..f44cdd0bad72 100644
--- a/pkgs/applications/misc/gkrellm/default.nix
+++ b/pkgs/applications/misc/gkrellm/default.nix
@@ -4,11 +4,11 @@
 with stdenv.lib;
 
 stdenv.mkDerivation rec {
-  name = "gkrellm-2.3.10";
+  name = "gkrellm-2.3.11";
 
   src = fetchurl {
     url = "http://gkrellm.srcbox.net/releases/${name}.tar.bz2";
-    sha256 = "0rnpzjr0ys0ypm078y63q4aplcgdr5nshjzhmz330n6dmnxci7lb";
+    sha256 = "01lccz4fga40isv09j8rjgr0qy10rff9vj042n6gi6gdv4z69q0y";
   };
 
   nativeBuildInputs = [ pkgconfig which ];
diff --git a/pkgs/applications/misc/jgmenu/default.nix b/pkgs/applications/misc/jgmenu/default.nix
index 64c693092b03..879f344a5afb 100644
--- a/pkgs/applications/misc/jgmenu/default.nix
+++ b/pkgs/applications/misc/jgmenu/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "jgmenu";
-  version = "3.1";
+  version = "3.3";
 
   src = fetchFromGitHub {
     owner = "johanmalm";
     repo = pname;
     rev = "v${version}";
-    sha256 = "03lk89d6wvqv234qciksd4zm0z4lkvrxfh6r9ff0d8yzg67m7rd0";
+    sha256 = "02qpvlmcis7217hkqilhszza4g1smb4byx4gihgp5207aj8qhz0l";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/applications/misc/yubioath-desktop/default.nix b/pkgs/applications/misc/yubioath-desktop/default.nix
index 3d4718990cb8..843bc0c1c234 100644
--- a/pkgs/applications/misc/yubioath-desktop/default.nix
+++ b/pkgs/applications/misc/yubioath-desktop/default.nix
@@ -1,10 +1,10 @@
-{ stdenv, fetchurl
+{ stdenv, fetchurl, mkDerivation
 , qmake, qtbase, qtquickcontrols
 , python3, pyotherside
 , pcsclite, yubikey-personalization
 , yubikey-manager, makeWrapper }:
 
-stdenv.mkDerivation rec {
+mkDerivation rec {
   pname = "yubioath-desktop";
   version = "4.3.6";
 
diff --git a/pkgs/applications/networking/browsers/qutebrowser/default.nix b/pkgs/applications/networking/browsers/qutebrowser/default.nix
index 5283d2e3c5df..05eafb48e721 100644
--- a/pkgs/applications/networking/browsers/qutebrowser/default.nix
+++ b/pkgs/applications/networking/browsers/qutebrowser/default.nix
@@ -1,5 +1,5 @@
 { stdenv, lib, fetchurl, fetchzip, python3Packages
-, makeWrapper, wrapGAppsHook, qtbase, glib-networking
+, mkDerivationWith, wrapQtAppsHook, wrapGAppsHook, qtbase, glib-networking
 , asciidoc, docbook_xml_dtd_45, docbook_xsl, libxml2
 , libxslt, gst_all_1 ? null
 , withPdfReader        ? true
@@ -10,23 +10,23 @@ assert withMediaPlayback -> gst_all_1 != null;
 
 let
   pdfjs = let
-    version = "1.10.100";
+    version = "2.1.266";
   in
   fetchzip rec {
     name = "pdfjs-${version}";
     url = "https://github.com/mozilla/pdf.js/releases/download/v${version}/${name}-dist.zip";
-    sha256 = "04df4cf6i6chnggfjn6m1z9vb89f01a0l9fj5rk21yr9iirq9rkq";
+    sha256 = "1ybbnpz2jcdikzwr7r13lq528vxj3bpms1fqmg3n1zgs30cqpkby";
     stripRoot = false;
   };
 
-in python3Packages.buildPythonApplication rec {
+in mkDerivationWith python3Packages.buildPythonApplication rec {
   pname = "qutebrowser";
-  version = "1.6.3";
+  version = "1.7.0";
 
   # the release tarballs are different from the git checkout!
   src = fetchurl {
     url = "https://github.com/qutebrowser/qutebrowser/releases/download/v${version}/${pname}-${version}.tar.gz";
-    sha256 = "0z9an14vlv0r48x7fk0mk7465gnhh19dx1w63lyhsgnfqy5pzlhy";
+    sha256 = "0wyjmb2qvnw3gn0ypgckwblmn7kasi12dfwp343hi6wscqripw7i";
   };
 
   # Needs tox
@@ -41,7 +41,7 @@ in python3Packages.buildPythonApplication rec {
   ]);
 
   nativeBuildInputs = [
-    makeWrapper wrapGAppsHook asciidoc
+    wrapQtAppsHook wrapGAppsHook asciidoc
     docbook_xml_dtd_45 docbook_xsl libxml2 libxslt
   ];
 
@@ -57,6 +57,9 @@ in python3Packages.buildPythonApplication rec {
     ./fix-restart.patch
   ];
 
+  dontWrapGApps = true;
+  dontWrapQtApps = true;
+
   postPatch = ''
     substituteInPlace qutebrowser/app.py --subst-var-by qutebrowser "$out/bin/qutebrowser"
 
@@ -71,8 +74,8 @@ in python3Packages.buildPythonApplication rec {
 
   postInstall = ''
     install -Dm644 doc/qutebrowser.1 "$out/share/man/man1/qutebrowser.1"
-    install -Dm644 misc/qutebrowser.desktop \
-        "$out/share/applications/qutebrowser.desktop"
+    install -Dm644 misc/org.qutebrowser.qutebrowser.desktop \
+        "$out/share/applications/org.qutebrowser.qutebrowser.desktop"
 
     # Install icons
     for i in 16 24 32 48 64 128 256 512; do
@@ -95,6 +98,12 @@ in python3Packages.buildPythonApplication rec {
     done
   '';
 
+  postFixup = ''
+    wrapProgram $out/bin/qutebrowser \
+      "''${gappsWrapperArgs[@]}" \
+      "''${qtWrapperArgs[@]}"
+  '';
+
   meta = with stdenv.lib; {
     homepage    = https://github.com/The-Compiler/qutebrowser;
     description = "Keyboard-focused browser with a minimal GUI";
diff --git a/pkgs/applications/networking/flexget/default.nix b/pkgs/applications/networking/flexget/default.nix
index 1833e641a075..f990f8de5291 100644
--- a/pkgs/applications/networking/flexget/default.nix
+++ b/pkgs/applications/networking/flexget/default.nix
@@ -24,11 +24,11 @@ with python'.pkgs;
 
 buildPythonApplication rec {
   pname = "FlexGet";
-  version = "2.21.8";
+  version = "2.21.15";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0a3dz013xxlwxz94i243bahw15k5y45mgk0z1zgkp1xrbiwglwvc";
+    sha256 = "0p1pa5l9apd40mdlgzp9vfpd8x9laqiah2i8l3q9m6nnibk1ipx8";
   };
 
   postPatch = ''
diff --git a/pkgs/applications/networking/instant-messengers/wire-desktop/default.nix b/pkgs/applications/networking/instant-messengers/wire-desktop/default.nix
index 69b8ae9ee0ce..10b7eb7d439f 100644
--- a/pkgs/applications/networking/instant-messengers/wire-desktop/default.nix
+++ b/pkgs/applications/networking/instant-messengers/wire-desktop/default.nix
@@ -13,17 +13,19 @@ let
 
   inherit (stdenv.hostPlatform) system;
 
+  throwSystem = throw "Unsupported system: ${system}";
+
   pname = "wire-desktop";
 
   version = {
     "x86_64-linux" = "3.9.2895";
     "x86_64-darwin" = "3.9.2943";
-  }.${system} or "";
+  }.${system} or throwSystem;
 
   sha256 = {
     "x86_64-linux" = "0wrn95m64j4b7ym44h9zawq13kg4m12aixlyyzp56bfyczmjq4a5";
     "x86_64-darwin" = "1y1bzsjmjrj518q29xfx6gg1nhdbaz7y5hzaqrp241az6plp090k";
-  }.${system};
+  }.${system} or throwSystem;
 
   meta = with stdenv.lib; {
     description = "A modern, secure messenger for everyone";
diff --git a/pkgs/applications/office/homebank/default.nix b/pkgs/applications/office/homebank/default.nix
index 9f45a70e8b8d..727a68c440a2 100644
--- a/pkgs/applications/office/homebank/default.nix
+++ b/pkgs/applications/office/homebank/default.nix
@@ -2,10 +2,10 @@
 , hicolor-icon-theme, libsoup, gnome3 }:
 
 stdenv.mkDerivation rec {
-  name = "homebank-5.2.6";
+  name = "homebank-5.2.7";
   src = fetchurl {
     url = "http://homebank.free.fr/public/${name}.tar.gz";
-    sha256 = "10cqii1bsc7dmg8nzj6xhmk44r390vca49vbsw4g504h0bvwn54s";
+    sha256 = "0pzbn0wlppwbap19isbv8vv3cq7xswladhc272ykaya78r1bxvcf";
   };
 
   nativeBuildInputs = [ pkgconfig wrapGAppsHook ];
diff --git a/pkgs/applications/radio/urh/default.nix b/pkgs/applications/radio/urh/default.nix
index 48c20ecca475..a1b92e7e4e18 100644
--- a/pkgs/applications/radio/urh/default.nix
+++ b/pkgs/applications/radio/urh/default.nix
@@ -1,5 +1,6 @@
-{ stdenv, fetchFromGitHub, python3Packages
-, hackrf, rtl-sdr, airspy, limesuite }:
+{ stdenv, lib, fetchFromGitHub, python3Packages
+, hackrf, rtl-sdr, airspy, limesuite, libiio
+, USRPSupport ? false, uhd }:
 
 python3Packages.buildPythonApplication rec {
   pname = "urh";
@@ -12,14 +13,16 @@ python3Packages.buildPythonApplication rec {
     sha256 = "1jrrj9c4ddm37m8j0g693xjimpnlvx7lan5kxish5p14xpwdak35";
   };
 
-  buildInputs = [ hackrf rtl-sdr airspy limesuite ];
+  buildInputs = [ hackrf rtl-sdr airspy limesuite libiio ]
+    ++ lib.optional USRPSupport uhd;
+
   propagatedBuildInputs = with python3Packages; [
-    pyqt5 numpy psutil cython pyzmq
+    pyqt5 numpy psutil cython pyzmq pyaudio
   ];
 
   doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/jopohl/urh";
     description = "Universal Radio Hacker: investigate wireless protocols like a boss";
     license = licenses.gpl3;
diff --git a/pkgs/applications/science/electronics/eagle/eagle.nix b/pkgs/applications/science/electronics/eagle/eagle.nix
index 90b7db4b545c..ba1b9e174bea 100644
--- a/pkgs/applications/science/electronics/eagle/eagle.nix
+++ b/pkgs/applications/science/electronics/eagle/eagle.nix
@@ -13,11 +13,11 @@ let
   in
   stdenv.mkDerivation rec {
     name = "eagle-${version}";
-    version = "9.4.1";
+    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 = "0p3kxryvk853rx24phcadvmqn6f37rnnql8sf6cqn9cqhrrkbvlq";
+      sha256 = "0lrwrvqcb91mcggmicvwjrngccsdy0f06l7a8nfgp9ckn4d9vmg2";
     };
 
     desktopItem = makeDesktopItem {
diff --git a/pkgs/applications/science/math/gmsh/default.nix b/pkgs/applications/science/math/gmsh/default.nix
index 1a3ba8096e29..fbdbac003dcd 100644
--- a/pkgs/applications/science/math/gmsh/default.nix
+++ b/pkgs/applications/science/math/gmsh/default.nix
@@ -1,14 +1,14 @@
 { stdenv, fetchurl, cmake, openblasCompat, gfortran, gmm, fltk, libjpeg
 , zlib, libGLU_combined, libGLU, xorg }:
 
-let version = "4.4.0"; in
+let version = "4.4.1"; in
 
 stdenv.mkDerivation {
   name = "gmsh-${version}";
 
   src = fetchurl {
     url = "http://gmsh.info/src/gmsh-${version}-source.tgz";
-    sha256 = "0b0h15cmi6zy31cii7r9jmfm9xksljff255dn6l9frhdjymkmx7l";
+    sha256 = "1p7hibmsgv961lfkzdxlgcvmcb0q155m2sp60r97cjsfzhw68g45";
   };
 
   buildInputs = [ openblasCompat gmm fltk libjpeg zlib libGLU_combined
diff --git a/pkgs/applications/version-management/smartgithg/default.nix b/pkgs/applications/version-management/smartgithg/default.nix
index 38c3da220c92..5c9b5a83c186 100644
--- a/pkgs/applications/version-management/smartgithg/default.nix
+++ b/pkgs/applications/version-management/smartgithg/default.nix
@@ -1,64 +1,90 @@
-{ stdenv, fetchurl, lib, makeWrapper
-, substituteAll
+{ stdenv
+, fetchurl
+, makeDesktopItem
 , jre
-, gtk2, glib
+, gtk3
+, glib
+, gnome3
+, wrapGAppsHook
+, hicolor-icon-theme
 , libXtst
 , which
 }:
 
 stdenv.mkDerivation rec {
-  name = "smartgithg-${version}";
-  version = "18.2.4";
+  pname = "smartgithg";
+  version = "18.2.9";
 
   src = fetchurl {
     url = "https://www.syntevo.com/downloads/smartgit/smartgit-linux-${builtins.replaceStrings [ "." ] [ "_" ] version}.tar.gz";
-    sha256 = "0ch6vcvndn1fpx05ym9yp2ssfw2af6ac0pw8ssvjkc676zc0jr73";
+    sha256 = "0d08awb2s3w1w8n8048abw2x4wnqhfx96sls9kdsnxj0xrszgz67";
   };
 
-  nativeBuildInputs = [ makeWrapper ];
+  nativeBuildInputs = [ wrapGAppsHook ];
 
-  buildInputs = [ jre ];
+  buildInputs = [ jre gnome3.adwaita-icon-theme hicolor-icon-theme gtk3 ];
 
-  buildCommand = let
-    pkg_path = "$out/${name}";
-    bin_path = "$out/bin";
-    install_freedesktop_items = substituteAll {
-      inherit (stdenv) shell;
-      isExecutable = true;
-      src = ./install_freedesktop_items.sh;
-    };
-    runtime_paths = lib.makeBinPath [
-      jre
-      #git mercurial subversion # the paths are requested in configuration
-      which
-    ];
-    runtime_lib_paths = lib.makeLibraryPath [
-      gtk2 glib
-      libXtst
-    ];
-  in ''
-    tar xvzf $src
-    mkdir -pv $out
-    mkdir -pv ${pkg_path}
-    # unpacking should have produced a dir named 'smartgit'
-    cp -a smartgit/* ${pkg_path}
-    # prevent using packaged jre
-    rm -r ${pkg_path}/jre
-    mkdir -pv ${bin_path}
-    jre=${jre.home}
-    makeWrapper ${pkg_path}/bin/smartgit.sh ${bin_path}/smartgit \
-      --prefix PATH : ${runtime_paths} \
-      --prefix LD_LIBRARY_PATH : ${runtime_lib_paths} \
+  preFixup = with stdenv.lib; ''
+    gappsWrapperArgs+=( \
+      --prefix PATH : ${makeBinPath [ jre which ]} \
+      --prefix LD_LIBRARY_PATH : ${makeLibraryPath [
+        gtk3
+        glib
+        libXtst
+      ]} \
       --prefix JRE_HOME : ${jre} \
       --prefix JAVA_HOME : ${jre} \
-      --prefix SMARTGITHG_JAVA_HOME : ${jre}
-    sed -i '/ --login/d' ${pkg_path}/bin/smartgit.sh
-    patchShebangs $out
-    cp ${bin_path}/smartgit ${bin_path}/smartgithg
+      --prefix SMARTGITHG_JAVA_HOME : ${jre} \
+    ) \
+  '';
+
+  installPhase = ''
+    runHook preInstall
+
+    sed -i '/ --login/d' bin/smartgit.sh
+    mkdir -pv $out/{bin,share/applications,share/icons/hicolor/scalable/apps/}
+    cp -av ./{dictionaries,lib} $out/
+    cp -av bin/smartgit.sh $out/bin/smartgit
+    ln -sfv $out/bin/smartgit $out/bin/smartgithg
+
+    cp -av $desktopItem/share/applications/* $out/share/applications/
+    for icon_size in 32 48 64 128 256; do
+        path=$icon_size'x'$icon_size
+        icon=bin/smartgit-$icon_size.png
+        mkdir -p $out/share/icons/hicolor/$path/apps
+        cp $icon $out/share/icons/hicolor/$path/apps/smartgit.png
+    done
 
-    ${install_freedesktop_items} "${pkg_path}/bin" "$out"
+    cp -av bin/smartgit.svg $out/share/icons/hicolor/scalable/apps/
+
+    runHook postInstall
   '';
 
+  desktopItem = with stdenv.lib; makeDesktopItem rec {
+    name = "smartgit";
+    exec = "smartgit";
+    comment = meta.description;
+    icon = "smartgit";
+    desktopName = "SmartGit";
+    categories = concatStringsSep ";" [
+      "Application"
+      "Development"
+      "RevisionControl"
+    ];
+    mimeType = concatStringsSep ";" [
+      "x-scheme-handler/git"
+      "x-scheme-handler/smartgit"
+      "x-scheme-handler/sourcetree"
+    ];
+    startupNotify = "true";
+    extraEntries = ''
+      Keywords=git
+      StartupWMClass=${name}
+      Version=1.0
+      Encoding=UTF-8
+    '';
+  };
+
   meta = with stdenv.lib; {
     description = "GUI for Git, Mercurial, Subversion";
     homepage = http://www.syntevo.com/smartgit/;
diff --git a/pkgs/applications/version-management/smartgithg/install_freedesktop_items.sh b/pkgs/applications/version-management/smartgithg/install_freedesktop_items.sh
deleted file mode 100755
index 2ff14dcf0993..000000000000
--- a/pkgs/applications/version-management/smartgithg/install_freedesktop_items.sh
+++ /dev/null
@@ -1,11 +0,0 @@
-#!@shell@
-
-inBinDir=$1
-out=$2
-
-cat $inBinDir/add-menuitem.sh | \
-sed -re 's#xdg-icon-resource[ ]+install[ ]+--size[ ]+([0-9]+)[ ]+("[^"]+")[ ]+([$0-9a-zA-Z_]+)#mkdir -p '${out}'/share/icons/hicolor/\1x\1/apps \&\& cp \2 '${out}'/share/icons/hicolor/\1x\1/apps/\3\.png #' | \
-sed -re 's#xdg-desktop-menu[ ]+install[ ]+([$0-9a-zA-Z_]+)#mkdir -p '${out}'/share/applications \&\& cp \1 '${out}'/share/applications/#' | \
-sed -re 's#Exec="[^"]+"#Exec=smartgit#' |
-sed -re 's#SMARTGIT_BIN=.*#'SMARTGIT_BIN=${inBinDir}'#' \
-| bash