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

2019年7月16日火曜日

dia で図に日本語を入力出来ない?(ubuntu 18.04LTS)

Ubuntu 18.04 LTSに入れた dia で日本語が入力出来ないときは、 dia --classic というオプションをつけて起動すると、入力出来るようになるかも、という話。

Ubuntu 18.04 LTS を使っていて、dia で日本語を入力しようとしても出来ない、という相談を受けました。検索してみると、dia-normal を使うといい、とか、オプションに -integrated をつけるといい、とかいろいろ出てくるのですが、/usr/bin の下には dia しかないしなあ…… と思ったら、どうも最近(2017年以降)は無いようですね。理由はこれ。

https://metadata.ftp-master.debian.org/changelogs//main/d/dia/dia_0.97.3+git20160930-8.1_changelog
というわけで、 当面はこれでしのぎつつ、なんで classic じゃないのは日本語通らないんだろう、というのを追求したいところですが誰か代わりにやってほしい……

2019年5月13日月曜日

e2ps の修正パッチを一段落させた

 Linux などで日本語テキストファイルをPostScript形式に変換するソフトウェアの一つに e2ps があるのですが、いろいろバグが多くて困っており、一昨年くらいからちまちまと直したりしていました。
http://taraijpn.blogspot.com/2017/06/e2pspatch.html

 とりあえず Debian BTS で公開されているバグを直すところまで出来たので改めて紹介します。修正点は以下の通り。
  • フォントリストの文字型配列がコンパイル不能な書き方だった点を修正。
    • 各ディストリビューションで対応されています。
  • 用紙サイズのポイント数を PostScript の仕様で使われている数に合わせて修正。
    • 一部ディストリビューションで対応されています。
  • 生成される PostScript が EPS だった問題などを修正。
    • これでようやく fixps に怒られずに済みます。
  • 出力したページ数が誤っていた問題を修正。
    • ja_JP.EUC-JP 環境以外で動いているときに起こる問題でした。
  • ヌル文字から始まるテキストファイルが与えられるとクラッシュする問題を修正。
    • これは  https://bugs.debian.org/715852 で報告されていたものです。ヌル文字しかない、もしくはヌル文字から始まる(という意地の悪い)テキストファイルを印刷しようとすると起こる問題です。
  • 複数のファイルをまとめて変換すると、他のファイルの印刷末尾に余計な文字列が含まれる問題を修正。malloc を全て calloc に書き換えた。
    • e2ps README.euc README.english などとして出来たファイルを見たとき気づきました。環境依存?
  • Letterサイズで2面付け(-p2, -l2)を行うと用紙をオーバーする問題を修正。
    • 用紙のアスペクト比を維持するか、アスペクト比を歪めて紙面を広く使うか、どちらか悩んだ結果、前者を取りました。本来であればマージンを調整すべきところなのですが、それは全ての用紙サイズで考えないといけないことなので棚上げ。
  • PostScript の作者 ( %%Creator: ) は e2ps であるものとした。
    • CREATOR は help で使ってたので手を入れました。

 以上の内容を、patch1 として公開しました。(2019/5/14 patch1タグを打ってあります。
https://gist.githubusercontent.com/taraijpn/ea10ff9e908befafab7cff719f26dd20/raw/9a4a6fd502958a0e87db364174cbc331d07055be/e2ps-4.34.patch


 実はもう少しやらないといけないことがあって、
  • 変数の型を整理する。
    • unsigned char を使わないようにする。そもそも string.h で読んでいる関数と合わず warning が出ます。
    • unsigned char や signed char といった型は使わないようにして、コンパイラの警告をなくす。
  • 読み込めるファイルサイズを制限する。(2GB程度の予定)
    • unsigned long を size_t に直したらえらいことになったので。
 機械的な置き換えで問題ないかと思ったのですが、そんなに甘くなかった。sjisの変換に失敗する、とか、READMEにある他アーキテクチャ対応に悪影響が及びそうな気がするので、ちょっと止めてあります。とりあえず patch1 の上流での採用を目指したいところ。

 なお上流への連絡は、WebページにあるCGIで掲示板への書き込みやメールの送信を試みましたがいずれもエラーで動かず、2015年に公開されていたWindowsのプログラムにあるreadmeにメールアドレスが掲載されていたので、そこに送っています。果たして無事届いていますでしょうか……

2018年5月26日土曜日

Ubuntu 18.04 もしくは Debian 9 で qucs(0.0.18) の digital simulation

qucs ( http://qucs.sourceforge.net/ ) は Ubuntu/Debian系のパッケージが
Ubuntu 14.10 時代で止まっている、という問題があります。

そのため、このバイナリパッケージを dpkg -i で今の Ubuntu 18.04 LTS や Debian 9 にむりやりインストールすると、digital simulation の Model( netlist format ) が VHDL のとき、シミュレーションに失敗します。


例えばこんな回路のシミュレーションをしてみると……Segmentation Failtとか……



これは、依存関係ありとして導入される freehdl (0.0.8-2.2) の freehdl-v2cc が正常に動作しないためです。そのため、これを呼んでいる qucsdigi も巻き添えとなっています。

簡単な対策は、apt install iverilog でverilog を導入し、ModelをVerilogとしてシミュレーションすることです。




VHDLの資産がない、簡単なモデルであれば、これでシミュレーションは出来るようになります。

もし Debian 8 や Ubuntu 14.04 LTS などで、qucs の digital simulation を VHDL ベースで使っている場合は、OSのメジャーバージョンアップに注意が必要です。qucs が正しく動作しなくなります。

で、対策なのですが、Debian 9の場合は以下の手順で VHDL の digital simulation は動くようになりました。

1. freehdl のバージョンを  freehdl (0.0.8-2.1) に下げてholdする。(-libも)
2. g++-4.9を入れる。
3. /usr/lib/pkgconfig/freehdl.pc を編集し、CXXコンパイラが g++ になっているところを g++-4.9 にする。
4. /usr/bin/qucsdigi を編集し、glibtool のとき --tag=CC をつける、という条件を、 libtool のとき、となるように書き換える。

とても つらい。誰かパッケージ作り直してもらえませんかね…ダメですかね…

ちなみに qucs からスピンアウトして spice ベースに移行した qucs-s
https://ra3xdh.github.io/
というものがあり、現在のバージョンは 0.0.20 なのですが、アナログ系のシミュレーションがメインのようで、論理回路のみのシミュレーションには向いてなさそうです。

論理回路の場合は、おそらくもっと別のソフトウェアを使うべきなのかも知れません。

本家のバージョンは 0.0.19 なのですが、追従できているのはWindowsとMacのみで、Linux については前述の通りUbuntuのパッケージングが0.0.18で止まっているわ、debian のほうはパッケージが削除されているわで惨憺たる状況です。需要無いんでしょうか…

2018年5月12日土曜日

WSL の Debian 9 で初期ユーザのパスワードを忘れたら

WSL の Debian 9 では、管理者権限で開いたコンソールから debian.exe を実行し、ログインユーザーを root に変更することが出来ます。Ubuntu の場合は ubuntu.exe で、他のディストリビューションの場合も似たようなネーミングの命令が入っていると思います。

PS C:\WINDOWS\system32> debian help
Launches or configures a linux distribution.

Usage:
    
      - Launches the distro's default behavior. By default, this launches your default shell.

    run 
      - Run the given command line in that distro, using the default configuration.
      - Everything after `run ` is passed to the linux LaunchProcess call.

    config [setting [value]]
      - Configure certain settings for this distro.
      - Settings are any of the following (by default)
        - `--default-user `: Set the default user for this distro to 

    clean
      - Uninstalls the distro. The appx remains on your machine. This can be
        useful for "factory resetting" your instance. This removes the linux
        filesystem from the disk, but not the app from your PC, so you don't
        need to redownload the entire tar.gz again.

    help
      - Print this usage message.
PS C:\WINDOWS\system32> debian config --default-user root
Default UNIX user set to: root

初期ユーザのパスワードを忘れてしまったので、実際に作業してみました。
  1. 管理者として PowerShellかcmdウインドウを開く。
  2. PS> debian config --default-user root でログインユーザを root にする
  3. WSL Debian を開くとログインユーザが root になっているはず。
  4. # passwd firstuser などとしてパスワードを変更する。
  5. WSL Debian を閉じておく。
  6. PS> debian config --default-user firstuser などとしてログインユーザを初期ユーザにする。
  7. WSL Debianを開くとログインユーザが 初期ユーザになっているはず。 sudo su などしてパスワードが新しいものになっているか確認する。
実機の場合はgrubの起動に割り込んでinit=/bin/sh とか追加書きして云々、とかやるパターンですが、これはありがたいですね。

参考記事はこちら。
https://askubuntu.com/questions/772050/reset-the-password-in-linux-bash-in-windows

2018年5月3日木曜日

WSL の Debian 9 をインストールするとこうなる

Windows 10 の Windows Subsystem for Linux では様々なディストリビューションを導入出来るわけですが、その中でも最近加わった Debian 9.x を導入し、即 apt update ; apt upgrade すると 163 パッケージ(後述)でしょうか。小さいですね。
まあこれではなかなか辛いものがありますので、もう少し足していきたい。

# apt install lsb build-essential task-japanese

あたりでしょうか。しかし task-japanese を入れてもlocaleがご覧のありさまでは…

# locale -a
C
C.UTF-8
POSIX
en_US.utf8

これでは update-locale してもダメですね。そもそも無いので。作りましょう。

# grep ja_JP.UTF-8 /etc/locale.gen
# ja_JP.UTF-8 UTF-8  (←コメントアウトされている)
# vi /etc/locale.gen (←頑張ってviで編集してください)
# grep ja_JP.UTF-8 /etc/locale.gen
ja_JP.UTF-8 UTF-8    (←コメントアウトを解除した)
# locale-gen
Generating locales (this might take a while)...
  en_US.UTF-8... done
  ja_JP.UTF-8... done
Generation complete.
# locale -a
C
C.UTF-8
POSIX
en_US.utf8
ja_JP.utf8 (←増えてる)
#

あとはroot で update-locale LANG=ja_JP.UTF-8 なり シェルの設定に書くなりお好みで。
ターミナルが Windows Console ですので、好き嫌いが出るかも知れません。wsltty の導入をご検討下さい。ウィルスバスタークラウドを使っている人はこちらの情報も重要です。よくある。
・wsltty が起動しない(すぐ落ちる)件
 https://yami-beta.hateblo.jp/entry/2016/10/30/175923

Debian を入れた直後のパッケージリストはこちら。
$ apt list --installed
Listing...
adduser/stable,now 3.115 all [installed]
apt/stable,now 1.4.8 amd64 [installed]
apt-utils/stable,now 1.4.8 amd64 [installed]
base-files/stable,now 9.9+deb9u4 amd64 [installed]
base-passwd/stable,now 3.5.43 amd64 [installed]
bash/stable,now 4.4-5 amd64 [installed]
bsdmainutils/stable,now 9.0.12+nmu1 amd64 [installed]
bsdutils/stable,now 1:2.29.2-1+deb9u1 amd64 [installed]
coreutils/stable,now 8.26-3 amd64 [installed]
cpio/stable,now 2.11+dfsg-6 amd64 [installed]
cron/stable,now 3.0pl1-128+deb9u1 amd64 [installed,automatic]
dash/stable,now 0.5.8-2.4 amd64 [installed]
debconf/stable,now 1.5.61 all [installed]
debconf-i18n/stable,now 1.5.61 all [installed]
debian-archive-keyring/stable,now 2017.5 all [installed]
debianutils/stable,now 4.8.1.1 amd64 [installed]
diffutils/stable,now 1:3.5-3 amd64 [installed]
dmidecode/stable,now 3.0-4 amd64 [installed]
dmsetup/stable,now 2:1.02.137-2 amd64 [installed,automatic]
dpkg/stable,now 1.18.24 amd64 [installed]
e2fslibs/stable,now 1.43.4-2 amd64 [installed]
e2fsprogs/stable,now 1.43.4-2 amd64 [installed]
findutils/stable,now 4.6.0+git+20161106-2 amd64 [installed]
gcc-6-base/stable,stable,now 6.3.0-18+deb9u1 amd64 [installed]
gnupg/stable,now 2.1.18-8~deb9u1 amd64 [installed]
gnupg-agent/stable,now 2.1.18-8~deb9u1 amd64 [installed,automatic]
gpgv/stable,now 2.1.18-8~deb9u1 amd64 [installed]
grep/stable,now 2.27-2 amd64 [installed]
gzip/stable,now 1.6-5+b1 amd64 [installed]
hostname/stable,now 3.18+b1 amd64 [installed]
ifupdown/stable,now 0.8.19 amd64 [installed]
init/stable,now 1.48 amd64 [installed]
init-system-helpers/stable,now 1.48 all [installed]
iproute2/stable,now 4.9.0-1+deb9u1 amd64 [installed,automatic]
iptables/stable,now 1.6.0+snapshot20161117-6 amd64 [installed]
iputils-ping/stable,now 3:20161105-1 amd64 [installed]
isc-dhcp-client/stable,now 4.3.5-3+deb9u1 amd64 [installed]
isc-dhcp-common/stable,now 4.3.5-3+deb9u1 amd64 [installed]
kmod/stable,now 23-2 amd64 [installed]
libacl1/stable,now 2.2.52-3+b1 amd64 [installed]
libapparmor1/stable,now 2.11.0-3+deb9u2 amd64 [installed,automatic]
libapt-inst2.0/stable,now 1.4.8 amd64 [installed,automatic]
libapt-pkg5.0/stable,now 1.4.8 amd64 [installed]
libassuan0/stable,now 2.4.3-2 amd64 [installed,automatic]
libattr1/stable,now 1:2.4.47-2+b2 amd64 [installed]
libaudit-common/stable,now 1:2.6.7-2 all [installed]
libaudit1/stable,now 1:2.6.7-2 amd64 [installed]
libblkid1/stable,now 2.29.2-1+deb9u1 amd64 [installed]
libbsd0/stable,now 0.8.3-1 amd64 [installed,automatic]
libbz2-1.0/stable,now 1.0.6-8.1 amd64 [installed]
libc-bin/stable,now 2.24-11+deb9u3 amd64 [installed]
libc-l10n/stable,now 2.24-11+deb9u3 all [installed,automatic]
libc6/stable,now 2.24-11+deb9u3 amd64 [installed]
libcap-ng0/stable,now 0.7.7-3+b1 amd64 [installed]
libcap2/stable,now 1:2.25-1 amd64 [installed,automatic]
libcomerr2/stable,now 1.43.4-2 amd64 [installed]
libcryptsetup4/stable,now 2:1.7.3-4 amd64 [installed,automatic]
libdb5.3/stable,now 5.3.28-12+deb9u1 amd64 [installed]
libdebconfclient0/stable,now 0.227 amd64 [installed]
libdevmapper1.02.1/stable,now 2:1.02.137-2 amd64 [installed,automatic]
libdns-export162/stable,stable,now 1:9.10.3.dfsg.P4-12.3+deb9u4 amd64 [installed,automatic]
libelf1/stable,now 0.168-1 amd64 [installed,automatic]
libestr0/stable,now 0.1.10-2 amd64 [installed,automatic]
libfastjson4/stable,now 0.99.4-1 amd64 [installed,automatic]
libfdisk1/stable,now 2.29.2-1+deb9u1 amd64 [installed]
libffi6/stable,now 3.2.1-6 amd64 [installed,automatic]
libgcc1/stable,stable,now 1:6.3.0-18+deb9u1 amd64 [installed]
libgcrypt20/stable,stable,now 1.7.6-2+deb9u2 amd64 [installed]
libgdbm3/stable,now 1.8.3-14 amd64 [installed]
libgmp10/stable,now 2:6.1.2+dfsg-1 amd64 [installed,automatic]
libgnutls30/stable,now 3.5.8-5+deb9u3 amd64 [installed,automatic]
libgpg-error0/stable,now 1.26-2 amd64 [installed]
libhogweed4/stable,now 3.3-1+b2 amd64 [installed,automatic]
libidn11/stable,now 1.33-1 amd64 [installed,automatic]
libidn2-0/stable,stable,now 0.16-1+deb9u1 amd64 [installed,automatic]
libip4tc0/stable,now 1.6.0+snapshot20161117-6 amd64 [installed,automatic]
libip6tc0/stable,now 1.6.0+snapshot20161117-6 amd64 [installed,automatic]
libiptc0/stable,now 1.6.0+snapshot20161117-6 amd64 [installed,automatic]
libisc-export160/stable,stable,now 1:9.10.3.dfsg.P4-12.3+deb9u4 amd64 [installed,automatic]
libkmod2/stable,now 23-2 amd64 [installed,automatic]
libksba8/stable,now 1.3.5-2 amd64 [installed,automatic]
liblocale-gettext-perl/stable,now 1.07-3+b1 amd64 [installed,automatic]
liblogging-stdlog0/stable,now 1.0.5-2+b2 amd64 [installed,automatic]
liblognorm5/stable,now 2.0.1-1.1+b1 amd64 [installed,automatic]
liblz4-1/stable,now 0.0~r131-2+b1 amd64 [installed]
liblzma5/stable,now 5.2.2-1.2+b1 amd64 [installed]
libmnl0/stable,now 1.0.4-2 amd64 [installed,automatic]
libmount1/stable,now 2.29.2-1+deb9u1 amd64 [installed]
libncurses5/stable,now 6.0+20161126-1+deb9u2 amd64 [installed,automatic]
libncursesw5/stable,now 6.0+20161126-1+deb9u2 amd64 [installed]
libnetfilter-conntrack3/stable,now 1.0.6-2 amd64 [installed,automatic]
libnettle6/stable,now 3.3-1+b2 amd64 [installed,automatic]
libnewt0.52/stable,now 0.52.19-1+b1 amd64 [installed,automatic]
libnfnetlink0/stable,now 1.0.1-3 amd64 [installed,automatic]
libnpth0/stable,now 1.3-1 amd64 [installed,automatic]
libp11-kit0/stable,now 0.23.3-2 amd64 [installed,automatic]
libpam-modules/stable,now 1.1.8-3.6 amd64 [installed]
libpam-modules-bin/stable,now 1.1.8-3.6 amd64 [installed]
libpam-runtime/stable,now 1.1.8-3.6 all [installed]
libpam0g/stable,now 1.1.8-3.6 amd64 [installed]
libpcre3/stable,now 2:8.39-3 amd64 [installed]
libpipeline1/stable,now 1.4.1-2 amd64 [installed]
libpopt0/stable,now 1.16-10+b2 amd64 [installed,automatic]
libprocps6/stable,now 2:3.3.12-3 amd64 [installed,automatic]
libpsl5/stable,now 0.17.0-3 amd64 [installed,automatic]
libreadline7/stable,now 7.0-3 amd64 [installed,automatic]
libseccomp2/stable,now 2.3.1-2.1 amd64 [installed,automatic]
libselinux1/stable,now 2.6-3+b3 amd64 [installed]
libsemanage-common/stable,now 2.6-2 all [installed]
libsemanage1/stable,now 2.6-2 amd64 [installed]
libsepol1/stable,now 2.6-2 amd64 [installed]
libslang2/stable,now 2.3.1-5 amd64 [installed,automatic]
libsmartcols1/stable,now 2.29.2-1+deb9u1 amd64 [installed]
libsqlite3-0/stable,now 3.16.2-5+deb9u1 amd64 [installed,automatic]
libss2/stable,now 1.43.4-2 amd64 [installed]
libssl1.0.2/stable,now 1.0.2l-2+deb9u3 amd64 [installed]
libssl1.1/stable,now 1.1.0f-3+deb9u2 amd64 [installed]
libstdc++6/stable,stable,now 6.3.0-18+deb9u1 amd64 [installed]
libsystemd0/stable-updates,now 232-25+deb9u3 amd64 [installed]
libtasn1-6/stable,stable,now 4.10-1.1+deb9u1 amd64 [installed,automatic]
libtext-charwidth-perl/stable,now 0.04-7+b5 amd64 [installed,automatic]
libtext-iconv-perl/stable,now 1.7-5+b4 amd64 [installed,automatic]
libtext-wrapi18n-perl/stable,now 0.06-7.1 all [installed,automatic]
libtinfo5/stable,now 6.0+20161126-1+deb9u2 amd64 [installed]
libudev1/stable-updates,now 232-25+deb9u3 amd64 [installed]
libunistring0/stable,now 0.9.6+really0.9.3-0.1 amd64 [installed,automatic]
libustr-1.0-1/stable,now 1.0.4-6 amd64 [installed]
libuuid1/stable,now 2.29.2-1+deb9u1 amd64 [installed]
libxapian30/stable,now 1.4.3-2 amd64 [installed]
libxtables12/stable,now 1.6.0+snapshot20161117-6 amd64 [installed,automatic]
locales/stable,now 2.24-11+deb9u3 all [installed]
login/stable,now 1:4.4-4.1 amd64 [installed]
logrotate/stable,now 3.11.0-0.1 amd64 [installed]
lsb-base/stable,now 9.20161125 all [installed,automatic]
mawk/stable,now 1.3.3-17+b3 amd64 [installed]
mount/stable,now 2.29.2-1+deb9u1 amd64 [installed]
multiarch-support/stable,now 2.24-11+deb9u3 amd64 [installed]
nano/stable,now 2.7.4-1 amd64 [installed]
ncurses-base/stable,now 6.0+20161126-1+deb9u2 all [installed]
ncurses-bin/stable,now 6.0+20161126-1+deb9u2 amd64 [installed]
netbase/stable,now 5.4 all [installed]
passwd/stable,now 1:4.4-4.1 amd64 [installed]
perl-base/stable,now 5.24.1-3+deb9u3 amd64 [installed]
pinentry-curses/stable,now 1.0.0-2 amd64 [installed,automatic]
procps/stable,now 2:3.3.12-3 amd64 [installed,automatic]
readline-common/stable,now 7.0-3 all [installed,automatic]
rsyslog/stable,now 8.24.0-1 amd64 [installed]
sed/stable,now 4.4-1 amd64 [installed]
sensible-utils/stable,stable,now 0.0.9+deb9u1 all [installed]
sudo/stable,now 1.8.19p1-2.1 amd64 [installed]
systemd/stable-updates,now 232-25+deb9u3 amd64 [installed,automatic]
systemd-sysv/stable-updates,now 232-25+deb9u3 amd64 [installed,automatic]
sysvinit-utils/stable,now 2.88dsf-59.9 amd64 [installed]
tar/stable,now 1.29b-1.1 amd64 [installed]
tzdata/stable-updates,now 2018d-0+deb9u1 all [installed]
udev/stable-updates,now 232-25+deb9u3 amd64 [installed]
util-linux/stable,now 2.29.2-1+deb9u1 amd64 [installed]
vim-common/stable,now 2:8.0.0197-4+deb9u1 all [installed,automatic]
vim-tiny/stable,now 2:8.0.0197-4+deb9u1 amd64 [installed]
wget/stable,stable,now 1.18-5+deb9u1 amd64 [installed]
whiptail/stable,now 0.52.19-1+b1 amd64 [installed]
xxd/stable,now 2:8.0.0197-4+deb9u1 amd64 [installed,automatic]
zlib1g/stable,now 1:1.2.8.dfsg-5 amd64 [installed]
$ wc aptlist-init.txt
164  653 9155 aptlist-init.txt

2017年6月5日月曜日

e2psのpatchを作ってみた

日本語を含むテキストファイルを PostScript形式に変換するプログラムの一つに、 e2ps があります。LinuxのディストリビューションやFreeBSDなどにもパッケージがあったりしますね。

オリジナル: http://wtpage.info/wtseries/unix.html#e2ps
Debian: https://packages.debian.org/ja/stretch/e2ps
FreeBSD: http://www.freshports.org/japanese/e2ps/

で、色々あってこれを使ってみたのですが、どうにも動きがおかしい。
というわけで patch を作ってみたわけです。
https://gist.github.com/taraijpn/ea10ff9e908befafab7cff719f26dd20

どれくらい需要があるのか分かりませんが、とりあえず公開しておきます。

何がおかしかったかは以下の通り。

1)出力ページ枚数のカウントがおかしい。
2ページ以上になっても「One page was outputed」になる。1ページのときは「 1 pages were outputed.」って何故に複数形??

2)複数ページを出力するPostScriptなのに、何故かEPSだと言い張る。
おかげで psset に出来上がったファイルを渡すと、(pssetが内部で呼んでいる) fixpsから「fixps: DSC broken.  gs will be asked a full rewrite of the file.」と言われ、正しいPostScriptと認識されず、きちんと動かない。

