2019/11/29

ハングルフォント:baekmuk-ttf

dynabook SS SX/15AにNetBSD/i386をインストールして利用しています。GUIとしてMATEデスクトップ環境(1.22.1)を入れて、日本語環境を整えてあります。追加してハングルの入出力も出来るようにしたくて、iBus用の入力メソッド(ibus-m17n-1.3.4nb26)を入れることで、入力は出来るようになっています。

これまではGNU Emacs(26.1) で動作確認を行っていました。iBus入力メソッドを切り替えるだけで、ハングル入力ができますし、表示も出来ていましたので、環境構築はできていると思っていました。ところがNightly(67.0.4)ではハングルが表示できなかったので、これはNightly単独の問題かと思っていました。

本当にNightlyの問題なのか確認しておこうと思い、MATE端末やLibreOffice(6.2.3.2)でもハングルが表示できるか確認したところ、実は表示できないことが発覚しました。入力自体は出来ているようです。

おそらくフォントが入っていないのが原因だろうと推測しました。きっとWebを検索すればフォントが見つかるだろうとは思いましたが、何が標準的なフォントなのかは、どうやって確認すれば良いのでしょうか。つまり日本語であればIPAex明朝やゴシックを入れている訳なのですが、このように標準的なハングルのフォントの名前が分からないのです。

pkgsrcのfontsカテゴリにある各ディレクトリにあるDESCRファイルを調べてみると、どうやらBAEKMUKというの名前のフォントが一般的のように思えます。そこでpkginでインストールできるパッケージを調べると、次のようになりました。
# pkgin search baekmuk
tex-baekmuk-doc-2.2  Documentation for tex-baekmuk
tex-baekmuk-2.2      Baekmuk Korean TrueType fonts
ko-baekmuk-2.1nb1    X11 fonts for KSX 1001 Korean standard (baekmuk foundry)
baekmuk-ttf-2.2nb3 = Baekmuk family Korean TrueType fonts

=: package is installed and up-to-date
<: package is installed but newer version is available
>: installed package has a greater version than available package

TeX用フォントは今回無関係だと思うので、X11フォントとTrueTypeフォントのどちらかを入れれば良さそうです。どちらにしようかと思ったのですが、TrueTypeフォントの方が綺麗だろうと思い、こちらをインストールしました。これでNightlyで確認したら、無事にハングルが表示されるようになりました。

以上でハングル入出力が出来るようになって、一安心です。しかし何故Emacsでは当初から表示出来ていたのか、謎です。

2019/11/28

世界における名前の表記方法

the Japan Times Alphaの2019年11月22日号に掲載されたTan Ying Zhen氏のエッセイ「First name or last?」では、名前における姓名の順序が話題です。欧米では名前が先に記されます。しかし東洋ではまず姓が記されるのが一般的ですが、英語などで表記する場合に、東洋風にするか欧米風にするかについては一般的な方法がないようです。

日本では、日本語表記では「姓名」の順ですが、英語などでは「名姓」の順にします。しかしそれが東洋で一般的な習慣という訳ではないようなのです。エッセイで著者は次のように書いています。
When I worked in Japan, it took me some time to get used to this.  At conferences, my name tag would be printed as "Ying Zhen Tan."  Once, I wrote "Tan Ying Zhen" on my name tag and people I met started calling me "Tan Ying", or "Miss Zhen."  It sometimes took me a while to respond.

日本人は、英語で表記する場合に名前を「名姓」の順にするので、東洋では何処でも同様だろうと考えてしまうのでしょう。さらに、日本人の姓名のローマ字表記は見慣れていても、アジア各国の英語表記は見慣れていないため、先に引用したような体験を著者がすることになってしまうのでしょう。

自分の周囲で当たり前である習慣が、(世界中の)何処でも当たり前であるとは限りません。異文化体験というと大袈裟に聞こえるかもしれません。うっかりすると見過ごしてしまうような日常的な一断面からも学べることは多くあると思います。


今年もHobbyist OpenVMSのPAKを入手した

自宅にあるPERSONAL WORKSTATION 500au(DECchip 21164A-2 500MHz)には、OpenVMS Hobbyist Programを利用してOpenVMS/alphaをインストールしています。個人利用ではありますが本物のOpenVMSなので、使用するにはライセンスを必要とします。

OpenVMS Hobbyistのためのライセンス(Product Authorization Key)を入手するにはWebサイトからリクエストします。その後HPEからメールでPAKが送られてきます。このPAKには有効期間が設定されており、1年間相当なので、毎年更新手続きをおこなう必要があります。

そういう訳で、今年もPAKの申請を行いました。申請は「OpenVMS Hobbyist Registration」からおこないます。申請には「Participating Chapter」というものが必要になり、僕の場合は昔々に得た資格「DECUS Japan」を使っています(Membership Numberも必要になります )。


