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

2025-03-11

RLoginでOpenVMS VAX V7.2に繋ぐと「VT500_Series」になる理由

simh V3.8-1のvax.exeを用いてOpenVMS VAX V7.2の環境を構築し、DZデバイスを経由してRLogin V2.30.2.1を用いて接続すると「VT500_Series」として認識されます。なぜこうなるのか調べてみました。

 

RLoginの公式サイト「エスケープシーケンス一覧」の「CSI一覧」によると、「DA1」のところに以下の記述があります。この記述における「TermID」というのは、設定「制御コード」の中にある「ESC/CSI/DCS」を開き、「各種ID」の中にあります。


TermID     DECTIDのTermID設定によりレスポンスが異なる

 

デフォルトでは「10」になっています。これが「VT500_Series」に相当するようです。「9」にすれば「VT400_Series」に、「7」か「8」ならば「VT300_Series」になります。「1」なら「VT100」として認識されます。

 

OpenVMS VAX V7.2を操作するためであれば、VT200以降であれば何でも構わないだろうと思います。Tera Termは「VT300_Series」として認識されているので、それと揃えようかと思います。

2015-12-26

uim-mozcで日本語入力に成功

ibus-mozcがうまくいかないので、pkgsrcからinputmethod/uim-mozcを入れてみました。~/.xsessionに以下に示す内容を追加してみると、無事に日本語入力することができました。
export GTK_IM_MODULE=uim
export QT_IM_MODULE=uim
/usr/pkg/bin/uim-xim &
/usr/pkg/bin/uim-toolbar-gtk &
export XMODIFIERS=@im=uim
uim-toolbar-gtk-systrayを使えばシステムトレイ領域にツールバーを表示させられるようなのですが、正常に表示されませんでした。要するにアイコン1つ分の幅に複数のアイコンを無理やり表示させようとしているようになっています。「uimのツールバーがシャイで困る」で報告されている現象です。uimの設定を調整してアイコンを1つだけにしておけばシステムトレイに表示させても問題ないようですが、根本的な解決策にはなっていないと思います。いずれ修正されることを期待して、当面はツールバーをシステムトレイに載せずに利用しようと思います。

xtermでも日本語入力できましたが、変換中の表示が化けてしまいます。何か設定が足りないのでしょう。

2015-12-25

ibus-mozcトラブル

ibus-mozcを使って日本語入力を行うつもりでpkgsrcから入れてみました。ビルドできたし、LXDEのメニューにも「iBusの設定」という項目が追加されています。入力メソッドとして「Mozc」も入っているようです。

しかし画面右下のシステムトレイに現れるはずのiBusやMozcのアイコンが出ていません。アプリケーションから日本語入力をしてみようと思っても、動いているのか動いていないのか判別できません。Webで調べてみると「LubuntuでIBusアイコンを表示する」という報告が見つかりました。対処方法もありますが、これはLinuxの場合に適用できる方法なのでNetBSDではどうすれば良いのでしょう。

pkgsrcにはibus-mozc以外にもuim-mozcというパッケージもあるようなので、uim-mozcを使って日本語入力環境を整えてみることにしようと思います。

それにしてもibusにしろuimにしろ、はたまたLXDEにしろGTKやQtにしても、全体的な概念や歴史的経緯が分からないままに、問題が起きるたびに泥縄的に対処していくのは良くないと感じます。

ibus-setup実行エラー

NetBSD/i386にpkgsrcを利用して各種アプリケーションを入れたので、必要な設定をおこない、使い勝手を検証しようと思います。そこでibus-setupを起動しようとしたところエラーになりました。
 Couldn't open libGL.so: Shared object "libGL.so" not found
libGL.soの所在を確認したところ/usr/X11R7/libに置かれていました。
 lrwxr-xr-x  1 root  wheel       12 Sep 30  2014 /usr/X11R7/lib/libGL.so -> libGL.so.2.0
lrwxr-xr-x  1 root  wheel       12 Sep 30  2014 /usr/X11R7/lib/libGL.so.2 -> libGL.so.2.0
-r--r--r--  1 root  wheel  2570627 Sep 30  2014 /usr/X11R7/lib/libGL.so.2.0
環境変数LD_LIBRARY_PATHを設定すれば良いのかもしれませんが、このディレクトリはデフォルトで参照してくれないのでしょうか。そもそもデフォルトで参照されるディレクトリは何処なのでしょうか。

ktraceを使って調べてみました。libGL.soに関する箇所の前後は以下のようになっていました。これをみると/usr/pkg/lib/libGL.soと/usr/lib/libGL.soを探そうとしていたようです。これらのディレクトリが検索対象となっているのは何処かで定義されているのでしょうか。
2142      1 python2.7 CALL  open(0xbfbfd104,0,0x3771ea)
2142      1 python2.7 NAMI  "/usr/pkg/lib/libGL.so"
2142      1 python2.7 RET   open -1 errno 2 No such file or directory
2142      1 python2.7 CALL  open(0xbfbfd104,0,0x3771ea)
2142      1 python2.7 NAMI  "/usr/lib/libGL.so"
2142      1 python2.7 RET   open -1 errno 2 No such file or directory
2142      1 python2.7 CALL  __sigprocmask14(3,0xbfbfd75c,0)
2142      1 python2.7 RET   __sigprocmask14 0
2142      1 python2.7 CALL  write(2,0xbfbfd004,0x3b)
2142      1 python2.7 GIO   fd 2 wrote 59 bytes
     "Couldn't open libGL.so: Shared object \"libGL.so\" not found\n"
2142      1 python2.7 RET   write 59/0x3b
 pkgsrc-Usersメーリングリストには2015年9月8日付で「libGL python meld bizarre LD_LIBRARY_PATH issue」という投稿がありました。

当面は環境変数を設定して回避するしかなさそうですが、何か根本的な問題があるような気がします。

xdmログイン後の処理フローを整理

xdmでログインした後の処理フローを整理しておきます。NetBSDの場合、xdmの設定は/etc/X11/xdm/xdm-configで定義されています。
  1. /etc/X11/xdm/Xsessionが呼び出されます。
    1. ~/.xsessionがあれば制御を移します。
    2. ~/.Xresourceの設定を取り込み、/usr/X11R7/bin/xsmを起動します。
  2. ~/.xsessionに制御が移ります。
    1. /etc/X11/xinit/.Xresourcesの設定を追加します。
    2. /etc/X11/xinit/.Xmodmapの設定を登録します。
    3. ~/.Xresourcesの設定を追加します。
    4. ~/.Xmodmapの設定を登録します。
    5. /etc/X11/xinit/xinitrc.dというディレクトリがあれば、その下にあるファイルを実行します。ただし拡張子が「.sh」である必要があります。
    6. 必要なアプリケーションを適宜実行します。
LXDEを使用するため、~/.xsessionの最後に「exec /usr/pkg/bin/startlxde」を入れておくことにします。

LXDEの中でxtermのような端末エミュレータを動かすと、~/.cshrcの初期設定スクリプトが呼び出されます。この場合はログインシェルではないので~/.loginは呼ばれません。

2015-12-22

LibreOfficeのビルド失敗(3)

Webを検索してみるとFreeBSD/amx64 10.2-RELEASEでLibreOffice 5.0.1のビルドに成功したログを見つけました。ビルド環境の違いは多々ありますが、例えばBOOSTには1.55が、GCCには4.8.5が使われていました。一方でNetBSD/i386では、BOOSTに1.59が、GCCは標準で4.5.2、lang/gcc48で4.8.4が使われます。

LibreOfficeがFreeBSDではビルドできているようなので、NetBSDでもビルドできてよさそうな気がします。おそらくビルドできないのは、LibreOfficeのソースに問題があるのではなくて、NetBSDのビルド環境に何か問題があるのでしょう。

NetBSD Problem Databaseを確認するとLibreOfficeに関する問題報告は9件ありますが、いずれも未解決のようです。

2015-12-21

LibreOfficeのビルド失敗(2)

