ラベル pkg_rolling-replace の投稿を表示しています。 すべての投稿を表示
ラベル pkg_rolling-replace の投稿を表示しています。 すべての投稿を表示

2019-07-05

共有ライブラリの参照状況を確認

dynabook SS SX/15AにNetBSD/i386を入れ、アプリケーションはpkgsrcから入れています。もう1年以上もアプリケーションを更新していなかったので、6月上旬にpkgsrcをCVSでカレントの最新にしてpkg_rolling-replaceで作りなおし始めました。しかし導入済みのアプリケーションが多く、もとより数日で終わるとは思っていませんでしたが、ディスクが溢れたり、毎晩カーネルが落ちて日中の作業が無駄になったりして、6月下旬になっても全更新作業が終わりませんでした。

このままでは何時になったら全更新が完了するのか不安になってきたので、ソースから自前でビルドsるのを止めて、pkginを使って出来合いのバイナリ(2019Q1のpkgsrcからビルドされたもの)をインストールして済ませることにしました。流石にバイナリを入れるだけなので、ソースからビルドするのに比べると圧倒的に速く全更新が完了しました。

しかしpkgsrcのカレントからビルドしたパッケージと、2019Q1のpkgsrcからビルドされたパッケージが混在し、共有ライブラリの参照に不整合が生じてしまいました。不整合に気づくたびに対処していく事で、復旧できるのは確かですが、全体的に不整合が残っているのか解消したのか、判断できず不安が残ります。なんとかしたいので、対処してみました。

実現方法の詳細はともかくとして、やろうとすることは単純です。すなわち/usr/bin/lddで検査して異常がないことを確認するだけです。例えば以下に示す例ではlibclang.so.7が見つからずに「not found」となっています。参照できない状態がなければ問題ないと判断します。
/usr/pkg/qt5/bin/qdoc:
        -lexecinfo.0 => /usr/lib/libexecinfo.so.0
        -lelf.2 => /usr/lib/libelf.so.2
        -lgcc_s.1 => /usr/lib/libgcc_s.so.1
        -lc.12 => /usr/lib/libc.so.12
        -lclang.7 => not found
        -lQt5Core.5 => /usr/pkg/qt5/lib/libQt5Core.so.5
        -lz.1 => /usr/lib/libz.so.1
        -licui18n.63 => /usr/pkg/lib/libicui18n.so.63
        -licuuc.63 => /usr/pkg/lib/libicuuc.so.63
        -licudata.63 => /usr/pkg/lib/libicudata.so.63
        -lpthread.1 => /usr/lib/libpthread.so.1
        -lstdc++.8 => /usr/lib/libstdc++.so.8
        -lm.0 => /usr/lib/libm.so.0
        -lpcre2-16.0 => /usr/pkg/lib/libpcre2-16.so.0
        -lgthread-2.0.0 => /usr/pkg/lib/libgthread-2.0.so.0
        -lglib-2.0.0 => /usr/pkg/lib/libglib-2.0.so.0
        -lpcre.1 => /usr/pkg/lib/libpcre.so.1
        -lintl.1 => /usr/lib/libintl.so.1

/usr/bin/lddの出力から「not found」を見つけるために、簡単なawkスクリプトを準備しました。文字列を検索するだけならgrepでも出来ますが、見つかった文字列の属しているファイル(この例であれば/usr/pkg/qt5/bin/gdoc)が何なのか記録できません。awkスクリプトは次のようなもので、単独のコマンドとして使えるように、実行ビットを立てておきます。
#!/usr/bin/awk -f
/:$/ {
        filename = $0;
}
/not found/ {
        print filename, $0;
}
# [EOF]

共有ライブラリの参照に問題があるのは、動的リンクされた実行ファイルや共有ライブラリだけです。静的リンクされた実行ファイルとかテキストファイルなどは検証する必要がありません。当初は検証対象を限定しようと思っていたのですが、対象ファイルを見つける方法を考えるのが面倒になってきたので、強引ですが、マシン内の全てのファイルを対象とすることにしました。処理に無駄が出ますが、単純な処理で済みますし、結果をファイルに落としておいて最終的に確認すれば良いだけのことです。結局2時間ほどで全ファイルの検証が終わりました。

