File mlterm.spec of Package mlterm

#
# spec file for package mlterm
#
# Copyright (c) 2025 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.

# Please submit bugfixes or comments via https://bugs.opensuse.org/
#


%global _configure ../configure
%if 0%{?sle_version} && 0%{?sle_version} < 150500
%global do_wayland 0
%global flavors with-gui=sdl2 with-gtk=3.0
%else
%global do_wayland 1
%global flavors with-gui=wayland with-gui=sdl2 with-gtk=3.0
%bcond_with scim
%bcond_with uim
%endif
Name:           mlterm
Version:        3.9.4
Release:        0
Summary:        Multilingual Terminal Emulator for X and Wayland
License:        BSD-3-Clause
Group:          System/X11/Terminals
URL:            https://mlterm.sourceforge.net/
Source0:        http://downloads.sourceforge.net/project/mlterm/01release/%{name}-%{version}/%{name}-%{version}.tar.gz
Source1:        %{name}.desktop
Patch0:         etc.patch
# https://github.com/arakiken/mlterm/commit/da9db7673ab7f5a9111533f7db7db2720643b35f
Patch1:         mlterm-gcc15.patch
BuildRequires:  ccache
BuildRequires:  coreutils
BuildRequires:  gcc-c++
BuildRequires:  pkgconfig
%if %{with scim}
BuildRequires:  scim-devel
%endif
%if %{with uim}
BuildRequires:  uim-devel
%endif
#BuildRequires:  translate-suse-desktop
BuildRequires:  pkgconfig(cairo)
BuildRequires:  pkgconfig(fontconfig)
BuildRequires:  pkgconfig(fribidi)
BuildRequires:  pkgconfig(gail)
BuildRequires:  pkgconfig(gdk-pixbuf-2.0)
BuildRequires:  pkgconfig(gtk+-3.0)
BuildRequires:  pkgconfig(harfbuzz)
BuildRequires:  pkgconfig(ibus-1.0)
BuildRequires:  pkgconfig(libssh2)
BuildRequires:  pkgconfig(m17n-core)
BuildRequires:  pkgconfig(sdl2)
BuildRequires:  pkgconfig(vte-2.91)
BuildRequires:  pkgconfig(wordcut)
BuildRequires:  pkgconfig(x11)
BuildRequires:  pkgconfig(xkbcommon)
Requires:       %{name}-common = %{version}-%{release}
Provides:       locale(xorg-x11:ja;ko;zh;ar;he)
Recommends:     %{name}-lang = %{version}
%if 0%{?sle_version} && 0%{?sle_version} <= 150400
BuildRequires:  pkgconfig(fcitx)
%else
BuildRequires:  pkgconfig(Fcitx5Core)
BuildRequires:  pkgconfig(Fcitx5GClient)
%endif
%if %{do_wayland}
BuildRequires:  pkgconfig(wayland-client)
%endif

%description
Mlterm is a multilingual terminal emulator for the X Window System and Wayland.

Multilingual features:

supported charsets: US_ASCII, ISO8859[1-11], ISO8859[13-16], TCVN5712,
VISCII, KOI8_R, KOI8_U, JISX0201, JISX0208, JISX0212, JISX0213, GB2312,
GBK, KSC5601, UHC, CNS11643-N, Big5, UCS2(4)

supported encodings: ISO-8859-[1-11], ISO-8859- [13-16], TCVN5612,
VISCII, KOI8_R, KOI8_U, EUC-JP, EUC-JISX0213, ISO-2022-JP [1, 2, 3],
Shift_JIS, Shift_JISX0213, EUC-KR, UHC, JOHAB, ISO-2022-KR,
ISO-2022-CN, GB2312(EUC-CN), GBK, GB18030, EUC-TW, Big5, Hz, UTF-8

character composition: TIS620, TCVN5712, JISX0213, UNICODE

Multiple IMs are also supported and you can dynamically change various
IMs.

Other features:
* scroll by wheel mouse
* antialias font (requires Xft and Xrender extensions)
* proportional font
* transparent background
* background image (requires Imlib)
* multiple pty windows
* scrollbar plug-in API (unstable)

%lang_package

%package common
Summary:        Multilingual Terminal Emulator common files
Group:          System/Terminals
Conflicts:      %{name} < %{version}-%{release}
%if 0%{?suse_version} >= 1330
Requires:       group(tty)
%endif

%description common
Common files for Mlterm multilingual terminal emulator

