長南洋一
cyoic****@maple*****
2015年 8月 1日 (土) 21:50:02 JST
長南です。メールの件名を変えました。 coreutils-ja の info マニュアルをダウンロードできるように、Makefile などを書き変えてみました。Makefile は書いたことがありませんし、 m4 も全く知りませんでしたので、ずいぶん時間がかかってしまいました。 手元の擬似環境では、一応うまく行っています。でも、擬似環境は擬似環境 です。実際の環境で html 版マニュアルの検索ができなくなったり、ほかの man page パッケージのダウンロードができなくなったりしたら困りますので、 git push する前に、致命的な間違いがないかどうか、ざっと見ていただけない でしょうか (もっとよい書き方も、いろいろあるでしょうが)。 変更、または新規作成したものは、次の 9 ファイルです。 jm.git/Makefile jm.git/bin/chkcvs.sh jm.git/www/Makefile jm.git/www/download.m4 jm.git/www/index.m4 jm.git/www/.gitignore jm.git/www/bin/link-info-archives.perl (新規作成) jm.git/info/GNU_coreutils/Makefile jm.git/stamp/.gitignore 1) jm.git/Makefile のオリジナルと書き変えたものの diff -u による比較。 @@ -29,7 +29,7 @@ # # global rules # -periodic: chkcvs roff html web cgi +periodic: chkcvs roff infoman html web cgi all: periodic archive-install @@ -63,12 +63,21 @@ mkdir -p $(WWWHTML) $(MKRWWW) $(ROFFSRC) $(WWWHTML) $(MAN2HTML) $(MKPWWW) $(PODSRC) $(WWWHTML) $(POD2HTML) - $(MAKE) -C $(INFOSRC) install +# $(MAKE) -C $(INFOSRC) install # Remove temporary files generated by pod2html rm -f pod2htmd.tmp pod2htmi.tmp touch $@ # +# info tree +# +infoman: stamp/www-info-modified + +stamp/www-info-modified: stamp/info-release-modified + $(MAKE) -C $(INFOSRC) install + touch $@ + +# # web & cgi contents # web: 2) bin/chkcvs.sh の比較。 @@ -6,6 +6,7 @@ # RM=stamp/cvs-release-modified SM=stamp/cvs-status-modified +IM=stamp/info-release-modified if [ ! -f $RM ]; then touch $RM @@ -20,3 +21,9 @@ touch $SM fi +if [ ! -f $IM ]; then + touch $IM +elif (find info -newer $IM | grep -q "release"); then + touch $IM +fi + 3) www/Makefile の比較。 @@ -42,7 +42,7 @@ ../dist/README ../dist/INSTALL: $(MAKE) -C .. -f Makefile.dist -download.html: download.m4 ../stamp/latest-archive-modified +download.html: download.m4 ../stamp/latest-archive-modified ../stamp/www-info-modified m4 -P -D _WORKDIR=$(WORKDIR) -D _DATE=$(DATE) $< | nkf -w > $@ ../stamp/latest-archive-modified: 4) /www/download.m4 の比較 @@ -19,16 +19,19 @@ <P>なお、各 roff ページの文字コードは UTF-8 です。</P> -<H2>全体のアーカイブ</H2> +<H2><A NAME="ALL_IN_ONE">全体のアーカイブ</A></H2> <UL> <LI>m4_esyscmd(./bin/link-whole-archive.perl _DATE)</LI> <LI>アーカイブの _LINK(README.html,README ファイル)</LI> <LI>アーカイブの _LINK(INSTALL.html,INSTALL ファイル)</LI> </UL> -<H2>パッケージ別アーカイブ</H2> +<H2><A NAME="EACH_MANUAL">パッケージ別アーカイブ</A></H2> m4_esyscmd(./bin/link-partial-archives.perl _DATE) +<H2><A NAME="INFO_MANUAL">info 版マニュアルのアーカイブ</A></H2> +<P>info 版マニュアルは man pages 全体のアーカイブには収録されていません。</P> + m4_esyscmd(./bin/link-info-archives.perl) + _CREDITS _BACK_TO_HOME 5) www/index.m4 の比較 @@ -36,6 +36,9 @@ <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - --> <H2><A NAME="WHATSNEW">新着情報</A></H2> <UL> + <LI>_LINK(download.html#INFO_MANUAL, GNU coreutils 8.22 の info 版マニュアルの翻訳をダウンロード)できるようにしました。 + <SMALL>(2015/07/26)</SMALL> + <LI>_LINK(INDEX/ldp.html,LDP man-pages 3.79 対応版)を更新しました。 詳細は_LINK(news/index.html#20150205,こちら)。 <SMALL>(2015/02/05)</SMALL> 6) www/.gitignore の比較 @@ -1,4 +1,5 @@ *.html per-pkg/ man-pages-ja-*.tar.gz +info-pkg/ /news.m4.orig 7) www/bin/link-info-archives.perl これは link-partial-archives.perl をちょっと書き変えたものです。 全文を載せておきます。5 箇所変更しています。 $cat link-info-archives.perl #!/usr/bin/perl # # download.html 用のアーカイブリンクエントリを作る. (info 用) # ここを変更 # $ENV{"LANG"}="C"; BEGIN{ $epath = `dirname $0`; chomp $epath; unshift (@INC, $epath); } use linkInfo('get_latest_file', 'print_file_info'); sub print_unavail() { print "<P>\n Sorry, Archives are unavailable now\n</P>\n"; exit 0; } # #yes, it's an ugly hack... # $fpath = get_latest_file("info-pkg/info-ja-GNU_coreutils-*.tar.gz"); # 変更 print_unavail() if (not $fpath); if ($fpath !~ m|info-pkg/info-ja-GNU_coreutils-(\d+).tar.gz|) { # ここも変更 print_unavail(); } #$date = $1; # ここも変更 @fpaths = glob("info-pkg/info-ja-*.tar.gz"); # ここも変更。 print "<UL>\n"; foreach $fpath (@fpaths){ print "<LI>"; print_file_info($fpath, "it"); print "</LI>\n"; } close LS; print "</UL>\n"; 8) info/GNU_coreutils/Makefile の比較 @@ -4,6 +4,12 @@ MANTYPE = info WWWDEST = $(WWWROOT)/$(MANTYPE)/$(PACKAGE) +GITTOP = $(ROOT)/jm.git +INFOPKGWWW = $(GITTOP)/www/info-pkg +INFOTMPDIR = $(TMPDIR)/info +INFORELEASE = $(shell env LANG=C date +"%Y%m%d") +INFODEST = info-ja-GNU_coreutils-$(INFORELEASE) + TEXI2HTML = texi2html TEXIFILE = release/coreutils-ja.texi HTMLDIR = html @@ -17,7 +23,22 @@ clean: $(RM) -r $(HTMLDIR) + $(RM) -r $(INFOPKGWWW) -install: $(HTMLFILE) +html-install: $(HTMLFILE) mkdir -p $(WWWDEST) rsync -av --delete $(HTMLDIR)/ $(WWWDEST) + +pkg-install: + [ -d $(INFOPKGWWW) ] || mkdir -p $(INFOPKGWWW) + -rm $(INFOPKGWWW)/info-ja-GNU_coreutils-* + [ -d $(INFOTMPDIR) ] || mkdir -p $(INFOTMPDIR) + -rm -rf $(INFOTMPDIR)/info-ja-GNU_coreutils-* + mkdir -p $(INFOTMPDIR)/$(INFODEST) + cp -p release/* $(INFOTMPDIR)/$(INFODEST) + cd $(INFOTMPDIR); \ + tar czf $(INFODEST).tar.gz $(INFODEST); \ + cp -p $(INFODEST).tar.gz $(INFOPKGWWW) + +install: html-install pkg-install + 9) stamp/.gitignore の比較 @@ -3,3 +3,5 @@ www-html-modified www-roff-modified latest-archive-modified +info-release-modified +www-info-modified 大変読みにくくて恐縮ですが、以上です。 大体大丈夫のようなら git push しますが、万一 (本当に万一であって ほしい) 問題が起きた場合は、救援をよろしくお願いします。 -- 長南洋一