nsaarc on Cygwin

Cygwinでいろいろキーワードたどってたら、nsaを展開するソフトがあるらしい。でもLinux用のためかCygwinコンパイルされたバイナリがない。普通にmakeしても失敗するのでパッチを作ってみた。

 begin 644 nsa_cygwin.patch.gz
 M'XL(",QWN4```VYS85]C>6=W:6XN<&%T8V@`U59=;]HP%'U>?L45?8#4<>($
 M0EYV*Z(=]YC/4H
 M\VF7@=L;=+T!\VRV_@!AEXP9A!#=H-BW2]D%=7UP^P/U8VRO[V@$],*Z`(*7
 MT<@``\Y$&LX6$8$20;D&%3'F*(''.08/#N5,/$LIEQO<"
 MYR*=-L%EX:"V0#S265PU]1:O.:W%:[)IDS]P>V]97.];3X\[\/LG;3'.U?>Z
 M5A<(WOQN.6&`..>\HY8\B<6,9^858OQ9R`[#]A^#A$F0PWDD\C1XXIWJ2:4A
 M,0WR8A"`$I%/V:]OUS_OKN^_W'P:$_?!4B*97Z&@D($48:7+N=S5*05J1`P=
 M#`K#(8Q_W-R8"`+*%WD*+;MUM5:IEN67
 M:IK4?<#AVDY[-:".WXW044D<*DD>)GDU$>QM'D\39KX>"%>MUJ%4%@YI-HTJ
 MB=;1_*P>U4T];C;E8U#PT]B5_[4I3V$#P$L529OC1MX`CQ,`%9&0O8VA4%.7
 MZF.E(3E2&I)CI2%IEH;W`_:OI2'9+PVNOC3T+RT?B+JZ;%4=\#2.>(P+7X02
 M)M/)/)-BGA;P>7)[=__U=OQ=';H&.1-QBKIM:A4&H""1\AH*GM]7#$^52P;A
 MSY(KYW0'-EJ[0S=>'3SKU5=K]D**F;X*5XS6Z(K:K\#>OE4-F[<]&W^/3KO^
 *_@4!T?I61@H`````
 `
 end

必要な人がいるかもしれないので解説すると、Cygwinでnsaarcがコンパイルできるようにしたパッチです。えーっと・・・一応パッチの当て方とかを説明しますと、

  1. 上の文字をコピーして適当な名前(hoge.uuとか)で保存。
  2. 行頭のスペースを削除
  3. 2行目と9行目の行末の</pp>を削除

2と3ははてなの仕様上こうせざるを得ないのですが、普通のuuencodeならこぴぺするだけでOKなはずです。でも</pp>って何でつくんだろ。

そしてnsaarcのソースファイルがあるディレクトリで

% uudecode hoge.uu
% zcat nsa_cygwin.patch.gz | patch -p1
% make

でOK。uuencode/uudecodeはsharutilsパッケージに入ってます。

libgen.hがCygwinにないと言われるので、basenameとdirnameを置き換えてるだけなので手パッチでもいける。とおもう。

ためしに歌月十夜アーカイブをばらしてみたけど問題なく動作している様子。しかしばらしたはいいけど、どうするか・・・。模写でもしてみるか。