%package sdl2
Summary:        Multilingual Terminal Emulator using SDL rendering
Group:          System/Terminals
Requires:       %{name}-common = %{version}-%{release}
Provides:       locale(ja;ko;zh;ar;he)

%description sdl2
Mlterm is a multilingual terminal emulator using SDL rendering

Multilingual features:

supported charsets: US_ASCII, ISO8859[1-11], ISO8859[13-16], TCVN5712,
VISCII, KOI8_R, KOI8_U, JISX0201, JISX0208, JISX0212, JISX0213, GB2312,
GBK, KSC5601, UHC, CNS11643-N, Big5, UCS2(4)

supported encodings: ISO-8859-[1-11], ISO-8859- [13-16], TCVN5612,
VISCII, KOI8_R, KOI8_U, EUC-JP, EUC-JISX0213, ISO-2022-JP [1, 2, 3],
Shift_JIS, Shift_JISX0213, EUC-KR, UHC, JOHAB, ISO-2022-KR,
ISO-2022-CN, GB2312(EUC-CN), GBK, GB18030, EUC-TW, Big5, Hz, UTF-8

character composition: TIS620, TCVN5712, JISX0213, UNICODE

Multiple IMs are also supported and you can dynamically change various
IMs.

Other features:
* proportional font
* background image (requires Imlib)
* multiple pty windows
* scrollbar plug-in API (unstable)

%package fcitx
Summary:        A fcitx plugin for mlterm
Group:          System/X11/Terminals
Provides:       locale(fcitx:ja;ko;ar;he)

%description fcitx
A plugin to use the fcitx input methods directly from mlterm.

%package ibus
Summary:        Ibus plugin for mlterm
Group:          System/X11/Terminals
Provides:       locale(ibus:ja;ko;ar;he)

%description ibus
A plugin to use the ibus input methods directly from mlterm.

%package m17n
Summary:        A m17n plugin for mlterm
Group:          System/X11/Terminals
Provides:       locale(m17n:ja;ko;zh;ar;he)

%description m17n
A plugin to use the m17n input methods directly from mlterm.

%if %{with scim}
%package scim
Summary:        SCIM plugin for mlterm
Group:          System/X11/Terminals
Provides:       locale(scim:ja;ko;ar;he)

%description scim
A plugin to use the SCIM input methods directly from mlterm.
%endif

%if %{with uim}
%package uim
Summary:        An uim plugin for mlterm
Group:          System/X11/Terminals
Provides:       locale(uim:ja;ko;ar;he)

%description uim
A plugin to use the uim input methods directly from mlterm.
%endif