この検証をおこなったコマンドは以下の通りです。上述したawkスクリプトは「notfound.awk」というコマンドにしています。
find / -type f | sed -e 's/^/ldd "/' -e 's/$/"/' | sh 2>&1 | notfound.awk > notfound.log

findで対象を見つけた場合には、xargsでコマンドに渡すのが定番です。しかしsedshを組み合わせてコマンドを動かしています。当初はxargsを使おうと思っていたのですが、Microsoft Windows由来のファイルがあり、ファイル名の中に空白文字が含まれるため、findxargsの組み合わせでは、処理できなかったのです。

結果を記録されたファイルには、予想していたよりも相当多いファイル名が記録されていました。しかし/usr/pkg/opt/usr/pkg/emul/linuxなどにあるLinux版ファイルが大多数を占めており、本当に問題があったのは数ファイルだけでした。それらは対処したので、不整合の問題は解決した(それ以外に起因する問題は残りますが)と思います。

2019-06-26

pkg_rolling-replaceを捨て、pkginに乗り換え、アプリケーションの全更新が(ひとまず)完了

dynabook SS SX/15AのOSをNetBSD/i386に入れ換えて使用しています。アプリケーションはpkgsrcから自前でビルドして入れています。もう1年以上も更新していなかったので、全更新をおこなうことにしました。今月上旬からpkg_rolling-replaceを使って更新していましたが、ビルド中にエラーが出たり、ディスクが溢れて処理が止まったり、毎晩深夜にカーネルがパニックして日中の作業が無駄になったりして、七転八倒していました。このまま作業を続けても、いつになったら完了するのが先が見えないので、別の手段を検討することにしました。

U*IXの伝統に則り、アプリケーションはソースからコンパイルして使うのが当然だと考えていたので、pkgsrcを自前でビルドしていたのですが、ビルド済みの出来合いのパッケージをネットワーク越しに取ってきてインストールするだけにするのが、ビルド時間も節約できるし、今風のやり方なのかもしれません。pkg_rolling-replaceを使わなくても、pkg_chkpkginなどを使えば良さそうです。

そこでpkginを使ってみました。 まずpkgtools/pkginから導入します。/usr/pkg/etc/pkgin/repositories.confの設定は、導入直後は次のようになっていました。
ftp://ftp.netbsd.org/pub/pkgsrc/packages/NetBSD/$arch/8.99.43/All
このままではOSのバージョンが不適切なので、エディタで以下のように修正しました。
ftp://ftp7.jp.netbsd.org/pub/pkgsrc/packages/NetBSD/$arch/8.0_2019Q1/All
ftp://ftp.netbsd.org/pub/pkgsrc/packages/NetBSD/$arch/8.0_2019Q1/All
ftp://ftp.netbsd.org/pub/pkgsrc/packages/NetBSD/$arch/8.0/All
ファイルには複数のリポジトリを記述できるようですが、先頭から順番に使われると考えて良いのでしょうか。そうであると仮定して、先頭に日本のミラーサイトを指定しました。念のためにマスターサイトも書いておきました。

この状態で`pkgin full-upgrade`をおこなうと、次のようになりました。
285 to refresh, 30 to upgrade, 21 to install
338M to download, 471M to install
the following packages have unmet requirements:
一部のパッケージがインストールできませんでした。出力されているメッセージを確認すると、次のようなエラーが多数出ています。
/usr/X11R7/lib/libfreetype.so.18, needed by atril-1.22.0nb3 is not present in this system.
このメッセージの意図するところは、atril-1.22.0nb3というパッケージが必要とする/usr/X11R7/lib/libfreetype.so.18が存在しないということですね。ディレクトリを確認すると、確かに存在しません。しかし/usr/X11R7/lib/libfreetype.so.17なら存在するのです。 

このファイルの出所を探るために/var/db/pkgで「grep libfreetype.so.17 */+CONTENTS」としたら、x11-linksに含まれていることがわかりました。

このようなエラーになっているファイルは他にもあって、いずれも共有ライブラリのバージョン番号が違っているだけです。
  1. /usr/X11R7/lib/libGL.so.3
  2. /usr/X11R7/lib/libGLU.so.3
  3. /usr/X11R7/lib/libfreetype.so.18
  4. /usr/X11R7/lib/libglapi.so.1
  5. /usr/X11R7/lib/libXpresent.so.1