/etc/mk.confに「GCC_REQD=4.8」を追加してみましたが、別な個所でエラーが出てビルドに失敗しました。
[build CXX] sax/source/tools/fastserializer.cxx
S=/usr/obj/misc/libreoffice/work/libreoffice-5.0.4.2 && I=$S/instdir && W=$S/workdir &&  mkdir -p $W/CxxObject/sax/source/tools/ $W/Dep/CxxObject/sax/source/tools/ && cd /usr/obj/misc/libreoffice/work/libreoffice-5.0.4.2 &&   c++ -DBOOST_ERROR_CODE_HEADER_ONLY -DBOOST_SYSTEM_NO_DEPRECATED -DCPPU_ENV=gcc3 -DINTEL -DNDEBUG -DNETBSD -DOPTIMIZE -DOSL_DEBUG_LEVEL=0 -DUNIX -DUNX -DX86 -D_PTHREADS -D_REENTRANT -pthread -I/usr/pkg/include -I/usr/include -I/usr/pkg/include/db4 -DLDAP_DEPRECATED -I/usr/pkg/include/cppunit -I/usr/pkg/include/nss/nss -I/usr/pkg/include/nspr -I/usr/X11R7/include/freetype2 -I/usr/X11R7/include -I/usr/X11R7/include/libdrm -I/usr/include/krb5  -DSAX_DLLIMPLEMENTATION   -DHAVE_GCC_VISIBILITY_FEATURE -fvisibility=hidden   -Wall -Wno-missing-braces -Wnon-virtual-dtor -Wendif-labels -Wextra -Wundef -Wunused-macros -fmessage-length=0 -fno-common -pipe  -fvisibility-inlines-hidden -fPIC -Wshadow -Woverloaded-virtual -std=gnu++11   -DEXCEPTIONS_ON -fexceptions -fno-enforce-eh-specs -O2 -I/usr/pkg/include -I/usr/include -I/usr/pkg/include/db4 -DLDAP_DEPRECATED -I/usr/pkg/include/cppunit -I/usr/pkg/include/nss/nss -I/usr/pkg/include/nspr -I/usr/X11R7/include/freetype2 -I/usr/X11R7/include -I/usr/X11R7/include/libdrm -I/usr/include/krb5  -DLIBO_INTERNAL_ONLY  -c $S/sax/source/tools/fastserializer.cxx -o $W/CxxObject/sax/source/tools/fastserializer.o -MMD -MT $W/CxxObject/sax/source/tools/fastserializer.o -MP -MF $W/Dep/CxxObject/sax/source/tools/fastserializer.d_ -I$S/sax/source/tools/ -I$S/sax/inc  -I$S/include  -I/usr/pkg/java/openjdk8/include -I/usr/pkg/java/openjdk8/include/netbsd -I$S/config_host     -I$W/UnoApiHeadersTarget/udkapi/normal -I$W/UnoApiHeadersTarget/offapi/normal  && mv $W/Dep/CxxObject/sax/source/tools/fastserializer.d_ $W/Dep/CxxObject/sax/source/tools/fastserializer.d
In file included from /usr/obj/misc/libreoffice/work/libreoffice-5.0.4.2/sax/source/tools/fastserializer.hxx:28:0,
                 from /usr/obj/misc/libreoffice/work/libreoffice-5.0.4.2/sax/source/tools/fastserializer.cxx:20:
/usr/obj/misc/libreoffice/work/libreoffice-5.0.4.2/sax/source/tools/CachedOutputStream.hxx: In constructor 'sax_fastparser::CachedOutputStream::CachedOutputStream()':
/usr/obj/misc/libreoffice/work/libreoffice-5.0.4.2/sax/source/tools/CachedOutputStream.hxx:50:46: error: no matching function for call to 'boost::shared_ptr<sax_fastparser::ForMergeBase>::shared_ptr(std::nullptr_t)'
                          , mpForMerge(nullptr)
                                              ^
/usr/obj/misc/libreoffice/work/libreoffice-5.0.4.2/sax/source/tools/CachedOutputStream.hxx:50:46: note: candidates are:
In file included from /usr/obj/misc/libreoffice/work/.buildlink/include/boost/shared_ptr.hpp:17:0,
                 from /usr/obj/misc/libreoffice/work/libreoffice-5.0.4.2/sax/source/tools/CachedOutputStream.hxx:20,
                 from /usr/obj/misc/libreoffice/work/libreoffice-5.0.4.2/sax/source/tools/fastserializer.hxx:28,
                 from /usr/obj/misc/libreoffice/work/libreoffice-5.0.4.2/sax/source/tools/fastserializer.cxx:20:
/usr/obj/misc/libreoffice/work/.buildlink/include/boost/smart_ptr/shared_ptr.hpp:611:5: note: template<class Y> boost::shared_ptr<T>::shared_ptr(boost::shared_ptr<Y>&&, typename boost::detail::sp_enable_if_convertible<Y, T>::type)
     shared_ptr( shared_ptr<Y> && r, typename boost::detail::sp_enable_if_convertible<Y,T>::type = boost::detail::sp_empty() )
     ^
/usr/obj/misc/libreoffice/work/.buildlink/include/boost/smart_ptr/shared_ptr.hpp:611:5: note:   template argument deduction/substitution failed:
In file included from /usr/obj/misc/libreoffice/work/libreoffice-5.0.4.2/sax/source/tools/fastserializer.hxx:28:0,
                 from /usr/obj/misc/libreoffice/work/libreoffice-5.0.4.2/sax/source/tools/fastserializer.cxx:20:
/usr/obj/misc/libreoffice/work/libreoffice-5.0.4.2/sax/source/tools/CachedOutputStream.hxx:50:46: note:   mismatched types 'boost::shared_ptr<X>' and 'std::nullptr_t'
                          , mpForMerge(nullptr)
                                              ^
In file included from /usr/obj/misc/libreoffice/work/.buildlink/include/boost/shared_ptr.hpp:17:0,
                 from /usr/obj/misc/libreoffice/work/libreoffice-5.0.4.2/sax/source/tools/CachedOutputStream.hxx:20,
                 from /usr/obj/misc/libreoffice/work/libreoffice-5.0.4.2/sax/source/tools/fastserializer.hxx:28,
                 from /usr/obj/misc/libreoffice/work/libreoffice-5.0.4.2/sax/source/tools/fastserializer.cxx:20:
/usr/obj/misc/libreoffice/work/.buildlink/include/boost/smart_ptr/shared_ptr.hpp:602:5: note: boost::shared_ptr<T>::shared_ptr(boost::shared_ptr<T>&&) [with T = sax_fastparser::ForMergeBase]
     shared_ptr( shared_ptr && r ) BOOST_NOEXCEPT : px( r.px ), pn()
     ^
/usr/obj/misc/libreoffice/work/.buildlink/include/boost/smart_ptr/shared_ptr.hpp:602:5: note:   no known conversion for argument 1 from 'std::nullptr_t' to 'boost::shared_ptr<sax_fastparser::ForMergeBase>&&'
/usr/obj/misc/libreoffice/work/.buildlink/include/boost/smart_ptr/shared_ptr.hpp:506:5: note: template<class Y, class D> boost::shared_ptr<T>::shared_ptr(boost::movelib::unique_ptr<Y, D>)
     shared_ptr( boost::movelib::unique_ptr< Y, D > r ): px( r.get() ), pn()
     ^
/usr/obj/misc/libreoffice/work/.buildlink/include/boost/smart_ptr/shared_ptr.hpp:506:5: note:   template argument deduction/substitution failed:
In file included from /usr/obj/misc/libreoffice/work/libreoffice-5.0.4.2/sax/source/tools/fastserializer.hxx:28:0,
                 from /usr/obj/misc/libreoffice/work/libreoffice-5.0.4.2/sax/source/tools/fastserializer.cxx:20:
/usr/obj/misc/libreoffice/work/libreoffice-5.0.4.2/sax/source/tools/CachedOutputStream.hxx:50:46: note:   mismatched types 'boost::movelib::unique_ptr<Y, D>' and 'std::nullptr_t'
                          , mpForMerge(nullptr)
                                              ^
In file included from /usr/obj/misc/libreoffice/work/.buildlink/include/boost/shared_ptr.hpp:17:0,
                 from /usr/obj/misc/libreoffice/work/libreoffice-5.0.4.2/sax/source/tools/CachedOutputStream.hxx:20,
                 from /usr/obj/misc/libreoffice/work/libreoffice-5.0.4.2/sax/source/tools/fastserializer.hxx:28,
                 from /usr/obj/misc/libreoffice/work/libreoffice-5.0.4.2/sax/source/tools/fastserializer.cxx:20:
/usr/obj/misc/libreoffice/work/.buildlink/include/boost/smart_ptr/shared_ptr.hpp:493:5: note: template<class Y, class D> boost::shared_ptr<T>::shared_ptr(std::unique_ptr<_Up, _Ep>&&)
     shared_ptr( std::unique_ptr< Y, D > && r ): px( r.get() ), pn()
     ^
/usr/obj/misc/libreoffice/work/.buildlink/include/boost/smart_ptr/shared_ptr.hpp:493:5: note:   template argument deduction/substitution failed:
In file included from /usr/obj/misc/libreoffice/work/libreoffice-5.0.4.2/sax/source/tools/fastserializer.hxx:28:0,
                 from /usr/obj/misc/libreoffice/work/libreoffice-5.0.4.2/sax/source/tools/fastserializer.cxx:20:
/usr/obj/misc/libreoffice/work/libreoffice-5.0.4.2/sax/source/tools/CachedOutputStream.hxx:50:46: note:   mismatched types 'std::unique_ptr<_Tp, _Dp>' and 'std::nullptr_t'
                          , mpForMerge(nullptr)
                                              ^
