2007-10-29

Tcl/Tk for Windows, build009

SourceForge.net Logo
Tcl/Tk 8.5b2 のウィンドウズ用インストールパッケージをアップロードしました。前回と同様、バイナリは Linux 上の MinGW クロスコンパイル環境で生成し、インストーラ用のパッケージ作成も、Linux の WINE 環境で Inno Setup を使って作成しました。ダウンロードは以下から。

tcltk8.5b2-009

今回、収録したパッケージとビルドした環境は以下の通りです。


Tcl/Tk for Windows, bitWalk build #009
released on 2007-10-28

1. Available version of Tcl/Tk and extensions in this package
- Tcl/Tk 8.5b2
http://sourceforge.net/projects/tcl
- Thread 2.6.5
http://sourceforge.net/projects/tcl
- Incr Tcl/Tk 3.4 (itcl-20071022.tar.gz)
http://sourceforge.net/projects/incrtcl/
- Incr Widgets 4.0.2 (iwidgets-20070610.tar.gz)
http://sourceforge.net/projects/incrtcl/
- BWidget 1.8.0 (bwidget-20070511.tar.gz)
http://sourceforge.net/projects/tcllib
- Tcllib 1.10
http://sourceforge.net/projects/tcllib

2. build environment for compiling binaries
- MinGW Cross Compiler on Fedora Linux 7
mingw-binutils-2.17.50-2.fc7
mingw-runtime-3.13-1.fc7
mingw-w32api-3.10-1.fc7
mingw-gcc-core-4.2.1-2.fc7

3. packaging environment
- Inno Setup Compiler 5.2.0
on wine-0.9.46-1.fc7 / Fedora Linux 7
http://www.jrsoftware.org/isinfo.php

例のごとく、最初は WINE の環境でインストーラのチェックをしました。

Tcl/Tk 8.5b2 ではデモプログラムにも手が加わっていました。Tcl/Tk 8.5 のαリリースの時に加えられたデモプログラムにも、今回改めて、"New" の文字が赤字で加えられています。あまりにも長いαリリースの期間だったため、既に新しいデモプログラムとは認識していなかったものもあります。ご興味があれば試してみてください。スタートメニューから、"Tcl and Tk" -> "demo" -> "Tk" で起動できます。

あと、Tcl/Tk のヘルプファイル (HTML) も若干見易いレイアウトになっています。

2007-10-27

Tcl/Tk8.5b2



Tcl/Tk 8.5 の2番目のβ版が予定通り10月26日付けでリリースされました。

今週になって、Tcl Core のメーリングリストに投稿されるメールの量が増え、TIP の投票やバグの議論が活発になったので、果たして予定通り次のβ版がリリースされるか心配でしたが、その次のβ版リリースも予定されていることもあってか、今回はなんとか予定通りリリースされたようです。

細かい話になりますが、リリースされるタイミングは、余裕があるときには、各国での時差を考慮して、米国時間で早朝にリリースアナウンスを出す場合が多いようです。しかし今回の場合、日本時間で27日の朝(今朝)の時点でまだリリースされていなかったので、数日程度リリースが遅れるかもしれないと思ってしまいました。
SourceForge.net からアナウンスが届いたのは 日本時間 27 日の 12:22 pm で、リリースアナウンスの冒頭は、次のようになっていました。

Project: Tcl (tcl)
Package: Tcl
Date : 2007-10-26 23:22

ぎりぎり、10月26日のリリースに間に合ったという感じです。金曜日ということで、きっと忙しかったのでしょう。(と言っても、金曜日がリリース予定日に選ばれることが多いのですが…。)

今回のリリースは、β版ということでバグフィックスが中心になっています。

なお、次の3番目β版がリリースされるのは11月16日の予定です。

早速、クロスコンパイル環境でリリースされたソースをコンパイルしてみようと思います。今回は拡張パッケージのコンパイルもできるようになったので、当初予定していた拡張パッケージを同梱したインストーラを、MinGW Cross Compiler のプロジェクトサイトに公開する予定です。

Date: Fri, 26 Oct 2007 23:28:05 -0400
From: dgp at nist.gov
To: tcl-core at lists.sourceforge.net
Subject: [TCLCORE] Tcl/Tk 8.5b2 RELEASED