そもそも何故バージョンがずれているのでしょうか?「pkgin pkg-build-defs atril | grep libfreetype」として確認すると、以下のようになりました。リポジトリに置かれているファイルが、既にそのようになっているのでしょう。
REQUIRES=/usr/X11R7/lib/libfreetype.so.18
REQUIRES=/usr/pkg/lib/libfreetype.so.6

この問題を解決するには、どうしたら良いでしょう。エラーになっているパッケージだけは、自前でビルドすれば良いかもしれませんが、駄目かもしれません。問題のファイルが原因で導入できないパッケージは100弱ほどあるので、自前でビルドしていては、またしても時間がかかってしまいます。

そこでちょっと荒業ですが、既存のファイルに向けてシンボリックリンクを張り、見かけ上ファイルがあるように見せかけることにしました。
lrwxr-xr-x  1 root  wheel      12 May 23  2016 libGL.so -> libGL.so.2.0
lrwxr-xr-x  1 root  wheel      12 May 23  2016 libGL.so.2 -> libGL.so.2.0
-r--r--r--  1 root  wheel  770372 May 23  2016 libGL.so.2.0
lrwxrwxr-x  1 root  wheel      12 Jun 26 14:20 libGL.so.3 -> libGL.so.2.0
lrwxr-xr-x  1 root  wheel      13 May 23  2016 libGLU.so -> libGLU.so.2.0
lrwxr-xr-x  1 root  wheel      13 May 23  2016 libGLU.so.2 -> libGLU.so.2.0
-r--r--r--  1 root  wheel  510338 May 23  2016 libGLU.so.2.0
lrwxrwxr-x  1 root  wheel      13 Jun 26 14:21 libGLU.so.3 -> libGLU.so.2.0
lrwxrwxr-x  1 root  wheel      33 Jun 26 14:24 libXpresent.so.1 -> /usr/pkg/lib/libXpresent.so.1.0.0
lrwxr-xr-x  1 root  wheel      22 May 23  2016 libfreetype.so -> libfreetype.so.17.4.11
lrwxr-xr-x  1 root  wheel      22 May 23  2016 libfreetype.so.17 -> libfreetype.so.17.4.11
-r--r--r--  1 root  wheel  589796 May 23  2016 libfreetype.so.17.4.11
lrwxrwxr-x  1 root  wheel      22 Jun 26 14:22 libfreetype.so.18 -> libfreetype.so.17.4.11
lrwxr-xr-x  1 root  wheel      15 May 23  2016 libglapi.so -> libglapi.so.0.0
lrwxr-xr-x  1 root  wheel      15 May 23  2016 libglapi.so.0 -> libglapi.so.0.0
-r--r--r--  1 root  wheel  281835 May 23  2016 libglapi.so.0.0
lrwxrwxr-x  1 root  wheel      15 Jun 26 14:22 libglapi.so.1 -> libglapi.so.0.0

この状態で、あらためて「pkgin full-upgrade」したところ、ひとまず全ての更新に成功しました。今月上旬にpkg_rolling-replaceで始めたアプリケーションの全更新が、とりあえず完了したことになります。しかし、ディスク不足を解消するためにFirefoxやLibreOfficeを削除してしまっていますから、あらためてインストールしておかなければなりません。

さらに個人アカウントでMateデスクトップにログインしてみると、画面がすっかり初期化されていて、以前の状態が消えてしまっています。しかも、一部の機能にエラーがあり、以前と同じ環境を取り戻すには、まだ調査と作業が必要のようです。

問題は残っていますが、約1か月間に亘りビルドを続けていましたが、一区切りをつけることはできたと思います。

2019-06-25

pkgsrcにあるlang/rustのビルド

dynabook SS SX/15Aで利用しているNetBSD/i386のパッケージを更新するためpkg_rolling-replaceを使って作業中です。今月上旬から始めましたが、いろいろな問題があり、まだ終わっていません。何かのパッケージの依存関係に含まれていたlang/rustは、大物なので自前でビルド出来ず、難儀しました。パッケージを消去することで、システムに存在しないことになったので、ビルド対象から外れていたのですが、何かのパッケージの依存関係に含まれていたらしく、またしてもビルドが始まろうとしてしまいました。

lang/rustをビルドしているとディスクが溢れてしまうのが、自前でビルドできない理由です。ビルド済みのパッケージを入手して済まそうと思ったのですが、The NetBSD Packages Collection: lang/rustにはx86_64版とsparc64版しか置いてありません。

