pkg・ports アップデート関連 - その他一般 - unbound 1.13.1 → 1.13.2
- 1. 概要
- 2. 調査
- 3. 中途半端
- 4. 解決
1. 概要
この記事を書いているのは、2021年9月13日ですが、実は数週間前から発生しています。
「ports - FreeBSD ports tree」を参照すると、「unbound 1.13.2」は、2021年8月16日にリリースされていますので、そのときには、発生していることになります。
$ pkg version -vl "<"
unbound-1.13.1 < needs updating (index has 1.13.2)
ちゅうことで、アップグレードしようとしますと。
$ portupgrade -Rr unbound
[Reading data from pkg(8) ... - 385 packages found - done]
[Gathering depends for dns/unbound ................................................................. done]
[Exclude up-to-date packages ...................... done]
---> Upgrading 'unbound-1.13.1' to 'unbound-1.13.2' (dns/unbound)
---> Building '/usr/ports/dns/unbound'
===> Cleaning for unbound-1.13.2
===> License BSD3CLAUSE accepted by the user
===> unbound-1.13.2 depends on file: /usr/local/sbin/pkg - found
===> Fetching all distfiles required by unbound-1.13.2 for building
===> Extracting for unbound-1.13.2
=> SHA256 Checksum OK for unbound-1.13.2.tar.gz.
===> Patching for unbound-1.13.2
===> unbound-1.13.2 depends on package: pkgconf>=1.3.0_1 - found
===> unbound-1.13.2 depends on file: /usr/local/lib/libcrypto.so.11 - found
===> unbound-1.13.2 depends on package: autoconf>=2.69 - found
===> unbound-1.13.2 depends on package: automake>=1.16.1 - found
===> unbound-1.13.2 depends on executable: libtoolize - found
===> unbound-1.13.2 depends on shared library: libexpat.so - found (/usr/local/lib/libexpat.so)
===> unbound-1.13.2 depends on shared library: libevent.so - found (/usr/local/lib/libevent.so)
===> Configuring for unbound-1.13.2
libtoolize: putting auxiliary files in '.'.
libtoolize: copying file './ltmain.sh'
libtoolize: Remember to add 'LT_INIT' to configure.ac.
・・・ 略 ・・・
--- unbound ---
libtool: link: cc -I. -I/usr/local/include -I/usr/local/include -I/usr/local/include -I/usr/local/include -DSRCDIR=. -O2 -pipe -fstack-protector-strong -fno-strict-aliasing -D_THREAD_SAFE -pthread -Wl,-rpath -Wl,/usr/local/lib -fstack-protector-strong -o unbound .libs/acl_list.o .libs/cachedump.o .libs/daemon.o .libs/shm_main.o .libs/remote.o .libs/stats.o .libs/unbound.o .libs/worker.o .libs/dns.o .libs/infra.o .libs/rrset.o .libs/dname.o .libs/msgencode.o .libs/as112.o .libs/msgparse.o .libs/msgreply.o .libs/packed_rrset.o .libs/iterator.o .libs/iter_delegpt.o .libs/iter_donotq.o .libs/iter_fwd.o .libs/iter_hints.o .libs/iter_priv.o .libs/iter_resptype.o .libs/iter_scrub.o .libs/iter_utils.o .libs/localzone.o .libs/mesh.o .libs/modstack.o .libs/view.o .libs/outbound_list.o .libs/alloc.o .libs/config_file.o .libs/configlexer.o .libs/configparser.o .libs/fptr_wlist.o .libs/edns.o .libs/locks.o .libs/log.o .libs/mini_event.o .libs/module.o .libs/net_help.o .libs/random.o .libs/rbtree.o .libs/regional.o .libs/rtt.o .libs/dnstree.o .libs/lookup3.o .libs/lruhash.o .libs/slabhash.o .libs/tcp_conn_limit.o .libs/timehist.o .libs/tube.o .libs/winsock_event.o .libs/autotrust.o .libs/val_anchor.o .libs/rpz.o .libs/validator.o .libs/val_kcache.o .libs/val_kentry.o .libs/val_neg.o .libs/val_nsec3.o .libs/val_nsec.o .libs/val_secalgo.o .libs/val_sigcrypt.o .libs/val_utils.o .libs/dns64.o .libs/authzone.o .libs/respip.o .libs/netevent.o .libs/listen_dnsport.o .libs/outside_network.o .libs/ub_event.o .libs/keyraw.o .libs/sbuffer.o .libs/wire2str.o .libs/parse.o .libs/parseutil.o .libs/rrdef.o .libs/str2wire.o -L/usr/local/lib -lssl -lutil -lcrypto -pthread -Wl,-rpath -Wl,/usr/local/lib
--- unbound-control ---
ld: error: undefined symbol: event_get_version
>>> referenced by ub_event.c
>>> .libs/ub_event.o:(ub_event_get_version)
>>> referenced by ub_event.c
>>> .libs/ub_event.o:(ub_get_event_sys)
・・・ 略 ・・・
ld: error: undefined symbol: event_del
>>> referenced by ub_event.c
>>> .libs/ub_event.o:(ub_event_del)
>>> referenced by ub_event.c
>>> .libs/ub_event.o:(ub_timer_del)
>>> referenced by ub_event.c
>>> .libs/ub_event.o:(ub_signal_del)
cc: error: linker command failed with exit code 1 (use -v to see invocation)
*** [unbound] Error code 1
make[2]: stopped in /usr/ports/dns/unbound/work/unbound-1.13.2
4 errors
make[2]: stopped in /usr/ports/dns/unbound/work/unbound-1.13.2
===> Compilation failed unexpectedly.
Try to set MAKE_JOBS_UNSAFE=yes and rebuild before reporting the failure to
the maintainer.
*** Error code 1
Stop.
make[1]: stopped in /usr/ports/dns/unbound
*** Error code 1
Stop.
make: stopped in /usr/ports/dns/unbound
** Command failed [exit code 1]: /usr/bin/script -qa /tmp/portupgrade20210913-41960-b1lhvg env UPGRADE_TOOL=portupgrade UPGRADE_PORT=unbound-1.13.1 UPGRADE_PORT_VER=1.13.1 make
** Fix the problem and try again.
** Listing the failed packages (-:ignored / *:skipped / !:failed)
! dns/unbound (unbound-1.13.1) (linker error)
てなことになります。
2. 調査
実は、リリースされてから、これだけ日数が経過しているのは・・・。
これは、リリースされているものが「broken」であるとみなして、次期リリースを待とうと思っておったのです。
ところが、別のマシンになんの気なしに、同じ「portupgrade」を行うと、すんなり通ってしまったのです。
なんの違いかとつらつら見てみますと、どうも、オプションが変わっているようです。
うまくアップグレードできた方のオプションを見てみると