Tcl/Tk 8.5b2 Release Announcement
October 26, 2007

The Tcl Core Team is pleased to announce the 8.5b2 releases of the Tcl
dynamic language and the Tk toolkit. This is the second beta release of
Tcl/Tk 8.5. More details can be found below. We would like to express
our gratitude to all those who submit bug reports and patches. This
information is invaluable in enabling us to identify and eliminate
problems in the core.

Where to get the new releases:
------------------------------

Tcl/Tk 8.5b2 sources are freely available as open source from the Tcl
Developer Xchange web site at:

http://www.tcl.tk/software/tcltk/8.5.html

This web page also contains additional information about the releases,
including new features and notes about installing and compiling the
releases. Sources are always available from the Tcl SourceForge
project's file distribution area:

http://sourceforge.net/project/showfiles.php?group_id=10894

For additional information:
---------------------------

Please visit the Tcl Developer Xchange web site:

http://www.tcl.tk/

This site contains a variety of information about Tcl/Tk in general, the
core Tcl and Tk distributions, Tcl development tools, and much more.

Thank you for your contributions:
---------------------------------

As usual, this release includes contributions from the Tcl community.
We have a page honoring these contributors at:

http://www.tcl.tk/software/tcltk/contributors.html

Summary of Changes since Tcl/Tk 8.5b1:
--------------------------------------

The following were the main changes in Tcl/Tk 8.5b2. A complete list
can be found in the changes file at the root of the source tree. The
more complete ChangeLog is also included with each source release.

This is a beta release of 8.5. The beta designation means that the
feature set for 8.5 is believed to be complete, and the focus is now
on testing and bug fixing moving quickly toward an 8.5.0 release.
All relevant bug fixes (and some more) up to and including 8.4.16 changes
are included in 8.5b1. The following list focuses on new features added
so far in 8.5. This release is a development release, and should only be
considered for deployment use after considerable testing.

* [TIP 242] New [tk_getOpenFile] option: -typevariable .

* [TIP 125] Dockable frame support.

* [TIP 145] Font enhancement suppport added for Aqua.

* Enhanced Tk demo suite.

* Improvements to [ttk::combobox] and [ttk::notebook].

* New Hungarian message catalog for Tk.

* Fixed an intermittent crash in thread support.

* Fixed possible crash in [place] geometery manager.

* Fixed auto-loading of [::tcl::tm::path].

* Fixed [string is integer -failindex (0o... or 0b...)].

* Support for 64-bit X11 on Mac OS X systems.

--

Tcl Core Team and Maintainers
Don Porter, Tcl Core Release Manager

2007-10-21

Tcl 拡張パッケージのクロスコンパイル

SourceForge.net Logo
案だった、Tcl の拡張パッケージのクロスコンパイルに成功しました。この週末に試行錯誤を重ねましたが、結局 configure スクリプトで生成した Makefile の内容の一部を perl で置換するという妥協的な方法に落ち着きました。

例として、Thread パッケージをビルドするスクリプトを紹介します。

#!/bin/sh

export INSTDIR=${HOME}/mingw/build

# constants
export ver_tcltk="8.5b1"
export ver_major="85"
export ver_major2="8.5"
export ver_thread="2.6.5"

export prefix_tcltk=""

export target=i386-mingw32
export CC=${target}-gcc
export AR=${target}-ar
export LD=${target}-ld
export RANLIB=${target}-ranlib
export RC=${target}-windres

# remove old sources
echo "### Removing old sources & binaries"
rm -fR thread${ver_thread}

# extract sources
echo "### Expanding sources to build"
tar zxvf thread${ver_thread}.tar.gz

# build Thread extension
echo "### build Thread Extension"
export PATH=/usr/local/${target}/bin:$PATH

cd thread${ver_thread}
./configure --prefix=${prefix_tcltk} --host=${target} \
--enable-threads --with-tcl=../tcl${ver_tcltk}/win
perl -i.bak -p -e 's/Unix/Win/g;' Makefile
perl -i.bak -p -e 's/unix/win/g;' Makefile
perl -i.bak -p -e 's/\-fPIC//ig;' Makefile
perl -i.bak -p -e 's/libthread2\.6\.5\.so/thread265\.dll/g;' Makefile
perl -i.bak -p -e 's/libthreadstub2\.6\.5\.a/libthreadstub265\.a/g;' Makefile
perl -i.bak -p -e 's/^DEFS\t\t=/DEFS\t\t= \-DBUILD_thread=1/g;' Makefile
make
perl -i.bak -p -e 's/libthread2\.6\.5\.so/thread265\.dll/g;' pkgIndex.tcl
make DESTDIR=${INSTDIR}/thread${ver_thread} install
cd ..

