Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

mlterm: darwin support #102226

Merged
merged 3 commits into from Nov 7, 2020
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
56 changes: 40 additions & 16 deletions pkgs/applications/terminal-emulators/mlterm/default.nix
@@ -1,10 +1,11 @@
{ stdenv, fetchurl, pkgconfig, autoconf, makeDesktopItem
{ stdenv, lib, 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
, fcitx, ibus, uim #IME
, wrapGAppsHook #color picker in mlconfig
, Cocoa #Darwin
}:

stdenv.mkDerivation rec {
Expand All @@ -18,9 +19,25 @@ stdenv.mkDerivation rec {

nativeBuildInputs = [ pkgconfig autoconf wrapGAppsHook ];
buildInputs = [
libX11 gdk-pixbuf.dev cairo libXft gtk3 vte
harfbuzz fribidi m17n_lib openssl libssh2
fcitx ibus uim
libX11
gdk-pixbuf.dev
cairo
libXft
gtk3
harfbuzz
fribidi
] ++ lib.optionals (!stdenv.isDarwin) [
# need linker magic, not adapted for Darwin yet
openssl
libssh2

# Not supported on Darwin
vte
m17n_lib

fcitx
ibus
uim
];

#bad configure.ac and Makefile.in everywhere
Expand All @@ -42,34 +59,41 @@ stdenv.mkDerivation rec {
--replace "-m 2755 -g utmp" " " \
--replace "-m 4755 -o root" " "
'';
NIX_LDFLAGS = "
NIX_LDFLAGS = lib.optionalString (!stdenv.isDarwin) "
-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) "
" + lib.optionalString (openssl != null) "
-lcrypto
" + stdenv.lib.optionalString (libssh2 != null) "
" + lib.optionalString (libssh2 != null) "
-lssh2
";

configureFlags = [
"--with-x=yes"
"--with-gui=xlib,fb"
"--with-imagelib=gdk-pixbuf" #or mlimgloader depending on your bugs of choice
"--with-type-engines=cairo,xft,xcore"
"--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"
#mlterm-menu and mlconfig depend on enabling gnome3.at-spi2-core
#and configuring ~/.mlterm/key correctly.
] ++ stdenv.lib.optional (libssh2 == null) "--disable-ssh2";
] ++ lib.optionals (!stdenv.isDarwin) [
"--with-x=yes"
"--with-gui=xlib,fb"
"--enable-m17nlib" #character encodings
] ++ lib.optionals stdenv.isDarwin [
"--with-gui=quartz"
] ++ lib.optionals (libssh2 == null) [ " --disable-ssh2" ];

postInstall = ''
install -D contrib/icon/mlterm-icon.svg "$out/share/icons/hicolor/scalable/apps/mlterm.svg"
install -D contrib/icon/mlterm-icon-gnome2.png "$out/share/icons/hicolor/48x48/apps/mlterm.png"
install -D -t $out/share/applications $desktopItem/share/applications/*
'' + lib.optionalString stdenv.isDarwin ''
mkdir -p $out/Applications/
cp -a cocoa/mlterm.app $out/Applications/
install $out/bin/mlterm -Dt $out/Applications/mlterm.app/Contents/MacOS/
'';

desktopItem = makeDesktopItem {
Expand All @@ -80,17 +104,17 @@ stdenv.mkDerivation rec {
comment = "Terminal emulator";
desktopName = "mlterm";
genericName = "Terminal emulator";
categories = stdenv.lib.concatStringsSep ";" [
categories = lib.concatStringsSep ";" [
"Application" "System" "TerminalEmulator"
];
startupNotify = "false";
};

meta = with stdenv.lib; {
description = "Multi Lingual TERMinal emulator on X11";
meta = with lib; {
description = "Multi Lingual TERMinal emulator";
homepage = "http://mlterm.sourceforge.net/";
license = licenses.bsd3;
maintainers = with maintainers; [ vrthra ramkromberg ];
platforms = with platforms; linux;
maintainers = with maintainers; [ vrthra ramkromberg atemu ];
platforms = with platforms; linux ++ darwin;
};
}
1 change: 1 addition & 0 deletions pkgs/top-level/all-packages.nix
Expand Up @@ -722,6 +722,7 @@ in
mlterm = callPackage ../applications/terminal-emulators/mlterm {
libssh2 = null;
openssl = null;
inherit (darwin.apple_sdk.frameworks) Cocoa;
};

mrxvt = callPackage ../applications/terminal-emulators/mrxvt { };
Expand Down