筆者について
FreeBSDを通じてOSSにささかな貢献を。
- 日本xrdpユーザ会発起人
- xrdp developer
- FreeBSD developer
OSS活動をご支援いただける方を募集しています
2013-06-16 tDiary 3.2.2 にアップデート
■ tDiary 3.2.2 にアップデート
tDiary を 3.2.2 にアップデート& Ruby 2.0 で動かすように変更してみた。
Generated by tDiary version 3.2.2 Powered by Ruby version 2.0.0-p195
lang/ruby20 をインストールして index.rb と update.rb の Shebang行を
#!/usr/bin/env ruby
こう書き換えるだけで OK だった。
#!/usr/bin/env ruby20
2013-06-13 Twitter API v1.0 廃止
■ Twitter API v1.0 廃止に伴う対応 (FreeBSD ports 編)
ご存知の通り、2013年6月11日 Twitter API v1.0 が廃止されました。時差とかあるかもしれないけど細かいことは(゚ε゚)キニシナイ!! 普段自分が FreeBSD 上で使っている Twitter クライアントもこの影響を受けて、読めるけど書けないとか、検索ができないという症状が発生したので対応しました。
まずは mikutter。2013年の初めに既に API 1.1 に対応していたみたいですが、FreeBSD ports に入っているバージョンは長らく 0.2.0.1089 だったので API 1.0 の廃止とともにツイートできなくなっていました。ということで、作業時点で最新の 0.2.2.1264 にアップデートするパッチを書きました。
この PR を上げた当初の理由は、API 1.0 の廃止とは関係なく、Twitter の仕様変更で最初の OAuth に辿り着かずに落ちてしまうというものだったんですが、どっちにしろ最新版にアップデートするのが解決策なのでアップデートしました。
ついでに、Ruby 1.8 ユーザのために残されていた Ruby 1.8 対応の最後のバージョンの mikutter 0.0.3.615 も、API 1.0 の廃止で今後は使えなくなったので、もう DEPRECATED にしていいんじゃないかなーというのも上げました。
次に earthquake。作者の人がリリースするのを忘れてたらしいです。API 1.1 が廃止されてからまもなくリリースされたので、ports の rubygem-earthquake もアップデート。
earthquake.gem リリースするの忘れてた
— Kazuyuki Kohnoさん (@jugyo) 2013年6月12日
earthquake.gem 1.0.0 has been released! please let me know if you have any problem with it 👍
— Kazuyuki Kohnoさん (@jugyo) 2013年6月12日
Gem の依存関係が変わっていて、twitter_oauth の代わりに fork した jugyo-twitter_oauth というのを使うようになったみたいなので、そちらを新しい port として申請してから earthquake をアップデート。
- ports/179533: New port: security/rubygem-jugyo-twitter_oauth, a fork of Twitter OAuth REST API client library for Ruby
- ports/179534: [maintainer update] net-im/rubygem-earthquake: Update to 1.0.0
とりあえず今回作業したのは以上です。
あと把握している範囲で残っているのは net-im/rubygem-termtter。 termtter は FreeBSD のデフォルトの Ruby のバージョンが1.8から1.9に上がった際 Ruby 1.8 でしか動かない port の大掃除が行われて、 Ruby 1.9 でも動くはずの termtter がなぜか BROKEN 扱いされて、危うく消されるところだったのを救出してあげたという経緯があるので今回も助けてあげなければ。
2013-05-28 backport
■ net/tigervnc を xorg-server-1.12.4 に対応させました
FreeBSD の ports tree に収録されている X11 関連の ports に大規模なアップデートがありました。
アップデート内容はリンク先に書いてあるので詳しくは言及しませんが、X サーバが 1.10.6 から 1.12.4 にアップデートされたことでTigerVNC がビルドできなくなっていたため対応しました。
現在 Ports Collection に収録されている TigerVNC のバージョンは1.2.0で、2012年3月にリリースされたものです。TigerVNC 自体は2012年8月に xserver 1.12.4 に既に対応しているので、2012年3月から8月までの間の変更をバックポートして net/tigervnc が再びビルドできるようになりました。
PRはこっち。Category と Class をミスったまま送信してしまった…。コミットされるまでしばらくお待ちください。
2013-05-27 End of Life
■ FreeBSD ports の Ruby のデフォルトバージョンが 1.9 に
2013年6月以降 Ruby 1.8 系の一切のサポートが打ち切られるということで、FreeBSD ports の Ruby のデフォルトバージョンも 1.9系にアップデートされました。
アップデート方法は ports/UPDATING に書いてある通り portmaster, portupgrade, pkg と、使っているツールに合わせて以下のように。事情があって1.8系に留まりたい場合は /etc/make.conf に "DEFAULT_RUBY_VER=1.8" と書いておけば OK ですが、早めに1.9に移行しましょう。
20130527: AFFECTS: users of lang/ruby18 AUTHOR: swills@FreeBSD.org The default ruby version has been updated from 1.8 to 1.9. You'll need to rebuild all ports that depend on ruby: # portmaster -r lang/ruby19 or # portupgrade -fr lang/ruby19 or # pkg set -o lang/ruby18:lang/ruby19 # pkg install -fR lang/ruby19 If you wish to keep the 1.8 version as default, add the following lines to your /etc/make.conf file: # # Keep ruby 1.8 as default version. # RUBY_DEFAULT_VER=1.8
Ruby 1.8系の EOL まで1週間を切ってからようやく Ruby 1.9系がデフォルトになったので、いまさらという感じがするかもしれませんが、実は2年前の2011年8月にいちど 1.9 がデフォルトになっています。
- [HEADS UP] Ruby 1.9 will become the default Ruby version this weekend
- Ruby 1.9 as default version of Ruby
ところが、1.9で動作しない ports が大量にあるなどトラブルが多く、すぐに revert されてしまいました。それから2年弱、慎重を期して作業が続けられたため、今回のアップデートでは平穏無事に1.8から1.9へ移行できるはずです。
2年前に Ruby 1.9 をデフォルトにするというのは結構がんばってる方だったと思うのですが、トラブルを引き起こしてしまったため、ギリギリまで慎重に作業した結果、この時期になってしまったようです(たぶん)。
2013-05-23 税金
■ 平成22年度燃費基準達成車だけどグリーン化税制で 10% の重課自動車税を払った
自動車税を払いました。Yahoo! 公金支払いからクレジットカードで払ったという話にしようと思ったら、ともちゃとネタが被ったので重課自動車税を払った話にします。
一応ネットで払った手続き完了画面の画像も貼っときます。決済手数料が315円で、クレジットカードのポイントが1%、納付額+手数料が38123円で微妙に得してます。
で、この37950円という金額、排気量1.5L以下の34500円の10%増し(100円未満切り捨て)です。初年度登録から17年経過しているとはいえ燃費は平成22年度、3年前のレベルなのに(´・ω・`) 排気ガスは昭和53年、35年前のレベルだけど。
毎日通勤で峠越えしてて15km/Lくらいって結構いい線行ってると思うんだけどなぁ(´・ω・`)
ついでに第1種原動機付き自転車として登録した電動自転車の納付書も届いていたのでこ税金も払ってきました。1000円。
2013-05-14 TigerVNC
■ net/tigervnc に欠けていた x11/xkeyboard-config への依存関係を追加
net/tigervnc を少し修正しました。欠けていたランタイムの依存関係を追加したのが主な変更です。
- x11/xkeyboard-config, x11/xkbcomp への依存関係を追加
- xorg-macros を BUILD_DEPENDS から USE_XORG へ移動
- vncviewer といっしょにデスクトップエントリファイルをインストールするように変更
- ライセンス情報を追加
- 不要なオプションを CONFIGURE_ARGS から除去
以下のように出力されて、Xvnc が起動しませんでした。Xvnc の実行に必要な x11/xkeyboard-config への依存関係が欠けていたためです。
FreeBSD に TigerVNC だけでなく x11/xorg をインストールしている環境であれば x11/xkeyboard-config が既にインストールされているため、問題なく動作していたはずです。xorg をインストールせずに net/tigervnc だけで運用しようとしている環境では全く使い物にならない状況になっていました…。もし引っかかっていた人がいたらすみません。
$ Xvnc :10 (オプション省略) Xvnc TigerVNC 1.2.0 - built May 9 2013 17:35:57 Copyright (C) 1999-2011 TigerVNC Team and many others (see README.txt) See http://www.tigervnc.org for information on TigerVNC. Underlying X server release 11006000, The X.Org Foundation Tue May 14 04:07:47 2013 vncext: VNC extension running! vncext: Listening for VNC connections on all interface(s), port 5910 vncext: created VNC server for screen 0 (EE) XKB: Couldn't open rules file /usr/local/share/X11/xkb/rules/base (EE) XKB: Failed to load keymap. Loading default keymap instead. (EE) XKB: Couldn't open rules file /usr/local/share/X11/xkb/rules/base XKB: Failed to compile keymap Keyboard initialization failed. This could be a missing or incorrect setup of xkeyboard-config. Fatal server error: Failed to activate core devices.
2013-05-09 gptzfsboot
■ ZFS にインストールした FreeBSD 起動時に unsupported ZFS version 5000 (should be 28) といわれる
なんかタイトルのようなことを言われるようになった。一応正常に起動はできる。
これも公式のフォーラムで解決策を見つけた。bootcode をアップデートすればいいらしい。
kernel も world も 9-STABLE にアップデート後、bootcode のインストール前に一応パーティション構成を確認しておく。
$ gpart show => 34 3907029101 ada0 GPT (1.8T) 34 6 - free - (3.0k) 40 128 1 freebsd-boot (64k) 168 16777216 2 freebsd-swap (8.0G) 16777384 3890251744 3 freebsd-zfs (1.8T) 3907029128 7 - free - (3.5k)
/boot に新しい bootcode があることを確認、インストール先が ada0p1 なので以下のように。
# gpart bootcode -b /boot/pmbr -p /boot/gptzfsboot -i 1 ada0
これでリブートしたら出なくなった!
■ UNIXにおけるパスの先頭から2つ以上連続するスラッシュの取り扱い
こういうツイートがきっかけでちょっと確かめてみました。
結局 cd // って / の下ってことなのかなぁ
— 八坂 おわたんさん (@owata_coward) 2013年5月8日
bash で / からスラッシュをひとつずつ増やして cd してみたときの結果です。
$ cd / && pwd / $ cd // && pwd // $ cd /// && pwd / $ cd //// && pwd /
スラッシュが2つのときだけ // になってる。tcsh や zsh ではこうならずに、すべて / になります。
bash のソースコードを見てみると bash-4.2/lib/sh/pathphys.c にこんなコメントがありました。
/* POSIX.2 says to leave a leading `//' alone. On cygwin, we skip over any leading `x:' (dos drive name). */
先頭のスラッシュ2つ '//' はそのままにしろと POSIX で規定されているらしいです。
このあたりの POSIX のドキュメント探してみると 4.11 Pathname Resolution あたりが該当しそう。そして、それらしい文章がありました。
A pathname that begins with two successive slashes may be interpreted in an implementation-defined manner, although more than two leading slashes shall be treated as a single slash.
連続する2つのスラッシュで始まるパス名は実装が決めたやり方で解釈してよい(MAY)が、先頭から2つより多くのスラッシュが連続する場合は、1つのスラッシュとして扱うこと(SHALL)。
とのことです。また 3.266 Pathname のパス名の定義にはこう書かれていました。
Multiple successive slashes are considered to be the same as one slash.
複数の連続するスラッシュはひとつのスラッシュと同じとみなす。
こっちは先頭から連続するとは限らない場合です。
というわけでざっと POSIX の文章を参照した結果、探し方が足りないのかもしれませんが bash のコメントに書いてある「先頭から2つだけ連続するスラッシュをそのままにする」という根拠は見つけられませんでした。
- 2つ以上連続するスラッシュの意味は / と同じ
- 3つ以上連続するスラッシュは1つのスラッシュとして扱う
- 先頭から2つだけ連続するスラッシュの扱いは実装依存(ただし意味は / と同じ)
- 少なくとも bash は先頭から2つだけ連続するスラッシュをそのままにする
Σ meta [Ajaxでコメントできるプラグインを有効にしてみたのでテスト。]