# remove man directory
rm -fR ${INSTDIR}/thread${ver_thread}/man

今回わかったことは、WINE をインストールしていると configure スクリプトは、クロスコンパイルだと認識してくれないということです。これは configure スクリプトが、小さなプログラムをコンパイルして、それを実行できなければクロスコンパイルだと判定するのですが、WINE がインストールされていると実行できてしまうため、いくら --host--build オプションで指定してもクロスコンパイルだとは判定されないのです。

しかしながら、configure スクリプトがクロスコンパイルだと判定したところで、大したことはしてくれません。CC などで i386-mingw32-gcc を前もって指定しなくとも、gcc などに --host で指定した名前をプレフィックスとして付加してくれるぐらいです。これも ar などに付けてくれないなど抜けが出ます。変更しなければならないMakefile の内容はそれほど多くはないので、perl で置換することにしました。なお pkgIndex.tcl に記述されているパッケージ名の修正も必要です。

10 月 26 日に、Tcl/Tk 8.5b2 がリリースされる予定なので、今度の週末にでも拡張パッケージを加えたクロスコンパイル版 Tcl/Tk 8.5b2 を公開しようと思います。

2007-10-20

GCC と binutils の更新

SourceForge.net Logo
MinGW クロスコンパイラの GCC と binutils を更新しました。

mingw-binutils-2.17.50-2
mingw-gcc-4.2.1-2

GCC-4.2.1 の RPM の最初のリリースでは、libgcc_sjlj_1.dlllibstdc++_sjlj_6.dll/usr/local/bin にインストールされましたが、流石に Windows 用の DLL をこのディレクトリにインストールするのは良くないと考え、/usr/local/i386-mingw32/bin 以下にインストールされるように変更しました。

なお、RPM をリビルドする際、texinfo については、Fedora Linux 7 のリリース時に収録されていた4.8-15 に限定しました。Fedora Linux 8 のリリース予定が11月8日なので、textinfo の問題が残っていれば、それから調べようという消極的な態度をとる事にしました。

binutils は一週間ぐらい前に texinfo の問題で、4.8-15 限定の修正をしておいたのですが、アップロードをしていなかったので、一緒にアップロードしました。

2007-10-18

初音ミク

IT Media の「初音ミク」画像がネットから“消えた”? という記事を読んだので、自分でも試してみました。確かに記事の通りでした。
記事によると、14日にはTBS系「アッコにおまかせ」の(初音ミク)特集をめぐって批判が相次いだ経緯もあり、画像が“消えた”件について憶測も飛び交っているそうだが、こういうことがニュースになることも珍しいような気がします。

時間が経つと検索ができるようになるかもしれないので、記念にハードコピーをしておきました。



関連記事
“消えた初音ミク”問題 ヤフーとGoogle「原因を調査中」

2007-10-16

Tcl/Tk 8.5 tentative release calendar

0月15日付けで、Tcl/Tk 8.5 のリリーススケジュールが TCLCORE のメーリングリストに流れました。
tentative(暫定)ではありますが、長かったαリリースと比べれば、β版から正式版へのリリーススケジュールは、あまりにも短いような気がします。スケジュールよりリリースが遅れるのは常ですので、実際に正式版がリリースされるのは来年になってしまうのかもしれません。

いずれにしても、Tcl/Tk 8.5 の正式版リリースまでに用意する予定にしている「Tcl/Tk 入門」のページは、もう少し精力的に準備していく必要がありそうです。

Date: Mon, 15 Oct 2007 14:09:18 -0400
From: Donald G Porter
To: Tcl Core List
Subject: [TCLCORE] Tcl/Tk 8.5 tentative release calendar

It's now 19 days since the release of Tcl/Tk 8.5b1, so by the lights of
some ambitions, Tcl/Tk 8.5b2 is already 5 days overdue.

