gnupack pretest-2015.11.15 リリース

gnupack pretest-2015.11.15をリリースしました。



お試しバージョンです。13.06をベースに以下を変更しました。なお、Ansibleはdevelのみで利用可能です。


変更ポイント

  • cygwinを 2.3.1にバージョンアップ

    11/15時点の最新版にバージョンアップしました。

  • Ansibleをバンドル

gnupack 13.06-2015.11.08 リリース

gnupack 13.06-2015.11.08をリリースしました。



主な変更点は以下のとおりです。詳細はリリースノートを参照ください。



変更ポイント

  • cygwinを 2.2.1にバージョンアップ

    11/8時点の最新版にバージョンアップしました。

  • bashのコマンド プロンプトを変更

    MobaXtermを参考に少し変えてみました。

  • emacsのカーソル、IME周りの設定を変更

    W32-IME を快適に使うための設定を参考にさせていただきました。

  • .emacs.d/init.elのコメント文を見直し

gnupack 13.05-2015.07.19 リリース

gnupack 13.05-2015.07.19をリリースしました。



主な変更点は以下のとおりです。詳細はリリースノートを参照ください。


変更ポイント

  • gnupack 13.02で欠落のあったruby関連のパッケージを追加

    ブログコメントでいただいた件について対応しました。

  • cygwinを 2.1.0にバージョンアップ

    7/19時点の最新版にバージョンアップしました。

gnupack 13.04-2015.06.27 リリース

gnupack 13.04-2015.06.27をリリースしました。



主な変更点は以下のとおりです。詳細はリリースノートを参照ください。


変更ポイント

今回のリリースでは、dangoさんの情報を参考にさせていただきました。ありがとうございました。

gnupack 13.03-2015.06.21 リリース

gnupack 13.03-2015.06.21をリリースしました。



主な変更点は以下のとおりです。詳細はリリースノートを参照ください。


変更ポイント

  • emacsの C-l設定を変更

    emacsで C-l(recenter-top-bottom)実行時のポジション設定をmiddle、top、bottomに変更

今回のリリースでは、dangoさんの情報を参考にさせていただきました。ありがとうございました。

ちなみに、cygwinについては、6/21時点の最新版(2.0.4)になっています。

gnupack 13.02-2015.05.24 リリース

gnupack 13.02-2015.05.24をリリースしました。



今回のバージョンアップの主な内容は以下のとおりです。


変更ポイント


今回のリリースでは、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\

使い方は以下のとおり。

  1. %INST_DIR%\app\script\setup_context_menu.vbsをダブルクリックで実行(もしかすると、管理者権限で実行しないと失敗するかもしれません)
  2. 自己責任においてツール実行することを承諾するなら「はい」ボタンを押下
  3. バックアップ取得推奨のダイアログメッセージで「OK」ボタンを押下
  4. 起動プログラムが格納されているディレクトリパスを入力し、「OK」ボタンを押下
  5. 登録完了のダイアログメッセージで「OK」ボタンを押下して、登録は完了
  6. ファイル、フォルダを右クリックして、コンテキストメニューが登録されていることを確認

登録したレジストリ情報を削除するには、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/perl

use 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);;
}
}