From 9715f747088452235149bda1742d5c24012d21b9 Mon Sep 17 00:00:00 2001 From: Ram Kromberg Date: Fri, 16 Sep 2016 23:57:59 +0300 Subject: [PATCH] mlterm: fix cairo and multiple other features --- pkgs/applications/misc/mlterm/default.nix | 72 +++++++++++++++++++---- pkgs/top-level/all-packages.nix | 4 +- 2 files changed, 64 insertions(+), 12 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; }; } diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 52b90a21a2fb..baf0ce3ed70c 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -15604,7 +15604,9 @@ in xterm = callPackage ../applications/misc/xterm { }; mlterm = callPackage ../applications/misc/mlterm { - vte = gnome3.vte_290; + vte = gnome3.vte; + libssh2 = null; + openssl = null; }; finalterm = callPackage ../applications/misc/finalterm { };