pkg・ports アップデート関連 - その他一般 - shared-mime-info-2.0_2 → 2.0_3

 クラウディア
1. 概要
2. 調査
3. 対策

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
 もすんなり通りまして、冒頭の状態は、解消しました。
ハイスピードプラン