ToDo:
3.0.25以降にアップデートすると、lib/charcnv.c:init_iconv(*)で エラーが出る件だが、libiconvが正しくリンクされないのが原因 (libiconvへ依存関係を持つ libraryが有るので lddの出力 に現れるが、注意深く見れば現れる順番がおかしい)
で、原因だが configureスクリプト(正しくは aclocal.m4)がenbugしてます
--- aclocal.m4.orig Thu Mar 1 13:54:54 2007 +++ aclocal.m4 Mon Jun 18 11:59:54 2007 @@ -334,7 +334,7 @@ jm_cv_func_iconv=yes jm_cv_lib_iconv="") - if test "$jm_cv_lib_iconv" != yes; then + if test "x$jm_cv_lib_iconv" = x; then jm_save_LIBS="$LIBS" LIBS="$LIBS -lgiconv" AC_TRY_LINK([#include <stdlib.h> @@ -363,7 +363,7 @@ jm_cv_lib_iconv="iconv") LIBS="$jm_save_LIBS" - if test "$jm_cv_lib_iconv" != yes; then + if test "x$jm_cv_lib_iconv" = x; then jm_save_LIBS="$LIBS" LIBS="$LIBS -lbiconv" AC_TRY_LINK([#include <stdlib.h>
libiconvをリンクしても、まだまともに動かないのはなぜ orz
テスト環境を作って動かしてみたが、lang/ruby18(ruby-1.8.7)では改変無しでは動かないようです
リリースノートには、ruby-1.8.7をサポートする最後のリリースとあるが、テストされていない?
と言うわけで、ruby-1.9.3をテスト環境に導入する必要有り
ruby-1.8.7からの移行プランとしては
acpi_call(ports/sysutils/acpi_call)を使って調べたが、 _SB_.PC00.GFX0.DD1F._BCMで内蔵液晶の輝度が変わる
設定値が0~13と14~100でacpiconf -i0が報告する電力と輝度が2値化する
低い方の設定だと、電力が1Wぐらい低下するがすごく暗くなる
1と13だと13の方が少し見やすいので明るくなってる?
13と14が違い過ぎるので滑らかな輝度制御は別の手段が必要な模様
# acpi_call -v -p '\_SB_.PC00.GFX0.DD1F._BCM' -i 13
packageで1.5.32から1.5.31_1へ巻き戻すと今まで通り、ktermも含め問題なくXIMが動作することを確認した
次に調べるべきは…
XIM + ktermの動作なんてニッチ環境の不具合レポートなんて、ibusのIssue Trackerにはあがってないに違いない… Orz
diff -dur /usr/ports/textproc/ibus/Makefile Makefile --- /usr/ports/textproc/ibus/Makefile 2025-06-11 17:14:07.686474000 +0900 +++ Makefile 2025-07-01 09:59:02.972368000 +0900 @@ -1,5 +1,6 @@ PORTNAME= ibus -DISTVERSION= 1.5.32 +DISTVERSION= 1.5.31 +PORTREVISION= 1 CATEGORIES= textproc MASTER_SITES= https://github.com/${PORTNAME}/${PORTNAME}/releases/download/${DISTVERSION}/ @@ -31,6 +32,7 @@ CONFIGURE_ARGS= --disable-install-tests \ --disable-python2 \ --disable-systemd-services \ + --disable-python-library --disable-systemd \ --with-html-dir=${PREFIX}/share/doc \ --with-ucd-dir=${LOCALBASE}/share/unicode/ucd @@ -78,7 +80,6 @@ GTK3_IMPLIES= WAYLAND GTK3_LIB_DEPENDS= libdbus-1.so:devel/dbus \ libnotify.so:devel/libnotify -GTK3_USES= vala:build GTK3_USE= GNOME=cairo,gtk30,pango GTK3_CONFIGURE_ENABLE= gtk3 libnotify GTK3_LIBS= -lX11 @@ -97,7 +98,6 @@ WAYLAND_LIB_DEPENDS= libwayland-client.so:graphics/wayland \ libxkbcommon.so:x11/libxkbcommon WAYLAND_CONFIGURE_ENABLE= wayland -XIM_IMPLIES= GTK3 XIM_CONFIGURE_ENABLE= xim .include <bsd.port.pre.mk> @@ -107,10 +107,6 @@ .else PLIST_SUB+= COMPDIR="@comment " .endif - -post-configure: - # Clean pre-generated source code, which may not match the options selected. - ${MAKE} -C ${WRKSRC}/ui/gtk3 maintainer-clean-generic post-install: ${MKDIR} ${STAGEDIR}${PREFIX}/etc/xdg/autostart
clientソースの差分から怪しい変更を探してみた
--- ibus-1.5.31/client/x11/main.c 2024-11-08 19:35:46.000000000 +0900 +++ ibus-1.5.32/client/x11/main.c 2025-04-08 21:57:26.000000000 +0900 @@ -2,7 +2,7 @@ /* vim:set et sts=4: */ /* ibus * Copyright (C) 2007-2015 Peng Huang <shawn.p.huang@gmail.com> - * Copyright (C) 2015-2023 Takao Fujiwara <takao.fujiwara1@gmail.com> + * Copyright (C) 2015-2025 Takao Fujiwara <takao.fujiwara1@gmail.com> * Copyright (C) 2007-2015 Red Hat, Inc. * * main.c: @@ -1363,7 +1363,7 @@ gdk_set_allowed_backends ("x11"); #endif - gtk_init (&argc, &argv); + gdk_init (&argc, &argv); XSetErrorHandler (_xerror_handler); XSetIOErrorHandler (_xerror_io_handler);
--- ibus-1.5.31/util/IMdkit/i18nOffsetCache.c 2024-11-08 19:35:46.000000000 +0900 +++ ibus-1.5.32/util/IMdkit/i18nOffsetCache.c 2025-04-08 21:57:26.000000000 +0900 @@ -1,6 +1,6 @@ /* * Copyright (C) 2014 Peng Huang <shawn.p.huang@gmail.com> - * Copyright (C) 2014 Red Hat, Inc. + * Copyright (C) 2014-2025 Red Hat, Inc. * * Permission to use, copy, modify, distribute, and sell this * software and its documentation for any purpose is hereby granted @@ -83,10 +83,12 @@ } if (++offset_cache->size > offset_cache->capacity) { - offset_cache->capacity *= OFFSET_CACHE_GROWTH_FACTOR; - offset_cache->data = (Xi18nAtomOffsetPair *) realloc (data, + Xi18nAtomOffsetPair *pair = (Xi18nAtomOffsetPair *) realloc (data, offset_cache->capacity * sizeof (Xi18nAtomOffsetPair)); - if (offset_cache->data == NULL) { + offset_cache->capacity *= OFFSET_CACHE_GROWTH_FACTOR; + if (pair) { + offset_cache->data = pair; + } else { offset_cache->data = data; --offset_cache->size; }
i18n offset cacheの変更のみのロールバックでは挙動は変わらなかったが、gtk_initへロールバックしたら1.5.31同様にktermへEUC-JP経由のXIM入力が出来るようになった
おそらく、gtk_init -> gdk_initで省略される初期化項目にXIMのi18n関連の項目が含まれ、localeの初期化が不十分でXIMメッセージのUTF-8 -> ja_JP.eucJPの変換が機能しなくなったのではと思う…
カテゴリー: Admin | Emacs | EPICS | Fortran | FreeBSD | GCC | hgsubversion | IPv6 | KEKB | LHC | Lisp | LLVM | MADX | Ryzen | SAD | samba | tDiary | unix | WWW | YaSAI | お仕事 | イベント | 出張 | 宴会 | 数学 | 艦これ | 買いもの | 追記 | 雑記