In file included from /usr/obj/misc/libreoffice/work/.buildlink/include/boost/shared_ptr.hpp:17:0,
                 from /usr/obj/misc/libreoffice/work/libreoffice-5.0.4.2/sax/source/tools/CachedOutputStream.hxx:20,
                 from /usr/obj/misc/libreoffice/work/libreoffice-5.0.4.2/sax/source/tools/fastserializer.hxx:28,
                 from /usr/obj/misc/libreoffice/work/libreoffice-5.0.4.2/sax/source/tools/fastserializer.cxx:20:
/usr/obj/misc/libreoffice/work/.buildlink/include/boost/smart_ptr/shared_ptr.hpp:461:5: note: template<class Y> boost::shared_ptr<T>::shared_ptr(std::auto_ptr<_Up>&&)
     shared_ptr( std::auto_ptr<Y> && r ): px(r.get()), pn()
     ^
/usr/obj/misc/libreoffice/work/.buildlink/include/boost/smart_ptr/shared_ptr.hpp:461:5: note:   template argument deduction/substitution failed:
In file included from /usr/obj/misc/libreoffice/work/libreoffice-5.0.4.2/sax/source/tools/fastserializer.hxx:28:0,
                 from /usr/obj/misc/libreoffice/work/libreoffice-5.0.4.2/sax/source/tools/fastserializer.cxx:20:
/usr/obj/misc/libreoffice/work/libreoffice-5.0.4.2/sax/source/tools/CachedOutputStream.hxx:50:46: note:   mismatched types 'std::auto_ptr<Y>' and 'std::nullptr_t'
                          , mpForMerge(nullptr)
                                              ^
In file included from /usr/obj/misc/libreoffice/work/.buildlink/include/boost/shared_ptr.hpp:17:0,
                 from /usr/obj/misc/libreoffice/work/libreoffice-5.0.4.2/sax/source/tools/CachedOutputStream.hxx:20,
                 from /usr/obj/misc/libreoffice/work/libreoffice-5.0.4.2/sax/source/tools/fastserializer.hxx:28,
                 from /usr/obj/misc/libreoffice/work/libreoffice-5.0.4.2/sax/source/tools/fastserializer.cxx:20:
/usr/obj/misc/libreoffice/work/.buildlink/include/boost/smart_ptr/shared_ptr.hpp:448:14: note: template<class Y> boost::shared_ptr<T>::shared_ptr(std::auto_ptr<_Up>&)
     explicit shared_ptr( std::auto_ptr<Y> & r ): px(r.get()), pn()
              ^
/usr/obj/misc/libreoffice/work/.buildlink/include/boost/smart_ptr/shared_ptr.hpp:448:14: note:   template argument deduction/substitution failed:
In file included from /usr/obj/misc/libreoffice/work/libreoffice-5.0.4.2/sax/source/tools/fastserializer.hxx:28:0,
                 from /usr/obj/misc/libreoffice/work/libreoffice-5.0.4.2/sax/source/tools/fastserializer.cxx:20:
/usr/obj/misc/libreoffice/work/libreoffice-5.0.4.2/sax/source/tools/CachedOutputStream.hxx:50:46: note:   mismatched types 'std::auto_ptr<Y>' and 'std::nullptr_t'
                          , mpForMerge(nullptr)
                                              ^
In file included from /usr/obj/misc/libreoffice/work/.buildlink/include/boost/shared_ptr.hpp:17:0,
                 from /usr/obj/misc/libreoffice/work/libreoffice-5.0.4.2/sax/source/tools/CachedOutputStream.hxx:20,
                 from /usr/obj/misc/libreoffice/work/libreoffice-5.0.4.2/sax/source/tools/fastserializer.hxx:28,
                 from /usr/obj/misc/libreoffice/work/libreoffice-5.0.4.2/sax/source/tools/fastserializer.cxx:20:
/usr/obj/misc/libreoffice/work/.buildlink/include/boost/smart_ptr/shared_ptr.hpp:441:5: note: template<class Y> boost::shared_ptr<T>::shared_ptr(const boost::shared_ptr<Y>&, boost::shared_ptr<T>::element_type*)
     shared_ptr( shared_ptr<Y> const & r, element_type * p ) BOOST_NOEXCEPT : px( p ), pn( r.pn )
     ^
/usr/obj/misc/libreoffice/work/.buildlink/include/boost/smart_ptr/shared_ptr.hpp:441:5: note:   template argument deduction/substitution failed:
In file included from /usr/obj/misc/libreoffice/work/libreoffice-5.0.4.2/sax/source/tools/fastserializer.hxx:28:0,
                 from /usr/obj/misc/libreoffice/work/libreoffice-5.0.4.2/sax/source/tools/fastserializer.cxx:20:
/usr/obj/misc/libreoffice/work/libreoffice-5.0.4.2/sax/source/tools/CachedOutputStream.hxx:50:46: note:   mismatched types 'const boost::shared_ptr<X>' and 'std::nullptr_t'
                          , mpForMerge(nullptr)
                                              ^
In file included from /usr/obj/misc/libreoffice/work/.buildlink/include/boost/shared_ptr.hpp:17:0,
                 from /usr/obj/misc/libreoffice/work/libreoffice-5.0.4.2/sax/source/tools/CachedOutputStream.hxx:20,
                 from /usr/obj/misc/libreoffice/work/libreoffice-5.0.4.2/sax/source/tools/fastserializer.hxx:28,
                 from /usr/obj/misc/libreoffice/work/libreoffice-5.0.4.2/sax/source/tools/fastserializer.cxx:20:
/usr/obj/misc/libreoffice/work/.buildlink/include/boost/smart_ptr/shared_ptr.hpp:427:5: note: template<class Y> boost::shared_ptr<T>::shared_ptr(const boost::shared_ptr<Y>&, typename boost::detail::sp_enable_if_convertible<Y, T>::type)
     shared_ptr( shared_ptr<Y> const & r, typename boost::detail::sp_enable_if_convertible<Y,T>::type = boost::detail::sp_empty() )
     ^
/usr/obj/misc/libreoffice/work/.buildlink/include/boost/smart_ptr/shared_ptr.hpp:427:5: note:   template argument deduction/substitution failed:
In file included from /usr/obj/misc/libreoffice/work/libreoffice-5.0.4.2/sax/source/tools/fastserializer.hxx:28:0,
                 from /usr/obj/misc/libreoffice/work/libreoffice-5.0.4.2/sax/source/tools/fastserializer.cxx:20:
/usr/obj/misc/libreoffice/work/libreoffice-5.0.4.2/sax/source/tools/CachedOutputStream.hxx:50:46: note:   mismatched types 'const boost::shared_ptr<X>' and 'std::nullptr_t'
                          , mpForMerge(nullptr)
                                              ^
In file included from /usr/obj/misc/libreoffice/work/.buildlink/include/boost/shared_ptr.hpp:17:0,
                 from /usr/obj/misc/libreoffice/work/libreoffice-5.0.4.2/sax/source/tools/CachedOutputStream.hxx:20,
                 from /usr/obj/misc/libreoffice/work/libreoffice-5.0.4.2/sax/source/tools/fastserializer.hxx:28,
                 from /usr/obj/misc/libreoffice/work/libreoffice-5.0.4.2/sax/source/tools/fastserializer.cxx:20:
/usr/obj/misc/libreoffice/work/.buildlink/include/boost/smart_ptr/shared_ptr.hpp:415:5: note: template<class Y> boost::shared_ptr<T>::shared_ptr(const boost::weak_ptr<Y>&, boost::detail::sp_nothrow_tag)
     shared_ptr( weak_ptr<Y> const & r, boost::detail::sp_nothrow_tag )
     ^
/usr/obj/misc/libreoffice/work/.buildlink/include/boost/smart_ptr/shared_ptr.hpp:415:5: note:   template argument deduction/substitution failed:
In file included from /usr/obj/misc/libreoffice/work/libreoffice-5.0.4.2/sax/source/tools/fastserializer.hxx:28:0,
                 from /usr/obj/misc/libreoffice/work/libreoffice-5.0.4.2/sax/source/tools/fastserializer.cxx:20:
/usr/obj/misc/libreoffice/work/libreoffice-5.0.4.2/sax/source/tools/CachedOutputStream.hxx:50:46: note:   mismatched types 'const boost::weak_ptr<Y>' and 'std::nullptr_t'
                          , mpForMerge(nullptr)
                                              ^
In file included from /usr/obj/misc/libreoffice/work/.buildlink/include/boost/shared_ptr.hpp:17:0,
                 from /usr/obj/misc/libreoffice/work/libreoffice-5.0.4.2/sax/source/tools/CachedOutputStream.hxx:20,
                 from /usr/obj/misc/libreoffice/work/libreoffice-5.0.4.2/sax/source/tools/fastserializer.hxx:28,
                 from /usr/obj/misc/libreoffice/work/libreoffice-5.0.4.2/sax/source/tools/fastserializer.cxx:20:
/usr/obj/misc/libreoffice/work/.buildlink/include/boost/smart_ptr/shared_ptr.hpp:406:14: note: template<class Y> boost::shared_ptr<T>::shared_ptr(const boost::weak_ptr<Y>&)
     explicit shared_ptr( weak_ptr<Y> const & r ): pn( r.pn ) // may throw
              ^