3)内部で持っている用紙のサイズ(ポイント数)がおかしい。
なんでこんな数値にしたんだろう。複数面付けするときの計算の事情?

4)オリジナルのソースコードで何故かコンパイルが通らない(うちでだけ?)
ps-font.c に、gsFonts という静的配列の宣言があるのですが、さすがにこれはコンパイル通らないんじゃあ……でもFreeBSD portsmonでは何故かビルド出来てる……何故だ……
http://portsmon.freebsd.org/portoverview.py?category=japanese&portname=e2ps
※FreeBSDの ports では、ps-font.c の内容を修正するための sed コマンドが Makefile 側に書かれていました。どおりで files/ の中を見ても分からないわけだよ!
buildしたログで気づきました orz

===>  Patching for ja-e2ps-4.34
===>  Applying FreeBSD patches for ja-e2ps-4.34
/usr/bin/sed -i.bak -e '/Times-Roman$/,/^Gothic-Medium.Katakana$/{s,$,\\,;}' /usr/ports/japanese/e2ps/work/e2ps-4.34/ps-font.c


続き:https://taraijpn.blogspot.com/2019/05/e2ps.html

2014年9月23日火曜日

uim-mozcをパッケージに触らず無効化する方法

システムワイドに uim-mozc が入っていて、uim-anthy を入れるからmozcは無効化したい、でもパッケージは削除したくない…… そんなシチュエーションに遭遇する人はあまりいないと思いますが、そんなときは uim から mozc を無効化しましょう。 システム全体に影響する変更方法はこちら。