Webからリクエストを投げると自動返信メールが届きます。このメールはグリニッジ標準時(GMT)で10時となっていますが、日本時間なら19時(午後7時)です。
Date:    27 Nov 2019 10:00:13 GMT
From:    no-reply@hp.com
Subject: Thank you for contacting HP

Your message is important to us. It has been forwarded to the HP OpenVMS Systems
 response team. An auto-acknowledgement will be sent to you to confirm your e-ma
il address and to confirm that we have received your inquiry. If you do not rece
ive an auto-acknowledgement after 1 hour, please re-submit your inquiry and veri
fy that you've entered the correct e-mail address.

If you have submitted an inquiry that is not related to HP OpenVMS Systems, we w
ill forward your message to the appropriate organization within HP.

If you have additional feedback or inquiries, please visit our <a href"http://we
lcome.hp.com/country/us/en/wwcontact.html">Contact HP</a> page.

Thank you,
OpenVMS webmaster

驚いたことに、30分後にはPAKが届きました。近年は処理が早いのですが、以前には数日待ってもPAKが届かないので、待った方が良いのか、催促した方が良いのか、気を揉んだこともあります。
Date:    Wed, 27 Nov 2019 10:28:10 GMT
From:    OpenVMS Customer Lab <openvmscustomerlab@hpe.com>
Subject: RE: OpenVMS Hobbyist Registration

Hello Furusawa-san,

Please see attached for PAKs to use on your VAX or Alpha.
The attached file is a DCL command file; to load your PAKs simply execute it
(以下略)

これでPAKが手に入ったので、早々にDCL(日本語では「コマプロ」)を流そうと思います。

2019/11/24

2019Q2でMATEデスクトップ環境を更新

dynabook SS SX/15AにNetBSD/i386を入れて利用しています。最近パッケージ2019Q2を入れたら、MATEデスクトップ環境の動作が変になりました。パッケージ2019Q2は、pkginを使ってバイナリ版を入れたのですが、i386版はamd64版に比べて提供されているパッケージが少ないことが分かりました。中途半端に更新されたので、動作がおかしくなったのではないかと思います。

VirtualBoxでNetBSD/i386とpkgsrc 2019Q2の環境を作り、/usr/pkgsrc/meta-pkgs/mateを使って自前でビルドしました。依存関係にある大物パッケージはpkginでインストールさせておいて、ビルド時間の短縮を図ります。

出来上がったMATE関係パッケージを使って、dynabook SS SX/15AのNetBSD/i386のパッケージを入れ替えます。強引な方法かもしれませんが、pkg_delete -fで既存のMATE関係パッケージを強制的に削除しました。その後でpkg_addで自前でビルドしたMATE関係パッケージをインストールしました。これで、ひとまずうまくいっています。

動作しなくなっていた時計アプレットが動くようになったので、不具合が解消しました。

念のために~/.xsession-errosを確認すると、何やら共有ライブラリが見つからないというエラーが出ています。しかしこのエラーを出しているコマンドがわからないので、/usr/pkg/binだろうとあたりをつけて、lddで調べてみました。するとMATEデスクトップ関係のパッケージが引っ掛かりました。パッケージの名前がmate-で見落としていました。

現状のMATEデスクトップ環境はバージョン1.22なので、pkg_infoの出力から「1.22」が含まれるパッケージを探してみると、名前がmate-で始まっていないMATEデスクトップ環境関連パッケージがあるようなので、それらも更新しておきました。

これで2019Q1から2019Q2への更新は完了だと思います。今後も、MATEデスクトップ環境とfirefoxの更新は自前でビルドする必要がありそうです。

2019/11/23

NetBSD/i386でfirefox(nightly) 67.0.4

dynabook SS SX/15AにNetBSD/i386を入れています。最近パッケージの2019Q2にビルド済みバイナリを利用して入れ換えたところ、firefoxが起動しなくなりました。共有ライブラリのバージョンが上がり、参照先が消えたことが原因のようです。

2019Q2のビルド済みバイナリのファイルは、amd64版に比べると、i386版は抜けが多いように思います。何か理由があってこうなっているのか、ただ単に理由もなく抜けているのか、よく分かりません。自分でビルドすれば良いことではありますが、できればビルド済みのバイナリが(amd64版と同程度にi386版も)用意されていると助かります。

 VirtualBox上に、新規にNetBSD/i386の環境を作り、2019Q2のpkgsrcを持ってきてビルドすれば良い訳ですが、できれば既にビルド済みのパッケージを、さらに自前でビルドするのは避けたいところです。pkginを利用してビルド済みのバイナリを事前にインストールしておきたいと思いますが、それでは一体何を入れておけば良いのか、どのように判断すれば良いのでしょうか。

