summary refs log tree commit diff
path: root/pkgs/applications/misc/mlterm
diff options
context:
space:
mode:
authorRam Kromberg <ramkromberg@mail.com>2016-09-16 23:57:59 +0300
committerRam Kromberg <ramkromberg@mail.com>2016-09-17 05:28:08 +0300
commit9715f747088452235149bda1742d5c24012d21b9 (patch)
tree5a8dd43fa78e11ec8e7c2b9362cc2e5def751fce /pkgs/applications/misc/mlterm
parent772d14d8c243c8076ca71f202d0c71546e94ae19 (diff)
downloadnixlib-9715f747088452235149bda1742d5c24012d21b9.tar
nixlib-9715f747088452235149bda1742d5c24012d21b9.tar.gz
nixlib-9715f747088452235149bda1742d5c24012d21b9.tar.bz2
nixlib-9715f747088452235149bda1742d5c24012d21b9.tar.lz
nixlib-9715f747088452235149bda1742d5c24012d21b9.tar.xz
nixlib-9715f747088452235149bda1742d5c24012d21b9.tar.zst
nixlib-9715f747088452235149bda1742d5c24012d21b9.zip
mlterm: fix cairo and multiple other features
Diffstat (limited to 'pkgs/applications/misc/mlterm')
-rw-r--r--pkgs/applications/misc/mlterm/default.nix72
1 files changed, 61 insertions, 11 deletions
diff --git a/pkgs/applications/misc/mlterm/default.nix b/pkgs/applications/misc/mlterm/default.nix
index 6d84ef422964..9fa112375c52 100644
--- a/pkgs/applications/misc/mlterm/default.nix
+++ b/pkgs/applications/misc/mlterm/default.nix
@@ -1,5 +1,8 @@
-{ stdenv, fetchurl, pkgconfig, autoconf
-, libX11, gdk_pixbuf, cairo, libXft, gtk3, vte, fribidi, libssh2
+{ stdenv, fetchurl, pkgconfig, autoconf, makeDesktopItem
+, libX11, gdk_pixbuf, cairo, libXft, gtk3, vte
+, harfbuzz #substituting glyphs with opentype fonts
+, fribidi, m17n_lib #bidi and encoding
+, openssl, libssh2 #build-in ssh
 }:
 
 stdenv.mkDerivation rec {
@@ -13,11 +16,13 @@ stdenv.mkDerivation rec {
 
   nativeBuildInputs = [ pkgconfig autoconf ];
   buildInputs = [
-    libX11 gdk_pixbuf.dev cairo libXft gtk3 vte fribidi libssh2
+    libX11 gdk_pixbuf.dev cairo libXft gtk3 vte
+    harfbuzz fribidi m17n_lib openssl libssh2
   ];
 
+  #bad configure.ac and Makefile.in everywhere
   preConfigure = ''
-    sed -ie 's#-L/usr/local/lib -R/usr/local/lib##g' \
+    sed -ie 's;-L/usr/local/lib -R/usr/local/lib;;g' \
       xwindow/libtype/Makefile.in \
       main/Makefile.in \
       tool/mlfc/Makefile.in \
@@ -26,24 +31,69 @@ stdenv.mkDerivation rec {
       xwindow/libotl/Makefile.in
     sed -ie 's;cd ..srcdir. && rm -f ...lang..gmo.*;;g' \
       tool/mlconfig/po/Makefile.in.in
+    #utmp and mlterm-fb
+    substituteInPlace configure.in \
+      --replace "-m 2755 -g utmp" " " \
+      --replace "-m 4755 -o root" " "
+    substituteInPlace configure \
+      --replace "-m 2755 -g utmp" " " \
+      --replace "-m 4755 -o root" " "
   '';
+  NIX_LDFLAGS = "
+    -L${stdenv.cc.cc.lib}/lib
+    -lX11 -lgdk_pixbuf-2.0 -lcairo -lfontconfig -lfreetype -lXft
+    -lvte-2.91 -lgtk-3 -lharfbuzz -lfribidi -lm17n
+  " + stdenv.lib.optionalString (openssl != null) "
+    -lcrypto
+  " + stdenv.lib.optionalString (libssh2 != null) "
+    -lssh2
+  ";
 
   configureFlags = [
     "--with-x=yes"
-    "--with-gtk=3.0"
-    "--with-imagelib=gdk-pixbuf"
-    "--with-gui=xlib"
+    "--with-gui=xlib,fb"
+    "--with-imagelib=gdk-pixbuf" #or mlimgloader depending on your bugs of choice
     "--with-type-engines=cairo,xft,xcore"
-    "--enable-ind"
-    "--enable-fribidi"
+    "--with-gtk=3.0"
+    "--enable-ind" #indic scripts
+    "--enable-fribidi" #bidi scripts
+    "--enable-m17nlib" #character encodings
     "--with-tools=mlclient,mlconfig,mlcc,mlterm-menu,mlimgloader,registobmp,mlfc"
-    "--disable-utmp"
+     #mlterm-menu and mlconfig depend on enabling gnome3.at-spi2-core
+     #and configuring ~/.mlterm/key correctly.
+ ] ++ stdenv.lib.optional (libssh2 == null) [
+    "--disable-ssh2"
  ];
 
+  postInstall = ''
+    mkdir -p "$out/share/icons/hicolor/scalable/apps"
+    cp contrib/icon/mlterm-icon.svg "$out/share/icons/hicolor/scalable/apps/mlterm.svg"
+
+    mkdir -p "$out/share/icons/hicolor/48x48/apps"
+    cp contrib/icon/mlterm-icon-gnome2.png "$out/share/icons/hicolor/48x48/apps/mlterm.png"
+
+    mkdir -p "$out/share/applications"
+    cp $desktopItem/share/applications/* $out/share/applications
+  '';
+
+  desktopItem = makeDesktopItem rec {
+    name = "mlterm";
+    exec = "mlterm %U";
+    icon = "mlterm";
+    type = "Application";
+    comment = "Terminal emulator";
+    desktopName = "mlterm";
+    genericName = "Terminal emulator";
+    categories = stdenv.lib.concatStringsSep ";" [
+      "Application" "System" "TerminalEmulator"
+    ];
+    startupNotify = "false";
+  };
+
   meta = with stdenv.lib; {
     homepage = https://sourceforge.net/projects/mlterm/;
     license = licenses.bsd2;
-    maintainers = with maintainers; [ vrthra ];
+    maintainers = with maintainers; [ vrthra ramkromberg ];
     platforms = with platforms; linux;
   };
 }