# uim-module-manager --unregister mozc --path /var/lib/uim
で、このコマンドを探し当てるためにまた遠回りしたので、その経緯を書いておきます。

まず、uim の仕組みが分かっていなかったので、とりあえずなにかファイルを消せばいいと思った(強引)のですが

% dpkg -L uim-mozc
/.
/usr
/usr/lib
/usr/lib/x86_64-linux-gnu
/usr/lib/x86_64-linux-gnu/uim
/usr/lib/x86_64-linux-gnu/uim/plugin
/usr/lib/x86_64-linux-gnu/uim/plugin/libuim-mozc.so
/usr/share
/usr/share/uim
/usr/share/uim/pixmaps
/usr/share/uim/mozc.scm
/usr/share/uim/mozc-custom.scm
/usr/share/uim/mozc-key-custom.scm
/usr/share/doc
/usr/share/doc/uim-mozc
/usr/share/doc/uim-mozc/README.Debian
/usr/share/doc/uim-mozc/copyright
/usr/share/doc/uim-mozc/changelog.Debian.gz
/usr/share/lintian
/usr/share/lintian/overrides
/usr/share/lintian/overrides/uim-mozc
/usr/share/uim/pixmaps/mozc_tool_dictionary_tool.png
/usr/share/uim/pixmaps/mozc.png
/usr/share/uim/pixmaps/mozc_tool_selector.png
/usr/share/uim/pixmaps/mozc_tool_config_dialog.png