/usr/obj/misc/libreoffice/work/.buildlink/include/boost/smart_ptr/shared_ptr.hpp:406:14: note:   template argument deduction/substitution failed:
In file included from /usr/obj/misc/libreoffice/work/libreoffice-5.0.4.2/sax/source/tools/fastserializer.hxx:28:0,
                 from /usr/obj/misc/libreoffice/work/libreoffice-5.0.4.2/sax/source/tools/fastserializer.cxx:20:
/usr/obj/misc/libreoffice/work/libreoffice-5.0.4.2/sax/source/tools/CachedOutputStream.hxx:50:46: note:   mismatched types 'const boost::weak_ptr<Y>' and 'std::nullptr_t'
                          , mpForMerge(nullptr)
                                              ^
In file included from /usr/obj/misc/libreoffice/work/.buildlink/include/boost/shared_ptr.hpp:17:0,
                 from /usr/obj/misc/libreoffice/work/libreoffice-5.0.4.2/sax/source/tools/CachedOutputStream.hxx:20,
                 from /usr/obj/misc/libreoffice/work/libreoffice-5.0.4.2/sax/source/tools/fastserializer.hxx:28,
                 from /usr/obj/misc/libreoffice/work/libreoffice-5.0.4.2/sax/source/tools/fastserializer.cxx:20:
/usr/obj/misc/libreoffice/work/.buildlink/include/boost/smart_ptr/shared_ptr.hpp:399:5: note: boost::shared_ptr<T>::shared_ptr(const boost::shared_ptr<T>&) [with T = sax_fastparser::ForMergeBase]
     shared_ptr( shared_ptr const & r ) BOOST_NOEXCEPT : px( r.px ), pn( r.pn )
     ^
/usr/obj/misc/libreoffice/work/.buildlink/include/boost/smart_ptr/shared_ptr.hpp:399:5: note:   no known conversion for argument 1 from 'std::nullptr_t' to 'const boost::shared_ptr<sax_fastparser::ForMergeBase>&'
/usr/obj/misc/libreoffice/work/.buildlink/include/boost/smart_ptr/shared_ptr.hpp:380:41: note: template<class Y, class D, class A> boost::shared_ptr<T>::shared_ptr(Y*, D, A)
     template<class Y, class D, class A> shared_ptr( Y * p, D d, A a ): px( p ), pn( p, d, a )
                                         ^
/usr/obj/misc/libreoffice/work/.buildlink/include/boost/smart_ptr/shared_ptr.hpp:380:41: note:   template argument deduction/substitution failed:
In file included from /usr/obj/misc/libreoffice/work/libreoffice-5.0.4.2/sax/source/tools/fastserializer.hxx:28:0,
                 from /usr/obj/misc/libreoffice/work/libreoffice-5.0.4.2/sax/source/tools/fastserializer.cxx:20:
/usr/obj/misc/libreoffice/work/libreoffice-5.0.4.2/sax/source/tools/CachedOutputStream.hxx:50:46: note:   mismatched types 'Y*' and 'std::nullptr_t'
                          , mpForMerge(nullptr)
                                              ^
In file included from /usr/obj/misc/libreoffice/work/.buildlink/include/boost/shared_ptr.hpp:17:0,
                 from /usr/obj/misc/libreoffice/work/libreoffice-5.0.4.2/sax/source/tools/CachedOutputStream.hxx:20,
                 from /usr/obj/misc/libreoffice/work/libreoffice-5.0.4.2/sax/source/tools/fastserializer.hxx:28,
                 from /usr/obj/misc/libreoffice/work/libreoffice-5.0.4.2/sax/source/tools/fastserializer.cxx:20:
/usr/obj/misc/libreoffice/work/.buildlink/include/boost/smart_ptr/shared_ptr.hpp:365:32: note: template<class Y, class D> boost::shared_ptr<T>::shared_ptr(Y*, D)
     template<class Y, class D> shared_ptr( Y * p, D d ): px( p ), pn( p, d )
                                ^
/usr/obj/misc/libreoffice/work/.buildlink/include/boost/smart_ptr/shared_ptr.hpp:365:32: note:   template argument deduction/substitution failed:
In file included from /usr/obj/misc/libreoffice/work/libreoffice-5.0.4.2/sax/source/tools/fastserializer.hxx:28:0,
                 from /usr/obj/misc/libreoffice/work/libreoffice-5.0.4.2/sax/source/tools/fastserializer.cxx:20:
/usr/obj/misc/libreoffice/work/libreoffice-5.0.4.2/sax/source/tools/CachedOutputStream.hxx:50:46: note:   mismatched types 'Y*' and 'std::nullptr_t'
                          , mpForMerge(nullptr)
                                              ^
In file included from /usr/obj/misc/libreoffice/work/.buildlink/include/boost/shared_ptr.hpp:17:0,
                 from /usr/obj/misc/libreoffice/work/libreoffice-5.0.4.2/sax/source/tools/CachedOutputStream.hxx:20,
                 from /usr/obj/misc/libreoffice/work/libreoffice-5.0.4.2/sax/source/tools/fastserializer.hxx:28,
                 from /usr/obj/misc/libreoffice/work/libreoffice-5.0.4.2/sax/source/tools/fastserializer.cxx:20:
/usr/obj/misc/libreoffice/work/.buildlink/include/boost/smart_ptr/shared_ptr.hpp:354:14: note: template<class Y> boost::shared_ptr<T>::shared_ptr(Y*)
     explicit shared_ptr( Y * p ): px( p ), pn() // Y must be complete
              ^
/usr/obj/misc/libreoffice/work/.buildlink/include/boost/smart_ptr/shared_ptr.hpp:354:14: note:   template argument deduction/substitution failed:
In file included from /usr/obj/misc/libreoffice/work/libreoffice-5.0.4.2/sax/source/tools/fastserializer.hxx:28:0,
                 from /usr/obj/misc/libreoffice/work/libreoffice-5.0.4.2/sax/source/tools/fastserializer.cxx:20:
/usr/obj/misc/libreoffice/work/libreoffice-5.0.4.2/sax/source/tools/CachedOutputStream.hxx:50:46: note:   mismatched types 'Y*' and 'std::nullptr_t'
                          , mpForMerge(nullptr)
                                              ^
In file included from /usr/obj/misc/libreoffice/work/.buildlink/include/boost/shared_ptr.hpp:17:0,
                 from /usr/obj/misc/libreoffice/work/libreoffice-5.0.4.2/sax/source/tools/CachedOutputStream.hxx:20,
                 from /usr/obj/misc/libreoffice/work/libreoffice-5.0.4.2/sax/source/tools/fastserializer.hxx:28,
                 from /usr/obj/misc/libreoffice/work/libreoffice-5.0.4.2/sax/source/tools/fastserializer.cxx:20:
/usr/obj/misc/libreoffice/work/.buildlink/include/boost/smart_ptr/shared_ptr.hpp:341:5: note: boost::shared_ptr<T>::shared_ptr() [with T = sax_fastparser::ForMergeBase]
     shared_ptr() BOOST_NOEXCEPT : px( 0 ), pn() // never throws in 1.30+
     ^
