Index | Thread | Search

From:
Volker Schlecht <openbsd-ports@schlecht.dev>
Subject:
Re: [llvm22] update x11/mlterm to 3.9.4
To:
Matthieu Herrb <matthieu@openbsd.org>, ports@openbsd.org
Date:
Mon, 8 Jun 2026 19:20:32 +0200

Download raw body.

Thread
Tested mlterm and mlterm-wl, both work fine here on amd64!
ok volker@

On 6/7/26 7:05 PM, Matthieu Herrb wrote:
> On Sun, Jun 07, 2026 at 06:20:09PM +0200, Matthieu Herrb wrote:
>> Lightly tested on amd63. I couldn't figure out how to run mlterm-fb on
>> the console, may be drop it ?
>>
>> comments? ok ?
>>
> Follow-up : I found that the fb code only works with 540x480 pixels
> displays. It was probably made for the Zaurus, back in the times...
> 
> So disable the fb mode and enable wayland instead. New diff. ok ?
> 
> Index: Makefile
> ===================================================================
> RCS file: /local/cvs/ports/x11/mlterm/Makefile,v
> diff -u -p -u -r1.69 Makefile
> --- Makefile	16 Aug 2025 07:43:38 -0000	1.69
> +++ Makefile	7 Jun 2026 17:03:52 -0000
> @@ -1,9 +1,8 @@
>   COMMENT=	color terminal emulator with unicode support
> -DISTNAME=	mlterm-3.8.3
> -REVISION=	7
> +DISTNAME=	mlterm-3.9.4
>   
> -SHARED_LIBS+=	mef	0.0 # 1.0
> -SHARED_LIBS+=	pobl	0.0 # 1.0
> +SHARED_LIBS+=	mef	1.0 # 3.1
> +SHARED_LIBS+=	pobl	1.0 # 2.1
>   
>   CATEGORIES=	x11
>   
> @@ -13,12 +12,14 @@ HOMEPAGE=	https://mlterm.sourceforge.net
>   PERMIT_PACKAGE=	Yes
>   
>   WANTLIB += X11 Xcomposite Xcursor Xdamage Xext Xfixes Xft Xi
> -WANTLIB += Xinerama Xrandr Xrender atk-1.0 c cairo expat ffi
> -WANTLIB += fontconfig freetype fribidi gdk_pixbuf-2.0 gdk-x11-2.0
> +WANTLIB += Xinerama Xrandr Xrender XRes atk-1.0 atk-bridge-2.0
> +WANTLIB += atspi c cairo cairo-gobject dbus-1 epoll-shim epoxy expat ffi
> +WANTLIB += fontconfig freetype fribidi gdk_pixbuf-2.0 gdk-3  gtk-3
>   WANTLIB += gio-2.0 glib-2.0 gmodule-2.0 gobject-2.0 graphite2
> -WANTLIB += gtk-x11-2.0 harfbuzz iconv intl m pango-1.0
> +WANTLIB += harfbuzz iconv intl m pango-1.0
>   WANTLIB += pangocairo-1.0 pangoft2-1.0 pcre2-8 pixman-1 png pthread
> -WANTLIB += util xcb xcb-render xcb-shm z Xau Xdmcp jpeg
> +WANTLIB += util wayland-client wayland-cursor wayland-egl xcb
> +WANTLIB += xcb-render xcb-shm xkbcommon z Xau Xdmcp jpeg
>   WANTLIB += ${COMPILER_LIBCXX}
>   
>   SITES=		${SITE_SOURCEFORGE:=mlterm/}
> @@ -27,14 +28,18 @@ BUILD_DEPENDS=	devel/gettext,-tools
>   
>   LIB_DEPENDS=	devel/fribidi \
>   		devel/gettext,-runtime \
> -		x11/gtk+2
> +		devel/pango \
> +		graphics/gdk-pixbuf2 \
> +		x11/dbus \
> +		x11/gnome/at-spi2-core \
> +		x11/gtk+3
>   
>   FAKE_FLAGS=	INSTALL_DATA="${INSTALL_DATA}" \
>   		INSTALL_SCRIPT="${INSTALL_SCRIPT}" \
>   		sysconfdir="${PREFIX}/share/examples"
>   
> -CONFIGURE_STYLE=autoconf
> -AUTOCONF_VERSION=2.65
> +CONFIGURE_STYLE=autoconf no-autoheader
> +AUTOCONF_VERSION=2.69
>   CONFIGURE_ARGS=	--disable-canna \
>   		--disable-dl-ctl \
>   		--disable-fcitx \
> @@ -46,11 +51,13 @@ CONFIGURE_ARGS=	--disable-canna \
>   		--disable-ssh2 \
>   		--disable-uim \
>   		--disable-wnn \
> -		--with-gtk=2.0 \
> -		--with-gui=xlib,fb \
> +		--with-gtk=3.0 \
> +		--with-gui=wayland,xlib \
>   		--with-imagelib=gdk-pixbuf2 \
>   		--with-tools=mlclient,mlconfig,mlcc,mlterm-menu,mlimgloader,mlfc
> -CONFIGURE_ENV=	CPPFLAGS="-I${X11BASE}/include/freetype2"
> +CONFIGURE_ENV=	CPPFLAGS="-I${X11BASE}/include/freetype2 -I${LOCALBASE}/include" \
> +		LDFLAGS="-L${LOCALBASE}/lib" \
> +		INSTALL_OPT="-m 4755 -o root"
>   MAKE_ENV=	LIBmef_VERSION=${LIBmef_VERSION} \
>   		LIBpobl_VERSION=${LIBpobl_VERSION}
>   
> Index: distinfo
> ===================================================================
> RCS file: /local/cvs/ports/x11/mlterm/distinfo,v
> diff -u -p -u -r1.23 distinfo
> --- distinfo	24 Sep 2017 07:30:21 -0000	1.23
> +++ distinfo	7 Jun 2026 17:03:52 -0000
> @@ -1,2 +1,2 @@
> -SHA256 (mlterm-3.8.3.tar.gz) = zUvdsQvXhmJV3fRRkq3UhTwujEmzbfbpqdLydK8Y+e4=
> -SIZE (mlterm-3.8.3.tar.gz) = 3850354
> +SHA256 (mlterm-3.9.4.tar.gz) = Fx3kxPNEO8EhHMUd9cqg4IL/zdM6s84mG8Ckz+hdm14=
> +SIZE (mlterm-3.9.4.tar.gz) = 4227568
> Index: patches/patch-baselib_src_Makefile_in
> ===================================================================
> RCS file: /local/cvs/ports/x11/mlterm/patches/patch-baselib_src_Makefile_in,v
> diff -u -p -u -r1.2 patch-baselib_src_Makefile_in
> --- patches/patch-baselib_src_Makefile_in	11 Mar 2022 20:16:46 -0000	1.2
> +++ patches/patch-baselib_src_Makefile_in	7 Jun 2026 17:03:52 -0000
> @@ -5,8 +5,8 @@ Index: baselib/src/Makefile.in
>    
>    LIBNAME=libpobl
>    LIBNAME_DEB=libpobl_deb
> --MAJOR = 1
> --MINOR = 0
> +-MAJOR = 2
> +-MINOR = 1
>   +MAJOR = ${LIBpobl_VERSION:R}
>   +MINOR = ${LIBpobl_VERSION:E}
>    
> Index: patches/patch-configure_in
> ===================================================================
> RCS file: /local/cvs/ports/x11/mlterm/patches/patch-configure_in,v
> diff -u -p -u -r1.18 patch-configure_in
> --- patches/patch-configure_in	11 Mar 2022 20:16:46 -0000	1.18
> +++ patches/patch-configure_in	7 Jun 2026 17:03:52 -0000
> @@ -1,47 +1,11 @@
> -setuid root/setgid utmp are handled by PLIST
> -
>   Do not enable VTE support if libvte is around
>   
>   Index: configure.in
>   --- configure.in.orig
>   +++ configure.in
> -@@ -652,15 +652,6 @@ else
> - 				OT_LAYOUT_OBJ=hb.o
> - 			fi
> - 		fi
> --
> --		if test "$have_hb" != "yes"; then
> --			AC_CHECK_PROG(libotf_config,libotf-config,yes)
> --			if test "$libotf_config" = "yes" ; then
> --				OT_LAYOUT_CFLAGS="`libotf-config --cflags` -DUSE_OT_LAYOUT"
> --				OT_LAYOUT_LIBS="`libotf-config --libs`"
> --				OT_LAYOUT_OBJ=otf.o
> --			fi
> --		fi
> - 	fi
> -
> - 	if test "$have_hb" = "yes" ; then
> -@@ -807,44 +798,14 @@ AC_ARG_ENABLE(pty_helper,
> - 	pty_helper=$enable_pty_helper)
> - if test "$utmp" = "yes" -a "$pty_helper" != "yes" ; then
> - 	UTMP_CFLAGS="-DUSE_UTMP"
> --	has_utmp=`grep utmp /etc/group 2>/dev/null`
> --	if test "$has_utmp" ; then
> --		INSTALL_OPT="-m 2755 -g utmp"
> --	else
> --		INSTALL_OPT="-m 4755 -o root"
> --	fi
> --else
> --	INSTALL_OPT="-m 755"
> - fi
> -
> --if test "$gui" = "fb" ; then
> --	INSTALL_OPT="-m 4755 -o root"
> --fi
> -+INSTALL_OPT="-m 0555 -s"
> -
> - AC_SUBST(UTMP_CFLAGS)
> - AC_SUBST(INSTALL_OPT)
> +@@ -1075,27 +1075,7 @@ AC_SUBST(MOSH_OCB_OBJ)
> + AC_SUBST(PROTOBUF_CFLAGS)
> + AC_SUBST(PROTOBUF_LIBS)
>    
>   -if test "${have_gtk}" = "yes" ; then
>   -	if test "${gtk_version}" = "3.0" ; then
> @@ -66,5 +30,5 @@ Index: configure.in
>   -fi
>   +have_vte=no
>    
> - tools="mlclient,mlconfig,mlcc,mlterm-menu,mlimgloader,registobmp,mlfc"
> - AC_ARG_WITH(tools,
> + if test "$image" = "yes"; then
> + 	tools="mlclient,mlconfig,mlcc,mlterm-menu,mlimgloader,registobmp,mlfc"
> Index: patches/patch-encodefilter_src_Makefile_in
> ===================================================================
> RCS file: /local/cvs/ports/x11/mlterm/patches/patch-encodefilter_src_Makefile_in,v
> diff -u -p -u -r1.2 patch-encodefilter_src_Makefile_in
> --- patches/patch-encodefilter_src_Makefile_in	11 Mar 2022 20:16:46 -0000	1.2
> +++ patches/patch-encodefilter_src_Makefile_in	7 Jun 2026 17:03:52 -0000
> @@ -5,8 +5,8 @@ Index: encodefilter/src/Makefile.in
>    
>    LIBNAME = libmef
>    LIBNAME_DEB = libmef_deb
> --MAJOR = 1
> --MINOR = 0
> +-MAJOR = 3
> +-MINOR = 1
>   +MAJOR = ${LIBmef_VERSION:R}
>   +MINOR = ${LIBmef_VERSION:E}
>    
> Index: patches/patch-uitoolkit_fb_ui_font_c
> ===================================================================
> RCS file: patches/patch-uitoolkit_fb_ui_font_c
> diff -N patches/patch-uitoolkit_fb_ui_font_c
> --- patches/patch-uitoolkit_fb_ui_font_c	7 Feb 2023 21:32:29 -0000	1.3
> +++ /dev/null	1 Jan 1970 00:00:00 -0000
> @@ -1,21 +0,0 @@
> -Index: uitoolkit/fb/ui_font.c
> ---- uitoolkit/fb/ui_font.c.orig
> -+++ uitoolkit/fb/ui_font.c
> -@@ -708,7 +708,7 @@ face_found:
> -     goto error;
> -   }
> -
> --  face->generic.data = ((int)face->generic.data) + 1; /* ref_count */
> -+  face->generic.data = (void *)(((int)face->generic.data) + 1); /* ref_count */
> -
> -   xfont->width_full =
> -       (face->max_advance_width * face->size->metrics.x_ppem + face->units_per_EM - 1) /
> -@@ -810,7 +810,7 @@ static void unload_ft(XFontStruct *xfont) {
> -   free(xfont->file);
> -
> -   face = xfont->face;
> --  face->generic.data = ((int)face->generic.data) - 1;
> -+  face->generic.data = (void *)((int)face->generic.data - 1);
> -   if (!face->generic.data) {
> -     FT_Done_Face(xfont->face);
> -   }
> Index: patches/patch-uitoolkit_fb_ui_window_c
> ===================================================================
> RCS file: patches/patch-uitoolkit_fb_ui_window_c
> diff -N patches/patch-uitoolkit_fb_ui_window_c
> --- patches/patch-uitoolkit_fb_ui_window_c	7 Feb 2023 21:32:29 -0000	1.1
> +++ /dev/null	1 Jan 1970 00:00:00 -0000
> @@ -1,14 +0,0 @@
> -Index: uitoolkit/fb/ui_window.c
> ---- uitoolkit/fb/ui_window.c.orig
> -+++ uitoolkit/fb/ui_window.c
> -@@ -23,8 +23,8 @@
> - static ui_color_t black = {TP_COLOR, 0, 0, 0, 0};
> - #endif
> -
> --#define ParentRelative (1L)
> --#define DummyPixmap (2L)
> -+#define ParentRelative ((Pixmap)1L)
> -+#define DummyPixmap ((Pixmap)2L)
> -
> - /* XXX Check if win is input method window or not. */
> - #define IS_IM_WINDOW(win) ((win)->disp->num_of_roots >= 2 && (win) == (win)->disp->roots[1])
> Index: patches/patch-uitoolkit_libtype_ui_window_cairo_c
> ===================================================================
> RCS file: patches/patch-uitoolkit_libtype_ui_window_cairo_c
> diff -N patches/patch-uitoolkit_libtype_ui_window_cairo_c
> --- patches/patch-uitoolkit_libtype_ui_window_cairo_c	7 Feb 2023 21:32:29 -0000	1.1
> +++ /dev/null	1 Jan 1970 00:00:00 -0000
> @@ -1,34 +0,0 @@
> -Index: uitoolkit/libtype/ui_window_cairo.c
> ---- uitoolkit/libtype/ui_window_cairo.c.orig
> -+++ uitoolkit/libtype/ui_window_cairo.c
> -@@ -54,12 +54,12 @@ static int show_text(cairo_t *cr, cairo_scaled_font_t
> - #endif
> -
> - #if CAIRO_VERSION_ENCODE(1, 4, 0) <= CAIRO_VERSION
> --  if (cairo_get_user_data(cr, 1) != xfont)
> -+  if (cairo_get_user_data(cr, (cairo_user_data_key_t *)1) != xfont)
> - #endif
> -   {
> -     cairo_set_scaled_font(cr, xfont);
> - #if CAIRO_VERSION_ENCODE(1, 4, 0) <= CAIRO_VERSION
> --    cairo_set_user_data(cr, 1, xfont, NULL);
> -+    cairo_set_user_data(cr, (cairo_user_data_key_t *)1, xfont, NULL);
> - #endif
> -   }
> -
> -@@ -69,13 +69,13 @@ static int show_text(cairo_t *cr, cairo_scaled_font_t
> -    * default one
> -    * (black == 0).
> -    */
> --  if ((u_long)cairo_get_user_data(cr, 2) != fg_color->pixel)
> -+  if ((u_long)cairo_get_user_data(cr, (cairo_user_data_key_t *)2) != fg_color->pixel)
> - #endif
> -   {
> -     cairo_set_source_rgba(cr, (double)fg_color->red / 255.0, (double)fg_color->green / 255.0,
> -                           (double)fg_color->blue / 255.0, (double)fg_color->alpha / 255.0);
> - #if CAIRO_VERSION_ENCODE(1, 4, 0) <= CAIRO_VERSION
> --    cairo_set_user_data(cr, 2, fg_color->pixel, NULL);
> -+    cairo_set_user_data(cr, (cairo_user_data_key_t *)2, (void *)fg_color->pixel, NULL);
> - #endif
> -   }
> -
> Index: patches/patch-uitoolkit_ui_screen_manager_c
> ===================================================================
> RCS file: patches/patch-uitoolkit_ui_screen_manager_c
> diff -N patches/patch-uitoolkit_ui_screen_manager_c
> --- patches/patch-uitoolkit_ui_screen_manager_c	7 Feb 2023 21:32:29 -0000	1.1
> +++ /dev/null	1 Jan 1970 00:00:00 -0000
> @@ -1,12 +0,0 @@
> -Index: uitoolkit/ui_screen_manager.c
> ---- uitoolkit/ui_screen_manager.c.orig
> -+++ uitoolkit/ui_screen_manager.c
> -@@ -593,7 +593,7 @@ static ui_screen_t *open_screen_intern(char *disp_name
> -     }
> -
> -     if (!ui_display_show_root(disp, root, main_config.x, main_config.y, main_config.geom_hint,
> --                              main_config.app_name, main_config.parent_window)) {
> -+                              main_config.app_name, (Window)main_config.parent_window)) {
> - #ifdef DEBUG
> -       bl_warn_printf(BL_DEBUG_TAG " ui_display_show_root() failed.\n");
> - #endif
> Index: patches/patch-uitoolkit_wayland_ui_display_c
> ===================================================================
> RCS file: patches/patch-uitoolkit_wayland_ui_display_c
> diff -N patches/patch-uitoolkit_wayland_ui_display_c
> --- /dev/null	1 Jan 1970 00:00:00 -0000
> +++ patches/patch-uitoolkit_wayland_ui_display_c	7 Jun 2026 17:03:52 -0000
> @@ -0,0 +1,14 @@
> +OpenBSD doesn't have posix_fallocate
> +
> +Index: uitoolkit/wayland/ui_display.c
> +--- uitoolkit/wayland/ui_display.c.orig
> ++++ uitoolkit/wayland/ui_display.c
> +@@ -94,7 +94,7 @@ static int create_anonymous_file(off_t size) {
> +     return -1;
> +   }
> +
> +-  if (posix_fallocate(fd, 0, size) != 0) {
> ++  if (ftruncate(fd, size) != 0) {
> +     close(fd);
> +     return -1;
> +   }
> Index: pkg/PLIST
> ===================================================================
> RCS file: /local/cvs/ports/x11/mlterm/pkg/PLIST,v
> diff -u -p -u -r1.17 PLIST
> --- pkg/PLIST	16 Aug 2025 07:43:38 -0000	1.17
> +++ pkg/PLIST	7 Jun 2026 17:03:52 -0000
> @@ -7,9 +7,7 @@
>   @bin bin/mlterm
>   @mode
>   @group
> -@mode 4555
> -@bin bin/mlterm-fb
> -@mode
> +@bin bin/mlterm-wl
>   @comment lib/libmef.a
>   @comment lib/libmef.la
>   @lib lib/libmef.so.${LIBmef_VERSION}
> @@ -35,13 +33,17 @@ lib/mlterm/
>   @so lib/mlterm/libathena.so
>   @comment lib/mlterm/libim-kbd-fb.a
>   @comment lib/mlterm/libim-kbd-fb.la
> -@so lib/mlterm/libim-kbd-fb.so
> +@static-lib lib/mlterm/libim-kbd-wl.a
> +lib/mlterm/libim-kbd-wl.la
> +@so lib/mlterm/libim-kbd-wl.so
>   @comment lib/mlterm/libim-kbd.a
>   @comment lib/mlterm/libim-kbd.la
>   @so lib/mlterm/libim-kbd.so
>   @comment lib/mlterm/libim-skk-fb.a
>   @comment lib/mlterm/libim-skk-fb.la
> -@so lib/mlterm/libim-skk-fb.so
> +@static-lib lib/mlterm/libim-skk-wl.a
> +lib/mlterm/libim-skk-wl.la
> +@so lib/mlterm/libim-skk-wl.so
>   @comment lib/mlterm/libim-skk.a
>   @comment lib/mlterm/libim-skk.la
>   @so lib/mlterm/libim-skk.so
> @@ -69,10 +71,14 @@ lib/mlterm/
>   @comment lib/mlterm/libtype_xft.a
>   @comment lib/mlterm/libtype_xft.la
>   @so lib/mlterm/libtype_xft.so
> +@static-lib lib/mlterm/libzmodem.a
> +lib/mlterm/libzmodem.la
> +@so lib/mlterm/libzmodem.so
>   libexec/mlterm/
>   @bin libexec/mlterm/mlconfig
>   @bin libexec/mlterm/mlimgloader
>   @bin libexec/mlterm/mlterm-menu
> +@man man/man1/mlcc.1
>   @man man/man1/mlclient.1
>   @man man/man1/mlterm.1
>   share/examples/mlterm/
> @@ -109,9 +115,6 @@ share/locale/ja/LC_MESSAGES/mlconfig.mo
>   share/locale/vi/LC_MESSAGES/mlconfig.mo
>   share/locale/zh_TW/LC_MESSAGES/mlconfig.mo
>   share/mlterm/
> -share/mlterm/kbd/
> -share/mlterm/kbd/kbd.six
> -share/mlterm/kbd/pressed_kbd.six
>   share/mlterm/scrollbars/
>   share/mlterm/scrollbars/sample3/
>   share/mlterm/scrollbars/sample3/bg_body.png
>