ちゅなことになっておる。
うまくアップグレードできなかった方と見比べると、うまくできなかった方は、「DOH」と「GOST」のオプションのチェックが入っていない。
ということで、オプションを変更して、アップグレードしてみようとしたのですが・・・。
同じ現象が出て、解決しない。
で、もう一度、よくログを見る。
どうもね。「xx_event」というのがエラーになっています。
これは、「libevent」というライブラリに含まれておるようなのです。
「libevent」は、インストールされているんだけどな。
で、オプションを見ると
[x] LIBEVENT Build against libevent
というオプションがあります。
このオプションを恐る恐る、はずして「make」してみると・・・通るのです。
3. 中途半端
これで、解決と言えるのかどうか、不安ではあります。
前項の「LIBEVENT」のチェックをはずした状態で、「portupgrade」したら、そのまま通っちゃいました。
service unbound restart
もすんなり通って、見る限りは、「ubound」が動いているように見えます。
このまま、様子をみてみますか。
コンテンツサーバではないので、そこまで、重く考えなくてもいいのかしら?
4. 解決
結局、次ページの「memcached」の解決でこれも応用が利きました。
すなわち
cd /usr/ports/devel/libevent
make
make reinstall
の後
cd /usr/ports/dns/unbound/
make config
で、「LIBEVENT」のチェックをいれなおして
cd /usr/ports/dns/unbound/
make
make reinstall
service unbound restart
で、うまくいきました。
|
|