当然、なにを消して良いかこれだけで理解するのは無理というもの。

そういえばdebian にはパッケージのコントロールファイルがあるじゃないか。それを見よう、と思い立つわけです。

% dpkg -e uim-mozc_1.5.1090.102-4+deb7u1_amd64.deb ~/tmp-uimcontrol
% cd ~/tmp-uimcontrol
% ls -la
total 44
drwxr-xr-x   2 tarai staff  4096 Jun  7  2013 .
drwx------ 140 tarai staff 20480 Sep 23 17:49 ..
-rw-r--r--   1 tarai staff  1010 Jun  7  2013 control
-rw-r--r--   1 tarai staff   560 Jun  7  2013 md5sums
-rwxr-xr-x   1 tarai staff  1504 Jun  7  2013 postinst
-rwxr-xr-x   1 tarai staff   132 Jun  7  2013 postrm
-rwxr-xr-x   1 tarai staff   985 Jun  7  2013 prerm
-rw-r--r--   1 tarai staff    21 Jun  7  2013 shlibs
% lv postinst
(中略)
    configure)
        if which uim-module-manager >/dev/null 2>&1; then
                uim-module-manager --register mozc --path /var/lib/uim
        fi
    ;;
(以下略)
% lv prerm
(中略)
    remove|deconfigure)
        if which uim-module-manager >/dev/null 2>&1; then
                uim-module-manager --unregister mozc --path /etc/uim
        fi
        ;;