Since deadlines appear to bring out the development energies, I'm going
to draw some lines in the sand. Offered for comment is this calendar
to complete the stabilization of Tcl/Tk 8.5.0:

Release Date
8.5b2 October 26
8.5b3 November 16
8.5.0 December 14

Dates are chosen to have some time between them, so we can get bug
reports and fixes done between releases. A fair number of bug reports
for b1 have come in, but the fixes (and HEAD development in general)
appear slow in coming to me. Here's a deadline folks, get cracking!

Dates are also chosen in part to work around my own schedule
constraints, including a conference and holidays.

I want the octal change done for the 8.5b2 release. Here's where I need
to get cracking myself. I've got the patch (other than docs) done and
uploaded as 1805896, but still need to update TIP 114 to describe what
it does, and send it around for a quick vote confirming the opinions
offered at the conference. It was rumored that some packages or
applications (Expect? TclX? others?) might have trouble with this
change? Someone please find out.

I would very much like to have all documentation caught up in time for
the 8.5b3 release. Please don't save all that for December (or later!).

The gap between 8.5b3 and 8.5.0 release dates is longer than I hope we
will really need. In part that's to make room for the US Thanksgiving
holiday. And in part it's to make room to insert an 8.5b4 if we need
to, with hopes that it would not delay the actual 8.5.0 release (much?).

There are still significant bugs reported that really would be best
fixed in time for 8.5.0. Please do what you can over the next several
weeks to take some on.

And probably even more important at this stage, is the missing Great!
Out-of-the-Box Experience (GOOBE). Now that a target end date for 8.5.0
is named, take that as your deadline to do something to promote and
improve the experience for folks who will be trying out Tcl/Tk at that time.

--
| Don Porter Mathematical and Computational Sciences Division |
| donald.porter at nist.gov Information Technology Laboratory |
| http://math.nist.gov/~DPorter/ NIST |
|______________________________________________________________________|

2007-10-15

texinfo による障害?

SourceForge.net Logo
イナーな修正を加えた spec ファイルで mingw-gcc と mingw-binutils をビルドしようとしたところ、どうにもうまくいきません。予期しないところで、インストールされているはずの makeinfo が無いというエラーで止まってしまったり、今まで生成されていた info ファイルが生成されないといった現象が起きたのです。

因果関係を詳しく調べてみると、つい先日 texinfo が 4.8-15 から 4.11-1 にアップデートされていることが判りました。texinfo パッケージに makeinfo が含まれているため、試しに古いバージョンに戻して、前述のパッケージをビルドしてみると、エラー発生がなくなりました。ということで、とりあえず spec ファイルには texinfo-4.8-15 限定でビルドするよう BuildPrereq に記述しました。

ディストリビューションによるパッケージのアップデートで、こういった不具合に遭遇したのは初めての経験です。Fedora だから仕方が無いのかもしれません。きっとなにか texinfo の新しいパッケージに不具合があるはずなのですが、残念ながら調べる時間がありません。そこで、今のところ自分では調査はせずに修正したパッケージがリリースされないか、しばらく静観するという消極的な態度に出ることにしました。

今度の週末まで待って変化が無ければ調べます。

2007-10-14

Tcl/Tk for Windows, build008

SourceForge.net Logo
Tcl/Tk 8.5b1 のウィンドウズ用インストールパッケージをアップロードしました。今回から、バイナリは Linux 上の MinGW クロスコンパイル環境で生成し、インストーラ用のパッケージ作成も、Linux の WINE 環境で Inno Setup を使って作成しています。ダウンロードは以下から。

tcltk8.5b1-008

現在、クロスコンパイル環境で、Windows 用のバイナリをなんでもコンパイルできる、という状況ではないので、Tcl/Tk のパッケージも、非常に限定的なものになってしまいました。Tcl/Tk をビルドしたスクリプトや Inno Setup 用のスクリプトなどもアップしてありますので、興味のある方はご利用ください。

Tcl/Tk for Windows, bitWalk build #008
released on 2007-10-14

1. Available version of Tcl/Tk and extensions in this package
- Tcl/Tk 8.5b1
http://sourceforge.net/projects/tcl
- Tcllib 1.10
http://sourceforge.net/projects/tcllib
- BWidget 1.8.0
http://sourceforge.net/projects/tcllib

