[JM:01124] Re: coreutils-ja.info パッケージのダウンロード可能化

Zurück zum Archiv-Index

長南洋一 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 しますが、万一 (本当に万一であって
ほしい) 問題が起きた場合は、救援をよろしくお願いします。

-- 
長南洋一




linuxjm-discuss メーリングリストの案内
Zurück zum Archiv-Index