まずpkgsrc/www/firefoxで依存関係を確認してみました。make show-dependsの結果は次のようになりました。

gcc6-libs>=6.1.0:../../lang/gcc6-libs
libffi>=3.0.11:../../devel/libffi
nspr>=4.21:../../devel/nspr
icu>=64.1:../../textproc/icu
nss>=3.43nb2:../../devel/nss
libwebp>=1.0.2:../../graphics/libwebp
libIDL>=0.8.14nb4:../../net/libIDL
ffmpeg4>=4.1nb2:../../multimedia/ffmpeg4
gtk2+>=2.24.32nb7:../../x11/gtk2
gtk3+>=3.24.1nb2:../../x11/gtk3
dbus-glib>=0.100nb1:../../sysutils/dbus-glib
desktop-file-utils>=0.10nb1:../../sysutils/desktop-file-utils

ここに現れたパッケージにも依存関係があるとは思いますが、まずはこれらのパッケージをpkginでインストールしておきます。すると/var/db/pkgin/cacheには次のようなファイルが残りました。これらが依存関係にあるファイルという事でしょう。これらを自前でビルドする手間(と時間)が省けたということになります。ただし、rust、gcc6、llvm、clangのような大物は、依存関係には現れませんでしたが、firefoxのビルドに必要なので、入れてあります。

     1  -rw-r--r--  1 root  wheel    3877464 Nov 19 05:37 gcc6-libs-6.5.0nb3.tgz
     2  -rw-r--r--  1 root  wheel      27832 Nov 19 05:38 libffi-3.2.1nb4.tgz
     3  -rw-r--r--  1 root  wheel     249852 Nov 19 05:38 nspr-4.21.tgz
     4  -rw-r--r--  1 root  wheel      29188 Nov 19 05:38 libuuid-2.32.1.tgz
     5  -rw-r--r--  1 root  wheel   14996724 Nov 19 05:38 python37-3.7.3nb1.tgz
     6  -rw-r--r--  1 root  wheel   16853888 Nov 19 05:38 icu-64.2nb1.tgz
     7  -rw-r--r--  1 root  wheel    1806180 Nov 19 05:39 nss-3.44.1.tgz
     8  -rw-r--r--  1 root  wheel     282596 Nov 19 05:39 jpeg-9cnb1.tgz
     9  -rw-r--r--  1 root  wheel      72828 Nov 19 05:39 jbigkit-2.1.tgz
    10  -rw-r--r--  1 root  wheel     785160 Nov 19 05:39 tiff-4.0.10nb1.tgz
    11  -rw-r--r--  1 root  wheel     267004 Nov 19 05:39 png-1.6.37.tgz
    12  -rw-r--r--  1 root  wheel      28592 Nov 19 05:39 giflib-5.1.4.tgz
    13  -rw-r--r--  1 root  wheel     383476 Nov 19 05:39 libwebp-1.0.2.tgz
    14  -rw-r--r--  1 root  wheel     667472 Nov 19 05:39 pcre-8.43.tgz
    15  -rw-r--r--  1 root  wheel    2435708 Nov 19 05:39 glib2-2.60.4nb5.tgz
    16  -rw-r--r--  1 root  wheel     110640 Nov 19 05:39 libIDL-0.8.14nb4.tgz
    17  -rw-r--r--  1 root  wheel     103664 Nov 19 05:40 graphite2-1.3.11nb2.tgz
    18  -rw-r--r--  1 root  wheel     570740 Nov 19 05:40 freetype2-2.10.0.tgz
    19  -rw-r--r--  1 root  wheel     941628 Nov 19 05:40 harfbuzz-2.4.0nb3.tgz
    20  -rw-r--r--  1 root  wheel      56644 Nov 19 05:40 fribidi-0.19.7.tgz
    21  -rw-r--r--  1 root  wheel     106632 Nov 19 05:40 enca-1.15.tgz
    22  -rw-r--r--  1 root  wheel     192220 Nov 19 05:40 libogg-1.3.3.tgz
    23  -rw-r--r--  1 root  wheel      24664 Nov 19 05:40 xmlcatmgr-2.2nb1.tgz
    24  -rw-r--r--  1 root  wheel     212408 Nov 19 05:40 xvidcore-1.3.3nb1.tgz
    25  -rw-r--r--  1 root  wheel     567500 Nov 19 05:40 x264-devel-20190312.tgz
    26  -rw-r--r--  1 root  wheel    1482168 Nov 19 05:40 libxml2-2.9.9.tgz
    27  -rw-r--r--  1 root  wheel    1035252 Nov 19 05:40 libvpx-1.8.0.tgz
    28  -rw-r--r--  1 root  wheel     356876 Nov 19 05:40 libvorbis-1.3.6nb1.tgz
    29  -rw-r--r--  1 root  wheel      75372 Nov 19 05:40 libvdpau-1.2.tgz
    30  -rw-r--r--  1 root  wheel     168696 Nov 19 05:40 libva-2.3.0.tgz
    31  -rw-r--r--  1 root  wheel     245752 Nov 19 05:40 libtheora-1.1.1nb2.tgz
    32  -rw-r--r--  1 root  wheel     219456 Nov 19 05:40 libbluray-1.1.2.tgz
    33  -rw-r--r--  1 root  wheel     139688 Nov 19 05:40 libass-0.14.0nb2.tgz
    34  -rw-r--r--  1 root  wheel    1342244 Nov 19 05:40 libaom-1.0.0nb1.tgz
    35  -rw-r--r--  1 root  wheel     304936 Nov 19 05:40 lame-3.100nb1.tgz
    36  -rw-r--r--  1 root  wheel     856592 Nov 19 05:40 fontconfig-2.13.1.tgz
    37  -rw-r--r--  1 root  wheel   11033160 Nov 19 05:40 ffmpeg4-4.1.3nb1.tgz
    38  -rw-r--r--  1 root  wheel      97924 Nov 19 05:41 lzo-2.10.tgz
    39  -rw-r--r--  1 root  wheel      15788 Nov 19 05:41 cairo-gobject-1.16.0nb3.tgz
    40  -rw-r--r--  1 root  wheel     500364 Nov 19 05:41 mozilla-rootcerts-1.0.20190306.tgz
    41  -rw-r--r--  1 root  wheel     497256 Nov 19 05:41 shared-mime-info-1.10.tgz
    42  -rw-r--r--  1 root  wheel   11088496 Nov 19 05:41 python27-2.7.16.tgz
    43  -rw-r--r--  1 root  wheel      18148 Nov 19 05:41 py27-expat-2.7.16.tgz
    44  -rw-r--r--  1 root  wheel     544460 Nov 19 05:41 pango-1.42.4nb5.tgz
    45  -rw-r--r--  1 root  wheel      64236 Nov 19 05:41 libXft-2.3.3.tgz
    46  -rw-r--r--  1 root  wheel     702828 Nov 19 05:41 gdk-pixbuf2-2.36.12.tgz
    47  -rw-r--r--  1 root  wheel    1082240 Nov 19 05:41 cairo-1.16.0.tgz
    48  -rw-r--r--  1 root  wheel     374672 Nov 19 05:41 atk-2.26.1.tgz
    49  -rw-r--r--  1 root  wheel    8410548 Nov 19 05:41 gtk2+-2.24.32nb8.tgz
    50  -rw-r--r--  1 root  wheel      18920 Nov 19 05:42 py37-expat-3.7.3.tgz
    51  -rw-r--r--  1 root  wheel      23764 Nov 19 05:42 py37-cElementTree-3.7.3.tgz
    52  -rw-r--r--  1 root  wheel    1092044 Nov 19 05:42 gobject-introspection-1.60.1nb1.tgz
    53  -rw-r--r--  1 root  wheel     529764 Nov 19 05:42 dbus-1.12.16.tgz
    54  -rw-r--r--  1 root  wheel     265524 Nov 19 05:42 at-spi2-core-2.26.2nb1.tgz
    55  -rw-r--r--  1 root  wheel     402740 Nov 19 05:42 libepoxy-1.4.3nb2.tgz
    56  -rw-r--r--  1 root  wheel       8936 Nov 19 05:42 hicolor-icon-theme-0.17.tgz
    57  -rw-r--r--  1 root  wheel      35056 Nov 19 05:42 desktop-file-utils-0.23nb1.tgz
    58  -rw-r--r--  1 root  wheel      92468 Nov 19 05:42 at-spi2-atk-2.26.1nb1.tgz
    59  -rw-r--r--  1 root  wheel   13127504 Nov 19 05:42 gtk3+-3.24.8.tgz
    60  -rw-r--r--  1 root  wheel     158912 Nov 19 05:42 dbus-glib-0.110.tgz
    61  -rw-r--r--  1 root  wheel     266284 Nov 19 05:49 bsdtar-3.3.3.tgz
    62  -rw-r--r--  1 root  wheel  152071808 Nov 19 05:51 rust-1.35.0nb1.tgz
    63  -rw-r--r--  1 root  wheel     310764 Nov 19 05:59 tcsh-6.21.00.tgz
    64  -rw-r--r--  1 root  wheel     206652 Nov 19 12:32 gsed-4.7.tgz
    65  -rw-r--r--  1 root  wheel   56579228 Nov 19 12:32 gcc6-6.5.0nb2.tgz
    66  -rw-r--r--  1 root  wheel   51488788 Nov 19 12:36 llvm-8.0.0.tgz
    67  -rw-r--r--  1 root  wheel   49225872 Nov 19 12:38 clang-8.0.0.tgz

