1. 概要
発生は、2022年3月28日で、下記の状況にあります。
gdk-pixbuf2-2.40.0 < needs updating (index has 2.40.0_2)
gtk-doc-1.33.2 < needs updating (index has 1.33.2_1)
shared-mime-info-2.0_2 < needs updating (index has 2.0_3)
「gdk-pixbuf2」は、ちょっとわかりませんが、「gtk-doc」の方はくっきり、「shared-mime-info」のせいで、アップグレードできていません。
portupgrade -Rr shared-mime-info
すると最終的に
[ 96% 80/83] cc -Isrc/update-mime-database.p -Isrc -I../src -I/usr/local/include/glib-2.0 -I/usr/local/lib/glib-2.0/include -I/usr/local/include -I/usr/local/include/libxml2 -fno-color-diagnostics -D_FILE_OFFSET_BITS=64 -Wall -Winvalid-pch -O3 -O2 -pipe -fstack-protector-strong -isystem /usr/local/include -fno-strict-aliasing -isystem /usr/local/include -MD -MQ src/update-mime-database.p/update-mime-database.c.o -MF src/update-mime-database.p/update-mime-database.c.o.d -o src/update-mime-database.p/update-mime-database.c.o -c ../src/update-mime-database.c
ninja: build stopped: subcommand failed.
===> Compilation failed unexpectedly.
Try to set MAKE_JOBS_UNSAFE=yes and rebuild before reporting the failure to
the maintainer.
*** Error code 1
Stop.
make: stopped in /usr/ports/misc/shared-mime-info
** Command failed [exit code 1]: /usr/bin/script -qa /tmp/portupgrade20220328-94256-rru777 env UPGRADE_TOOL=portupgrade UPGRADE_PORT=shared-mime-info-2.0_2 UPGRADE_PORT_VER=2.0_2 make
** Fix the problem and try again.
---> Skipping 'graphics/gdk-pixbuf2' (gdk-pixbuf2-2.40.0) because a requisite package 'shared-mime-info-2.0_2' (misc/shared-mime-info) failed (specify -k to force)
** Listing the failed packages (-:ignored / *:skipped / !:failed)
! misc/shared-mime-info (shared-mime-info-2.0_2) (unknown build error)
* graphics/gdk-pixbuf2 (gdk-pixbuf2-2.40.0)
と、エラーになります。
2. 調査
「shared-mime-info」を「make」してみます。
オプションはないようです。
cd /usr/ports/misc/shared-mime-info
make clean
make
[ 97% 81/83] cc -Isrc/update-mime-database.p -Isrc -I../src -I/usr/local/include/glib-2.0 -I/usr/local/lib/glib-2.0/include -I/usr/local/include -I/usr/local/include/libxml2 -fno-color-diagnostics -D_FILE_OFFSET_BITS=64 -Wall -Winvalid-pch -O3 -O2 -pipe -fstack-protector-strong -isystem /usr/local/include -fno-strict-aliasing -isystem /usr/local/include -MD -MQ src/update-mime-database.p/update-mime-database.c.o -MF src/update-mime-database.p/update-mime-database.c.o.d -o src/update-mime-database.p/update-mime-database.c.o -c ../src/update-mime-database.c
ninja: build stopped: subcommand failed.
===> Compilation failed unexpectedly.
Try to set MAKE_JOBS_UNSAFE=yes and rebuild before reporting the failure to
the maintainer.
*** Error code 1
Stop.
make: stopped in /usr/ports/misc/shared-mime-info
言われる通り、オプションをつけてやってみると
$ make MAKE_JOBS_UNSAFE=yes
===> Building for shared-mime-info-2.0_3
[ 33% 1/3] /usr/ports/misc/shared-mime-info/work/shared-mime-info-ef58b2b2f7ad4070171c6e45e3b3764daa3ff2c1/data/freedesktop_generate.sh /usr/ports/misc/shared-mime-info/work/shared-mime-info-ef58b2b2f7ad4070171c6e45e3b3764daa3ff2c1 /usr/ports/misc/shared-mime-info/work/shared-mime-info-ef58b2b2f7ad4070171c6e45e3b3764daa3ff2c1/_build
FAILED: data/freedesktop.org.xml
/usr/ports/misc/shared-mime-info/work/shared-mime-info-ef58b2b2f7ad4070171c6e45e3b3764daa3ff2c1/data/freedesktop_generate.sh /usr/ports/misc/shared-mime-info/work/shared-mime-info-ef58b2b2f7ad4070171c6e45e3b3764daa3ff2c1 /usr/ports/misc/shared-mime-info/work/shared-mime-info-ef58b2b2f7ad4070171c6e45e3b3764daa3ff2c1/_build
ninja: Entering directory '/usr/ports/misc/shared-mime-info/work/shared-mime-info-ef58b2b2f7ad4070171c6e45e3b3764daa3ff2c1/_build'
ninja: no work to do.
Traceback (most recent call last):
File "/usr/local/bin/itstool", line 27, in <module>
import libxml2
File "/usr/local/lib/python3.7/site-packages/libxml2.py", line 1, in <module>
import libxml2mod
ImportError: /usr/local/lib/libxml2.so.2: version LIBXML2_2.4.30 required by /usr/local/lib/python3.7/site-packages/libxml2mod.so not defined
ninja: build stopped: subcommand failed.
*** Error code 1
Stop.
make: stopped in /usr/ports/misc/shared-mime-info
そういえば、最近「libxml2」を更新しましたわなぁ・・・。
$ pkg version -v | grep libxml2
libxml2-2.9.13 = up-to-date with index
libxml2-reference-2.9.10 ? orphaned: textproc/libxml2-reference
py37-libxml2-2.9.12 ? orphaned: textproc/py-libxml2
ん~、この「libxml2-reference」の方は、「libxml2」の関連で、一度、別途消す必要がありそうだな・・・。
3. 対策
「py-libxml2」を探してみると
$ whereis py-libxml2
py-libxml2: /usr/ports/textproc/py-libxml2
これをインストールすればいいのではないか?
cd /usr/ports/textproc/py-libxml2
make
make reinstall
オプションは、「TEST」ちゅうのがあって、チェックがはずれていますが、そのままでいいでしょう。
「reinstall」にしたのは、「conflict」が発生したからです。
どうも、「libxml2」は、依存がはずれたり、ついたりしているようです。
この後
portupgrade -Rr shared-mime-info
したら、正常にアップグレードされて、「gdk-pixbuf2」「shared-mime-info」は、アップグレード対象のリストから消えました。
その後
portupgrade -Rr gtk-doc
もすんなり通りまして、冒頭の状態は、解消しました。