gnupack pretest-2015.11.15 リリース
gnupack pretest-2015.11.15をリリースしました。
- gnupack-pretest_basic-2015.11.15.exe
(125.4MB)
リリースノート
- gnupack-pretest_devel-2015.11.15.exe
(193.6MB)
リリースノート
お試しバージョンです。13.06をベースに以下を変更しました。なお、Ansibleはdevelのみで利用可能です。
変更ポイント
- cygwinを 2.3.1にバージョンアップ
11/15時点の最新版にバージョンアップしました。 - Ansibleをバンドル
gnupack 13.06-2015.11.08 リリース
gnupack 13.06-2015.11.08をリリースしました。
- gnupack_basic-13.06-2015.11.08.exe
(125.3MB)
リリースノート
- gnupack_devel-13.06-2015.11.08.exe
(188.5MB)
リリースノート
主な変更点は以下のとおりです。詳細はリリースノートを参照ください。
変更ポイント
gnupack 13.05-2015.07.19 リリース
gnupack 13.05-2015.07.19をリリースしました。
- gnupack_basic-13.05-2015.07.19.exe
(123.9MB)
リリースノート
- gnupack_devel-13.05-2015.07.19.exe
(185.9MB)
リリースノート
主な変更点は以下のとおりです。詳細はリリースノートを参照ください。
変更ポイント
gnupack 13.04-2015.06.27 リリース
gnupack 13.04-2015.06.27をリリースしました。
- gnupack_basic-13.04-2015.06.27.exe
(123.8MB)
リリースノート
- gnupack_devel-13.04-2015.06.27.exe
(185.1MB)
リリースノート
主な変更点は以下のとおりです。詳細はリリースノートを参照ください。
変更ポイント
今回のリリースでは、dangoさんの情報を参考にさせていただきました。ありがとうございました。
gnupack 13.03-2015.06.21 リリース
gnupack 13.03-2015.06.21をリリースしました。
- gnupack_basic-13.03-2015.06.21.exe
(123.6MB)
リリースノート
- gnupack_devel-13.03-2015.06.21.exe
(184.9MB)
リリースノート
主な変更点は以下のとおりです。詳細はリリースノートを参照ください。
変更ポイント
今回のリリースでは、dangoさんの情報を参考にさせていただきました。ありがとうございました。
ちなみに、cygwinについては、6/21時点の最新版(2.0.4)になっています。
gnupack 13.02-2015.05.24 リリース
gnupack 13.02-2015.05.24をリリースしました。
- gnupack_basic-13.02-2015.05.24.exe
(123.8MB)
リリースノート
- gnupack_devel-13.02-2015.05.24.exe
(184.2MB)
リリースノート
今回のバージョンアップの主な内容は以下のとおりです。
変更ポイント
- ユーザ名設定に関する改修
ドメイン環境において、ユーザ名が「<ドメイン名+ユーザ名>」になる問題に対し改修しました。実装の詳細は /app/script/{mkpasswd.pl,mkgroup.pl}を参照ください。
- cygwinのシンボリックリンク設定を見直し
cygwinで作成したシンボリックリンクをWindowsアプリからも利用できるように設定を見直しました。具体的には、「winsymlinks:native」を設定しています(本件は、掲示板のCYGWINに設定しているnowinsymlinksについてで報告いただいた件です)
- emacsの機種依存文字向けの設定を追加
cp932の機種依存文字が正しく表示できなかった問題を改修しました。(本件は、掲示板のCP932で書かれたファイルの文字化けについてで報告いただいた件です)
- tmpディレクトリが作成されない問題を改修
/tmpディレクトリの実体となるディレクトリが存在しない場合に、ディレクトリ作成がされず、エラーが表示される問題を改修しました。
今回のリリースでは、nickchopperさん、dangoさんの情報を参考にさせていただきました。ありがとうございました。
あと、賛否両論があるかもしれませんが、minttyとemacsの antialias設定を有効にしてみました。人によっては、ぼやけて見えると思う方がいるかもしれませんが、個人的には許容範囲かなと思っています(実際に自分がメインで使っている環境は gdi++をかましていますが。。。)
おまけ
今回のリリースには、コンテキストメニュー(右クリックメニュー)に起動プログラムを登録するための、vbsスクリプトをお試しでバンドルしました。ファイルのコンテキストメニューに対して emacs起動プログラム、フォルダのコンテキストメニューに対し emacs起動プログラムとcygwin起動プログラムを追加します
メニュー登録にレジストリを直に変更しているため、利用に当たっては、バックアップを取るなどして、十分注意して実行してください。編集されるレジストリエントリは以下のとおりです。
- HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Folder\shell\open_cygwin_for_gnupack\
- HKEY_CLASSES_ROOT\Directory\Background\shell\open_cygwin_for_gnupack\
- HKEY_CLASSES_ROOT\*\shell\open_emacs_for_gnupack\
- HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Folder\shell\open_emacs_for_gnupack\
使い方は以下のとおり。
- %INST_DIR%\app\script\setup_context_menu.vbsをダブルクリックで実行(もしかすると、管理者権限で実行しないと失敗するかもしれません)
- 自己責任においてツール実行することを承諾するなら「はい」ボタンを押下
- バックアップ取得推奨のダイアログメッセージで「OK」ボタンを押下
- 起動プログラムが格納されているディレクトリパスを入力し、「OK」ボタンを押下
- 登録完了のダイアログメッセージで「OK」ボタンを押下して、登録は完了
- ファイル、フォルダを右クリックして、コンテキストメニューが登録されていることを確認
登録したレジストリ情報を削除するには、4のディレクトリパス入力で「/delete」を入力して、「OK」ボタンを押下してください。
ドメイン環境下におけるgnupack 13でのユーザ名について
gnupack 13: emacs 起動時にエラーになるで取り上げていただいている件について。
現状、startupプログラムの起動において『mkpasswd -l > /etc/passwd』を行うことにより実行環境に応じた /etc/passwdを自動生成しています。
実行しているコマンドは正確には以下のとおり。
{ mkpasswd -l; getent passwd; } | sed "s=/home/\w\+:=/home:=g" | sort -u
これまでは上記方法で問題ありませんでしたが、どうやら cygwin 2.0.0から仕様が変わったようで、ドメイン環境化ではユーザ名が『<ドメイン名>+<ユーザー名>』となってしまい、emacsが /homeを見つけられない事象が起きているようです。
これに対して、専用のスクリプトを用意し /etc/passwdの自動生成する方法で対処することを考えています。ひとまず手元でしばらく動作確認のうえ、リリースに取り込みたいと思います。
startup_config.iniのMake_Passwd_Cmdの内容は以下のとおり。
Make_Passwd_Cmd = /app/script/mkpasswd.pl $USER /home
『/app/script/mkpasswd.pl』の内容は以下のとおり。
#!/usr/bin/perluse strict;
use warnings qw( all );
use autodie;
use utf8;
use constant { TRUE => 1, FALSE => 0 };
use English;
my ($user, $home) = @ARGV;
my $file = '/etc/passwd';
my @file = ();
if(! -f $file or -z $file) {
open(my $ch, '-|', '/usr/bin/mkpasswd -l');
@file = <$ch>;
}
else {
open(my $fh, '<', $file);
@file = <$fh>;
close($fh);
}
my $is_exist_id = sub {
foreach my $line (@_) {
return TRUE if($line =~ /^[^:]+:[^:]+:$UID:/);
}
return FALSE;
};
unless($is_exist_id->(@file)) {
open(my $ch, '-|', '/usr/bin/mkpasswd -c');
push(@file, <$ch>);
}
foreach my $line (@file) {
if($line =~ /^[^:]+:([^:]+:$UID:.*):[^:]+:([^:]+$)/) {
printf("%s:$1:%s:$2", $user, $home);
}
else {
printf("%s", $line);;
}
}