(以下略)

postinst や prerm の詳細は http://www.debian.or.jp/community/devel/debian-policy-ja/policy.ja.html/ch-maintainerscripts.html が詳しいです。

つまりこの uim-module-manager というコマンドが重要なんですね、というところにたどりつき、 冒頭のような操作で大丈夫だろう、という結論に到達した次第です。
(何故postinstとprermで pathの引数が違うんだろう……)

2013年10月19日土曜日

hosts.allow に気をつけよう

/etc/hosts.allow

ALL : localhost 127.0.0.1 : allow

を書いておかないと nis クライアントが正しく動作しなかったりするので気をつけましょう、という話。

自分が設定した後に管理を他人に任せていたLinux機 ( debian ) がありました。管理者がいなくなって放置されていたため、回収してOSを更新していたのですが、何故かNISサーバに接続出来ないのです。

# /etc/init.d/nis restart
[....] Stopping NIS services: ypbindstart-stop-daemon: warning: failed to kill 4164: No such process
[ ok rv ypppasswdd ypxfrd.
[....] Starting NIS services: ypbind[....] binding to YP server.................[FAIL.....................failed (backgrounded).
. ok
ypbind で何かが起こっているらしく、起動しない、じゃなくて、NISサーバに接続出来ない。ypbind をデバッグモードで起動してみます。

# ypbind -debug
4447: parsing config file
4447: Trying entry: ypserver 192.168.1.111
4447: parsed ypserver 192.168.1.111
4447: add_server() domain: lo_nis_domain, host: 192.168.1.111, slot: 0
4447: [Welcome to ypbind-mt, version 1.20.1]

4447: ping interval is 20 seconds

4449: NetworkManager is running.

4449: Are offline
4449: interface: org.freedesktop.DBus, object path: /org/freedesktop/DBus, method: NameAcquired
サービスを登録できません: RPC: 認証エラーです; why = クライアントの信任が弱すぎます
4447: Unable to register (YPBINDPROG, YPBINDVERS, udp).

何故だー? と思ってエラーメッセージを元に検索してみたら…
tcpwrapperを設定しているのが原因。
きりんメモ@GIFU( http://giraffeforestg.blog.fc2.com/blog-entry-44.html )

あれ?と思って /etc/hosts.allow を見ると

ALL: 192.168.1. :allow
ALL: deny

確かにlocalhostの記述がない…セグメント丸ごとALLにして満足していたのか、昔の自分。
ALL: localhost 127.0.0.1 : allow
ALL: 192.168.1. :allow
ALL: deny

と修正して nis を再起動してみると、

# service nis restart
[....] Stopping NIS services: ypbindstart-stop-daemon: warning: failed to kill 4447: No such process
[ ok rv ypppasswdd ypxfrd.
[ ok ] Starting NIS services: ypbind.

あっさり解決。(IPv6の人は[::1]も書いた方がいいのかも?)

/etc/hosts.allow は portmap, rpcbindが参照しているので nis や nfs といったrpc絡みのサービスに影響するのに、油断していたなあ、という話でした。

2011年2月13日日曜日

Debian/kFreeBSDのメモ

先日 Debian/kFreeBSD が正式リリースされましたね。まだ試せてないんですが、ちょっと読んだりしてるところをメモしておこうと思います。

http://wiki.debian.org/Debian_GNU/kFreeBSD_FAQ
FAQですね。翻訳は無いです。FAQの中で面白いなあと思ったのはこれ。
Q. What version of kFreeBSD is supported?
A. The squeeze release is based on the 8.1 kernel, see for details.
If you are interested, you can take a look at the patches Debian applied to the kernel.
http://svn.debian.org/wsvn/glibc-bsd/trunk/kfreebsd-8/debian/patches/999_config.diff
 あれ、NIC の fxp とか bce は無いの?とか、

http://svn.debian.org/wsvn/glibc-bsd/trunk/kfreebsd-8/debian/patches/903_disable_non-free_drivers.diff
 なるほど、Highpoint RocketRAID ( hptrr, hptmv ) とか NVIDIA nForce MCP Networking Adapter ( nve ) はnon-freeなのか。知らなかった…とか。

ちゃんとインストールした後にどうなってるか見ておきたいですね。

2009年12月24日木曜日

Intel DP55WB + Intel Core i7-860 で debian/ubuntu (予定)

卒論・修論用の計算用PCとして、流行りの Core i7機を入れました。下調べはしていたのですが、blogには書いてなかったなと思って書き起こしておきます。

気になったのはネットワーク周り。

マザーボード:Intel DP55WB
http://www.intel.com/cd/channel/reseller/ijkk/jpn/430580.htm
NICは 82578DC
http://www.jp.kernel.org/pub/linux/kernel/v2.6/ChangeLog-2.6.31
というわけでカーネルのバージョンが新しくないと対応しない模様です。

Debianの場合、
lennyは2.6.26ということで無理そう。
squeeze/lenny-backports でも 2.6.30ということで惜しい。
sidは早くも 2.6.32 みたいなので、現時点ではsidということになるのでしょうか。
ちょっとハードル高いかな……

一方、Ubuntuのほうは、Karmic (9.10) から対応できそうに見えます。不具合が出るという記事も見かけるんですが、このPCではデスクトップ環境は起動しないはずなのでX周りのトラブルは踏まない…はず?

というわけで今期の計算機には ubuntu 9.10 + server CD で最小インストールを試みるということで。

2009年3月11日水曜日

unixbench 4.1.0 で Shell Scripts の結果がおかしくなる

Core i7搭載のPC ( パソコン工房 WS7000L ) が届いたので、計算用に Debian(lenny) の amd64 版をインストールしてみました。もともとUbuntuの動作確認がとれているものなのですが、流石最新版、あっけなくインストール終了、問題なく稼働中。

ところが、ちょっと計算速度でも見てみようかと思い unixbench をコンパイルして実行させたところ、Shell Scripts の結果がおかしい。infなどという値になります。(このへんちょっとうろ覚え。)

調べてみると、どうも pgms/tst.sh のシェルスクリプトで sort +1 という古いオプションを利用しているせいらしく。logを見ると +1 : No such file or directory ってそりゃそうですねえ。ここは sort -k 2 にしておくのがよさそう。

というわけで修正をしてみました。
ついでに、すぐ make & Run できるよう Makefile のデフォルトを調整して。
あと Run の環境変数は C にしておくと、もしかしたら想定の動きなのかなー?と思ったので足してみた次第。LANG=C ./Run が正しいのかもしれません。

あとはコンパイラが警告を出しているのがちょっと気になるんだけど、まあとりあえずってことで。


diff -urN unixbench-4.1.0.orig/Makefile unixbench-4.1.0/Makefile
--- unixbench-4.1.0.orig/Makefile 1999-07-29 07:05:02.000000000 +0900
+++ unixbench-4.1.0/Makefile 2009-03-11 23:36:15.000000000 +0900
@@ -44,10 +44,10 @@
# -m386 -malign-loops=1 -malign-jumps=1 -malign-functions=1

## For Solaris 2, or general-purpose GCC 2.7.x
-OPTON = -O2 -fomit-frame-pointer -fforce-addr -fforce-mem -ffast-math -Wall
+# OPTON = -O2 -fomit-frame-pointer -fforce-addr -fforce-mem -ffast-math -Wall

## Very generic
-#OPTON = -O
+OPTON = -O

## For Digital Unix v4.x, with DEC cc v5.x
#OPTON = -O4
diff -urN unixbench-4.1.0.orig/Run unixbench-4.1.0/Run
--- unixbench-4.1.0.orig/Run 1999-07-29 07:04:47.000000000 +0900
+++ unixbench-4.1.0/Run 2009-03-11 23:34:26.000000000 +0900
@@ -1,6 +1,7 @@
#! /bin/sh
#
#################### set your defaults here ##############
+LANG=C ; export LANG
#FLAVOR= # flavor of UNIX: if not determined by script: SysV or BSD
FULL_SUITE="dhry2reg whetstone-double syscall pipe context1 spawn execl \
fstime fsbuffer fsdisk shell short int long float double arithoh \
diff -urN unixbench-4.1.0.orig/pgms/tst.sh unixbench-4.1.0/pgms/tst.sh
--- unixbench-4.1.0.orig/pgms/tst.sh 1995-11-28 02:07:03.000000000 +0900
+++ unixbench-4.1.0/pgms/tst.sh 2009-03-11 23:35:22.000000000 +0900
@@ -15,6 +15,6 @@
###############################################################################
ID="@(#)tst.sh:3.4 -- 5/15/91 19:30:24";
sort >sort.$$ -od sort.$$ | sort -n +1 > od.$$
+od sort.$$ | sort -n -k 2 > od.$$
grep the sort.$$ | tee grep.$$ | wc > wc.$$
rm sort.$$ grep.$$ od.$$ wc.$$


お手元の sort コマンドが + オプションを受け付けないときにどうぞ。お急ぎのかたは pgms/tst.sh だけ直せばOK。
sort --version してみて 6.10 だとダメなようです。
FreeBSDの sort は 5.3.0-20040812-FreeBSD というわけでちょっと古く、+ オプションへの対応が残っていたみたいですね。

ベンチマーク結果は後ほど。

追記、_POSIX2_VERSION=199209 のようにPOSIX準拠のための変数を定めておくのもひとつの方法のようです。unixbenchは古いプログラムなので、こういうところに気を遣うものなんですね。

追記2 いま times のログを見たら warning だの Bad address だのが出ていて、もしかしたらもうちょっと修正しないといけないのかも……? そのうち大幅書き直しかもしれません。

2008年11月13日木曜日

unbound @ Ubuntu /Debian

巷で噂の unbound を導入するために必要な作業を調べてみたので私的メモ。実際には試してないことばかりです。

Ubuntu

ubuntu 8.10 (intrepid)

universe リポジトリが使えることを確認して、

apt-get install unbound unbound-host
で入るかも? /bin/sh が dash の場合はバグを踏む可能性あり。
https://launchpad.net/ubuntu/+source/unbound/+bugs


ubuntu 8.04 LTS (hardy)

http://packages.ubuntu.com/ja/intrepid/unbound
日本unboundユーザ会では「これ持ってきてdpkgで入れる」とあるが、これは ubuntu 8.10 (intrepid)用でありバージョン違い。しかもこれ単品では unbound-host が入らない。
そのうえ、この unbound が依存している libldns1 もまた、intrepidにしかない。
http://packages.ubuntu.com/ja/intrepid/libldns1
http://packages.ubuntu.com/ja/intrepid/unbound-host
http://packages.ubuntu.com/ja/intrepid/libunbound0 (unbound-hostsが依存)
無理やりdpkgするのも方法だけど、libldns1を入れようとしたところでトラブルに陥る可能性がある(後述)。

これは両方のパッケージの backports
http://packages.ubuntu.com/ja/hardy-backports/net/
を待つのが ubuntu 的には正しいんじゃないかな?

腕に覚えがある人は、
http://packages.ubuntu.com/source/jaunty/unbound
最新のソースパッケージがこれなので、hardyにバックポートを試みてもいいかも。
ただしバグ情報に注意。

libldns1のソースパッケージは
http://packages.ubuntu.com/source/jaunty/ldns
なんだけど、実はこれhardyに既に含まれている。バイナリパッケージはこちら
http://packages.ubuntu.com/hardy/libldns-1.2.1
なので、intrepidのlibldns1をhardy上に無理やり入れるよりは、こちらに依存関係を書き換えてバックポートするか、libldnsもバージョンを更新する形でバックポートするのが自然、か? なんとなく libldns-1.2.1 が入っている状態で上の intrepid 用バイナリパッケージを無理やり dpkg したら解決しそうな気もする…


Debian

Debian GNU/Linux "lenny"/"sid" (testing/unstable)
apt-get install unbound unbound-host

で入る。現在 bind を入れていると使用portが被ってしまい導入できない問題がある模様。
http://bugs.debian.org/cgi-bin/pkgreport.cgi?src=unbound
http://unbound.jp/forum/viewtopic.php?pid=10#p10

Debian GNU/Linux 4.0 "etch"

etch-backports にある。
http://packages.debian.org/ja/etch-backports/net/unbound
http://packages.debian.org/ja/etch-backports/net/unbound-host
http://packages.debian.org/ja/source/etch-backports/unbound (ソース)

http://debian.fam.cx/index.php?etch#content_1_62
を参考に /etc/apt/source.list を書き換え、etch-backports を使えるようにしてから

apt-get install unbound unbound-host
とすれば入りそう。ldnsも同様にバックポートされているため一緒に入る、かな。
bind使ってる時にportが被る問題はこちらでも起こる?

FreeBSDの話はもうまとまっていたのでユーザ会のサイトに投稿しました。

2008年5月15日木曜日

パッケージなど検索ページとりまとめ

FreeBSD ports

公式 ports検索ページ
http://www.freebsd.org/ports/
freshports
http://www.freshports.org/search.php

Debian

Debian パッケージ
http://www.debian.org/distrib/packages
Unofficial APT repositories
http://www1.apt-get.org/search.php

Ubuntu

Ubuntu packages
http://packages.ubuntu.com/

だいたい公式で事足りてしまうので、まとめというほどもなく。キーワードを1つ入れれば上のサイトを横断的に検索できるようにする方法はないものか……

2008年4月9日水曜日

DG965SS+C2D E6300なPCにて

年度末~年度初めはPCに時間をかけられませんで、記事もすっかり停滞しておりました。

新年度となり、研究室の学生用PCに Debian をインストールしているのですが、G965なchipsetを持つ上記マザーに etch をインストールすると何故かXが起動してこない。
学生にトラブルシューティングを任せる前に lenny の導入を試みてみると、Xは起動してくるが autofs が パッケージに見あたらなくて使えない、というなんだか厄介な状況に。

何故 autofsが無い? そんなときには個別のパッケージ情報を見ましょうか。
http://www.debian.org/distrib/packages#search_packages
ここから全てを対象にして autofs を検索すると、
http://packages.debian.org/search?keywords=autofs&searchon=names&suite=all§ion=all
sidにはあるのに lenny(testing) にないということが分かる。でも何故?
とりあえず、etchにあるものをクリックすると、
http://packages.debian.org/etch/autofs
autofsに関するリンク、Debianの資源などから、開発者情報をクリックしてみると……
http://packages.qa.debian.org/a/autofs.html
状況が大変わかりやすい。素晴らしいなあ。
どうもtestingからはバグ絡みで削除されている模様。なんてこったい。

問題を解決してソースからコンパイルして自前パッケージとして導入するか、時間を置いて誰かが直してくれるのを待つか……ここでさらにUbuntu 7.10 を取り出してみるのでありました。

続く?