上述したパッケージが入っていればfirefoxのビルドができるかというと、まだ不足するパッケージ残っているようです。それもpkginで入れれば良いのでしょうが、探し出すのが大変なので、firefoxのビルドの依存性解決の中でビルドされるのに任せました。その結果、/usr/pkgsrc/packages/Allには以下のパッケージが残っていました。

     1  -rw-r--r--  1 root  125     34509 Nov 19 04:48 cwrappers-20180325.tgz
     2  -rw-r--r--  1 root  125     56542 Nov 19 04:48 digest-20190127.tgz
     3  -rw-r--r--  1 root  125     44579 Nov 19 04:49 libfetch-2.38.tgz
     4  -rw-r--r--  1 root  125    686931 Nov 19 04:50 pkg_install-20190405.tgz
     5  -rw-r--r--  1 root  125     80095 Nov 19 05:02 pkgin-0.12.0.tgz
     6  -rw-r--r--  1 root  125   1723438 Nov 19 06:26 cbindgen-0.8.7.tgz
     7  -rw-r--r--  1 root  125  17732221 Nov 19 06:46 perl-5.28.2.tgz
     8  -rw-r--r--  1 root  125    224624 Nov 19 06:48 m4-1.4.18nb2.tgz
     9  -rw-r--r--  1 root  125    726508 Nov 19 06:49 bison-3.2.4.tgz
    10  -rw-r--r--  1 root  125   2811569 Nov 19 06:52 bash-5.0.7.tgz
    11  -rw-r--r--  1 root  125    281995 Nov 19 06:53 gmake-4.2.1nb1.tgz
    12  -rw-r--r--  1 root  125    518466 Nov 19 06:54 libtool-base-2.4.6nb2.tgz
    13  -rw-r--r--  1 root  125     85271 Nov 19 06:54 pkgconf-1.6.0.tgz
    14  -rw-r--r--  1 root  125      7305 Nov 19 06:54 lockf-1.tgz
    15  -rw-r--r--  1 root  125     14446 Nov 19 06:56 p5-gettext-1.07nb3.tgz
    16  -rw-r--r--  1 root  125    154496 Nov 19 06:56 help2man-1.47.10.tgz
    17  -rw-r--r--  1 root  125    912844 Nov 19 06:56 autoconf-2.69nb8.tgz
    18  -rw-r--r--  1 root  125    679228 Nov 19 06:56 automake-1.16.1.tgz
    19  -rw-r--r--  1 root  125    626226 Nov 19 06:57 libuv-1.29.1.tgz
    20  -rw-r--r--  1 root  125    340102 Nov 19 06:59 rhash-1.3.8.tgz
    21  -rw-r--r--  1 root  125   1507655 Nov 19 07:06 libunistring-0.9.10.tgz
    22  -rw-r--r--  1 root  125    217215 Nov 19 07:07 libidn2-2.0.5.tgz
    23  -rw-r--r--  1 root  125   1053813 Nov 19 07:11 curl-7.65.1.tgz
    24  -rw-r--r--  1 root  125  10942018 Nov 19 07:50 cmake-3.14.5.tgz
    25  -rw-r--r--  1 root  125    139599 Nov 19 07:51 libcares-1.15.0nb1.tgz
    26  -rw-r--r--  1 root  125     39734 Nov 19 07:51 http-parser-2.9.2.tgz
    27  -rw-r--r--  1 root  125  10391635 Nov 19 09:48 nodejs-10.16.0.tgz
    28  -rw-r--r--  1 root  125     17650 Nov 19 09:49 glib2-tools-2.60.4.tgz
    29  -rw-r--r--  1 root  125    252324 Nov 19 09:50 autoconf213-2.13nb7.tgz
    30  -rw-r--r--  1 root  125    239004 Nov 19 09:50 zip-3.0nb3.tgz
    31  -rw-r--r--  1 root  125    300789 Nov 19 09:51 docbook-xml-4.5.tgz
    32  -rw-r--r--  1 root  125   2580222 Nov 19 09:51 docbook-xsl-1.79.1nb3.tgz
    33  -rw-r--r--  1 root  125     14520 Nov 19 09:51 getopt-1.1.6.tgz
    34  -rw-r--r--  1 root  125    373503 Nov 19 09:56 libgpg-error-1.36.tgz
    35  -rw-r--r--  1 root  125   1037069 Nov 19 09:59 libgcrypt-1.8.4.tgz
    36  -rw-r--r--  1 root  125    671244 Nov 19 10:00 libxslt-1.1.33.tgz
    37  -rw-r--r--  1 root  125    410280 Nov 19 10:01 asciidoc-8.6.10nb1.tgz
    38  -rw-r--r--  1 root  125     29770 Nov 19 10:01 xmlto-0.0.28nb2.tgz
    39  -rw-r--r--  1 root  125    796779 Nov 19 10:02 nasm-2.14.02.tgz
    40  -rw-r--r--  1 root  125   1190026 Nov 19 10:03 yasm-1.3.0.tgz
    41  -rw-r--r--  1 root  125      3351 Nov 19 10:03 osabi-NetBSD-8.1.tgz
    42  -rw-r--r--  1 root  125     50414 Nov 19 10:04 x11-links-1.19.tgz
    43  -rw-r--r--  1 root  125    271650 Nov 19 10:17 gsed-4.7.tgz
    44  -rw-r--r--  1 root  125  56556277 Nov 23 12:15 firefox-67.0.4.tgz


