ttt

getttyent

(FreeBSD) ports/security/gnutls3 にて tar: info/gnut

2013-11-15 21:00:09 | デジタル・インターネット

portsのsecurity/gnutls3 でmake installすると、最後の方で、こんなエラー。

====> Compressing man pages (compress-man)
===>   Installing ldconfig configuration file
===>  Building package for gnutls3-3.1.16_1
Creating package /work/usr/ports/security/gnutls3/work/gnutls3-3.1.16_1.tbz
Registering depends: libgpg-error-1.12 libidn-1.28_1 gettext-0.18.3.1 libiconv-1.14_1 p11-kit-0.20.1 libffi-3.0.13 nettle-2.7.1 gmp-5.1.3 ca_root_nss-3.15.2_1 libtasn1-3.3.
Creating bzip'd tar ball in '/work/usr/ports/security/gnutls3/work/gnutls3-3.1.16_1.tbz'
tar: info/gnutls3/gnutls.info-5: Cannot stat: No such file or directory
tar: Error exit delayed from previous errors.
pkg_create: make_dist: tar command failed with code 256
*** [do-package] Error code 1

Stop in /usr/ports/security/gnutls3.

gnutls.info-5 というファイルがないらしいです。

# cd /usr/ports.work/security/gnutls3/work/gnutls-3.1.16/doc
# ls gnutls.info*
gnutls.info     gnutls.info-1   gnutls.info-2   gnutls.info-3   gnutls.info-4

なるほど、gnutls.info-4 までしか無いですね。

ログメッセージを見てると、これらのファイルは、こんなコマンドで作られるようです。

makeinfo -I ../doc/ -I . -o gnutls.info gnutls.texi

なんとなく、直感が働きました

# which makeinfo
/usr/bin/makeinfo

もしも /usr/local/bin/makeinfo を使わせたらどうなる???

# rm gnutls.info*

/usr/local/bin/makeinfo -I ../doc/ -I . -o gnutls.info gnutls.texi
./cha-intro-tls.texi:378: warning: @ref node name should not contain `:'
./cha-cert-auth.texi:201: warning: @ref node name should not contain `:'
./cha-cert-auth.texi:289: warning: @ref node name should not contain `:'
./cha-tokens.texi:356: warning: @ref node name should not contain `:'

# ls gnutls.info*
gnutls.info     gnutls.info-2   gnutls.info-4
gnutls.info-1   gnutls.info-3   gnutls.info-5

gnutls.info-5 まで作られました。な~んだ。
ということで、PATHを変更。

# cd /usr/ports/security/gnutls3/
# make clean
===>  Cleaning for gnutls3-3.1.16_1
# env PATH=/usr/local/bin/:$PATH make package clean
===> Fetching all distfiles required by gnutls3-3.1.16_1 for building
===>  Extracting for gnutls3-3.1.16_1
=> SHA256 Checksum OK for gnutls-3.1.16.tar.xz.

途中省略

install  -o root -g wheel -m 444 /work/usr/ports/security/gnutls3/work/gnutls-3.1.16/THANKS /work/usr/ports/security/gnutls3/work/stage/usr/local/share/doc/gnutls3
====> Compressing man pages (compress-man)
===>   Installing ldconfig configuration file
===>  Building package for gnutls3-3.1.16_1
Creating package /work/usr/ports/security/gnutls3/work/gnutls3-3.1.16_1.tbz
Registering depends: libgpg-error-1.12 libidn-1.28_1 gettext-0.18.3.1 libiconv-1.14_1 p11-kit-0.20.1 libffi-3.0.13 nettle-2.7.1 gmp-5.1.3 ca_root_nss-3.15.2_1 libtasn1-3.3.
Creating bzip'd tar ball in '/work/usr/ports/security/gnutls3/work/gnutls3-3.1.16_1.tbz'
===>  Cleaning for gnutls3-3.1.16_1

うまくいってしまいました。

ところで、make packageだと、installされないですね。前はインストールまでされたのに・・・いつからそうなった?

ちなみに、infoファイルは、通常とは1階層だけ違うところにインストールされていました。

# ls /usr/local/info/gnutls3/gnutls.info*
/usr/local/info/gnutls3/gnutls.info     /usr/local/info/gnutls3/gnutls.info-3
/usr/local/info/gnutls3/gnutls.info-1   /usr/local/info/gnutls3/gnutls.info-4
/usr/local/info/gnutls3/gnutls.info-2   /usr/local/info/gnutls3/gnutls.info-5

余談ですが、gnutls3の配布パッケージ内には、gnutls.info-5が存在します。

# make clean
===>  Cleaning for gnutls3-3.1.16_1
# make patch
===> Fetching all distfiles required by gnutls3-3.1.16_1 for building
===>  Extracting for gnutls3-3.1.16_1
=> SHA256 Checksum OK for gnutls-3.1.16.tar.xz.
===>  Patching for gnutls3-3.1.16_1
===>   gnutls3-3.1.16_1 depends on package: libtool>=2.4 - found
# ls /usr/ports.work/security/gnutls3/work/gnutls-3.1.16/doc/gnutls.info*
/usr/ports.work/security/gnutls3/work/gnutls-3.1.16/doc/gnutls.info
/usr/ports.work/security/gnutls3/work/gnutls-3.1.16/doc/gnutls.info-1
/usr/ports.work/security/gnutls3/work/gnutls-3.1.16/doc/gnutls.info-2
/usr/ports.work/security/gnutls3/work/gnutls-3.1.16/doc/gnutls.info-3
/usr/ports.work/security/gnutls3/work/gnutls-3.1.16/doc/gnutls.info-4
/usr/ports.work/security/gnutls3/work/gnutls-3.1.16/doc/gnutls.info-5

makeすると、消されて、作り直されるようです。

20131115