2. build environment for compiling binaries
- MinGW Cross Compiler on Fedora Linux 7
mingw-binutils-2.17.50-1.fc7
mingw-runtime-3.13-1.fc7
mingw-w32api-3.10-1.fc7
mingw-gcc-core-4.2.1-1.fc7
mingw-pthreads-w32-2.8.0-1.fc7

3. packaging environment
- Inno Setup Compiler 5.2.0
on wine-0.9.46-1.fc7 / Fedora Linux 7
http://www.jrsoftware.org/isinfo.php

今後、少しずつ、クロスコンパイラで拡張パッケージのコンパイルに挑戦し、収録パッケージを充実させていく予定です。



これは、Linux/WINE 環境において、Inno Setup でインストーラを作成した直後にインストーラが起動したときの画面です。全部ではありませんが、大部分の動作確認を Linux/WINE の環境で済ませられます。

2007-10-07

GCC-4.2.1

SourceForge.net Logo
GCC-4.2.1 (gcc-4.2.1-2-src.tar.gz) の MinGW 用クロスコンパイラを MinGW Cross Compiler Project のサイトにアップしました。Fedora Linux 7 の RPM パッケージ一式です。
実は、libgcc_sjlj_1.dlllibstdc++_sjlj_6.dll のビルドがうまくいかず、しばらく放置していましたが、ふと解決策を思いついたので、遅ればせながらビルドしました。なお、自分の環境で Ada はビルドできなかったため割愛しました。

2007-10-06

OSC 2007 - Tokyo/Fall -

日、今日と大田区産業プラザPIOで開催されているオープンソースカンファレンス2007 Tokyo/Fall を見に行ってきました。実は、これがオープンソース系の展示会見学の初体験だったのでした。

受付でもらったパンフレットによると、展示会場には60の団体が出展していました。

また、展示会場の二箇所でミニセミナーも開催されていました。

まず、日本NetBSDユーザグループで話を伺いました。組み込み用途で GPL を嫌うユーザに対して需要があるということでした。別に GCC が吐き出すコードが GPL に縛られるわけではないんだけど、コンパイル速度が速い PCC を NetBSD の CVS へ取り組むなんて話題もでました。名古屋のユーザ会ではよく飲み会を開いたりするということでした。

openSUSE コミュニティでは、Novel の SUSEopenSUSE の違いを教えてもらいました。要するに、FedoraRedHat との関係だと考えれば良いのだそうだ。そういえば、RedHat や Fedora 関連の団体は無かったようです。

Obuntsu Japanese Team のところではデモ機を触らせてもらいました。Debian 系の Linux を使ったことがなかったので、/etc 内などを覗いてみました。Debian 系では /etc/rc.d って無いんですね。この辺をごちゃごちゃいじっていると怪しまれそうだったので、適当に退散しました。

Gentoo Linux のところでチラシをもらいましたが、

Gentooって何?
 Gentoo は、Linux や FreeBSD をベースにしたフリーのオペレーティングシステムで、…

と書いてあったので、そういう表現をしているんだとちょっとびっくり。Gentoo が使用している Portage というパッケージ管理システムは、FreeBSD などの ports を参考にして作られたものであることを知りました。

Itanium Solutions Alliance が出展していたのにはちょっとびっくり。オープンソースの世界で生き残りをかけているのでしょうか。

株式会社バッファローの展示では、思わずオープンソースとのかかわりは何ですか?と尋ねてしまった。すると、オタク的な要素があれば出展できたようで、Felica 機能を持ったPCがデモしていました。なぜこれがオタク?とは思いましたが、むしろ無線LAN・環境調査サービスの方に興味があったので、名刺をもらっておきました。会社のIT担当のK氏に紹介して、オフィスのネットワークの無線化を検討してもらおう。というわけで、ここでの話は完全にオープンソースから離れてしまいました。ところでオープンソースの活動とは、世間ではオタク的なものなのでしょうか?

特定のなじみの団体とか、知人がいるわけでないので、小一時間ほど展示場をうろうろして終了。

仕事では、半導体関連業界の展示会(セミコン・ジャパンなど)を見に行くことが多いので、展示会の規模が全然違いましたが、こういうこぢんまりした展示会もいいものだと思いました。次回は興味があるセミナーがあればぜひ受講をしてみようと考えています。