以上でfirefox 67.0.4がビルド出来ました。依存関係にあるパッケージが入っていさえすれば、あとはビルドする時間だけの問題です(マシンの性能にも依りますが、1日弱くらいでしょう)。

2019/11/21

NetBSD/i386のパッケージ2019Q2

dynabook SS SX/15AにNetBSD/i386を入れて使っています。つい先日パッケージを2019Q1から2019Q2に更新しました。更新したら、動かなくなったものがあります。気がついているのは以下の3点ですが、もしかしたら気付いていないものがあるかもしれません。
  1. 2019Q1の頃に自前でビルドしたfirefoxが起動しない。
  2. MATEの時計パネルが起動しない。
  3. 一般ユーザのメニューに「シャットダウン」が現れない。
なぜ動かないのか詳しく調べていかなければなりませんが、まずfirefoxが起動しない原因を調べました。すると2019Q2に更新したことで、共有ライブラリのバージョンが変わってしまって「file not found」になっているのが問題でした。恐らく他の不具合も、同様の原因でしょう。

そもそも2019Q2への更新はpkginを利用しましたが、その参照先には必要なパッケージが揃っていないようです。i386版amd64版とでは、(理由は不明ですが)準備されているパッケージの数が異なっています。

例えばMATEデスクトップ環境に関するパッケージは、amd64版では26ファイルありますが、i386版では10ファイルしかありません。i386版では16ファイル少ないわけですが、その不足するファイルがMATEデスクトップ環境を調える上で不要というわけでもありません。バイナリ版が用意されていないならば、pkgsrcから自前でビルドする必要があります。