必要なのはi386版のビルド済みパッケージです。それがあれば、pkg_addするだけで済むはずです。そこで、Windows10上のVirtualBoxでNetBSD/i386の環境を作り、そこでlang/rustのビルドをおこなうことにしました。途中でWindows10のマシンの電源を落としたりしたので、24時間動かしていたわけではありませんが、2日間強ほどかかりましたが、無事にビルド出来ました。

ビルド出来たパッケージをpkg_addすると、警告が出ましたが、無事にインストールされました。
# pkg_add /usr/local/pkgsrc/packages/All/rust-1.35.0nb1.tgz
pkg_add: Warning: package `rust-1.35.0nb1' was built for a platform:
pkg_add: NetBSD/i386 8.0 (pkg) vs. NetBSD/i386 8.99.43 (this host)
# pkg_info  | grep rust
rust-1.35.0nb1      Safe, concurrent, practical language

これで一安心かと思いきや、pkg_rolling-replaceではlang/rustの再作成が始まろうとしてしまいます。
rr> inputmethod/ibus-mozc - ibus-mozc-2.17.2313.102nb2 < ibus-mozc-2.17.2313.102nb13
rr> lang/py-six - py37-six-1.12.0 missing
rr> lang/rust - rust-1.35.0nb1 > rust-1.35.0 - ignoring
rr> lang/vala - vala-0.38.4 < vala-0.44.3

pkg_rolling-replaceは内部でpkg_chkを呼び出すことで、パッケージを再ビルドする必要の有無を判断しているようです。ここに出ているメッセージはpkg_chkを単独で実行したものと同じでした。

せっかくVirualBox上のNetBSD/i386でビルドしたのに、これでは意味がありません。どうしようかと思ったのですが、pkg_rolling-replaceにはオプション「-X」で再作成対象から除外できる機能があるので、「-X rust」 を指定して再作成対象外としました。

これでlang/rustの問題は解決したと考えています。しかしながらpkg_rolling-replaceでパッケージを全更新するのは、あまり得策ではないような気がしてきました。pkg_rolling-replace以外にも、pkg_chkpkginなどのツールもあるようですし、そもそもソースから自前でビルドしなくても、出来合いのバイナリを使う方法もあるようです。どうすれば良いのか、もう一度考えてみようと思います。

2019-06-21

lang/mono2がビルドできない

dynabook SS SX/15Aに入れたNetBSD/i386のアプリケーションを更新するためにpkg_rolling-replaceを実行しています。lang/rustの更新が上手くいかず手間取りました。しかし未解決のまま、先にすすめています。順調に処理が進んだかと思ったら、lang/mono2でエラーになりました。このパッケージは以前にも失敗しており、同じ現象が出ています。

失敗した時点のログは以下のようになっています。
gmake[7]: Entering directory '/usr/pkgsrc/lang/mono2/work/mono-2.10.9/mcs/tools/gacutil'
/usr/pkg/bin/gmake all-local
gmake[8]: Entering directory '/usr/pkgsrc/lang/mono2/work/mono-2.10.9/mcs/tools/gacutil'
MCS     [basic] gacutil.exe
mv gacutil.exe ./../../class/lib/basic/gacutil.exe
mv: rename gacutil.exe to ./../../class/lib/basic/gacutil.exe: No such file or directory
gmake[8]: *** [../../build/executable.make:106: ../../class/lib/basic/gacutil.exe] Error 1
gmake[8]: Leaving directory '/usr/pkgsrc/lang/mono2/work/mono-2.10.9/mcs/tools/gacutil'

ビルドに失敗した直接の原因は、ログにもあるように、gacutil.exeが存在しないため、mvに失敗したことです。なぜファイルが存在しないのかを探ってみると、コアファイルが残っていました。
# ls -l /usr/pkgsrc/lang/mono2/work/mono-2.10.9/mcs/tools/gacutil
total 718
-rw-rw-r--  1 furusawa  furusawa   12419 Feb  4  2012 ChangeLog
-rw-rw-r--  1 furusawa  furusawa     198 Jan 31  2012 Makefile
-rw-rw-r--  1 furusawa  furusawa   28150 Jan 31  2012 driver.cs
-rw-rw-r--  1 furusawa  furusawa      43 Nov 16  2011 gacutil.exe.sources
-rw-------  1 root      furusawa  668188 Jun 20 17:50 mono.core

このディレクトリで処理が正常に行われればgacutil.exeが作られるはずなのでしょう。ところがコアを吐いているところをみると、何か問題があるようです。折角コアが出来ているので、念のために状況を確認してみました。
# gdb  ../../../mono/mini/mono mono.core
GNU gdb (GDB) 8.0.1
Copyright (C) 2017 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 "i486--netbsdelf".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<http://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 ../../../mono/mini/mono...done.
[New process 1]
Core was generated by `mono'.
Program terminated with signal SIGABRT, Aborted.
#0  0xad063df7 in _lwp_kill () from /usr/lib/libc.so.12
(gdb) where
#0  0xad063df7 in _lwp_kill () from /usr/lib/libc.so.12
#1  0xad063d81 in raise () from /usr/lib/libc.so.12
#2  0xad063a57 in abort () from /usr/lib/libc.so.12
#3  0x080e0617 in mono_handle_native_sigsegv (signal=signal@entry=11, ctx=ctx@entry=0xbfb6eba4) at mini-exceptions.c:2223
#4  0x08061228 in mono_sigsegv_signal_handler (_dummy=11, info=0xbfb6eb24, context=0xbfb6eba4) at mini.c:5875
#5  <signal handler called>
#6  GC_push_all_eager (bottom=bottom@entry=0x0, top=top@entry=0xbfb6ef6c "") at mark.c:1468
#7  0x0820cdab in GC_push_current_stack (cold_gc_frame=cold_gc_frame@entry=0xbfb6ef6c "") at mark_rts.c:491
#8  0x08220e5c in GC_with_callee_saves_pushed (arg=0xbfb6ef6c "", fn=<optimized out>) at mach_dep.c:476
#9  GC_generic_push_regs (cold_gc_frame=cold_gc_frame@entry=0xbfb6ef6c "") at mach_dep.c:487
#10 0x0820ce81 in GC_push_roots (all=all@entry=1, cold_gc_frame=cold_gc_frame@entry=0xbfb6ef6c "") at mark_rts.c:631
#11 0x0820c37f in GC_mark_some (cold_gc_frame=cold_gc_frame@entry=0xbfb6ef6c "") at mark.c:391
#12 0x08205d75 in GC_stopped_mark (stop_func=stop_func@entry=0x8205ac0 <GC_never_stop_func>) at alloc.c:543
#13 0x0820637d in GC_try_to_collect_inner (stop_func=0x8205ac0 <GC_never_stop_func>) at alloc.c:382
#14 0x0820dd0b in GC_init_inner () at misc.c:820
#15 0x0820ddd2 in GC_init_inner () at misc.c:603
#16 GC_init () at misc.c:517
#17 0x08127676 in mono_gc_base_init () at boehm-gc.c:126
#18 0x081423c0 in mono_init_internal (filename=filename@entry=0xbfb6f8d8 "./../../class/lib/basic/mcs.exe", exe_filename=exe_filename@entry=0xbfb6f8d8 "./../../class/lib/basic/mcs.exe", runtime_version=runtime_version@entry=0x0) at domain.c:1303
#19 0x081437ae in mono_init_from_assembly (domain_name=domain_name@entry=0xbfb6f8d8 "./../../class/lib/basic/mcs.exe", filename=filename@entry=0xbfb6f8d8 "./../../class/lib/basic/mcs.exe") at domain.c:1688
#20 0x0806225f in mini_init (filename=0xbfb6f8d8 "./../../class/lib/basic/mcs.exe", runtime_version=runtime_version@entry=0x0) at mini.c:6348
#21 0x080ba9d4 in mono_main (argc=14, argv=0xbfb6f1b8) at driver.c:1746
#22 0x080576f6 in ___start ()
#23 0x08057427 in _start ()
(gdb)