/usr/obj/misc/libreoffice/work/.buildlink/include/boost/smart_ptr/shared_ptr.hpp:341:5: note:   candidate expects 0 arguments, 1 provided
/usr/obj/misc/libreoffice/work/libreoffice-5.0.4.2/solenv/gbuild/LinkTarget.mk:189: recipe for target '/usr/obj/misc/libreoffice/work/libreoffice-5.0.4.2/workdir/CxxObject/sax/source/tools/fastserializer.o' failed
gmake[1]: *** [/usr/obj/misc/libreoffice/work/libreoffice-5.0.4.2/workdir/CxxObject/sax/source/tools/fastserializer.o] Error 1
gmake[1]: Leaving directory '/usr/obj/misc/libreoffice/work/libreoffice-5.0.4.2'
Makefile:247: recipe for target 'build' failed
gccのバージョンを変えたら良いのか、それとも何か別に原因があるのか、対処する方向性が見えてきません。ちなみに「GCC_REQD=4.8」を付けない場合にエラーとなった箇所は、問題なくコンパイル出来ていました。
[build CXX] comphelper/source/misc/threadpool.cxx
S=/usr/obj/misc/libreoffice/work/libreoffice-5.0.4.2 && I=$S/instdir && W=$S/workdir &&  mkdir -p $W/CxxObject/comphelper/source/misc/ $W/Dep/CxxObject/comphelper/source/misc/ && cd /usr/obj/misc/libreoffice/work/libreoffice-5.0.4.2 &&   c++ -DBOOST_ERROR_CODE_HEADER_ONLY -DBOOST_SYSTEM_NO_DEPRECATED -DCPPU_ENV=gcc3 -DINTEL -DNDEBUG -DNETBSD -DOPTIMIZE -DOSL_DEBUG_LEVEL=0 -DUNIX -DUNX -DX86 -D_PTHREADS -D_REENTRANT -pthread -I/usr/pkg/include -I/usr/include -I/usr/pkg/include/db4 -DLDAP_DEPRECATED -I/usr/pkg/include/cppunit -I/usr/pkg/include/nss/nss -I/usr/pkg/include/nspr -I/usr/X11R7/include/freetype2 -I/usr/X11R7/include -I/usr/X11R7/include/libdrm -I/usr/include/krb5  -DCOMPHELPER_DLLIMPLEMENTATION   -DHAVE_GCC_VISIBILITY_FEATURE -fvisibility=hidden   -Wall -Wno-missing-braces -Wnon-virtual-dtor -Wendif-labels -Wextra -Wundef -Wunused-macros -fmessage-length=0 -fno-common -pipe  -fvisibility-inlines-hidden -fPIC -Wshadow -Woverloaded-virtual -std=gnu++11   -DEXCEPTIONS_ON -fexceptions -fno-enforce-eh-specs -O2 -I/usr/pkg/include -I/usr/include -I/usr/pkg/include/db4 -DLDAP_DEPRECATED -I/usr/pkg/include/cppunit -I/usr/pkg/include/nss/nss -I/usr/pkg/include/nspr -I/usr/X11R7/include/freetype2 -I/usr/X11R7/include -I/usr/X11R7/include/libdrm -I/usr/include/krb5  -DLIBO_INTERNAL_ONLY  -c $S/comphelper/source/misc/threadpool.cxx -o $W/CxxObject/comphelper/source/misc/threadpool.o -MMD -MT $W/CxxObject/comphelper/source/misc/threadpool.o -MP -MF $W/Dep/CxxObject/comphelper/source/misc/threadpool.d_ -I$S/comphelper/source/misc/ -I$S/comphelper/source/inc  -I$S/include  -I/usr/pkg/java/openjdk8/include -I/usr/pkg/java/openjdk8/include/netbsd -I$S/config_host  -I$W/CustomTarget/officecfg/registry    -I$W/UnoApiHeadersTarget/udkapi/normal -I$W/UnoApiHeadersTarget/offapi/normal  && mv $W/Dep/CxxObject/comphelper/source/misc/threadpool.d_ $W/Dep/CxxObject/comphelper/source/misc/threadpool.d
[build CXX] comphelper/source/misc/types.cxx

2015-12-20

LibreOfficeのビルド失敗(1)

pkgsrcからmisc/libreofficeをインストールしようとしていますが、ビルドに失敗します。pkgsrcにはmisc/libreoffice4やmisc/libreoffice43がありますが、全てビルドできません。ちなみに各パッケージでインストールされるLibreOfficeのバージョンは次のとおりです。
  • misc/libreoffice(LibreOffice 5.0.4.2) 
  • misc/libreoffice4(LibreOffice 4.4.7.2)
  • misc/libreoffice43(LibreOffice 4.3.7.2)
NetBSD/i386 7.99.21でmisc/libreofficeをビルドすると、次のようなエラーが出ます。
[build CXX] comphelper/source/misc/threadpool.cxx
S=/usr/obj/misc/libreoffice/work/libreoffice-5.0.4.2 && I=$S/instdir && W=$S/workdir &&  mkdir -p $W/CxxObject/comphelper/source/misc/ $W/Dep/CxxObject/comphelper/source/misc/ && cd /usr/obj/misc/libreoffice/work/libreoffice-5.0.4.2 &&   c++ -DBOOST_ERROR_CODE_HEADER_ONLY -DBOOST_SYSTEM_NO_DEPRECATED -DCPPU_ENV=gcc3 -DINTEL -DNDEBUG -DNETBSD -DOPTIMIZE -DOSL_DEBUG_LEVEL=0 -DUNIX -DUNX -DX86 -D_PTHREADS -D_REENTRANT -pthread -I/usr/pkg/include -I/usr/include -I/usr/pkg/include/db4 -DLDAP_DEPRECATED -I/usr/pkg/include/cppunit -I/usr/pkg/include/nss/nss -I/usr/pkg/include/nspr -I/usr/X11R7/include/freetype2 -I/usr/X11R7/include -I/usr/X11R7/include/libdrm -I/usr/include/krb5  -DCOMPHELPER_DLLIMPLEMENTATION   -DHAVE_GCC_VISIBILITY_FEATURE -fvisibility=hidden   -Wall -Wno-missing-braces -Wnon-virtual-dtor -Wendif-labels -Wextra -Wundef -Wunused-macros -fmessage-length=0 -fno-common -pipe  -fvisibility-inlines-hidden -fPIC -Wshadow -Woverloaded-virtual -std=gnu++0x   -DEXCEPTIONS_ON -fexceptions -fno-enforce-eh-specs -O2 -I/usr/pkg/include -I/usr/include -I/usr/pkg/include/db4 -DLDAP_DEPRECATED -I/usr/pkg/include/cppunit -I/usr/pkg/include/nss/nss -I/usr/pkg/include/nspr -I/usr/X11R7/include/freetype2 -I/usr/X11R7/include -I/usr/X11R7/include/libdrm -I/usr/include/krb5  -DLIBO_INTERNAL_ONLY  -c $S/comphelper/source/misc/threadpool.cxx -o $W/CxxObject/comphelper/source/misc/threadpool.o -MMD -MT $W/CxxObject/comphelper/source/misc/threadpool.o -MP -MF $W/Dep/CxxObject/comphelper/source/misc/threadpool.d_ -I$S/comphelper/source/misc/ -I$S/comphelper/source/inc  -I$S/include  -I/usr/pkg/java/openjdk8/include -I/usr/pkg/java/openjdk8/include/netbsd -I$S/config_host  -I$W/CustomTarget/officecfg/registry    -I$W/UnoApiHeadersTarget/udkapi/normal -I$W/UnoApiHeadersTarget/offapi/normal  && mv $W/Dep/CxxObject/comphelper/source/misc/threadpool.d_ $W/Dep/CxxObject/comphelper/source/misc/threadpool.d
/usr/obj/misc/libreoffice/work/libreoffice-5.0.4.2/comphelper/source/misc/threadpool.cxx: In member function 'boost::shared_ptr<comphelper::ThreadPool> comphelper::ThreadPoolStatic::operator()()':
/usr/obj/misc/libreoffice/work/libreoffice-5.0.4.2/comphelper/source/misc/threadpool.cxx:118:45: error: 'std::thread' has not been declared
/usr/obj/misc/libreoffice/work/libreoffice-5.0.4.2/solenv/gbuild/LinkTarget.mk:189: recipe for target '/usr/obj/misc/libreoffice/work/libreoffice-5.0.4.2/workdir/CxxObject/comphelper/source/misc/threadpool.o' failed
gmake[1]: *** [/usr/obj/misc/libreoffice/work/libreoffice-5.0.4.2/workdir/CxxObject/comphelper/source/misc/threadpool.o] Error 1
gmake[1]: Leaving directory '/usr/obj/misc/libreoffice/work/libreoffice-5.0.4.2'
Makefile:247: recipe for target 'build' failed
gmake: *** [build] Error 2
pkgsrc-usersのメーリングリストでは2015年9月12日付で「Compiling misc/libreoffice fails」という報告が上がっています。さらに2015年11月9日付でも「Re: Compiling misc/libreoffice fails」と再報告が上がっていますが、リプライが無いようです。またNetBSD Problem Reportの#49826で「pkgsrc-2015Q1 misc/libreoffice4 build fails on NetBSD 6.1.5」と報告されていますが、ステータスはOpen状態のままです。

標準のgccが4.5.3なので、ものは試しとpkgsrc/gcc48で入れた4.8.4を使ってみることにしました。/etc/mk.confに「」というエントリを追加しておきます。misc/libreofficeの作業ディレクトリを消して、pkg_deleteでboost-libsとその依存パッケージを全て消去してみました。

あらためてmisc/libreofficeをビルドしたら、またもやエラーになりました。
checking for glm/glm.hpp... no
configure: error: Required boost headers not found.
*** Error code 1

Stop.
make: stopped in /usr/pkgsrc/converters/libetonyek
理由は不明ですが、converters/libetonyekはgcc 4.8.4ではビルドできないようです。標準のgcc 4.5.3ならビルドできました。

いろいろと問題が続き、なかなかLibreOfficeのビルドが完了しません。

2015-12-17

ひととおりインストールした時点におけるLXDEの様子

pkgsrc(含wip)からLXDE関連アプリケーションをインストールした段階におけるルート画面です。
2015年12月17日現在のLXDEルート画面

ロケールをja_JP.UTF-8にして起動しているためか、特に何も設定しなくても日本語が出ています。しかし日本語化されているところと、英語のままになっているところがあります。この辺りを日本語化させる方法や、LXDE自体の設定について調べていこうと思います。

画面右下のアイコンが×印になっており、何か問題があるのでしょう。この件も調査したいと思います。