%prep
%autosetup -p1
rm -rf doc/{en,ja}/*win32

%build
export INSTALL_OPT='-m 755'

for i in %{flavors} ; do
mkdir $i
pushd $i
%configure \
  --disable-static \
  --libexecdir=%{_libdir}/mlterm \
  --sysconfdir=%{_sysconfdir}/X11 \
  --disable-utmp \
  --enable-anti-alias \
  --enable-fribidi \
  --enable-ssh2 \
  --enable-vt52 \
  --enable-ind \
  --enable-m17nlib \
  --enable-ibus \
  --enable-fcitx \
  --enable-scim \
  --enable-uim \
  --with-tools=mlclient,mlcc,mlfc,mlmenu,mlterm-zoom,mlimgloader,mlconfig \
  --with-scrollbars=sample,extra,pixmap_engine \
  --with-type-engines=xcore,cairo \
  --with-imagelib=gdk-pixbuf \
  --enable-optimize-redrawing \
  --$i
%make_build -O
popd
done
cp %{SOURCE1} .
#%%translate_suse_desktop mlterm.desktop

%install
for i in %{flavors} ; do
pushd $i
%make_install
popd
done
mkdir -p %{buildroot}%{_datadir}/pixmaps/
install -m 644 contrib/tool/mlterm-menu/menu %{buildroot}%{_sysconfdir}/X11/mlterm/
install -D -m644 "contrib/icon/%{name}-icon.svg" \
  "%{buildroot}%{_datadir}/pixmaps/%{name}.svg"
install -D -m644 "contrib/icon/%{name}-icon-trans.svg" \
  "%{buildroot}%{_datadir}/pixmaps/mlclient.svg"

%if %{do_wayland}
ln -s %{_mandir}/man1/mlterm.1 %{buildroot}%{_mandir}/man1/mlterm-wl.1
%endif
cp -a %{buildroot}%{_mandir}/man1/mlterm.1 %{buildroot}%{_mandir}/man1/mlterm-sdl2.1

mv %{buildroot}%{_libdir}/mlterm/mlterm/mlterm-zoom \
   %{buildroot}%{_bindir}/mlterm-zoom
find %{buildroot} -type f -name "*.la" -delete -print
%find_lang mlconfig
install -D -m 0644 mlterm.desktop %{buildroot}%{_datadir}/applications/mlterm.desktop

%post -n %{name}-common -p /sbin/ldconfig
%postun -n %{name}-common -p /sbin/ldconfig

%files
%if %{do_wayland}
%attr(555,root,tty) %{_bindir}/mlterm-wl
%{_mandir}/man?/mlterm-wl.?.gz
%{_libdir}/mlterm/libim-kbd-wl.so
%{_libdir}/mlterm/libim-skk-wl.so
%endif
%attr(555,root,tty) %{_bindir}/mlterm
%{_bindir}/mlterm-zoom
%{_mandir}/man?/mlterm.?.gz
%{_datadir}/applications/%{name}.desktop
%dir %{_sysconfdir}/X11/mlterm/
%config %{_sysconfdir}/X11/mlterm/*
%{_libdir}/mlterm/libim-kbd.so
%{_libdir}/mlterm/libim-skk.so
%{_libdir}/mlterm/libathena.so
%{_libdir}/mlterm/libmotif.so
%{_libdir}/mlterm/libmozmodern.so
%{_libdir}/mlterm/libnext.so
%{_libdir}/mlterm/libsample.so
%{_libdir}/mlterm/libpixmap_engine.so
%{_libdir}/mlterm/libtype_cairo.so
%dir %{_libdir}/mlterm/mlterm
%{_libdir}/mlterm/mlterm/mlimgloader
%{_libdir}/mlterm/mlterm/mlconfig
%{_libdir}/mlterm/mlterm/mlmenu

%files lang -f mlconfig.lang

%files common
%license LICENCE*
%doc README* doc/en doc/ja
%{_bindir}/mlclient
%{_bindir}/mlclientx
%{_bindir}/mlcc
%{_bindir}/mlfc
%{_libdir}/libpobl.*
%{_libdir}/libmlterm_coreotl.so
%{_libdir}/libmef.so*
%dir %{_libdir}/mef
%{_libdir}/mef/libmef_*
%dir %{_libdir}/mlterm/
%{_libdir}/mlterm/libctl_bidi.so
%{_libdir}/mlterm/libctl_iscii.so
%{_libdir}/mlterm/libind_assamese.so
%{_libdir}/mlterm/libind_bengali.so
%{_libdir}/mlterm/libind_gujarati.so
%{_libdir}/mlterm/libind_hindi.so
%{_libdir}/mlterm/libind_iitkeyb.so
%{_libdir}/mlterm/libind_inscript.so
%{_libdir}/mlterm/libind_kannada.so
%{_libdir}/mlterm/libind_malayalam.so
%{_libdir}/mlterm/libind_oriya.so
%{_libdir}/mlterm/libind_punjabi.so
%{_libdir}/mlterm/libind_telugu.so
%{_libdir}/mlterm/libotl.so
%{_libdir}/mlterm/libptyssh.so
%{_libdir}/mlterm/libzmodem.so
%{_mandir}/man?/ml[^t]*
%{_datadir}/pixmaps/*
%dir %{_datadir}/mlterm/
%dir %{_datadir}/mlterm/scrollbars/
%dir %{_datadir}/mlterm/scrollbars/sample3/
%{_datadir}/mlterm/scrollbars/sample3/*

%files sdl2
%attr(555,root,tty) %{_bindir}/mlterm-sdl2
%{_mandir}/man?/mlterm-sdl2.?.gz
%{_libdir}/mlterm/libim-kbd-sdl2.so
%{_libdir}/mlterm/libim-skk-sdl2.so

%files fcitx
%{_libdir}/mlterm/libim-fcitx*.so

%files ibus
%{_libdir}/mlterm/libim-ibus*.so

%files m17n
%{_libdir}/mlterm/libim-m17nlib*.so

%if %{with scim}
%files scim
%{_libdir}/mlterm/libim-scim*.so
%endif

%if %{with uim}
%files uim
%{_libdir}/mlterm/libim-uim*.so
%endif

%changelog
openSUSE Build Service is sponsored by