コアが吐かれた原因は分かりません。何かの不整合があるのかもしれないし、もしかするとハードウェアのどこかに問題を抱えているのかもしれません。

この状況をどのようにして打開すればよいのか考えてみました。もしビルドしている環境(ハードウェアの何らかの故障や、OSの些細な不整合)が問題の原因であるなら、他のマシンでビルドすれば成功するかもしれません。そこでWindows10上のVirtualBoxを利用して、NetBSD/i386の環境を作ってみました。新規にOSをインストールし、そこでlang/mono2をビルドしてみました。これでうまくいくと思ったのですが、なんと同様のエラーが出て、やはりビルドできませんでした。そもそもlang/mono2は正常にビルド出来る状態にあるのか、不信感が生じてきました。

根本に立ち返ると、mono2が必要な理由は、security/KeePassが必要としているからです。KeePassを利用しようと思った理由は、dynabook SS SX/15Aに当初インストールされていたWindows VistaでID Managerという管理ソフトを利用しており、その移行先として利用してみようと思ったからです。移行先はKeePassに限定されるわけではないので、mono2にこれほど手間取るのであれば、KeePass以外の類似ツールを検討してみようかと考えています。

2019-06-13

No package directory 'lang/spidermonkey17' for spidermonkey17

dynabook SS SX/15Aで使用しているNetBSD/i386のアプリケーションをpkg_rolling-replaceで入れ換える作業を続けています。前回入れ換えてから1年以上経っているので、更新対象が多く、時間がかかっています。