2015-12-16

firefox 42

pkgsrcからwww/firefoxを入れます。非力なCPUで、メモリも少ないので、512M用意してあったスワップ領域がほぼ一杯になるほど使われており、コンパイル完了まで約24時間かかりました。

www/firefoxと依存関係にあるdevel/ssの作成中にエラーになりました。NetBSD/i386に入っているgccは4.5.3ですが、どうやらバージョンを上げればなんとかなりそうでした。pkgsrcからgcc48を入れているので、/etc/mk.confに「GCC_REQD=4.8」と指定すると、無事に作成できました。
gmake[2]: Entering directory '/usr/obj/devel/nss/work/nss-3.21/nss/lib/util'
gcc -o NetBSD7.99.21_OPT.OBJ/secoid.o -c -O -fPIC -DPIC -Di386 -ansi -Wall -Wno-switch -pipe -DNETBSD -Dunix -DHAVE_STRERROR -DHAVE_BSD_FLOCK -DXP_UNIX -UDEBUG -DNDEBUG -DUSE_UTIL_DIRECTLY -DNO_NSPR_10_SUPPORT -DSSL_DISABLE_DEPRECATED_CIPHER_SUITE_NAMES -I/usr/pkg/include/nspr -I/usr/X11R6/include -I./../dist/NetBSD7.99.21_OPT.OBJ/include -I./../dist/public/ -I./../dist/private/ -I/usr/X11R6/include -I../../dist/NetBSD7.99.21_OPT.OBJ/include -I../../dist/public/ -I../../dist/private/ -I/usr/X11R6/include -I../../../dist/NetBSD7.99.21_OPT.OBJ/include -I../../../dist/public/nss -I../../../dist/private/nss  secoid.c
In file included from secoid.c:1915:0:
verref.h: In function 'SECOID_Init':
verref.h:22:9: error: #pragma GCC diagnostic not allowed inside functions
verref.h:23:9: error: #pragma GCC diagnostic not allowed inside functions
verref.h:31:25: warning: unused variable '_nss_version_c'
verref.h:39:9: error: #pragma GCC diagnostic not allowed inside functions
../../coreconf/rules.mk:388: recipe for target 'NetBSD7.99.21_OPT.OBJ/secoid.o' failed
gmake[2]: *** [NetBSD7.99.21_OPT.OBJ/secoid.o] Error 1
gmake[2]: Leaving directory '/usr/obj/devel/nss/work/nss-3.21/nss/lib/util'
../coreconf/rules.mk:101: recipe for target 'libs' failed
gmake[1]: *** [libs] Error 2
gmake[1]: Leaving directory '/usr/obj/devel/nss/work/nss-3.21/nss/lib'
coreconf/rules.mk:101: recipe for target 'libs' failed
gmake: *** [libs] Error 2
*** Error code 2
www/firefox本体の作成中にもエラーになりました。この問題はpkgsrc-usersメーリングリストで2014年10月15日に「Re: pkg/49262: Firefox compile fails at AString.o」としてパッチが出ているので、/etc/mk.confに「LOCALPATCHES=/usr/local/pkgsrcpatches」と指定を加え、ローカルパッチを/usr/local/pkgsrcpatches/www/firefox/pkg-49262として置いておきました。これで無事に作成できました。
c++ -o Unified_cpp_media_libstagefright1.o -c -I../../dist/stl_wrappers -I../../dist/system_wrappers -include /usr/obj/www/firefox/work/firefox-42.0/config/gcc_hidden.h -DANDROID_SMP=0 -DLOG_NDEBUG=1 -D_GLIBCXX_OS_DEFINES -DHAVE_SYS_UIO_H -Doff64_t='off_t' -DFAKE_LOG_DEVICE -DSTATIC_EXPORTABLE_JS_API -DMOZILLA_INTERNAL_API -DIMPL_LIBXUL -DAB_CD=en-US -DNO_NSPR_10_SUPPORT -I/usr/obj/www/firefox/work/firefox-42.0/media/libstagefright -I. -I/usr/obj/www/firefox/work/firefox-42.0/media/libstagefright/ports/bsd/include -I/usr/obj/www/firefox/work/firefox-42.0/media/libstagefright/binding/include -I/usr/obj/www/firefox/work/firefox-42.0/media/libstagefright/frameworks/av/include -I/usr/obj/www/firefox/work/firefox-42.0/media/libstagefright/frameworks/av/include/media/stagefright/foundation -I/usr/obj/www/firefox/work/firefox-42.0/media/libstagefright/frameworks/av/media/libstagefright/ -I/usr/obj/www/firefox/work/firefox-42.0/media/libstagefright/stubs/empty -I/usr/obj/www/firefox/work/firefox-42.0/media/libstagefright/stubs/include -I/usr/obj/www/firefox/work/firefox-42.0/media/libstagefright/stubs/include/media/stagefright/foundation -I/usr/obj/www/firefox/work/firefox-42.0/media/libstagefright/system/core/include -I../../dist/include   -I/usr/pkg/include/nspr -I/usr/pkg/include/nss/nss -I/usr/pkg/include/nss -I/usr/pkg/include/nspr    -I/usr/pkg/include/pixman-1   -fPIC -DPIC  -I/usr/pkg/include -I/usr/include -I/usr/pkg/include/nspr -I/usr/pkg/include/nss/nss -I/usr/X11R7/include -I/usr/X11R7/include/libdrm -I/usr/X11R7/include/freetype2 -DMOZILLA_CLIENT -include ../../mozilla-config.h -MD -MP -MF .deps/Unified_cpp_media_libstagefright1.o.pp -I/usr/pkg/include -I/usr/include -I/usr/pkg/include/nspr -I/usr/pkg/include/nss/nss -I/usr/X11R7/include -I/usr/X11R7/include/libdrm -I/usr/X11R7/include/freetype2 -Wall -Wempty-body -Woverloaded-virtual -Wsign-compare -Wwrite-strings -Wno-invalid-offsetof -Wcast-align -O2 -I/usr/pkg/include -I/usr/include -I/usr/pkg/include/nspr -I/usr/pkg/include/nss/nss -I/usr/X11R7/include -I/usr/X11R7/include/libdrm -I/usr/X11R7/include/freetype2 -march=i586 -mstackrealign -fno-exceptions -fno-strict-aliasing -Dunix -fno-rtti -fno-exceptions -fno-math-errno -std=gnu++0x -pthread -pipe  -DNDEBUG -DTRIMMED -O2 -fomit-frame-pointer -Wno-format -Wno-multichar -Wno-sign-compare -Wno-unused   /usr/obj/www/firefox/work/build/media/libstagefright/Unified_cpp_media_libstagefright1.cpp
In file included from /usr/include/ctype.h:74:0,
                 from ../../dist/system_wrappers/ctype.h:3,
                 from ../../dist/include/nsCharTraits.h:10,
                 from ../../dist/include/nsAlgorithm.h:10,
                 from ../../dist/include/nsTArray.h:25,
                 from /usr/obj/www/firefox/work/firefox-42.0/media/libstagefright/frameworks/av/include/media/stagefright/MediaSource.h:26,
                 from /usr/obj/www/firefox/work/firefox-42.0/media/libstagefright/frameworks/av/media/libstagefright/MediaSource.cpp:17,
                 from /usr/obj/www/firefox/work/build/media/libstagefright/Unified_cpp_media_libstagefright1.cpp:2:
/usr/obj/www/firefox/work/firefox-42.0/media/libstagefright/frameworks/av/include/media/stagefright/foundation/AString.h:78:10: error: expected unqualified-id before 'int'
     void tolower();
          ^