i386版そのものが時代遅れとなりつつあるのだろうと思いますが、ビルド済みのパッケージがamd64版とi386版とで揃っていないのは不便です。なんとかならないかなと思います。

2019/11/18

pkgin full-upgradeは何をしようとしているんだろうか

dynabook SS SX/15AにNetBSD/i386を入れて使用しています。パッケージの2019Q1を入れていましたが、2019Q2が出ているのでpkginで更新しようと考えています。

pkgin full-upgradeで一括して入れ換えてしまおうと思っていますが、ファイル転送でstallしてしまいます。pkginにはオプション「-d」を指定することで、ファイル転送だけをおこなうことができるようです。ところがファイル転送で頻繁にstallするので、なかなかインストールまで辿りつきません。

pkginは、更新を始める前に対象となるファイル名(.tgzファイル) を表示します。その情報を加工して、pkginを使わず、ftpコマンドでファイルをダウンロードしておくことにしました。必要なファイルが/var/db/pkgin/cacheに存在すれば、pkginとしてはインストールしてくれるようです。

それは良いのですが、更新対象となるファイルが異常に多すぎる気がします。例えば、今までTeXはインストールしていなかったのに、更新対象にしています。細かくは確認していませんが、他にも謎の更新対象があるのではないかと思います。

どうしてこういうことになるんでしょう。

NetBSDのpkginでstallする

dynabook SS SX/15AにNetBSD/i386を入れて使用しています。以前は、OS本体もパッケージもcurrentのソースから自前でビルドしていました。しかしビルド時間がかかりすぎる(1週間以上かかります)し、それだけならまだしも、無線LANの接続が切れたり、カーネルパニックが発生したりして、何度もリブートし再開するはめに陥るので、ビルド済みのバイナリを入れるだけに方針を転換しました。

数か月前にpkgを入れた時は2019Q1だったのですが、2019Q2が出ているので、更新することにしました。pkginを使って更新することにしているので「pkgin full-upgrade」 をおこないました。更新対象のパッケージ(.tgzファイル)をダウンロードしてからインストールが始まる筈なのですが、ファイル転送中にstall状態になります。たまに発生するなら我慢もできますが、10分もしないうちに発生するので、とても困ります。