処理中に、次のようなメッセージが出て中断してしまいました。
RR> Tsorting dependency graph
RR> Selecting spidermonkey17 (lang/spidermonkey17) as next package to replace
*** No package directory 'lang/spidermonkey17' for spidermonkey17.
*** Please read the errors listed above, fix the problem,
*** then re-run pkg_rolling-replace to continue.
- spidermonkey17
そもそもspidermonkey17が何なのか知りませんでしたが、ウィキペディアによると「世界初のJavaScriptエンジンで、現在はMozilla Foundationが保守している」そうです。/usr/pkgsrcを確認してみると、確かに問題となっているディレクトリはありませんでした。
drwxr-xr-x  5 root  wheel  512 Oct 30  2017 /usr/pkgsrc/lang/spidermonkey
drwxr-xr-x  4 root  wheel  512 Jun  8 18:27 /usr/pkgsrc/lang/spidermonkey185
drwxrwxr-x  4 root  wheel  512 Jun  8 18:27 /usr/pkgsrc/lang/spidermonkey52
pkgsrcにある何かのパッケージが依存関係としてspidermonkey17を参照しているのでしょうから、そのパッケージを突き止めるのが問題解決に繋がるかと思いました。しかしNetBSDのpkgsrcで依存関係を調べる方法がわかりません。

あるパッケージが依存しているものを探すなら「make show-depends」で判明するようなのですが、あるパッケージを参照している相手を探すには、どうすればよいのでしょうか?

考えてみると、spidermonkey17を参照している相手が見つかったところで、いずれにせよspidermonkey17を削除して、より新しいバージョンを導入することになるはずです。依存関係を探す手段をみつけるという課題は後回しにして、強制的にspidermonkey17を削除してしまうことにしました。

2019-06-09

gawk: Shared object "libreadline.so.7" not found

dynabook SS SX/15AにインストールしているNetBSD/i386のアプリケーションはpkgsrcから入れています。もう1年以上更新していないのでpkg_rolling-replaceを使って入れ換えることにしました。この処理は何日もかかりますし、たいてい途中でエラーがでて何かしらの対処をおこなう必要があります。

案の定さっそくエラーが出ました。
checking that generated files are newer than configure... done
configure: creating ./config.status
config.status: creating libguile/gen-scmconfig.h
gawk: Shared object "libreadline.so.7" not found
config.status: error: could not create libguile/gen-scmconfig.h
*** Error code 1

Stop.
make[1]: stopped in /usr/pkgsrc/lang/guile20
*** Error code 1

Stop.
make: stopped in /usr/pkgsrc/lang/guile20
*** 'make replace' failed for package guile20.
lang/guile20をビルドしようとして失敗しています。/usr/pkgsrcの不整合でもあったのかと思ったので、CVSで最新化してみましたが、やはり同じエラーになります。

gawkがエラーを出しているので、とりあえずgawkを動かそうとしてみたらエラーが出ます。まさにログに現れていたのと同じエラーです。何故かgawkが動かなくなってしまっていて、それが原因だったようです。

pkgsrcでlang/gawkを入れ直しました。これまではgawk-4.1.4nb1でしたがgawk-5.0.0になりました。この状態で改めてpkg_rolling-replaceを動かしたところ、guile20で止まることもなく、処理を続けています。