meld

Meld(メルド)は、ビジュアルなdiffで、開発者をターゲットにしたGNOMEのマージツール (Wiki)
GNOMEは入れてないが、GTKベースなので動くだろう。Slackのpkgには無い。

linux meld download、でググった:
http://blue-red.ddo.jp/~ao/wiki/wiki.cgi?page=Linux+%A4%C7+Meld+%A4%F2%A5%A4%A5%F3%A5%B9%A5%C8%A1%BC%A5%EB%A4%B9%A4%EB
http://meldmerge.org/
(ソースからmakeはSlackであれば普通だが、最早そういうのは夏休みに気が向いたらやる)

slackware meld、でググった:
https://slackware.pkgs.org/15.0/salix-x86_64/meld-3.20.4-x86_64-1gv.txz.html
(Slackベースの野良バイナリもあるが、本家でないと使う気がしない)

debian pool、でググった:
https://ftp.debian.org/debian/pool/main/m/meld/
meld_3.22.2-1_all.deb をDLした。

$ ar x meld_3.22.2-1_all.deb
$ tar xf control.tar.gz (controlの中身を見てVersionを確認する)
$ mkdir package-meld; cd package-meld
$ tar xpf ../data.tar.xz (エラーが無ければ以降を実行する)
$ rm -rf usr
$ sudo tar xpf ../data.tar.xz
$ sudo mv -i usr/share/doc usr/
$ sudo makepkg ../meld-3.22.2-x86_64-1.txz
WARNING: zero length file usr/lib/python3/dist-packages/meld/__init__.py
WARNING: zero length file usr/lib/python3/dist-packages/meld/ui/__init__.py
WARNING: zero length file usr/lib/python3/dist-packages/meld/matchers/__init__.py
WARNING: /usr/share/man (with possibly not gzipped man pages) detected
$ sudo installpkg ../meld-3.22.2-x86_64-1.txz
$ grep -E ‘bin|lib’ /var/log/packages/meld-3.22.2-x86_64-1 | sed s@^@/@ | xargs ldd | grep found
(依存の不足は無かった)

$ GTK_IM_MODULE=fcitx /usr/bin/meld &
\[1] 950
\darkstar:meld$ Traceback (most recent call last):
\ File “/usr/bin/meld”, line 96, in <module>
\ import meld.conf # noqa: E402
\ModuleNotFoundError: No module named ‘meld’

$ file /usr/bin/meld
/usr/bin/meld: Python script, ASCII text executable (バイナリじゃなかった)
Pythonの動かし方をChatGPTに聞いた。
/usr/lib/python3/dist-packages/meld/以下にmeldの*.pyファイルがある場合は、
$ PYTHONPATH=/usr/lib/python3/dist-packages GTK_IM_MODULE=fcitx /usr/bin/meld &
Meld requires Gtk+ 3.20 or higher.
(GUIでも表示された)