stallしてファイル転送できなかったファイルは、再度pkginを実行すると再転送しようとするのですが、そこでまたstallします。勘弁してくれという気持ちになります。しかしそのファイルを、本家またはミラーサイトからftpでダウンロードする分には、何も問題なく転送できます。うまくいって結構なことなのですが、なぜpkginではstallするのに、ftpなら問題ないのでしょうか。

 ハードウェアが旧いので、あちこちにガタがきている可能性は否定できません。はっきり確認する手段がないので憶測ですが、ハードウェアが旧いことだけが原因ではないような気がします。

2019/11/16

FreeBSD/amd64を12.1-RELEASEに更新した

ThinkPad E530cにFreeBSD/amd64を入れています。先日12.1-RELEASEがアナウンスされたので12.0-RELEASEから更新しました。昔はソースコードを自前でビルドしていましたが、今はfreebsd-updateを使うことにしています。

手順は次の通りです。これらの作業はシングルユーザーでおこないました。リブート前に要した時間が1時間半くらい、リブート後は30分ほどで、合計して2時間くらいかかりました。
  1. freebsd-update -r 12.1-RELEASE upgrade
  2. freebsd-update install
  3. リブート 
  4. freebsd-update install
  5. freebsd-update install

2019/11/14

NetBSDのMATEデスクトップ環境で「シャットダウン」メニューが無くなった気がする

dynabook SS SX/15AのOSをNetBSD/i386に入れ換えて使っています。以前はOSもpkgもカレントのソースコードを取得してきて自前でビルドしていました。しかし今年6月頃にpkgを入れ替えようとして、ハードウェアのディスク不足や不調などの原因により、かなり苦労したため、ビルド済みのバイナリを取得してインストールする方針に転換しました。

さらにOS本体もカレントのソースコードを自前でビルドしていたのを止めようと考えていたので、NetBSD 8.1の公式リリース版を使うことにしました。インストールされていたOSがNetBSD 8.1よりは微妙に新しいカレントだったので、バージョンが戻ることになりまる。トラブルが発生しないか心配だったのですが、無事にNetBSD 8.1になったようです。

普段使っているアプリケーションの動作確認をしてみましたが、問題なさそうです。

ただし1つだけ、これまでとは動きが異なる箇所があります。MATEデスクトップ環境を利用していて、メニューに「シャットダウンする」というのがあったはずなのですが、見当たりません。メニューからシャットダウンできなくても、他に方法はいくらでもあるので実害はないのですが、気になります。

MATEデスクトップ環境に限らず、今どきのデスクトップ環境はDbusやらPolicyKitやらを使っていて、問題解決のために何から手をつけたら良いのか、よく分かりません。

2019/11/13

「初心者マーク」と「高齢者マーク」

「初心者マーク」や「高齢者マーク」が貼られている車を見るのは日常的ですが、先日両方貼られた車を目撃しました。あまり見かけない光景です。

「初心者マーク」は「初心者運転標識」というのが正式名称で、道路交通法第71条の5で次のように定められています。免許取得後1年間は義務ですが、それ以降の規定はないため、掲示できなくなるわけではないようです。
第七十一条の五 第八十四条第三項の準中型自動車免許を受けた者で、当該準中型自動車免許を受けていた期間(当該免許の効力が停止されていた期間を除く。)が通算して一年に達しないもの(当該免許を受けた日前六月以内に準中型自動車免許を受けていたことがある者その他の者で政令で定めるもの及び同項の普通自動車免許を現に受けており、かつ、現に受けている準中型自動車免許を受けた日前に当該普通自動車免許を受けていた期間(当該免許の効力が停止されていた期間を除く。)が通算して二年以上である者を除く。)は、内閣府令で定めるところにより準中型自動車の前面及び後面に内閣府令で定める様式の標識を付けないで準中型自動車を運転してはならない。

さて「高齢者マーク」は「高齢運転者標識」というのが正式名称で、道路交通法附則第22条で次のように定められているため、当面は努力義務ということのようです。もちろん掲示しても良いわけです。
第二十二条 第七十一条の五第三項の規定は、当分の間、適用しない。この場合において、同条第四項中「七十歳以上七十五歳未満」とあるのは、「七十歳以上」とする。
それでは両方とも貼られているというのは、どのような状況なのでしょうか。運転者の年齢が70歳以上(高齢者マーク)であり、かつ免許取得後1年以内(初心者マーク)なら、そうなるのかもしれませんが、あまり現実的な想定ではないでしょう。

可能性の高い想定としては、その車を家族で共用していて、マークを剥がし忘れた場合でしょうか。

正確な答えは、そのような車を運転している本人に尋ねるしかないとは思います。

2019/11/11

「Std Math Keyboard」を使わなくてもよいかもしれない