/usr/obj/www/firefox/work/firefox-42.0/media/libstagefright/frameworks/av/include/media/stagefright/foundation/AString.h:78:10: error: expected ')' before 'int'
/usr/obj/www/firefox/work/firefox-42.0/media/libstagefright/frameworks/av/include/media/stagefright/foundation/AString.h:78:10: error: expected ')' before 'int'
In file included from /usr/obj/www/firefox/work/build/media/libstagefright/Unified_cpp_media_libstagefright1.cpp:65:0:
/usr/obj/www/firefox/work/firefox-42.0/media/libstagefright/frameworks/av/media/libstagefright/foundation/AString.cpp:312:23: error: no 'void stagefright::AString::tolower()' member function declared in class 'stagefright::AString'
 void AString::tolower() {
                       ^
/usr/obj/www/firefox/work/firefox-42.0/config/rules.mk:959: recipe for target 'Unified_cpp_media_libstagefright1.o' failed
gmake[3]: *** [Unified_cpp_media_libstagefright1.o] Error 1
gmake[3]: Leaving directory '/usr/obj/www/firefox/work/build/media/libstagefright'
 pkgsrcから入れたfirefoxはNightly版だったので多少驚きました。とりあえず立ち上げてみたところ、日本語は出ているようで、www/firefox-l10nは要らないのでしょうか。

LXDEの起動と日本語対応

xdmを使ってログインすることにしました。/etc/X11/xinit/xinitrcをホームディレクトリにコピーし、~/.xsessionとして置き、LXDEが立ち上がるように変更しておきます。
--- /etc/X11/xinit/xinitrc      2014-09-30 02:10:31.000000000 +0900
+++ /home/furusawa/.xsession    2015-12-12 21:09:05.000000000 +0900
@@ -50,8 +50,10 @@
        unset f
 fi

-twm &
-xclock -geometry 50x50-1+1 &
-/usr/X11R7/bin/xterm -geometry 80x50+494+51 &
-/usr/X11R7/bin/xterm -geometry 80x20+494-0 &
-exec /usr/X11R7/bin/xterm -geometry 80x66+0+0 -name login
+#twm &
+#xclock -geometry 50x50-1+1 &
+#/usr/X11R7/bin/xterm -geometry 80x50+494+51 &
+#/usr/X11R7/bin/xterm -geometry 80x20+494-0 &
+#exec /usr/X11R7/bin/xterm -geometry 80x66+0+0 -name login
+export LANG=ja_JP.UTF-8
+/usr/pkg/bin/startlxde
pkgsrcから日本語フォントとLXDE関連アプリケーションを追加しておきます。
  1. pkgsrc/fonts/ipaexfont
  2. pkgsrc/fonts/ipafont
  3. pkgsrc/wip/lxappearance
  4. pkgsrc/wip/lxlauncher
  5. pkgsrc/wip/lxmenu-data
  6. pkgsrc/wip/lxmusic
  7. pkgsrc/wip/lxpanel
  8. pkgsrc/wip/lxrandr
  9. pkgsrc/wip/lxsession-edit
  10. pkgsrc/wip/lxshortcut
  11. pkgsrc/wip/lxtask
  12. pkgsrc/wip/lxterminal
lxde-icon-theme-0.5.0というパッケージはpkgsrc-wipにも無いようなので自前で入れておきます。 ただしpkgsrc-wipを使ったパッケージがあるので、「./configure --prefix=/usr/pkg」としておきました。さらにmake installで使われるcpに与えるオプションがNetBSDではエラーになるので以下の修正をおこないました。
--- Makefile.in.org     2015-12-13 15:13:42.000000000 +0900
+++ Makefile.in 2015-12-13 15:13:57.000000000 +0900
@@ -474,7 +474,7 @@

 install-data-hook:
        $(mkdir_p) $(DESTDIR)$(datadir)/icons
-       cp -raf --no-preserve=ownership nuoveXT2 $(DESTDIR)$(datadir)/icons
+       cp -Raf nuoveXT2 $(DESTDIR)$(datadir)/icons
        $(LN_S) -f user-desktop.png $(DESTDIR)$(datadir)/icons/nuoveXT2/48x48/places/desktop.png
        $(LN_S) -f user-desktop.png $(DESTDIR)$(datadir)/icons/nuoveXT2/48x48/places/gnome-fs-desktop.png
        $(LN_S) -f folder-saved-search.png $(DESTDIR)$(datadir)/icons/nuoveXT2/48x48/places/application-x-gnome-saved-search.png
これで最低限のLXDE環境が整ったのではないかと思います。LXDEを使うのは初めてなので、どこに何があって、どう調整すればよいか分かりませんが、徐々に慣れていくでしょう。現段階で気になるのは以下のような事柄なので、ここから解決していこうと思っています。
  • Webブラウザやメーラーが無い(firefoxとthunderbird)
  • オフィス環境が無い(LibreOffice)
  • emacsを入れておきたい
  • 日本語入力環境がない(mozcにするか、他に何かあるか検討中)
  • 印刷環境やPDF表示ができない

PCManFM

LXDEの環境を整える参考情報として「NetBSDとX・ウィンドウマネージャ・統合デスクトップ環境」を参考にしました。

pkgsrc-wipからwip/pcmanfmをmakeすると途中でエラーになりました。
gcc -DHAVE_CONFIG_H -I. -I..  -DPACKAGE_DATA_DIR=\""/usr/pkg/share/pcmanfm"\"  -DPACKAGE_UI_DIR=\""/usr/pkg/share/pcmanfm/ui"\"  -DPACKAGE_LOCALE_DIR=\""/usr/pkg/share/locale"\" -I/usr/pkg/include -I/usr/include -I/usr/X11R7/include -I/usr/X11R7/include/freetype2 -I/usr/X11R7/include/libdrm -D_LARGEFILE_SOURCE -D_REENTRANT -D_FILE_OFFSET_BITS=64 -DG_DISABLE_ASSERT -DG_DISABLE_CHECKS -D_REENTRANT -I/usr/X11R7/include  -D_REENTRANT -pthread -I/usr/pkg/include -I/usr/pkg/include/gtk-2.0 -I/usr/pkg/lib/gtk-2.0/include -I/usr/pkg/include/pango-1.0 -I/usr/X11R7/include -I/usr/pkg/include/cairo -I/usr/pkg/include/atk-1.0 -I/usr/pkg/include/cairo -I/usr/pkg/include/pixman-1 -I/usr/pkg/include/libpng16 -I/usr/X11R7/include -I/usr/pkg/include/gdk-pixbuf-2.0 -I/usr/pkg/include/libpng16 -I/usr/pkg/include/pango-1.0 -I/usr/pkg/include/harfbuzz -I/usr/pkg/include/pango-1.0 -I/usr/pkg/include -I/usr/X11R7/include/freetype2 -I/usr/X11R7/include -I/usr/X11R7/include/freetype2 -I/usr/X11R7/include -I/usr/pkg/include -I/usr/pkg/include/glib/gio-unix-2.0/ -I/usr/pkg/include/glib/glib-2.0 -I/usr/pkg/lib/glib-2.0/include -I/usr/pkg/include  -DG_DISABLE_CAST_CHECKS  -Wall  -Werror-implicit-function-declaration   -O2 -I/usr/pkg/include -I/usr/include -I/usr/X11R7/include -I/usr/X11R7/include/freetype2 -I/usr/X11R7/include/libdrm -MT pcmanfm-main-win.o -MD -MP -MF .deps/pcmanfm-main-win.Tpo -c -o pcmanfm-main-win.o `test -f 'main-win.c' || echo './'`main-win.c
main-win.c: In function 'create_bookmarks_menu':
main-win.c:264:25: error: 'FmBookmarks' has no member named 'items'
*** Error code 1

Stop.
make: stopped in /usr/obj/wip/pcmanfm/work/pcmanfm-1.1.0/src
*** Error code 1
この問題はsourceforgeのPCMan File Managerのバグ報告「#774 Pcmanfm-git does not build against current libfm-git」にありますが、 どのように解決したら良いのか明記されていません。この投稿は2013年8月24日なので、その日付を手掛かりにしてgitにあるlxde/pcmanfm.git/main-win.cの履歴を見ると「2013-08-24      Andriy Grytsenko    Disable direct access to FmBookmarks elements.」という更新がされていました。その変更点をローカルパッチとして適用すると 無事に作成できました。

LXQtとLXDE

X11が動作するのを確認してから、LXQtをインストールしてみました。pkgsrc-wipを使ってみましたが、x11/qt5-qtbaseの途中でエラーが出てしまいました。
/usr/obj/x11/qt5-qtbase/work/qtbase-opensource-src-5.5.1/bin/moc -DQT_NO_MTDEV -DQT_NO_LIBUDEV -DQT_NO_EVDEV -DQT_NO_TSLIB -DQT_NO_LIBINPUT -DQT_NO_XKB -DQT_NO_USING_NAMESPACE -DQT_BUILD_CORE_LIB -DQT_BUILDING_QT -DQT_NO_CAST_TO_ASCII -DQT_ASCII_CAST_WARNINGS -DQT_MOC_COMPAT -DQT_USE_QSTRINGBUILDER -DQT_DEPRECATED_WARNINGS -DQT_DISABLE_DEPRECATED_BEFORE=0x050000 -DQT_USE_ICU -DQT_CORE_LIB -D_LARGEFILE64_SOURCE -D_LARGEFILE_SOURCE -DQT_NO_DEBUG -I/usr/obj/x11/qt5-qtbase/work/qtbase-opensource-src-5.5.1/mkspecs/netbsd-g++ -I/usr/obj/x11/qt5-qtbase/work/qtbase-opensource-src-5.5.1/src/corelib -I/usr/pkg/include -I/usr/include -I/usr/X11R7/include/freetype2 -I/usr/pkg/lib/dbus-1.0/include/dbus -I/usr/X11R7/include -I/usr/X11R7/include/libdrm -I/usr/obj/x11/qt5-qtbase/work/qtbase-opensource-src-5.5.1/include -I/usr/obj/x11/qt5-qtbase/work/qtbase-opensource-src-5.5.1/include/QtCore -I/usr/obj/x11/qt5-qtbase/work/qtbase-opensource-src-5.5.1/include/QtCore/5.5.1 -I/usr/obj/x11/qt5-qtbase/work/qtbase-opensource-src-5.5.1/include/QtCore/5.5.1/QtCore -I/usr/obj/x11/qt5-qtbase/work/qtbase-opensource-src-5.5.1/src/corelib/global -I/usr/obj/x11/qt5-qtbase/work/qtbase-opensource-src-5.5.1/src/3rdparty/harfbuzz/src -I/usr/obj/x11/qt5-qtbase/work/qtbase-opensource-src-5.5.1/src/3rdparty/md5 -I/usr/obj/x11/qt5-qtbase/work/qtbase-opensource-src-5.5.1/src/3rdparty/md4 -I/usr/obj/x11/qt5-qtbase/work/qtbase-opensource-src-5.5.1/src/3rdparty/sha3 -I/usr/obj/x11/qt5-qtbase/work/qtbase-opensource-src-5.5.1/src/3rdparty/forkfd -I/usr/obj/x11/qt5-qtbase/workbuildlink/include -I/usr/obj/x11/qt5-qtbase/workx11-buildlink/include/freetype2 -I/usr/obj/x11/qt5-qtbase/workx11-buildlink/include/libdrm -I/usr/include/g++ -I/usr/include/g++/backward -I/usr/include/gcc-4.5 -I/usr/include animation/qabstractanimation.h -o .moc/moc_qabstractanimation.cpp
moc: anim: No such file
Makefile:1572: recipe for target '.moc/moc_qabstractanimation.cpp' failed
gmake[2]: *** [.moc/moc_qabstractanimation.cpp] Error 1
gmake[2]: Leaving directory '/usr/obj/x11/qt5-qtbase/work/qtbase-opensource-src-5.5.1/src/corelib'
指定されているファイル名が「animation/qabstractanimation.h」なのに、エラーメッセージでは「moc: anim: No such file」になっており、ファイル名が途中で切れているように見えます。状況を単純化してみましたが、どうやら指定されたファイル名がプログラム内部で壊れているような気がします。
# /usr/obj/x11/qt5-qtbase/work/qtbase-opensource-src-5.5.1/bin/.libs/moc animation/qabstractanimation.h -o .moc/moc_qabstractanimation.cpp 2>&1 | od -tx1 -c
0000000   6d  6f  63  3a  20  61  6e  69  6d  61  74  69  6f  61  74  69
  m   o   c   :       a   n   i   m   a   t   i   o   a   t   i
0000020   6f  e9  8a  90  eb  ad  a0  eb  87  b0  eb  ad  a0  61  63  74
  o 351 212 220 353 255 240 353 207 260 353 255 240   a   c   t
0000040   61  6e  69  6d  61  74  69  6f  6e  2e  68  3a  20  4e  6f  20
  a   n   i   m   a   t   i   o   n   .   h   :       N   o
0000060   73  75  63  68  20  66  69  6c  65  0a
  s   u   c   h       f   i   l   e  \n
0000072
ロケールを「C」や「ja_JP.UTF-8」にしても状況が変わりませんでした。手強いので、LXQtをあきらめ、LXDEをインストールすることにしました。こちらもpkgsrc-wipを利用します。wip/lxde-commonでmakeすると、LXQtでの苦労が嘘のように、コンパイルできました。ただし問題がひとつだけあり、patchesディレクトリにおいてあるファイルの情報がdistinfoにありませんでした。これは「make makedistinfo」とすると良いようです。

無線LAN

SONY vaio PCG-SRX3/BDには無線LANが内蔵されていますが、NetBSD/i386 6.1.5のGENERICカーネルではブート時にエラーが出てしまいました。
wi0 at pcmcia1 function 0: <Lucent Technologies, WaveLAN/IEEE, Version 01.01, >
wi0:wi0: command timed out, cmd=0x0, arg=0x0
wi0: command timed out, cmd=0x0, arg=0x0
wi0: command timed out, cmd=0x0, arg=0x0
wi0: command timed out, cmd=0x0, arg=0x0
wi0: command timed out, cmd=0x0, arg=0x0
wi0: init failed
wi0: failed to attach controller
Webを探してみるとLINUXなら解決したという報告がありました。BSD系OSに関する情報がなかなか見つかりませんでしたが、「"FreeTalk - What happens today? -"2002/12版 その1」の中の2002年12月8日の記事の中に参考となる情報を見つけることができました。この情報をもとに試行錯誤したところ、GENERICカーネルに対して以下の変更を加えたカーネルにすると無線LANが有効となりました。 
--- GENERIC     2015-09-27 05:45:25.000000000 +0900
+++ VAIO        2015-10-21 06:52:43.000000000 +0900
@@ -423,7 +423,7 @@
 pci*   at elansc? bus ?

 # Configure PCI using BIOS information
-#options       PCIBIOS                 # PCI BIOS support
+options        PCIBIOS                 # PCI BIOS support
 #options       PCIBIOSVERBOSE          # PCI BIOS verbose info
 #options       PCIBIOS_IRQS_HINT=0x0a00 # PCI interrupts hint. IRQ 9 or 11
 #options       PCIBIOS_INTR_GUESS      # see pcibios(4)
@@ -1048,6 +1048,9 @@
 # tr at pcmcia has problems with Cardbus bridges
 #tr*   at pcmcia? function ?           # TROPIC based Token-Ring
 wi*    at pcmcia? function ?           # Lucent/Intersil WaveLAN/IEEE (802.11)
+options RBUS_MIN_START=0x20000000
+options RBUS_IO_BASE=0xfb00
+options RBUS_IO_SIZE=0x200
 xirc*  at pcmcia? function ?           # Xircom CreditCard Ethernet
 com*   at xirc?
 xi*    at xirc?
無線LANは以下のように認識されています。 
wi0 at pcmcia1 function 0: <Lucent Technologies, WaveLAN/IEEE, Version 01.01, >
wi0: 802.11 address 00:02:2d:**:**:**
wi0: using Lucent Embedded WaveLAN/IEEE
wi0: Lucent Firmware: Station (6.16.1)
wi0: 11b rates: 1Mbps 2Mbps 5.5Mbps 11Mbps
無線LANが使えるようになったのでwpa_supplicantを使ってWPA-PSK/AESで接続しようとしても、繋がりませんでした。WEPなら繋がるので、WPA接続できるようにするのは今後の課題とします。

NetBSD/i386をインストール

SONY vaio PCG-SRX3/BDにNetBSD/i386 6.1.5をインストールしました。公式サイトからISOイメージを取得し、CD-Rに焼いて使いました。

wd0a(/)を512MB、スワップを512MB、wd0e(/usr)を2GB、wd0f(/opt)を残り全て(54158MB)としてパーティションを切り、source以外の配布セットをインストールしました。インストール直後のディスク消費量は以下のとおりです。
Filesystem    1K-blocks       Used      Avail %Cap Mounted on
/dev/wd0a        493487      67335     401478  14% /
/dev/wd0e       2033630     584172    1347778  30% /usr
/dev/wd0f      53765658      52546   51024830   0% /opt
kernfs                1          1          0 100% /kern
ptyfs                 1          1          0 100% /dev/pts
procfs                4          4          0 100% /proc

/usrに割り当てている容量が少ないので、一部のディレクトリを/optに追い出しました。見かけ上は通常のディレクトリにあるように見せかけるため、/etc/fstabに以下の記述を追加しました。
/opt/X11R7      /usr/X11R7      null    rw
/opt/var        /var            null    rw
/opt/local      /usr/local      null    rw
/opt/pkg        /usr/pkg        null    rw

SONY vaio PCG-SRX3/BDを再利用

以前に使っていたSONY vaio PCG-SRX3/BDにWindows以外のOSを入れてみて、使い勝手などを調べてみることにしました。発売されたのが2001年11月17日なので性能的には現時点とは比べものにはなりません。実用とするよりも、環境を構築するなかで得られる経験の蓄積を主目的としたいと考えています。
CPUが非力(Celeron 650MHz)なのは仕方ありませんが、メモリは最大容量(それでも384MB)にしてありますし、HDDを換装(60GB, Hitachi HTS541260H9AT00)しました。

OSは、個人的な好みから、NetBSD/i386を選びました。BSD系なら何でも構わないので当初はPC-BSDにしようかと思いましたが、ハードウェア能力が低くて荷が重いようなので断念しました。FreeBSDは自宅の他のマシンで利用しており、折角なので別のOSにしてみようと考え、結局NetBSDにしました。

ウィンドウ環境は、さすがにtwmでは寂しすぎるし、KDEとかGNOMEは重そうなので、ネーミング上からも軽いことを謳っているLXDE(Lightweight X11 Desktop Environment)を使ってみることにします。LXDEはLXQtに移行するらしいとも聞きます。しかしQt5を使ったLXQtをpkgsrc-wipからインストールしようとしたら、Qt5のコンパイルが通らず、簡単には解決できそうにないので、まずLXDEで環境を構築することにしました。いずれはLXQtへの変更も考えてみようと思います。