$ ls -l /var/log/packages/*gtk*
\-rw-r–r– 1 root root 10197 3月 6 2022 /var/log/packages/gtk+-1.2.10-x86_64-9
\-rw-r–r– 1 root root 60683 3月 6 2022 /var/log/packages/gtk+2-2.24.33-x86_64-2
\-rw-r–r– 1 root root 73539 3月 5 2022 /var/log/packages/gtk+3-3.24.31-x86_64-1
\-rw-r–r– 1 root root 35243 10月 2 2022 /var/log/packages/pygtk-2.24.0-x86_64-7
あるのに認識してない?。
$ sudo installpkg /mnt2/slackware64/l/pygobject3-3.42.0-x86_64-3.txz
$ sudo installpkg /mnt2/slackware64/l/dbus-python-1.2.18-x86_64-3.txz
$ sudo installpkg /mnt2/slackware64/x/xpyb-1.3.1-x86_64-7.txz
これでも変わらない。makeしかないか?。メンドクセーが仕方ないか?。

python3にgtk3を認識させるには?
ChatGPT
Python 3でGTK+ 3を使用するためには、PyGObjectパッケージが必要です。以下の手順でインストールと設定を行います。
・GI (GObject Introspection) パッケージのインストール:
debian:sudo apt-get install gir1.2-glib-2.0
Fedra :sudo dnf install gobject-introspection
$ sudo installpkg /mnt2/slackware64/l/gobject-introspection-1.70.0-x86_64-3.txz
とやって実行すると、
$ PYTHONPATH=/usr/lib/python3/dist-packages GTK_IM_MODULE=fcitx /usr/bin/meld &
Meld requires GtkSourceView 4.0 or higher.
(GUIでも表示された)

$ sudo installpkg /mnt2/slackware64/l/gtksourceview3-3.24.11-x86_64-4.txz
(やってみたが、4.0 or higher じゃないのでダメだった。currentでもダメだ)
http://ftp.debian.org/debian/pool/main/g/gtksourceview4/
libgtksourceview-4-0_4.0.3-2_amd64.deb をDLした。
ここで、最新のmeldでなくてもよくないか?、となった。Slack-15.0 は 2022.02 なので、2020.05 のを
試す事にした。

meld_3.20.2-2_all.deb をDLした。
よく見るとcontrolに、依存が書いてある。
Depends: python3:any, dconf-gsettings-backend | gsettings-backend, libgtk-3-0 (>= 3.20), python3-gi (>= 3.20), python3-gi-cairo, libgtksourceview-3.0-1 (>= 3.20), gir1.2-gtksource-3.0 (>= 3.20), python3-cairo, libcanberra-gtk3-module, patch

$ ar x meld_3.20.2-2_all.deb
$ tar xf control.tar.gz (controlの中身を見てVersionを確認する)
$ mkdir package-meld; cd package-meld
$ tar xpf ../data.tar.xz (エラーが無ければ以降を実行する)
$ rm -rf usr
$ sudo tar xpf ../data.tar.xz
($ sudo mv -i usr/share/doc usr/ doc無かったので実行しない)
$ sudo makepkg ../meld-3.20.2-2-x86_64-1.txz
$ sudo installpkg ../meld-3.22.2-x86_64-1.txz
$ grep -E ‘bin|lib’ /var/log/packages/meld-3.20.2-2-x86_64-1 | sed s@^@/@ | xargs ldd | grep found
(依存の不足は無かった)

$ PYTHONPATH=/usr/lib/python3/dist-packages GTK_IM_MODULE=fcitx /usr/bin/meld
Trace/breakpoint trap
(ダメだこりゃ。ChatGPTにDebug方法を聞いた)
$ sudo installpkg /mnt2/slackware64/d/gdb-11.2-x86_64-1.txz
$ sudo installpkg /mnt2/slackware64/l/xxHash-0.8.1-x86_64-2.txz

$ PYTHONPATH=/usr/lib/python3/dist-packages gdb -ex run –args python3 /usr/bin/meld
GNU gdb (GDB) 11.2
Copyright (C) 2022 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Type “show copying” and “show warranty” for details.
This GDB was configured as “x86_64-slackware-linux”.
Type “show configuration” for configuration details.
For bug reporting instructions, please see:
<https://www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at:
\ <http://www.gnu.org/software/gdb/documentation/>.
\
For help, type “help”.
Type “apropos word” to search for commands related to “word”…
Reading symbols from python3…
(No debugging symbols found in python3)
Starting program: /usr/bin/python3 /usr/bin/meld
[Thread debugging using libthread_db enabled]
Using host libthread_db library “/lib64/libthread_db.so.1”.
[New Thread 0x7ffff4de9640 (LWP 4351)]
\
Thread 1 “python3” received signal SIGTRAP, Trace/breakpoint trap.
0x00007ffff70d342f in g_log_structured_array () from /usr/lib64/libglib-2.0.so.0
(gdb) quit(やっぱり分からん)

meld received signal SIGTRAP, Trace/breakpoint trap in g_log_structured_array () from /usr/lib64/libglib-2.0.so.0、でググった:
https://bbs.archlinux.org/viewtopic.php?id=276467
上の様なログはstraceで出る。(ChatGPT)
$ sudo installpkg /mnt2/slackware64/d/strace-5.16-x86_64-1.txz

$ PYTHONPATH=/usr/lib/python3/dist-packages strace -e trace=openat -f /usr/bin/meld
openat(AT_FDCWD, “/usr/share/glib-2.0/schemas/gschemas.compiled”, O_RDONLY) = 7
openat(AT_FDCWD, “/usr/local/share/glib-2.0/schemas/gschemas.compiled”, O_RDONLY) = -1 ENOENT (そのようなファイルやディレクトリはありません)
openat(AT_FDCWD, “/usr/lib64/charset.alias”, O_RDONLY) = -1 ENOENT (そのようなファイルやディレクトリはありません)
openat(AT_FDCWD, “/home/ore/.local/share/glib-2.0/schemas/gschemas.compiled”, O_RDONLY) = -1 ENOENT (そのようなファイルやディレクトリはありません)
strace: Process 12533 attached
[pid 12532] openat(AT_FDCWD, “/home/ore/.config/glib-2.0/settings/keyfile”, O_RDONLY) = 9
[pid 12532] openat(AT_FDCWD, “/etc/glib-2.0/settings/defaults”, O_RDONLY) = -1 ENOENT (そのようなファイルやディレクトリはありません)
[pid 12532] openat(AT_FDCWD, “/etc/glib-2.0/settings/locks”, O_RDONLY) = -1 ENOENT (そのようなファイルやディレクトリはありません)
[pid 12532] — SIGTRAP {si_signo=SIGTRAP, si_code=SI_KERNEL} —
[pid 12533] +++ killed by SIGTRAP +++
\+++ killed by SIGTRAP +++
Trace/breakpoint trap

/*************************************************************************************/
後になってpythonにはモジュールがかなりある事が分かった。これ入れないと動かない?。(2025.02)
ls -l /mnt2/slackware64/*/*python*.txt
\-rw-r–r– 1 root root 270 11月 3 2021 /mnt2/slackware64/d/python-pip-21.3.1-x86_64-2.txt
\-rw-r–r– 1 root root 562 11月 3 2021 /mnt2/slackware64/d/python-setuptools-57.5.0-x86_64-2.txt
\-rw-r–r– 1 root root 484 2月 13 2021 /mnt2/slackware64/d/python2-2.7.18-x86_64-4.txt
\-rw-r–r– 1 root root 663 1月 16 2022 /mnt2/slackware64/d/python3-3.9.10-x86_64-1.txt
\-rw-r–r– 1 root root 256 1月 7 2022 /mnt2/slackware64/kde/kdev-python-21.12.1-x86_64-1.txt
\-rw-r–r– 1 root root 246 11月 3 2021 /mnt2/slackware64/l/dbus-python-1.2.18-x86_64-3.txt
\-rw-r–r– 1 root root 475 11月 23 2021 /mnt2/slackware64/l/python-Jinja2-3.0.3-x86_64-1.txt
\-rw-r–r– 1 root root 623 11月 23 2021 /mnt2/slackware64/l/python-MarkupSafe-2.0.1-x86_64-1.txt
\-rw-r–r– 1 root root 637 11月 23 2021 /mnt2/slackware64/l/python-PyYAML-6.0-x86_64-1.txt
\-rw-r–r– 1 root root 393 11月 3 2021 /mnt2/slackware64/l/python-appdirs-1.4.4-x86_64-6.txt
\-rw-r–r– 1 root root 432 11月 3 2021 /mnt2/slackware64/l/python-certifi-2021.10.8-x86_64-2.txt
\-rw-r–r– 1 root root 300 11月 3 2021 /mnt2/slackware64/l/python-cffi-1.15.0-x86_64-2.txt
\-rw-r–r– 1 root root 365 11月 3 2021 /mnt2/slackware64/l/python-chardet-4.0.0-x86_64-5.txt
\-rw-r–r– 1 root root 509 1月 29 2022 /mnt2/slackware64/l/python-charset-normalizer-2.0.10-x86_64-1.txt
\-rw-r–r– 1 root root 381 11月 3 2021 /mnt2/slackware64/l/python-distro-1.6.0-x86_64-2.txt
\-rw-r–r– 1 root root 727 11月 3 2021 /mnt2/slackware64/l/python-dnspython-2.1.0-x86_64-3.txt
\-rw-r–r– 1 root root 560 11月 18 2021 /mnt2/slackware64/l/python-docutils-0.17.1-x86_64-3.txt
\-rw-r–r– 1 root root 466 11月 23 2021 /mnt2/slackware64/l/python-doxypypy-0.8.8.6-x86_64-1.txt
\-rw-r–r– 1 root root 462 11月 23 2021 /mnt2/slackware64/l/python-doxyqml-0.5.1-x86_64-1.txt
\-rw-r–r– 1 root root 723 11月 3 2021 /mnt2/slackware64/l/python-future-0.18.2-x86_64-7.txt
\-rw-r–r– 1 root root 537 11月 3 2021 /mnt2/slackware64/l/python-idna-3.3-x86_64-2.txt
\-rw-r–r– 1 root root 584 11月 3 2021 /mnt2/slackware64/l/python-markdown-3.3.4-x86_64-3.txt
\-rw-r–r– 1 root root 502 11月 3 2021 /mnt2/slackware64/l/python-notify2-0.3.1-x86_64-10.txt
\-rw-r–r– 1 root root 333 11月 22 2021 /mnt2/slackware64/l/python-packaging-21.3-x86_64-1.txt
\-rw-r–r– 1 root root 321 11月 23 2021 /mnt2/slackware64/l/python-pbr-5.8.0-x86_64-1.txt
\-rw-r–r– 1 root root 526 11月 3 2021 /mnt2/slackware64/l/python-pillow-8.4.0-x86_64-2.txt
\-rw-r–r– 1 root root 280 11月 3 2021 /mnt2/slackware64/l/python-ply-3.11-x86_64-8.txt
\-rw-r–r– 1 root root 456 11月 7 2021 /mnt2/slackware64/l/python-pycparser-2.21-x86_64-1.txt
\-rw-r–r– 1 root root 481 11月 3 2021 /mnt2/slackware64/l/python-pygments-2.10.0-x86_64-3.txt
\-rw-r–r– 1 root root 508 11月 3 2021 /mnt2/slackware64/l/python-pysol_cards-0.12.0-x86_64-2.txt
\-rw-r–r– 1 root root 361 11月 3 2021 /mnt2/slackware64/l/python-random2-1.0.1-x86_64-5.txt
\-rw-r–r– 1 root root 599 11月 3 2021 /mnt2/slackware64/l/python-requests-2.26.0-x86_64-3.txt
\-rw-r–r– 1 root root 328 11月 3 2021 /mnt2/slackware64/l/python-sane-2.9.1-x86_64-5.txt
\-rw-r–r– 1 root root 639 11月 20 2021 /mnt2/slackware64/l/python-setuptools_scm-6.3.2-x86_64-1.txt
\-rw-r–r– 1 root root 510 11月 3 2021 /mnt2/slackware64/l/python-six-1.16.0-x86_64-3.txt
\-rw-r–r– 1 root root 312 11月 20 2021 /mnt2/slackware64/l/python-tomli-1.2.2-x86_64-1.txt
\-rw-r–r– 1 root root 417 1月 9 2022 /mnt2/slackware64/l/python-urllib3-1.26.8-x86_64-1.txt
\-rw-r–r– 1 root root 701 8月 23 2021 /mnt2/slackware64/l/python2-module-collection-2.7.18-x86_64-6.txt

今はこれしか入れてない。余計な物は入れない主義だし。
$ ls -l /var/log/packages/*python*
\-rw-r–r– 1 root root 4928 7月 10 2024 /var/log/packages/dbus-python-1.2.18-x86_64-3
\-rw-r–r– 1 root root 260145 3月 8 2022 /var/log/packages/python2-2.7.18-x86_64-4
\-rw-r–r– 1 root root 223758 10月 8 2022 /var/log/packages/python2-module-collection-2.7.18-x86_64-6
\-rw-r–r– 1 root root 539841 3月 8 2022 /var/log/packages/python3-3.9.10-x86_64-1

/*************************************************************************************/

参考情報:
Wiki
https://ja.wikipedia.org/wiki/Meld

 

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です