『いつでも どこでも スマホで数学』を読みながらMoA(Maxima on Android)の使い方に習熟しようと思っています。まずは「Chapter 1 Maximaの概要とインストール」の記述に従ってアプリのインストールしてみました。入力は「Std Math Keyboard」を推奨していますが、気になる点があります。書籍でも次のように書かれており、懸念が示されています。
ONにすると、「すべての入力内容の収集をアプリに許可することになるがかまわないか?」という趣旨の注意書きが表示され、ちょっと同意するのをためらいます。
このような注意書きは気になりますが、はたしてMoAは「Std Math Keyboard」がないと不便なのか、それとも無くても構わないのか、実際に使ってみて判断することにしました。

Android9では「iWnn IME」以外にも「Gboard」が使えます。「Std Math Keyboard」なら数式で用いる記号類や英数字が入力しやすいとは思いますが、「Gboard」で数式を入力するのが使いものにならないという訳でもないような気がします。「Std Math Keyboard」が圧倒的に優位にたっているとも思えません。

今後は「Gboard」を利用することにして、「Std Math Keyboard」はアンインストールしようかと思います。

2019/11/10

「名詞+だ」は良くて、「形容詞+だ」は不可なのはナゼ?

日本語の文末は敬体(です・ます調)と常体(だ・である調)があります。それらは、文の用いられる状況に応じて使い分けられますが、相互に交換できるはずです。例えば、「私は○○××です」でも良いし、「私は○○××だ」でも構わないでしょう。

何かで耳にしたのですが、「楽しい」のような形容詞では「楽しいです」とは言えても、「楽しいだ」とか「楽しいである」とは言わないのですが、これは何故でしょうか?名詞であれば「東京駅です」でも「東京駅だ」でも構わないわけです。「形容詞+だ」が認められないのは、単に聞きなれないというだけ問題なのでしょうか。

 もっとも「形容詞+です」のような表現(「嬉しいです」とか「楽しいです」)は、印象として幼さを感じます。例えば小学生の文章「今日は遠足で楽しかったです」のような印象を受けるので、自分で使うのは避けて、別の表現を探すようにしています。

英語のラストネームの4パターン

the japan times alphaの2019年11月8日号に掲載されている「The history of English last names -- every name tells a story!」(Kip Cates)では、英語のラストネームの由来を4パターンに分類しています。それは次の通りです。
  1. Some are based on occupations.
  2. Some names refer to the places where people lived.
  3. Some names are based on family relationships.
  4. Some last names are based on personal traits.

日本人の名字は膨大だと言われています。30万種とも言われますが異論(【年末緊急発表】日本人の名字30万種は事実か?)もあるようです。実際の数を定義するのは難しいとは思いますが、種類が多いのは間違いないでしょう。日本人の名字の由来を何パターンに分類できるのかわかりませんが、地名由来が多いのではないかと思います。

古代の姓(源平藤橘が有名ですが、4種類だけだった訳ではありません)のままでは他者との区別ができないので、自然に地名で区別するようになっていったと思われます。区別できるなら地名でなくても良いわけで、生業や官職などもあると思いますが、比率で考えれば地名由来が圧倒的ではないかと思います。

Android版Maxima

最近長年使い続けていたガラケーからAndroidのスマホに移行しました。これも時代の流れなのかと思います。人によってはスマホがあればPCは要らないとも言いますが、僕は逆にPCがあるのでスマホの利用は最小限にしておきたいです。

僕が最もスマホの利点を感じるのは、外出先でWebを参照したい場合です。ガラケーでもWebを参照できない訳ではありませんでしたが、あまり使いやすくはありませんでした。さらに最近では無料Wi-Fiの提供場所が増えてきつつあり、ありがたいと思います。スマホが登場する前から、世間ではラップトップPCやらノートPCやらを利用しようとしていましたが、手軽に利用できるとは言い難かったと思います。出先で多量の文書を書いたりするのであれば今でもノートPC以外の選択肢はないと思いますが、Webを見る程度であればスマホで十分ではないかと思います。

スマホでゲームをしたり音楽や動画を視聴したりすることは考えていないのですが、その代わりにスマホで何が出来るのかを探ろうと思っています。すると何とMaximaが使えるという情報を見つけました。

Maxima on Androidというアプリがあるようなのですが、『いつでも・どこでも・スマホで数学』(梅野 善雄)という本が森北出版から出ています。早速買ってみました。Maximaのマニュアル替わりにも使えそうです。

Maxima on Android(MoAと呼ぶらしい) では文字入力に「Std Math Keyboard」というアプリを使うのを推奨しているようです。その方が数式が入力しやすいそうなのですが、書籍の文章中にある画像を見ている限り、それほどでもなさそうな気がします。もっとも先入観では判断を誤るので、使ってみてから判断しようと思います。使いにくければ使わなければ良いだけのことです。