diff --git a/ja_JP.eucJP/articles/Makefile b/ja_JP.eucJP/articles/Makefile index ad8afd3886..bfaff05e6d 100644 --- a/ja_JP.eucJP/articles/Makefile +++ b/ja_JP.eucJP/articles/Makefile @@ -1,49 +1,55 @@ # $FreeBSD$ -# Original revision: 1.42 +# Original revision: 1.47 SUBDIR = #SUBDIR+= 5-roadmap +#SUBDIR+= bsdl-gpl +#SUBDIR+= casestudy-argentina.com #SUBDIR+= checkpoint #SUBDIR+= committers-guide #SUBDIR+= console-server SUBDIR+= contributing +#SUBDIR+= contributing-ports SUBDIR+= contributors #SUBDIR+= cvs-freebsd #SUBDIR+= cvsup-advanced SUBDIR+= dialup-firewall SUBDIR+= diskless-x #SUBDIR+= euro #SUBDIR+= explaining-bsd SUBDIR+= fbsd-from-scratch #SUBDIR+= filtering-bridges SUBDIR+= fonts #SUBDIR+= formatting-media #SUBDIR+= freebsd-questions +#SUBDIR+= geom-class #SUBDIR+= hats #SUBDIR+= hubs SUBDIR+= ipsec-must #SUBDIR+= java-tomcat #SUBDIR+= laptop +#SUBDIR+= linux-comparison #SUBDIR+= mailing-list-faq #SUBDIR+= mh SUBDIR+= multi-os #SUBDIR+= new-users #SUBDIR+= pam #SUBDIR+= portbuild #SUBDIR+= pr-guidelines SUBDIR+= problem-reports #SUBDIR+= pxe #SUBDIR+= relaydelay #SUBDIR+= releng #SUBDIR+= releng-packages #SUBDIR+= serial-uart #SUBDIR+= solid-state #SUBDIR+= storage-devices +#SUBDIR+= version-guide #SUBDIR+= vinum #SUBDIR+= vm-design SUBDIR+= zip-drive # ROOT_SYMLINKS+= new-users DOC_PREFIX?= ${.CURDIR}/../.. .include "${DOC_PREFIX}/share/mk/doc.project.mk" diff --git a/ja_JP.eucJP/articles/contributing/article.sgml b/ja_JP.eucJP/articles/contributing/article.sgml index 13a75790a5..09b08e9e7e 100644 --- a/ja_JP.eucJP/articles/contributing/article.sgml +++ b/ja_JP.eucJP/articles/contributing/article.sgml @@ -1,600 +1,600 @@ %articles.ent; ]>
FreeBSD への貢献 $FreeBSD$ この文書は、個人や団体が FreeBSD プロジェクトに貢献するためのいくつかの方法について説明しています。 Jordan Hubbard 寄稿: &tm-attrib.freebsd; &tm-attrib.ieee; &tm-attrib.general; 貢献 あなたも FreeBSD のために貢献したくなりましたか? 素晴らしい! FreeBSD は生き残るためにユーザベースの貢献に頼っています。 あなたの貢献は感謝されるだけではなく、FreeBSD が成長し続けるために極めて重要なものなのです! 一部の人達が発言しているのとは反対に、 貢献を受け付けてもらうために腕利きのプログラマーになるとか FreeBSD コアチームの人と親友になる必要はありません。 多くのそして益々増加する世界中の貢献者達が FreeBSD を開発しており、 彼らの年齢、専門技術分野は多岐に渡っています。 手の空いている人よりも成すべき仕事の方が多く、 お手伝いはいつでも歓迎されています。 FreeBSD プロジェクトはカーネルや散在しているユーティリティよりも、 オペレーティングシステム環境に対して責任を持っています。 私たちの TODO リストには文書整備、 ベータテスト、インストーラや専門化されたタイプの カーネル開発の好例を紹介するなど非常に広い範囲の作業があります。 あなたの技能レベルや分野に関わらず、 プロジェクトを支援できることが必ず何かあります! FreeBSD 関連の事業に携わる商業団体が私たちにコンタクトすることも歓迎しています。 あなたの製品を (FreeBSD 上で) 動作させるには、 特別な拡張が必要ではありませんか? あまりにも風変わりな要求でなければ、 それを受け入れる用意が私たちにあるとわかるはずです。 付加価値のある製品ですか? 私たちに知らせてください! 多分私たちは、 ある面において共同して作業をすることができるでしょう。 フリーソフトウェア界は、 ソフトウェアがどのように開発され、 販売され、保守されていくかについて、既存の仮説に挑戦しています。 少なくとももう一度考慮してみることを私たちは強くお奨めします。 何が必要? 次の課題とサブプロジェクトの一覧は、色々な TODO リストとユーザからの要求を合わせたものです。 進行中の非プログラマ向けの課題 FreeBSD に関わっている中には、プログラマではない人が たくさんいます。プロジェクトには、文書を書く人、Web デザイナ、 サポートを行う人がいます。貢献するのに必要なのは、時間の投資と学ぶ 意欲です。 定期的に FAQ とハンドブックを通して読んでみてください。 もしまずい説明や古い事柄や完全に間違っていることなどがあれば 私達に教えてください。 さらに良いのは我々に修正案を送ることです (SGML は学ぶのにそれほど難しくありませんが、 プレインテキストでも問題はありません)。 FreeBSD の文書を自分の母国語に翻訳するのを手伝ってください。 文書がすでに存在すれば、もっと文書を翻訳したり、 その翻訳が最新の状態かどうか確認するのを手伝うことができます。 まず FreeBSD ドキュメンテーションプロジェクト入門の 翻訳に関する FAQ (よくある質問とその答え) を一読してください。 とはいっても、 そうすることによってあなたがすべての FreeBSD 文書の翻訳に携わるようになるわけではないですからね。 — ボランティアとして、 多少に関わらず、自分がやろうと思うだけやってください。 いったん誰かが翻訳を始めたら、 たくさんの人達がいつだって協力してくれますから。 もし翻訳に費す時間やエネルギーが限られているなら、 まずインストール方法の翻訳からお願いします (訳注: なぜなら、 もっとも必要とされている文書がそれだからです)。 たまに (もしくは定期的に) &a.questions; や &ng.misc; を読んでください。 これは、あなたの持っている専門知識を共有したり、 誰かが抱えている問題を解決するのに非常に有効なものになり得ることです。 時にはあなた自身で新しいことを学ぶことさえできるかもしれません。 これらのフォーラムはやるべきことのアイディアの源にもなり得るのです。 進行中のプログラマ向けの課題 このセクションで挙げる課題は膨大な時間の投資または FreeBSD のカーネルに関する深い知識、もしくは両方を必要とします。 しかしながら、週末ハッカー に適した立派な課題も 数多くあります。 FreeBSD-CURRENT を運用しており、 状態の良いインターネット接続があるならば、 current.FreeBSD.org という一日に一回フルリリースを行っているマシンがあります — 時おり最新のリリースをそこからインストールし、 その過程で何か問題があるなら報告してください。 &a.bugs; を読んでください。 そこではあなたが建設的なコメントを付けたりテストできるパッチが 提供されているような問題があるかもしれません。 もしくはそれらの問題の一つをあなた自身で 修正することさえできるかもしれません。 -CURRENT に正しく当てられるがしばらく経っても (通常は 2, 3 週間) -STABLE に取り込まれてないようなバグフィックスがあるならばコミッターに丁寧に思い出させてください。 寄贈ソフトウェアをソースツリーの src/contrib に移動させてください。 src/contrib 以下のコードが最新のものであるか確認してください。 警告を詳細に報告するようにしてソースツリー全体 (もしくはその一部) を構築してみてください。 そして警告が出ないようにしてください。 ports で、gets() を使っているとか malloc.h をインクルードしているなどといった警告が出ないようにしてください。 もしなんらかの ports に関わっているなら、 あなたのパッチを作者にフィードバックしてください (次のバージョンが出た時にあなたが楽になります)。 &posix; のような公式標準の写しを入手してください。 FreeBSD C99 & POSIX 標準適合プロジェクトのウェブサイトに、 そういった標準へのリンクがいくつかあります。FreeBSD の挙動を 標準が要求するものと比較してください。挙動が異なる場合、 特にそれが仕様の取るに足らなかったり分かりにくい細かい部分なら、 障害報告を提出してください。できればどう修正すべきか明らかにして、 障害報告にパッチをつけてください。標準が間違っていると感じたら、 標準化団体にその疑問を糺してください。 この一覧に追加する課題を提案してください! 障害報告 (PR; Problem Report) データベースにおける作業 障害報告 (PR) データベース - FreeBSD + FreeBSD 障害報告一覧では、現在問題となっている障害報告と、 FreeBSD の利用者によって提出された改良の要望すべての一覧を公開しています。 障害報告データベースには、プログラマ向けと非プログラマ向けの 課題が共に含まれています。 open 状態の障害報告を見て、興味を引くものがあるか確かめてください。 なかには、障害報告に対する修正が適切なものであるかどうか単に チェックするだけのとても簡単な作業もあるでしょうし、ずっと 複雑なものや、修正が含まれてすらいないものもあるでしょう。 まず、まだ誰にも割り当てられていない障害報告から作業を始めてください。 もし、誰か他の人に割り当てが決まっているけれども自分が作業可能だ、 という障害報告があれば、作業ができるかどうか — 既にテスト用パッチが用意されているのかどうか、あるいは その問題についてあなたが考えている、 より進んだ考えに関して議論ができるかどうか、 割り当てられている人に電子メールで問い合わせてください。 貢献の仕方 一般的に、システムへの貢献は次の 5 つのカテゴリの 1 つ以上に分類されます: バグ報告と一般的な論評 一般的な技術的関心事に関するアイデアや提案は &a.hackers; へメールしてください。同様に、このような事柄に興味のある (そして膨大なメール! に耐えられる) 人は、 &a.hackers; に参加すると良いでしょう。 このメーリングリストや他のメーリングリストに関する詳しい情報については FreeBSD ハンドブックを参照してください。 バグを発見したり変更を送付しようとしている場合は &man.send-pr.1; プログラムか ウェブベースの send-pr を使用して報告してください。 バグレポートの各項目を埋めるようにしてください。65KB を超えるのでなければ、 レポート中に直接パッチを入れてくださって結構です。 パッチがソースツリーにすぐ適用できるものならば、 報告の概要に [PATCH] と書いておいてください。 パッチを入れる場合、カット&ペーストはしないで ください。カット&ペーストではタブがスペースに展開されて パッチが使い物にならなくなってしまいます。 20KB を超える場合は、 それらを compress して &man.uuencode.1; することも検討してください。 レポートがファイリングされれば、 バグ報告の確認とトラッキング番号をメールで受け取るはずです。 このトラッキング番号を覚えておき、問題に関する詳細情報を - FreeBSD-gnats-submit@FreeBSD.org に - メールで送って更新できるようにしてください。たとえば + &a.bugfollowup; + にメールで送って更新できるようにしてください。たとえば "Re: kern/3377" のように、 この番号をサブジェクト行に使用してください。 すべてのバグレポートの追加情報は、 この方法で送付されなければいけません。 もしタイムリーに (あなたの電子メール接続形態にもよりますが、 3 日から 1 週間) 確認を受けとれないとか、何らかの理由で &man.send-pr.1; コマンドが使用できない場合には、&a.bugs; へメールを送り、 誰か代りにバグ報告を送付してもらうようたずねてください。 良い障害報告を書く方法についてはこの文書をご覧ください。 文書の変更 文書に関する提案 文書の変更は &a.doc; が監督しています。 完全な説明は、FreeBSD ドキュメンテーションプロジェクト入門をご覧ください。 バグ報告と一般的な論評 に記述されているように &man.send-pr.1; コマンドを使用して、提案や変更 (どんな些細なものでも歓迎します!) を送ってください。 現存のソースコードの変更 FreeBSD-CURRENT 現存のソースコードへの追加または変更は、 いくらかトリッキーな仕事であり、FreeBSD 開発の現状にあなたがどれだけ通じているかに大きく依存します。 FreeBSD-CURRENT として知られる FreeBSD の特別な継続的リリースがあります。FreeBSD-CURRENT は開発者の積極的な活動の便宜のために、 色々な方法で利用可能になっています。FreeBSD-CURRENT の入手と使用方法についての詳しい情報についてはFreeBSD ハンドブック を参照してください。 古いソースをもとに作業すると、残念ながらあなたの変更が 時として時代遅れもしくは大きく異なるものになってしまって、 FreeBSD に再統合するのは困難になる恐れがあります。 システムの現状に関する議論がおこなわれている &a.announce; と &a.current; へ参加すれば、この可能性を最小限にできます。 十分新しいソースを変更のベースにできることが確実になったと仮定して、 次のステップは FreeBSD の保守担当者へ送る差分ファイルの生成です。これは &man.diff.1; コマンドを使用しておこないます。 diff たとえば、 &prompt.user; diff -c oldfile newfile または &prompt.user; diff -c -r olddir newdir で、指定されたソースファイルまたはディレクトリ階層に対する コンテキスト形式の差分が生成されます。 同様に、 &prompt.user; diff -u oldfile newfile または、 &prompt.user; diff -u -r olddir newdir で、unified diff 形式である以外は同じ結果が得られます。 詳しい説明は &man.diff.1; のマニュアルページを参照してください。 差分ファイル (&man.patch.1; コマンドでテストできます) を作ったら、それらを FreeBSD に含めてもらうようメールで送ってください。バグ報告と一般的な論評 に記述されているように &man.send-pr.1; コマンドを使用してください。差分ファイルだけを &a.hackers; へ送ってはいけません。見過ごされてしまうでしょう。 あなたの提案は大歓迎です (これはボランティアのプロジェクトです!)。 私たちは多忙なのですぐに取りかかれないかもしれませんが、 それまで PR データベースに残っているでしょう。 報告の概要に [PATCH] と書いてあなたの提案を表明してください。 uuencode あなたがそうした方がいいと思う場合 (たとえば、 ファイルの追加、削除または名称変更など)、変更を tar ファイルにまとめ、&man.uuencode.1; プログラムにかけてください。&man.shar.1; アーカイブも歓迎します。 たとえば、再配布に適用される著作権の問題に自信がないとか、 より厳しいレビューを行わなければどうしてもリリースできない場合など、 あなたの変更が微妙な性質のものである可能性があれば、 &man.send-pr.1; で提出するよりむしろ直接 &a.core; へ送ってください。&a.core; 宛のメールは、 日々の仕事のかなりの割合を FreeBSD に割いている人たちの、 より小さなグループに届きます。 このグループもまたとても忙しいことに注意して、 本当に必要な場合だけコアチームにメールを送るようにしてください。 コーディングスタイルに関して &man.intro.9; および &man.style.9; を参照してください。コードを提出する前には、 少なくともこの情報を意識しておいてくださるようお願いします。 新たなコードやきわめて付加価値の高いパッケージ 大きな分量の作業成果の貢献や、重要な新しい機能を FreeBSD に追加する場合には、大抵、変更点を tar ファイルにまとめて uuencode して送るか、ウェブサイトや FTP サイトへアップロードして アクセスできるようにしなければなりません。 web や FTP サイトが利用できなければ、適切な FreeBSD の メーリングリストで誰かその変更をおくサイトを提供してくれるよう 頼んでください。 大量のコードを扱っている時は、常に著作権に関する微妙な問題が 出てきます。FreeBSD に含めるコードの著作権として受け入れることが できるのは、以下の二つです。 BSD copyright BSD コピーライト。 このコピーライトは 権利に縛られない 性格と商用企業にとって一般的な魅力をもつために最も好まれます。 FreeBSD プロジェクトは商用利用を阻んだりせず、何かを FreeBSD へ投資する気になった商業関係者による参加を積極的に奨励します。 GPLGNU General Public License GNU General Public License GNU一般公有使用許諾、または GPL。 このライセンスはコードを商用目的に使用する場合に余分な努力が求められるため、 私たちにあまり評判が良いというわけではありません。しかし、 私たちは既に GPL 下の高品質なコード (コンパイラ、アセンブラ、テキストフォーマッタ等) の提供を受けており、私たちは現在それを必要としています。そのため、 このライセンスによる新たな貢献を拒絶するというのは愚かなことでしょう。GPL 下のコードはソースツリーの別の部分、現在のところ /sys/gnu/usr/src/gnu に入っています。 そのため、GPL が問題となるような人は、 誰でも簡単にそれとわかるようになっています。 これ以外のタイプの著作権による寄贈は、FreeBSD へ含めることを考慮する前に注意深いレビューを受けなければなりません。 特に限定的な商用の著作権が適用される寄贈は一般に拒否されます。 しかし、作者が独自の経路でそのような変更を配布することは常に 奨励されています。 あなたの作品に BSD スタイル の著作権を付けるには、 保護したいソースコードファイルすべての一番最初に以下のテキストを入れて、 %% の間を適切な情報に置き換えてください。 Copyright (c) %%適切な年%% %%あなたの名前%%, %%あなたの州%% %%郵便番号%%. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer as the first lines of this file unmodified. 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. THIS SOFTWARE IS PROVIDED BY %%あなたの名前%% ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL %%あなたの名前%% BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. $Id$ 便宜をはかるため、 このテキストのコピーは次の場所に置いてあります。 /usr/share/examples/etc/bsd-style-copyright 訳注 以下は神田敏広氏より寄贈された bsd-style-copyright の日本語訳です。 ソースファイルに含めるものは原文の方であることに注意してご利用ください。 また、原文との間に趣旨の差異が生じた場合、 原文の内容が FreeBSD プロジェクトの意思であるものとします。 Copyright (C) [年] [あなたの名前] All rights reserved. ソースとバイナリ形式の再配布および使用は、変更の有無にかかわらず以下の 条件を満たす場合に限り許可される: 1. ソースコードの再配布は、上記の著作権表示・この条件のリスト・下記の 否認声明文を保持しなければならない。 2. バイナリ形式の再配布は上記の著作権表示・この条件のリスト・下記の 否認声明文を、配布物と共に提供される文書および/または他の資料の中に 含めなければならない。 (訳注:ここから「否認声明文」です) このソフトウェアは[あなたの名前]および貢献者によって ``あるがままの状態'' で提供され、商品性と特定の目的に対する適合性についての暗黙の保証に留ま らず、いかなる明示および暗黙の保証を認めない。[あなたの名前]および貢献 者は、あらゆる直接的・間接的・偶発的・特殊的・典型的・必然的な損害 (代 替製品または代替サービスの獲得費; 効用・データ・利益の喪失; または業務 中断を含み、またそれだけに留まらない損害) に対して、たとえどのようにし て生じたとしても、そしてこのソフトウェアの使用によってどのようにであれ 生じる、契約上であろうと、厳密な責任内であろうと、あるいは不正行為 (過 失やそうでない場合を含む) における場合であろうとも、いかなる責任論上も、 たとえそのような損害の可能性が予見されていたとしても、一切の責任を持た ない。 翻訳: 神田敏広 御協力 (五十音順・敬称略): 池田研二、内川 喜章、藤村 英治、むらたしゅういちろう 杢野 雅一、横田@宇都宮 金銭、ハードウェアまたはインターネットアクセス 私たちは FreeBSD プロジェクトの目的を進めるための寄付を 常に喜んで受け入れています。私たちのようなボランティア活動では、 ちょっとしたことが大いに役立つのです! また一般的に、私たちは自前で周辺機器を買う資金が不足しているため、 周辺機器のサポートを充実させるのにハードウェアの寄付はとても重要です。 資金の寄付 - FreeBSD 財団は、FreeBSD プロジェクトの目標を推進するために + The FreeBSD Foundation は、FreeBSD プロジェクトの目標を推進するために 設立された、非営利の、税金を免除された財団です。501(c)3 に - 適合する団体として、財団はアメリカ合衆国連邦所得税ならびに + 適合する団体として、Foundation はアメリカ合衆国連邦所得税ならびに コロラド州所得税を一般に免除されています。免税団体への寄付は、 多くの場合連邦政府の課税対象所得から控除できます。 寄付は小切手で以下に送ってください。
The FreeBSD Foundation 7321 Brockway Dr. Boulder, CO 80303 USA
また、寄付の受け付けを PayPal を通じて web 経由でできるようになりました。 - 寄付をするには、FreeBSD 財団の + 寄付をするには、The FreeBSD Foundation の web サイトを ぜひご覧ください。 - FreeBSD 財団に関するこれ以上の情報は + The FreeBSD Foundation に関するこれ以上の情報は The FreeBSD Foundation -- an Introduction を見てください。 - 財団への email での連絡は + Foundation への email での連絡は bod@FreeBSDFoundation.org へどうぞ。
ハードウェアの寄贈 寄贈 FreeBSD プロジェクトは適切な使い道のあるハードウェアの 寄付を喜んで受け入れています。ハードウェアを寄贈しようとしているなら、 寄贈品受付事務局に連絡してください。 インターネットアクセスの寄付 私たちは常に FTP、WWW や cvsup の新しいミラーサイトを募集しています。 ミラーサイトになりたい場合には Mirroring FreeBSD を見て、詳しい情報を手に入れてください。
diff --git a/ja_JP.eucJP/articles/contributors/Makefile b/ja_JP.eucJP/articles/contributors/Makefile index bd0f2046dd..73bef94e6d 100644 --- a/ja_JP.eucJP/articles/contributors/Makefile +++ b/ja_JP.eucJP/articles/contributors/Makefile @@ -1,31 +1,33 @@ # # $FreeBSD$ # # Article: Contributors to FreeBSD # -# Original revision: 1.9 +# Original revision: 1.10 DOC?= article FORMATS?= html WITH_ARTICLE_TOC?= YES INSTALL_COMPRESSED?=gz INSTALL_ONLY_COMPRESSED?= ORGDIR= ${DOC_PREFIX}/en_US.ISO8859-1/articles/contributors SRCS= article.sgml SRCS+= ${ORGDIR}/contrib.ent SRCS+= ${ORGDIR}/contrib.386bsd.sgml SRCS+= ${ORGDIR}/contrib.additional.sgml SRCS+= ${ORGDIR}/contrib.committers.sgml SRCS+= ${ORGDIR}/contrib.core.sgml SRCS+= ${ORGDIR}/contrib.corealumni.sgml SRCS+= ${ORGDIR}/contrib.develalumni.sgml +SRCS+= ${ORGDIR}/contrib.docproj.sgml SRCS+= ${ORGDIR}/contrib.staff.sgml +SRCS+= ${ORGDIR}/contrib.who.sgml URL_RELPREFIX?= ../../../.. DOC_PREFIX?= ${.CURDIR}/../../.. .include "${DOC_PREFIX}/share/mk/doc.project.mk" diff --git a/ja_JP.eucJP/articles/contributors/article.sgml b/ja_JP.eucJP/articles/contributors/article.sgml index 697b879d72..5c48ef69e6 100644 --- a/ja_JP.eucJP/articles/contributors/article.sgml +++ b/ja_JP.eucJP/articles/contributors/article.sgml @@ -1,739 +1,492 @@ %articles.ent; %contrib.ent; ]>
FreeBSD への貢献者 $FreeBSD$ &tm-attrib.freebsd; &tm-attrib.cvsup; &tm-attrib.sun; &tm-attrib.general; この文書は FreeBSD に貢献した個人や組織を列記したものです。 寄贈者ギャラリー FreeBSD プロジェクトは次の寄贈者に恩義を受けており、 ここに公表して感謝の意を表したいと思います。 セントラルサーバプロジェクトへの寄贈者: 次にあげる個人および企業からは、 新しいセントラルサーバマシンのための部品の寄贈を頂きました。 これにより、freefall.FreeBSD.org をリプレースして、新しい FreeBSD サーバマシンを 構築することができました。 &a.mbarkah と彼の所属する Hemisphere Online は、Pentium Pro (P6) 200MHz CPU を寄贈してくださいました。 ASA Computers は、Tyan 1662 マザーボード を寄贈してくださいました。 ViaNet Communications の Joe McGuckin joe@via.net は、Kingston イーサネットコントローラ を寄贈してくださいました。 Jack O'Neill jack@diamond.xtalwind.net は、 NCR 53C875 SCSI コントローラカード を寄贈してくださいました。 Alameda Networks の Ulf Zimmermann ulf@Alameda.net は、128 MB のメモリ、そして 4 GB のディスクドライブと匡体 を寄贈してくださいました。 直接的な資金提供 次にあげる個人および企業からは FreeBSD プロジェクトに対する直接的な 資金提供を頂いています。 Annelise Anderson ANDRSN@HOOVER.STANFORD.EDU &a.dillon; Blue Mountain Arts Epilogue Technology Corporation &a.sef; Global Technology Associates, Inc Don Scott Wilde Gianmarco Giovannelli gmarco@masternet.it Josef C. Grosch joeg@truenorth.org Robert T. Morris &a.chuckr; Imaginary Landscape, LLC. の Kenneth P. Stox ken@stox.sa.enteract.com Dmitry S. Kohmanyuk dk@dog.farm.org 日本の Laser5 は、さまざまな種類の FreeBSD CD の販売利益の一部を 寄付してくれました。 蕗出版 は、はじめての FreeBSD の売り上げの一部を FreeBSD プロジェクト及び XFree86 プロジェクトへ寄付してくれました。 アスキー は FreeBSD 関連の書籍の売り上げの一部を FreeBSD プロジェクトおよび FreeBSD 友の会へ寄付してくれました。 横河電機株式会社 からは FreeBSD プロジェクトへ多大な寄付をいただきました。 BuffNET Pacific Solutions Siemens AG, Andre Albsmeier andre.albsmeier@mchp.siemens.de Chris Silva ras@interaccess.com ハードウェアの寄贈者 次にあげる個人および企業からは、 テストやデバイスドライバの開発 / サポート のためのハードウェアの寄贈を頂いています。 BSDi は、 ネットワークへのアクセスおよび 他のハードウェアリソースの寄贈はいうまでもなく、 開発に使うための Pentium P5-90 と 486/DX2-66 EISA/VL のシステム数台を提供してくださいました。 Compaq から、さまざまな種類の Alpha システムを FreeBSD プロジェクトに寄贈していただきました。 この豊富な寄贈品の中には AlphaStation DS10 4 台、AlphaServer DS20 1 台、 AlphaServer 2100 数台、AlphaServer 4100 1 台、 500Mhz の CPU を搭載したパーソナルワークステーション 8 台、 433Mhz の CPU を搭載したパーソナルワークステーション 4 台が含まれ、 それ以外にも数々の支援をいただきました。 上記のマシンは、FreeBSD/Alpha における リリースエンジニアリング作業、package 構築、SMP の開発、 そして一般的な開発に利用されています。 TRW Financial Sysytems 社は、PC 130 台、68 GB のファイルサーバ 3 台、12 のイーサネット、 ディスクレスコードのデバッグをおこなうための ルータ 2台及び ATM スイッチを提供してくださいました。また、 彼らは 2、3 人の FreeBSD ハッカーを雇って、FreeBSD に専念させてくださっております。 ありがとうございます! Dermot McDonnell は、東芝 XM3401B CD-ROM ドライブを 寄贈してくださいました。その CD-ROM ドライブは現在 freefall で使用されています。 Chuck Robey chuckr@glue.umd.edu は、実験用のフロッピーテープストリーマを 寄付してくださいました。 Larry Altneu larry@ALR.COM と &a.wilko;は、wt ドライバを改良するために Wangtek と Archive の QIC-02 テープドライブを提供してくださいました。 Ernst Winter ewinter@lobo.muc.de は、 このプロジェクトへ 2.88 MB のフロッピードライブを提供してくださいました。 うまくいけば、 これでフロッピーディスクドライバを書き直すための プレッシャーが増えるでしょう。 Tekram Technologies は NCR ドライバや AMD ドライバと自社のカードの逆行テストのため FAST/ULTRA SCSI ホストアダプタ DC-390、DC-390U、DC-390F を 各1枚提供してくださいました。また、フリーな OS のためのドライバの ソースを自社の FTP サーバ で公開されていることも称賛に値するでしょう。 Larry M. Augustin は Symbios Sym8751S SCSI カードを寄贈してくださっただけでなく、Ultra-2 や LVD をサポートする次期チップ Sym53c895 のものを含む データブックのセットと、最新の Symbios SCSI チップが持つ先進的機能を安全に使う方法について書かれた 最新のプログラミングマニュアルも寄贈してくださいました。 本当にありがとうございます! Christoph Kukulies kuku@FreeBSD.org は、IDE CD-ROM ドライバ開発用の FX120 12 倍速 Mitsumi CD-ROM ドライブを提供してくださいました。 Mike Tancsa mike@sentex.ca は、 拡張カードの対応と、netatm ATM スタックの開発作業のために 4 枚の ATM PCI カードを寄贈してくれました。 特筆すべき寄贈者 BSDi (かつての Walnut Creek CDROM) は、 言い表せないほど多くの寄付をしてくださいました (詳細は FreeBSD ハンドブックの 「FreeBSD プロジェクトについて」の章をご覧ください)。 特に、私たちのもともとのプライマリ開発マシンである freefall.FreeBSD.org、 テストおよびビルドマシンである thud.FreeBSD.org で使用しているハードウェアに対し感謝したいと思います。 また彼らには、数年にわたる色々な貢献者への資金提供や、 インターネットへの T1 コネクションの無制限使用を提供して 頂いた恩義があります。 interface business GmbH, Dresden は、&a.joerg; を根気よくサポートしてくださいました。彼は本職より FreeBSD の仕事を好みがちであり、彼個人の接続があまりに 遅くなったり途切れたりして仕事にならない時は必ず interface business の (非常に高価な) EUnet インターネット接続に頼ったものです…。 Berkeley Software Design, Inc. は、同社の DOS エミュレータのコードを BSD コミュニティ全体に対して提供してくれました。このコードは、 doscmd コマンドに利用されています。 FreeBSD コアチーム FreeBSD コアチームは、 プロジェクトの 運用委員会 を形成し、FreeBSD プロジェクトの全般的な目的や方針の決定を行います。さらに、 FreeBSDプロジェクトの 特定の分野の 運用も行っています。 (姓でアルファベット順): &contrib.core; その他の &os; チーム &os; プロジェクトは必要に応じて特定の人達に権限を委任しています。 現在、活躍しているさまざまなチームの指定分野とそのメンバを以下に紹介します。 &contrib.staff; FreeBSD の開発者たち (CVS の) commitする権利を持っていて、FreeBSD のソースツリーについて 作業をおこなっている人々がいます。 すべてのコアチームのメンバはまた開発者でもあります。 (姓でアルファベット順) &contrib.committers; FreeBSD ドキュメンテーションプロジェクト FreeBSD ドキュメンテーションプロジェクトは複数のサービスを提供 しています。それぞれのサービスは、以下の担当者とその 副担当者によって運用されています。 - - - ドキュメンテーションプロジェクト担当 - - - &a.doceng; - - - - - ハンドブック編集担当 - - - &a.doc; - - - - - FAQ 編集担当 - - - &a.doc; - - - - - ニュースフラッシュ編集担当 - - - &a.www; - - - - - - In the Press 編集担当 - - - &a.jkoshy; - - - - - FreeBSD Really-Quick NewsLetter編集担当 - - - Chris Coleman chrisc@vmunix.com - - - - - 商用ベンダーページ担当 - - - &a.brueffer; - - - - - ユーザグループ担当 - - - &a.grog; - - - - - FreeBSD &java; プロジェクト - - - &a.patrick; - - - + &contrib.docproj; 担当者 - - - - ドキュメンテーションプロジェクト担当 - - - &a.doceng; - - - - - CVSup ミラーサイトコーディネータ - - - &a.cvsup-master; - - 担当: - - &a.kuriyama; (責任者), - - &a.jdp; (アドバイザ) - - - - - FTP/WWW ミラーサイトコーディネータ - - - &a.mirror-admin; - - 担当: - - &a.kuriyama;, - &a.kensmith; - - - - - 地域化 - - - &a.ache; - - - - - ポストマスタ - - - FreeBSD.org - ポストマスタチーム postmaster@FreeBSD.org - - 担当: - - David Wolfskill - - - - - リリースコーディネーション - - - &a.re; (リーダは &a.murray;) - - - - - 広報および渉外担当 - - - 空席 - - - - - - セキュリティオフィサ - - - &a.security-officer; (リーダは &a.nectar;) - - - - - - CVS ツリー管理者 - - - 責任者: &a.peter; - - 副責任者: &a.markm;, &a.joe; - - - - - - ウェブサイト管理者 - - - &a.www; - - - - - - Ports マネージャ - - - &a.portmgr; - - 以下のメンバで構成されています。 - - &a.kris;, - &a.marcus;, - &a.linimon;, - &a.eik;, - &a.krion;, - &a.erwin; (秘書) - - - - - 標準化担当 - - - &a.wollman; - - - - - XFree86 Project, Inc. との渉外担当 - - - &a.rich; - - - - - - GNATS 管理者 - - - &a.ceri; - &a.keramida; - &a.linimon; - - - - - Bugmeisters - - - &a.ceri; - &a.keramida; - &a.linimon; - - - - - 寄贈品受付事務局 - - - &a.donations; - - 以下のメンバで構成されています。 - - &a.mwlucas - &a.nsayer - &a.obrien - &a.rwatson - &a.trhodes - - - - + &contrib.who; コアチームの卒業生 コアチーム (core team) 次にあげる人々は () で記した期間、FreeBSD コアチームのメンバーでした。FreeBSD プロジェクトにおける彼らの努力に感謝の意を表します。 だいたいの年代順 &contrib.corealumni; 開発チームの卒業生 開発チーム (development team) 次にあげるのは、かつて FreeBSD 開発チームの一員だった人々です。 FreeBSD プロジェクトに貢献してくださった彼らに感謝します。 ほぼ年代順に: &contrib.develalumni; BSD 派生ソフトウェアへの貢献者 このソフトウェアは最初は William F. Jolitz の 386BSD release 0.1 から派生しましたが、オリジナルの 386BSD に固有のコードはほとんど残っていません。 このソフトウェアは基本的にはカリフォルニア大学 バークレイ校の Computer Science Research Group (CSRG) とその共同研究者 たちによる 4.4BSD-Lite リリースから再実装されました。 また、NetBSD や OpenBSD の一部も FreeBSD に取り込まれています。したがって私たちは NetBSD と OpenBSD へ貢献した人々すべてに感謝します。 その他の FreeBSD への貢献者 (名前でアルファベット順) &contrib.additional; 386BSD パッチキットへのパッチ提供者 (名前でアルファベット順): &contrib.386bsd;
diff --git a/ja_JP.eucJP/articles/fbsd-from-scratch/Makefile b/ja_JP.eucJP/articles/fbsd-from-scratch/Makefile index 58cdcde341..559ffd4e4b 100644 --- a/ja_JP.eucJP/articles/fbsd-from-scratch/Makefile +++ b/ja_JP.eucJP/articles/fbsd-from-scratch/Makefile @@ -1,32 +1,32 @@ # # $FreeBSD$ # # Article: FreeBSD From Scratch # # Original revision: 1.6 DOC?= article FORMATS?= html MAINTAINER= schweikh@FreeBSD.org INSTALL_COMPRESSED?= gz INSTALL_ONLY_COMPRESSED?= -#EXTRAS= stage_1.conf.default +EXTRAS= stage_1.conf.default EXTRAS+= stage_1.sh -#EXTRAS+= stage_2.conf.default +EXTRAS+= stage_2.conf.default EXTRAS+= stage_2.sh EXTRAS+= stage_3.mk SRCS= article.sgml SRCS+= ${EXTRAS} afterinstall: .for entry in ${EXTRAS} ${INSTALL_DOCS} ${.CURDIR}/${entry} ${DESTDIR} .endfor DOC_PREFIX?= ${.CURDIR}/../../.. .include "${DOC_PREFIX}/share/mk/doc.project.mk" diff --git a/ja_JP.eucJP/articles/fbsd-from-scratch/stage_1.conf.default b/ja_JP.eucJP/articles/fbsd-from-scratch/stage_1.conf.default new file mode 100644 index 0000000000..00646e2ad8 --- /dev/null +++ b/ja_JP.eucJP/articles/fbsd-from-scratch/stage_1.conf.default @@ -0,0 +1,190 @@ +# このファイル: stage_1.conf.default は stage_1.sh から読み込まれます。 +# +# $FreeBSD$ +# +# Original Revision: 1.3 + +# 新しいシステムを作成する場所を示すルートマウントポイントを指定。 +# マウントポイントとして使われるだけなので、マウントポイントのある +# ファイルシステムにファイルは置かれず、書き込みはすべてマウントした +# ファイルシステムに行なわれる。 +DESTDIR="/newroot" + +# src ツリーのある場所。 +SRC="/usr/src" + +# make buildkernel KERNCONF=... で指定するカーネルコンフィグレーションファイル名。 +KERNCONF="HAL9000" + +# 利用できるタイムゾーンは /usr/share/zoneinfo 以下のファイルに記載されている。 +TIMEZONE="Europe/Berlin" + +# +# create_file_systems 関数は、DESTDIR 下にマウントポイントを作成し、 +# ファイルシステムを作成し、DESTDIR 下にマウントしなければならない。 +# +create_file_systems () { + # 新しいルートファイルシステムを作成する。必須。 + # DEVICE を変更すること。変更しないとシステムが壊れる危険性がある。 + # grub から起動したい場合は、ルートファイルシステム作成には + # newfs -O 1 を使わなければならない。 + DEVICE=/dev/da0s1a + mkdir -m 755 -p ${DESTDIR} + chown root:wheel ${DESTDIR} + newfs -U -O 1 ${DEVICE} + mount -o noatime ${DEVICE} ${DESTDIR} + + # その他のファイルシステムと初期マウントポイント。オプション。 + DEVICE=/dev/da0s1e + mkdir -m 755 -p ${DESTDIR}/var + chown root:wheel ${DESTDIR}/var + newfs -U ${DEVICE} + mount -o noatime ${DEVICE} ${DESTDIR}/var + + DEVICE=/dev/da2s1e + mkdir -m 755 -p ${DESTDIR}/usr + chown root:wheel ${DESTDIR}/usr + newfs -U ${DEVICE} + mount -o noatime ${DEVICE} ${DESTDIR}/usr +} + +# +# create_etc_fstab 関数は、create_file_systems で作成されたファイルシ +# ステムに対応する fstab を生成しなければならない。 +# +create_etc_fstab () { + cat <${DESTDIR}/etc/fstab +# Device Mountpoint FStype Options Dump Pass# +/dev/da0s1b none swap sw 0 0 +/dev/da1s1b none swap sw 0 0 +/dev/da2s2b none swap sw 0 0 +/dev/da3s2b none swap sw 0 0 +/dev/da0s1a / ufs rw,noatime 1 1 +/dev/da0s1e /var ufs rw,noatime 1 1 +/dev/da2s1e /usr ufs rw,noatime 1 1 +/dev/vinum/Share /share ufs rw,noatime 0 2 +/dev/vinum/home /home ufs rw,noatime 0 2 +/dev/vinum/ncvs /home/ncvs ufs rw,noatime 0 2 +/dev/vinum/ports /usr/ports ufs rw,noatime 0 2 +/dev/ad1s1a /flash ufs rw,noatime 0 0 +/dev/ad0s1 /2k ntfs ro,noauto 0 0 +/dev/ad0s6 /linux ext2fs ro,noauto 0 0 +# +/dev/cd0 /cdrom cd9660 ro,noauto 0 0 +/dev/cd1 /dvd cd9660 ro,noauto 0 0 +proc /proc procfs rw 0 0 +linproc /compat/linux/proc linprocfs rw 0 0 +EOF + chmod 644 ${DESTDIR}/etc/fstab + chown root:wheel ${DESTDIR}/etc/fstab +} + +# +# copy_files 関数は、mergemaster が実行される前にファイルをコピーするのに +# 使われる。 +# +copy_files () { + # 好みに応じて、このリストに追加・削除すること。ほとんどの場合は必須。 + for f in \ + /.profile \ + /etc/group \ + /etc/hosts \ + /etc/inetd.conf \ + /etc/ipfw.conf \ + /etc/make.conf \ + /etc/master.passwd \ + /etc/nsswitch.conf \ + /etc/ntp.conf \ + /etc/printcap \ + /etc/profile \ + /etc/rc.conf \ + /etc/resolv.conf \ + /etc/start_if.xl0 \ + /etc/ttys \ + /etc/ppp/* \ + /etc/mail/aliases \ + /etc/mail/aliases.db \ + /etc/mail/hal9000.mc \ + /etc/mail/service.switch \ + /etc/ssh/*key* \ + /etc/ssh/*_config \ + /etc/X11/XF86Config-4 \ + /var/cron/tabs/* \ + /var/files \ + /root/.profile \ + /boot/*.bmp \ + /boot/loader.conf \ + /boot/device.hints ; do + cp -p ${f} ${DESTDIR}${f} + done +} + +# +# ほかに新しいシステムで調整したいことすべて。 +# 注意: あまり多くのバイナリをこの時点でインストールしないこと。稼働している +# 古いシステムと、インストールした新しいバイナリ・ヘッダを組み合わせると、 +# ブートストラップ問題に陥る可能性がある。ports は新しいシステムが起動した後に +# 再構築する方がよい。 +# +all_remaining_customization () { + # compat シンボリックリンクがないと、linux_base のファイル群が + # ルートファイルシステムに置かれてしまう。 + cd ${DESTDIR} + mkdir -m 755 usr/compat; chown root:wheel usr/compat; ln -s usr/compat + mkdir -m 755 usr/compat/linux; chown root:wheel usr/compat/linux + mkdir -m 555 usr/compat/linux/proc; chown root:wheel usr/compat/linux/proc + mkdir -m 755 boot/grub; chown root:wheel boot/grub + mkdir -m 755 linux 2k; chown root:wheel linux 2k + mkdir -m 755 src; chown root:wheel src + mkdir -m 755 share; chown root:wheel share + mkdir -m 755 dvd cdrom flash; chown root:wheel dvd cdrom flash + mkdir -m 755 home; chown root:wheel home + mkdir -m 755 usr/ports; chown root:wheel usr/ports + + # 私の好みは tmp を var/tmp にシンボリックリンクすること。オプション。 + cd ${DESTDIR}; rmdir tmp; ln -s var/tmp + + # /etc/printcap で指定したスプールディレクトリを作成。 + cd ${DESTDIR}/var/spool/output/lpd; mkdir -p as od ev te lp da + touch ${DESTDIR}/var/log/lpd-errs + + # /home パーティションを共有していなければコピーした方がよいかも知れない。 + # mkdir -p ${DESTDIR}/home + # cd /home; tar cf - . | (cd ${DESTDIR}/home; tar xpvf -) + + case ${REVISION} in + 4.*) + # 4.x には devfs がないので、ハードウェアに合わせて非標準のデバイスを作成する。 + cd ${DESTDIR}/dev + ./MAKEDEV all + ./MAKEDEV da0 da0s1h da0s2h da0s3h da0s4h + ./MAKEDEV da1 da1s1h da1s2h da1s3h da1s4h + ./MAKEDEV da2 da2s1h da2s2h da2s3h da2s4h + ./MAKEDEV da3 da3s1h da3s2h da3s3h da3s4h + ./MAKEDEV bktr0 cd1 + if test -d /dev/vinum; then + # 'vinum makedev' は /dev にしかデバイスを作成できないので、cpio を使う。 + cd /dev; find vinum -print | cpio -pv ${DESTDIR}/dev + fi + + # floppy に wheel グループが書き込めるようにする。 + chown root:wheel ${DESTDIR}/dev/fd0* + chmod g+w ${DESTDIR}/dev/fd0* + ;; + + 5.*) + # floppy に wheel グループが書き込めるようにする。 + printf '%s\n' 'own fd0 root:wheel' >> ${DESTDIR}/etc/devfs.conf + printf '%s\n' 'perm fd0 0660' >> ${DESTDIR}/etc/devfs.conf + ;; + + *) + printf '%s\n' "REVISION ${REVISION} not supported" + exit 1 + ;; + + esac +} + +# vim: tabstop=2:expandtab:shiftwidth=2:syntax=sh: +# EOF $RCSfile: stage_1.conf.default,v $ diff --git a/ja_JP.eucJP/articles/fbsd-from-scratch/stage_1.sh b/ja_JP.eucJP/articles/fbsd-from-scratch/stage_1.sh index 2c6623cc50..d0c840e19e 100644 --- a/ja_JP.eucJP/articles/fbsd-from-scratch/stage_1.sh +++ b/ja_JP.eucJP/articles/fbsd-from-scratch/stage_1.sh @@ -1,233 +1,174 @@ #!/bin/sh # # stage_1.sh - FreeBSD From Scratch, 第 1 段階: システムのインストール -# 使い方: ./stage_1.sh +# 使い方: ./stage_1.sh profile +# 読み込むファイル: ./stage_1.conf.profile +# 書き出すファイル: ./stage_1.log.profile # +# 著者: Jens Schweikhardt +# $Id: stage_1.sh,v 1.2 2006-03-13 16:46:15 rushani Exp $ # $FreeBSD$ -# Original revision: 1.1 +# Original revision: 1.5 -set -x -e PATH=/bin:/usr/bin:/sbin:/usr/sbin # 前提とする環境: # # a) "make buildworld" と "make buildkernel" が正常に終了していること。 # b) 未使用パーティションがあること (ルートファイルシステム用に少なくとも 1 個、 # 好みに応じて /usr や /var 用のものを用意する) +# c) カスタマイズされた stage_1.conf.profile ファイル。 -# 新しいシステムを作成する場所を示すルートマウントポイントを指定。 -# マウントポイントとして使われるだけなので、マウントポイントのある -# ファイルシステムにファイルは置かれず、書き込みはすべてマウントした -# ファイルシステムに行なわれる。 -DESTDIR=/newroot -SRC=/usr/src # src ツリーのある場所 +if test $# -ne 1; then + echo "usage: stage_1.sh profile" 1>&2 + exit 1 +fi # ---------------------------------------------------------------------------- # # ステップ 1: $DESTDIR 以下に空のディレクトリツリーを作成 # ---------------------------------------------------------------------------- # step_one () { - # 新しいルートファイルシステムを作成する。必須。 - # デバイス名 (DEV_*) を変更すること。変更しないとシステムが壊れる危険性がある。 - DEV_ROOT=/dev/da3s1a - mkdir -p ${DESTDIR} - newfs ${DEV_ROOT} - tunefs -n enable ${DEV_ROOT} - mount -o noatime ${DEV_ROOT} ${DESTDIR} - - # その他のファイルシステムと初期マウントポイント。オプション。 - DEV_VAR=/dev/vinum/var_a - newfs ${DEV_VAR} - tunefs -n enable ${DEV_VAR} - mkdir -m 755 ${DESTDIR}/var - mount -o noatime ${DEV_VAR} ${DESTDIR}/var - - DEV_USR=/dev/vinum/usr_a - newfs ${DEV_USR} - tunefs -n enable ${DEV_USR} - mkdir -m 755 ${DESTDIR}/usr - mount -o noatime ${DEV_USR} ${DESTDIR}/usr - - mkdir -m 755 -p ${DESTDIR}/usr/ports - mount /dev/vinum/ports ${DESTDIR}/usr/ports + create_file_systems # ここで他のすべてのディレクトリを作成。必須。 cd ${SRC}/etc; make distrib-dirs DESTDIR=${DESTDIR} - # 個人的には tmp -> var/tmp とシンボリックリンクを張るのが好み。オプション。 - cd ${DESTDIR}; rmdir tmp; ln -s var/tmp } # ---------------------------------------------------------------------------- # # ステップ 2: /etc ディレクトリツリーと / にファイルを追加 # ---------------------------------------------------------------------------- # step_two () { - # 好みに応じて、このリストに追加・削除すること。ほとんどの場合は必須。 - for f in \ - /.profile \ - /etc/group \ - /etc/hosts \ - /etc/inetd.conf \ - /etc/ipfw.conf \ - /etc/make.conf \ - /etc/master.passwd \ - /etc/nsswitch.conf \ - /etc/ntp.conf \ - /etc/printcap \ - /etc/profile \ - /etc/rc.conf \ - /etc/resolv.conf \ - /etc/start_if.xl0 \ - /etc/ttys \ - /etc/ppp/* \ - /etc/mail/aliases \ - /etc/mail/aliases.db \ - /etc/mail/hal9000.mc \ - /etc/mail/service.switch \ - /etc/ssh/*key* \ - /etc/ssh/*_config \ - /etc/X11/XF86Config-4 \ - /boot/splash.bmp \ - /boot/loader.conf \ - /boot/device.hints ; do - cp -p ${f} ${DESTDIR}${f} - done + copy_files + # mergemaster の作業ファイルがあれば削除。 TEMPROOT=/var/tmp/temproot.stage1 if test -d ${TEMPROOT}; then chflags -R 0 ${TEMPROOT} rm -rf ${TEMPROOT} fi + export MAKEDEVPATH="/bin:/sbin:/usr/bin" mergemaster -i -m ${SRC}/etc -t ${TEMPROOT} -D ${DESTDIR} cap_mkdb ${DESTDIR}/etc/login.conf pwd_mkdb -d ${DESTDIR}/etc -p ${DESTDIR}/etc/master.passwd # mergemaster は /var/log に置かれる空ファイルを作成しないので、 - # ここで作成。ただし上のループでコピーされている場合は、それを使う。 + # ここで作成。ただし copy_files でコピーされている場合は、それを使う。 cd ${TEMPROOT} find . -type f | sed 's,^\./,,' | while read f; do if test -r ${DESTDIR}/${f}; then echo "${DESTDIR}/${f} already exists; not copied" else echo "Creating empty ${DESTDIR}/${f}" cp -p ${f} ${DESTDIR}/${f} fi done chflags -R 0 ${TEMPROOT} rm -rf ${TEMPROOT} } # ---------------------------------------------------------------------------- # # ステップ 3: installworld を実行する # ---------------------------------------------------------------------------- # step_three () { cd ${SRC} make installworld DESTDIR=${DESTDIR} + + # 追加の互換ライブラリをインストールする (オプション)。libc.so.4 を + # 動的リンクするプログラムがあれば、つまり、 + # /usr/libexec/ld-elf.so.1: Shared object "libc.so.4" not found + # というエラーメッセージが見つかったら、これを利用すること。 + cd lib/compat/compat4x.i386 + make all install DESTDIR=${DESTDIR} } # ---------------------------------------------------------------------------- # # ステップ 4: カーネルとモジュールをインストールする # ---------------------------------------------------------------------------- # step_four () { cd ${SRC} # installkernel ターゲットには、loader.conf と device.hints が必要。 # ステップ 2 でコピーしていなければ、次の 2 行を使ってコピーすること。 # cp sys/boot/forth/loader.conf ${DESTDIR}/boot/defaults # cp sys/i386/conf/GENERIC.hints ${DESTDIR}/boot/device.hints - make installkernel DESTDIR=${DESTDIR} KERNCONF=HAL9000 + make installkernel DESTDIR=${DESTDIR} KERNCONF=${KERNCONF} } # ---------------------------------------------------------------------------- # -# ステップ 5: 必須のファイルのインストールと変更 +# ステップ 5: /etc/fstab とタイムゾーン情報のインストール # ---------------------------------------------------------------------------- # step_five () { - # /etc/fstab の作成。必須。自分のデバイスに合うように変更すること。 - cat <${DESTDIR}/etc/fstab -# Device Mountpoint FStype Options Dump Pass# -/dev/da3s1b none swap sw 0 0 -/dev/da4s2b none swap sw 0 0 -/dev/da3s1a / ufs rw 1 1 -/dev/da1s2a /src ufs rw 0 2 -/dev/da2s2f /share ufs rw 0 2 -/dev/vinum/var_a /var ufs rw 0 2 -/dev/vinum/usr_a /usr ufs rw 0 2 -/dev/vinum/home /home ufs rw 0 2 -/dev/vinum/ncvs /home/ncvs ufs rw,noatime 0 2 -/dev/vinum/ports /usr/ports ufs rw,noatime 0 2 -# -/dev/cd0 /dvd cd9660 ro,noauto 0 0 -/dev/cd1 /cdrom cd9660 ro,noauto 0 0 -proc /proc procfs rw 0 0 -EOF - - # その他のディレクトリ。オプション。 - mkdir -m 755 -p ${DESTDIR}/src; chown root:wheel ${DESTDIR}/src - mkdir -m 755 -p ${DESTDIR}/share; chown root:wheel ${DESTDIR}/share - mkdir -m 755 -p ${DESTDIR}/dvd; chown root:wheel ${DESTDIR}/dvd - mkdir -m 755 -p ${DESTDIR}/home; chown root:wheel ${DESTDIR}/home - mkdir -m 755 -p ${DESTDIR}/usr/ports; chown root:wheel ${DESTDIR}/usr/ports + create_etc_fstab + # タイムゾーンの設定。ほとんどの場合は必須。 - cp ${DESTDIR}/usr/share/zoneinfo/Europe/Berlin ${DESTDIR}/etc/localtime + cp ${DESTDIR}/usr/share/zoneinfo/${TIMEZONE} ${DESTDIR}/etc/localtime if test -r /etc/wall_cmos_clock; then - cp -p /etc/wall_cmos_clock ${DESTDIR}/etc/wall_cmos_clock + cp -p /etc/wall_cmos_clock ${DESTDIR}/etc/wall_cmos_clock fi } # ---------------------------------------------------------------------------- # -# ステップ 6: 新しいシステムにログインする時に重要な内容 -# 注意: あまり多くのバイナリをこの時点でインストールしないこと。稼働している -# 古いシステムと、インストールした新しいバイナリ・ヘッダを組み合わせると、 -# ブートストラップ問題に陥る可能性がある。ports は新しいシステムが起動した後に -# 再構築する方がよい。 +# ステップ 6: 残りのカスタマイズ # ---------------------------------------------------------------------------- # step_six () { - chroot ${DESTDIR} sh -c "cd /usr/ports/shells/zsh; make clean install clean" - chroot ${DESTDIR} sh -c "cd /etc/mail; make install" # configure sendmail - - # compat シンボリックリンクがないと、linux_base のファイル群が - # ルートファイルシステムに置かれてしまう。 - cd ${DESTDIR}; mkdir -m 755 usr/compat - chown root:wheel usr/compat; ln -s usr/compat - mkdir -m 755 usr/compat/linux - mkdir -m 755 boot/grub - - # /etc/printcap で指定したスプールディレクトリを作成。 - cd ${DESTDIR}/var/spool/output/lpd; mkdir -p as od ev te lp da - touch ${DESTDIR}/var/log/lpd-errs - - # 古いシステムから引き継ぎたいファイルを指定 - for f in \ - /var/cron/tabs/root \ - /var/mail/* \ - /boot/grub/*; do - cp -p ${f} ${DESTDIR}${f} - done - - # 共有パーティション /home がなければ、/home をコピーした方がよいかも知れない。 - # mkdir -p ${DESTDIR}/home - # cd /home; tar cf - . | (cd ${DESTDIR}/home; tar xpvf -) - - # FreeBSD 5.x より perl は /usr/local/bin に置かれるようになったが、 - # 多くのスクリプトは #!/usr/bin/perl でハードコードされている。 - # これらを動作させるため、シンボリックリンクを作成しておく。 - cd ${DESTDIR}/usr/bin; ln -s ../local/bin/perl - cd ${DESTDIR}/usr; rmdir src; ln -s ../src/current src + all_remaining_customization } do_steps () { + echo "PROFILE=${PROFILE}" + echo "DESTDIR=${DESTDIR}" + echo "SRC=${SRC}" + echo "KERNCONF=${KERNCONF}" + echo "TIMEZONE=${TIMEZONE}" + echo "TYPE=${TYPE}" + echo "REVISION=${REVISION}" + echo "BRANCH=${BRANCH}" + echo "RELDATE=${RELDATE}" step_one step_two step_three step_four step_five step_six } -do_steps 2>&1 | tee stage_1.log +# ---------------------------------------------------------------------------- # +# ここから実行開始 +# ---------------------------------------------------------------------------- # + +PROFILE="$1" +set -x -e -u # エラーが発生するか未定義変数を使用したら停止する。 +. ./stage_1.conf.${PROFILE} + +# world を make するのに使われたソースコードから変数をいくつか決定する。 +# この変数は、たとえば 4.x と 5.x どちらのシステムをインストールするの +# かといった動作を変更するのに使われる。RELDATE に対する +# __FreeBSD_version は Port 作成者のためのハンドブック (Porter's Handbook) +# で説明されている。 +# doc/en_US.ISO8859-1/books/porters-handbook/freebsd-versions.html +# 日本語版もあるが、最新の情報は英語版を参照のこと。 +# doc/ja_JP.eucJP/books/porters-handbook/freebsd-versions.html +# 形式は、<メジャー番号><マイナー番号 2 桁><リリースブランチなら 0, それ以外は 1>xx +# 結果は次のようなものになる。 +# +# TYPE="FreeBSD" +# REVISION="4.9" +# BRANCH="RC" { "CURRENT", "STABLE", "RELEASE" } +# RELDATE="502101" +# +eval $(awk '/^(TYPE|REVISION|BRANCH)=/' ${SRC}/sys/conf/newvers.sh) +RELDATE=$(awk '/^[ \t]*#[ \t]*define[ \t][ \t]*__FreeBSD_version[ \t]/ { + print $3 + }' ${SRC}/sys/sys/param.h) + +echo "=> Logging to stage_1.log.${PROFILE}" +do_steps 2>&1 | tee stage_1.log.${PROFILE} -# EOF $RCSfile: stage_1.sh,v $ vim: tabstop=2:expandtab: +# vim: tabstop=2:expandtab:shiftwidth=2: +# EOF $RCSfile: stage_1.sh,v $ diff --git a/ja_JP.eucJP/articles/fbsd-from-scratch/stage_2.conf.default b/ja_JP.eucJP/articles/fbsd-from-scratch/stage_2.conf.default new file mode 100644 index 0000000000..c537ede406 --- /dev/null +++ b/ja_JP.eucJP/articles/fbsd-from-scratch/stage_2.conf.default @@ -0,0 +1,89 @@ +# vim: syntax=sh +# +# $FreeBSD$ +# +# Original Revision: 1.3 +# +shells zsh +devel gettext make BATCH=yes install +lang perl5.8 make install; use.perl port +archivers unzip +archivers zip +security sudo +x11-servers XFree86-4-Server +x11 wrapper +x11 XFree86-4-clients +x11 XFree86-4-documents +x11-fonts XFree86-4-font75dpi +x11-fonts XFree86-4-font100dpi +x11-fonts XFree86-4-fontScalable +x11-fonts urwfonts +x11-fonts webfonts make WITH_NETSCAPE_ALIASES=yes install +x11-toolkits open-motif +x11-wm ctwm +security openssh-askpass +astro xplanet +astro xephem +editors vim +print ghostscript-gnu make A4=yes BATCH=yes install +print psutils-a4 +print a2ps-a4 +print gv +print acroread5 +print transfig +print teTeX +# 注: jdk14 は linprocfs(5) がマウントされていないと、ハングアップした +# ままになります。 +java linux-sun-jdk14 mount -a linproc; yes | make install +java jdk14 mount -a linproc; make -DNODEBUG install +www apache2 +www weblint +www amaya +www firefox make BATCH=yes install +www mozilla make WITHOUT_MAILNEWS=yes WITHOUT_COMPOSER=yes WITHOUT_LDAP=yes WITHOUT_CHATZILLA=yes WITHOUT_XMLTERM=yes install +www checkbot +www privoxy +graphics xfig +graphics xv +multimedia xawtv +graphics graphviz +lang expect +lang gawk +lang TenDRA unset MAKEOBJDIRPREFIX; make install +news tin +net freebsd-uucp +net cvsup-without-gui +net pathchar make NO_CHECKSUM=yes install +ftp wget +textproc ispell +german ispell-neu +german ispell-alt +textproc docproj make JADETEX=no HAVE_MOTIF=yes BATCH=yes install < /dev/null +sysutils samefile +sysutils lsof +sysutils pstree +sysutils cdrtools +sysutils grub +sysutils smartmontools +sysutils vobcopy +devel ddd +devel gindent +devel ctags +devel ElectricFence +devel strace +devel perltidy +mail procmail make BATCH=yes install +mail metamail +mail mutt-devel +emulators mtools +sysutils portupgrade +news inn-stable CONFIGURE_ARGS="--enable-uucp-rnews --enable-setgid-inews" make install +misc figlet-fonts +security gpa +mail spamoracle +multimedia mplayer make WITHOUT_RUNTIME_CPUDETECTION=yes WITH_GUI=yes BATCH=yes install +multimedia mplayer-fonts +audio wavplay +games xmahjongg +games xdemineur +editors openoffice-1.1 diff --git a/ja_JP.eucJP/articles/fbsd-from-scratch/stage_2.sh b/ja_JP.eucJP/articles/fbsd-from-scratch/stage_2.sh index 003f6beeb6..d37dc4fa9f 100644 --- a/ja_JP.eucJP/articles/fbsd-from-scratch/stage_2.sh +++ b/ja_JP.eucJP/articles/fbsd-from-scratch/stage_2.sh @@ -1,149 +1,132 @@ #!/bin/sh # # stage_2.sh - FreeBSD From Scratch, 第 2 段階: ports のインストール -# 使い方: ./stage_2.sh +# 使い方: ./stage_2.sh [-hnp] configname # +# 著者: Jens Schweikhardt +# $Id: stage_2.sh,v 1.2 2006-03-13 16:46:15 rushani Exp $ # $FreeBSD$ -# Original revision: 1.1 +# Original revision: 1.5 -DBDIR=/var/db/pkg -PORTS=/usr/ports -LOGDIR=/home/root/setup/ports.log; mkdir -p ${LOGDIR} +DBDIR="/var/db/pkg" +PORTS="/usr/ports" +: ${PACKAGES:=${PORTS}/packages} +LOGDIR="/home/root/setup/ports.log"; mkdir -p ${LOGDIR} +PKG_PATH="/cdrom/packages/All:/dvd/packages/All" +PKG= -# 複数の port で使用される環境変数の設定 -PAPERSIZE=a4; export PAPERSIZE -USA_RESIDENT=NO; export USA_RESIDENT - -MYNAME=$(basename $0) +MYNAME="$(basename $0)" usage () { exec >&2 - echo "usage: ${MYNAME} [-hn]" + echo "usage: ${MYNAME} [-hnp] configname" echo "" echo " Options:" echo " -h Print this help text." echo " -n Dryrun: just show what would be done." + echo " -p Install a precompiled package if one can be found." + echo "" + echo " The config file (stage_2.conf.configname) is a list of" + echo " ports to install with one entry per line. Each line" + echo " consists of two or three space separated fields:" + echo " category, port, and optionally a build command." echo "" exit 1 } -args=`getopt hn $*` +# これらの場所にあるパッケージを順に探す。 +# 1 つ見つかり次第戻って、結果を標準出力に表示する。 +# +# ${PORTS}/${CATEGORY}/${NAME} +# ${PACKAGES}/All +# ${PACKAGES}/${CATEGORY} +# ${PKG_PATH} +# +find_package () { + echo "${PORTS}/${CATEGORY}/${NAME}:${PACKAGES}/All:${PACKAGES}/${CATEGORY}:${PKG_PATH}" | + tr : '\n' | + while read d; do + test -d "${d}" || continue + PKG=$(ls ${d}/${PKGNAME}.* 2>/dev/null) + test $? -eq 0 && echo "${PKG}" && return + done +} + +# +# コマンドライン引数を処理する。 +# +args=`getopt hnp $*` if test $? != 0; then usage fi set -- $args DRYRUN= +CHKPKG= for i; do case "$i" in - -n) DRYRUN=yes;; - --) break;; + -n) DRYRUN="yes"; shift;; + -p) CHKPKG="yes"; shift;; + --) shift; break;; *) usage;; esac done +if test $# -eq 1; then + DATAFILE="$1" +else + usage +fi -cat << EOF | -lang perl5 -security sudo -x11-servers XFree86-4-Server -x11 wrapper -x11 XFree86-4-libraries -x11 XFree86-4-clients -x11-fonts XFree86-4-font75dpi -x11-fonts XFree86-4-font100dpi -x11-fonts XFree86-4-fontScalable -x11-fonts urwfonts -x11-fonts webfonts -x11-toolkits open-motif -x11 rxvt -x11-wm ctwm -security openssh-askpass -astro xplanet -astro setiathome make BATCH=yes install -astro xephem -editors vim -print ghostscript-gnu make A4=yes BATCH=yes install -print a2ps-a4 -print psutils-a4 -print gv -print acroread5 -print transfig -archivers zip -archivers unzip -java linux-sun-jdk13 yes | make install -java jdk13 -www apache2 -www weblint -www amaya -www mozilla make WITHOUT_MAILNEWS=yes WITHOUT_CHATZILLA=yes install -www netscape48-navigator -www checkbot -www privoxy -graphics xfig -graphics xv -graphics fxtv -lang expect -news tin -net freebsd-uucp -net cvsup-without-gui -net pathchar make NO_CHECKSUM=yes install -ftp wget -ftp ncftp3 -textproc ispell -german ispell-neu -german ispell-alt -textproc docproj make JADETEX=yes HAVE_MOTIF=yes install -sysutils samefile -sysutils pstree -sysutils mkisofs -sysutils cdrtools -sysutils grub -devel ddd -devel ctags -devel ElectricFence -mail procmail make BATCH=yes install -mail metamail -mail mutt -mail spamoracle -emulators mtools -sysutils portupgrade -news inn-stable CONFIGURE_ARGS="--enable-uucp-rnews --enable-setgid-inews" make install -misc figlet-fonts -textproc gmat -EOF +# +# ports 一覧に対して繰り返す。 +# while read CATEGORY NAME CMD; do case "${CATEGORY}" in \#*) continue;; '') continue;; esac DIR="${PORTS}/${CATEGORY}/${NAME}" if ! test -d "${DIR}"; then echo "$DIR does not exist -- ignored" continue fi cd ${DIR} PKGNAME=`make -V PKGNAME` + if test -n "${CHKPKG}"; then + PKG=$(find_package) + else + PKG="" + fi if test -d "${DBDIR}/${PKGNAME}"; then echo "${CATEGORY}/${NAME} already installed as ${PKGNAME}" continue fi LOG="${LOGDIR}/${CATEGORY}+${NAME}" echo "===> Installing ${CATEGORY}/${NAME}; logging to ${LOG}" - test -n "${CMD}" || CMD="make install" + test -n "${CMD}" || CMD="make install BATCH=yes < /dev/null" if test -n "${DRYRUN}"; then - echo "${CMD}" + if test -n "${PKG}"; then + echo pkg_add -v ${PKG} + else + echo "${CMD}" + fi continue fi - date "++++++++++ %v %T +++++++++" > ${LOG} - echo "CMD: ${CMD}" >> ${LOG} + date "++++ Started %v %T +++" > ${LOG} + STARTED=$(date +%s) ( - make clean - eval "${CMD}" - # make clean # ${PORTS} 以下のディスク容量がすくなければコメントをはずす + if test -n "${PKG}"; then + echo "Found package ${PKG}" + pkg_add -v ${PKG} + else + echo "CMD: ${CMD}" + make clean + eval "${CMD}" + make clean # ${PORTS} 以下のディスク容量がすくなければコメントをはずす + fi ) 2>&1 | tee -a ${LOG} -done - -# StarOffice は、X11 を使った対話的インストールが必要なので、 -# 古いシステム上で "make package" を実行して作成した -# package からインストールする。 -#pkg_add ${PORTS}/editors/staroffice52/staroffice-*.tbz + FINISHED=$(date +%s) + DURATION=$(dc -e "${FINISHED} ${STARTED} - p") + date "++++ Finished %v %T after ${DURATION} secs +++" >> ${LOG} +done < stage_2.conf.${DATAFILE} -# EOF $RCSfile: stage_2.sh,v $ vim: tabstop=4: +# vim: tabstop=4: +# EOF $RCSfile: stage_2.sh,v $ diff --git a/ja_JP.eucJP/articles/fbsd-from-scratch/stage_3.mk b/ja_JP.eucJP/articles/fbsd-from-scratch/stage_3.mk index 9c7d3f182b..1dbf7e59db 100644 --- a/ja_JP.eucJP/articles/fbsd-from-scratch/stage_3.mk +++ b/ja_JP.eucJP/articles/fbsd-from-scratch/stage_3.mk @@ -1,147 +1,235 @@ # stage_3.mk - FreeBSD From Scratch, 第 3 段階: ports をインストールした後の設定 # Usage: make -f stage_3.mk all (すべての設定を行なう) # or make -f stage_3.mk target (target の設定を行なう) # +# 著者: Jens Schweikhardt +# # すべての target が、複数回実行しても悪影響をおよぼさないように # 確認しておくとよい。 # +# $Id: stage_3.mk,v 1.2 2006-03-13 16:46:15 rushani Exp $ # $FreeBSD$ -# Original revision: 1.1 +# Original revision: 1.4 .POSIX: message: @echo "Please use one of the following targets:" @echo "config_apache" + @echo "config_firefox" @echo "config_inn" @echo "config_javaplugin" + @echo "config_nullplugin" @echo "config_privoxy" - @echo "config_setiathome" - @echo "config_sgml" + @echo "config_smartd" @echo "config_sudo" @echo "config_TeX" @echo "config_tin" @echo "config_uucp" @echo "all -- all of the above" -all: config_apache \ + +all: \ + config_apache \ + config_firefox \ config_inn \ config_javaplugin \ + config_nullplugin \ config_privoxy \ - config_setiathome \ - config_sgml \ + config_smartd \ config_sudo \ config_TeX \ config_tin \ config_uucp + config_apache: # 1. httpd.conf の変更 perl -pi \ - -e 's/#ServerName new.host.name/ServerName hal9000.s.shuttle.de/;' \ - -e 's/^ServerAdmin.*/ServerAdmin schweikh\@schweikhardt.net/;' \ + -e 's/^\s*ServerAdmin.*/ServerAdmin schweikh\@schweikhardt.net/;' \ + -e 's/^\s*Listen.*/Listen 127.0.0.1:80/;' \ + -e 's/^\s*StartServers.*/StartServers 2/;' \ + -e 's/^\s*MinSpareServers.*/MinSpareServers 2/;' \ -e 's,/usr/local/www/cgi-bin/,/home/opt/www/cgi-bin/,;' \ /usr/local/etc/apache2/httpd.conf # 2. ウェブページに対するシンボリックリンクの作成 cd /usr/local/www/data; \ ln -fs /home/schweikh/prj/homepage schweikhardt.net; \ ln -fs /home/opt/www/test . + # httpd.conf が変更されていないか確認する。 + @if ! cmp -s /usr/local/etc/apache2/httpd.conf httpd.conf; then \ + echo "ATTENTION: the httpd.conf has changed. Please examine if"; \ + echo "the modifications are still correct. Here is the diff:"; \ + diff -u /usr/local/etc/apache2/httpd.conf httpd.conf; \ + fi + if test -f /var/run/httpd.pid; then \ + /usr/local/etc/rc.d/apache2.sh stop; \ + /usr/local/etc/rc.d/apache2.sh start; \ + else \ + /usr/local/etc/rc.d/apache2.sh start; \ + fi + +config_firefox: + # wheel グループが書き込めるようにして、すべての extension をインストー + # ルできるようにする。 + chmod -R g+w /usr/X11R6/lib/firefox/lib/mozilla-1.6/chrome config_inn: pw usermod -n news -d /usr/local/news -s /bin/sh + mkdir -p /share/news/spool/outgoing \ + /share/news/spool/incoming \ + /share/news/spool/articles \ + /share/news/spool/overview \ + /share/news/spool/tmp \ + /share/news/db + chown -R news:news /share/news # ニュースシステムの初期設定 cd /home/root/setup; \ - install -C -o news -g news -m 664 active newsgroups /usr/local/news/db + if test ! -f /share/news/db/active; then \ + echo "installing /share/news/db/active"; \ + install -C -o news -g news -m 664 active /share/news/db; \ + fi; \ + if test ! -f /share/news/db/newsgroups; then \ + echo "installing /share/news/db/newsgroups"; \ + install -C -o news -g news -m 664 newsgroups /share/news/db; \ + fi # port の innd.sh は壊れていて、 - #存在しない history.pag をチェックしようとする。 + # 存在しない history.pag をチェックしようとする。 cd /home/root/setup; \ install -C -o root -g wheel -m 555 innd.sh /usr/local/etc/rc.d # 格納方法の設定 cd /home/root/setup; \ printf "%s\n%s\n%s\n%s\n" \ "method tradspool {" \ " newsgroups: *" \ " class: 0" \ "}" \ >storage.conf; \ install -C -o news -g news -m 664 storage.conf /usr/local/news/etc # newsfeeds の設定 printf "%s\n%s\n" \ "ME:*::" \ "shuttle/news2.shuttle.de:!junk,!control:B32768/512,Tf,Wfb:" \ >/usr/local/news/etc/newsfeeds # inn.conf の設定 - perl -pi \ - -e 's/^(organization:\s*).*/$$1 An Open Pod Bay Door/;' \ - -e 's/^(pathhost:\s*).*/$$1 hal9000.schweikhardt.net/;' \ - -e 's/^(server:).*/$$1 localhost/;' \ - -e 's/^(domain:).*/$$1 schweikhardt.net/;' \ - -e 's/^(fromhost:).*/$$1 schweikhardt.net/;' \ - -e 's,^(moderatormailer:).*,$$1 \%s\@moderators.isc.org,;' \ - -e 's,/usr/local/news/spool,/share/news/spool,;' \ + perl -pi \ + -e 's/^#*\s*(organization:\s*).*/$$1"An Open Pod Bay Door"/;' \ + -e 's/^#*\s*(pathhost:\s*).*/$$1hal9000.schweikhardt.net/;' \ + -e 's/^#*\s*(server:).*/$$1 localhost/;' \ + -e 's/^#*\s*(domain:).*/$$1 schweikhardt.net/;' \ + -e 's/^#*\s*(fromhost:).*/$$1 schweikhardt.net/;' \ + -e 's,^#*\s*(moderatormailer:).*,$$1 \%s\@moderators.isc.org,;' \ + -e 's,^#*\s*(pathdb:\s*).*,$$1/share/news/db,;' \ + -e 's,/usr/local/news/spool,/share/news/spool,;' \ /usr/local/news/etc/inn.conf + # 履歴が全く存在しなければ、空の履歴を作成する。 + # /usr/ports/news/inn-stable/Makefile の post-install 参照。 + cd /share/news/db; \ + if test ! -f history; then \ + touch history; \ + chmod 644 history; \ + chown news:news history; \ + su -fm news -c "/usr/local/news/bin/makedbz -i"; \ + for s in dir hash index; do \ + mv history.n.$${s} history.$${s}; \ + done; \ + fi + # send-uucp を設定する。 + echo shuttle:shuttle >/usr/local/news/etc/send-uucp.cf + # inncheck を満足させる。 + cd /usr/local/news/etc; \ + chown news:news *; \ + chmod 640 control.ctl expire.ctl nntpsend.ctl readers.conf + /usr/local/news/bin/inncheck + # inn.conf が変更されていないか確認する。 + @if ! cmp -s /usr/local/news/etc/inn.conf inn.conf; then \ + echo "ATTENTION: the inn.conf has changed. Please examine if"; \ + echo "the modifications are still correct. Here is the diff:"; \ + diff -u /usr/local/news/etc/inn.conf inn.conf; \ + fi + if ! test -f /usr/local/news/run/innd.pid; then \ + /usr/local/etc/rc.d/innd.sh start; \ + fi config_javaplugin: - cd /usr/local/lib/netscape-linux/plugins; \ - if ! test -h javaplugin.so; then \ - ln -s ../../../linux-sun-jdk1.3.1/jre/plugin/i386/ns4/javaplugin.so; \ - fi; \ - ls -l javaplugin.so + # Mozilla Firefox: + cd /usr/X11R6/lib/firefox/lib/mozilla-1.6/plugins; \ + ln -fs /usr/local/jdk1.4.2/jre/plugin/i386/ns610/libjavaplugin_oji.so + # Plain Mozilla: + #cd /usr/X11R6/lib/mozilla/plugins; \ + #ln -fs /usr/local/jdk1.4.2/jre/plugin/i386/ns610/libjavaplugin_oji.so -config_privoxy: - install -C -o root -g wheel -m 644 config /usr/local/etc/privoxy +# nullplugin を邪魔にならないように削除する。また、.mozilla/*/*/prefs.js に +# 次の項目を追加する。 +# user_pref("plugin.display_plugin_downloader_dialog", false); +# これで入手できないプラグイン (flash 等) についてポップアップダイアログが +# 出ないようになる。 +config_nullplugin: + find /usr/X11R6/lib -name libnullplugin.so -exec mv {} {}.orig \; -config_setiathome: - perl -pi \ - -e 's,^.*seti_wrkdir.*#,seti_wrkdir=/home/nobody/setiathome #,;' \ - /usr/local/etc/rc.setiathome.conf +config_privoxy: + install -C -o root -g wheel -m 644 conf/privoxy/config \ + /usr/local/etc/privoxy + install -C -o root -g wheel -m 755 conf/privoxy/privoxy.sh \ + /usr/local/etc/rc.d + /usr/local/etc/rc.d/privoxy.sh restart -config_sgml: - cp -p /usr/local/share/gmat/sgml/ISO_8879-1986/entities/* \ - /usr/local/share/sgml/docbook/4.1 +config_smartd: + cp smartd.sh /usr/local/etc/rc.d/smartd.sh + cp smartd.conf /usr/local/etc/smartd.conf config_sudo: if ! grep -q schweikh /usr/local/etc/sudoers; then \ echo 'schweikh ALL = (ALL) NOPASSWD: ALL' >> /usr/local/etc/sudoers; \ fi config_TeX: # textproc/docproj では、FreeBSD ハンドブックを JadeTeX で # タイプセットするには、次の値を設定するよう指示されている - perl -pi \ - -e 's/^% original texmf.cnf/% texmf.cnf/;' \ - -e 's/^(hash_extra\s*=).*/$$1 60000/;' \ - -e 's/^(pool_size\s*=).*/$$1 1000000/;' \ - -e 's/^(max_strings\s*=).*/$$1 70000/;' \ - -e 's/^(save_size\s*=).*/$$1 10000/;' \ + perl -pi \ + -e 's/^% original texmf.cnf/% texmf.cnf/;' \ + -e 's/^(hash_extra\s*=\s*).*/$${1}60000/;' \ + -e 's/^(pool_size\s*=\s*).*/$${1}1000000/;' \ + -e 's/^(max_strings\s*=\s*).*/$${1}70000/;' \ + -e 's/^(save_size\s*=\s*).*/$${1}10000/;' \ /usr/local/share/texmf/web2c/texmf.cnf + # texmf.cnf が変更されていないか確認する。 + @if ! cmp -s /usr/local/share/texmf/web2c/texmf.cnf texmf.cnf; then \ + echo "ATTENTION: the texmf.cnf has changed. Please examine if"; \ + echo "the modifications are still correct. Here is the diff:"; \ + diff -u /usr/local/share/texmf/web2c/texmf.cnf texmf.cnf; \ + fi config_tin: # tin が設定したファイルを読むように設定 - printf "%s\n%s\n%s\n" \ - "activefile=/usr/local/news/db/active" \ - "newsgroupsfile=/usr/local/news/db/newsgroups" \ - "spooldir=/share/news/spool/articles" \ + printf "%s\n%s\n%s\n" \ + "activefile=/share/news/db/active" \ + "newsgroupsfile=/share/news/db/newsgroups" \ + "spooldir=/share/news/spool/articles" \ >/usr/local/etc/tin.defaults config_uucp: + cd /etc/mail; make install SENDMAIL_MC=/etc/mail/hal9000.mc + # su(1) が動作するように uucp ユーザのシェルを正しい uucico にする。 + chpass -s /usr/local/libexec/uucp/uucico uucp # UUCP が /usr/bin/rnews を見つけられるようにする cd /usr/bin; ln -fs ../local/news/bin/rnews . # 実際の UUCP の設定 echo nodename js2015 > /usr/local/etc/uucp/config echo shuttle js2015 `cat uucp` > /usr/local/etc/uucp/call printf 'port tcp\ntype tcp\n' > /usr/local/etc/uucp/port printf "%s\n%s\n%s\n%s\n%s\n%s\n%s\n" \ "call-login *" \ "call-password *" \ "time any" \ "system shuttle" \ "address mail.s.shuttle.de" \ "commands rmail rnews" \ "port tcp" \ >/usr/local/etc/uucp/sys cd /usr/local/etc/uucp; chown uucp:uucp *; chmod o-rwx * # 起動後に uucico を実行する mkdir -p /usr/local/etc/rc.d; cp uucp.sh /usr/local/etc/rc.d -# EOF $RCSfile: stage_3.mk,v $ vim: tabstop=4: +# vim: tabstop=4: +# EOF $RCSfile: stage_3.mk,v $ diff --git a/ja_JP.eucJP/articles/fonts/article.sgml b/ja_JP.eucJP/articles/fonts/article.sgml index 41ba845bbc..5dfaae73b9 100644 --- a/ja_JP.eucJP/articles/fonts/article.sgml +++ b/ja_JP.eucJP/articles/fonts/article.sgml @@ -1,1012 +1,1006 @@ %articles.ent; ]>
フォントと FreeBSD A Tutorial Dave Bodenstab
imdave@synet.net
1996 年 8 月 7 日 (水) &tm-attrib.freebsd; &tm-attrib.adobe; &tm-attrib.apple; &tm-attrib.linux; &tm-attrib.microsoft; &tm-attrib.opengroup; &tm-attrib.general; - ここでは FreeBSD の syscons ドライバや X11、Ghostscript、Groff + ここでは FreeBSD の syscons ドライバや + X11, Ghostscript, + Groff で利用することができるさまざまなフォントファイルについて説明しています。 また、syscons ディスプレイを 80x60 行モードに切り替える方法や、 上述のアプリケーションでタイプ 1 フォントを利用する方法を例示します。
- + はじめに 数多くのフォントのソースを入手することができますが、これらを FreeBSD でどのようにして使うかはあまりよく知られていないかもしれません。 その答えは、使いたいと思う構成要素の説明書を注意深く探すことによって見つけることができます。 しかし、これはとても時間がかかる作業です。本チュートリアルは、 フォントに関して興味がある向きに、 その近道を教えようと試みるものであります。 - + 基本用語 フォント形式の種類やそれに関連したフォントファイルの拡張子は多数存在します。 その内でここで解説するものは以下の通りです。 .pfa.pfb &postscript; タイプ 1 フォント。拡張子 .pfaAscii 形式のそして拡張子 .pfbBinary 形式を意味する。 .afm タイプ 1 フォントに関連するフォントメトリック情報。 .pfm タイプ 1 フォントに関連するプリンタ用フォントメトリック情報。 .ttf &truetype; フォント。 .fot TrueType フォントへの間接的な参照ファイル (実際にはフォントファイルではない)。 .fon.fnt スクリーン表示用ビットマップフォント。 .fot ファイルは、&windows; で用いられ、 実際の &truetype; フォント (.ttf) ファイルへのシンボリックリンクに類する役割を果たします。 .fon フォントも Windows で用いられていますが、 FreeBSD でこの形式のフォントを利用する方法を筆者は知りません。 - + どのフォント形式を利用できますか? どのフォントファイル形式が有用であるかは、 利用するアプリケーションに依ります。 FreeBSD 自身はフォントファイルは利用しません。 アプリケーションプログラムやドライバ (あるいはその両方) によっては、 あるフォントファイルを利用するようにできるかもしれません。 以下は、アプリケーション、及び、 ドライバとそれが利用できるフォントタイプの拡張子の対応表を簡単に示します。 ドライバ syscons .fnt アプリケーション - Ghostscript + Ghostscript .pfa.pfb.ttf - X11 + X11 .pfa.pfb - Groff + Groff .pfa.afm - Povray + Povray .ttf 拡張子 .fnt は極めて頻繁に使われています。 (訳注: この拡張子がフォント (font) という名前から連想しやすいので) あるアプリケーションに特化したフォントを作成しようとした際にはいつでも、 この拡張子が選択される方がそうでないときよりもかなり多いのではないかと著者は疑っています。 このため、この拡張子を持つファイル全てが同じ形式にはなっていないようです。 特に、.fnt ファイルは FreeBSD 上では syscons によって利用されていますが、これと &ms-dos; や &windows; 環境で出会った .fnt とは同じ形式ではないかもしれません。 筆者は FreeBSD で提供されている以外の .fnt ファイルを利用する試みは一切行っていません。 - + 仮想コンソールを 80x60 行モードに設定する まず、8x8 サイズのフォントがロードされていなくてはなりません。 そのためには、/etc/rc.conf に以下の行が含まれているべきです (フォントの名称をあなたの locale に対応するものに書き換えてください)。 font8x8="iso-8x8" # font 8x8 from /usr/share/syscons/fonts/* (or NO). 実際にモードを切り替えるコマンドは &man.vidcontrol.1; です。 &prompt.user; vidcontrol VGA_80x60 &man.vi.1; のような、さまざまなスクリーン指向のプログラムに対して、 現在の画面サイズが分かるようにしておかなくてはなりません。これは ioctl を通じて (&man.syscons.4; などの) コンソールドライバに呼び掛けることで行われ、 これらを一度に済ませるために、 これらのコマンドを起動用のスクリプトに書いておき、 これをシステム起動時に実行するかもしれません。 この方法では /etc/rc.conf に以下の行を追加します allscreens_flags="VGA_80x60" # Set this vidcontrol mode for all virtual screens 参考文献: &man.rc.conf.5;、&man.vidcontrol.1; - - タイプ 1 フォントを X11 で利用する + + タイプ 1 フォントを <application>X11</application> で利用する - X11 では、.pfa 形式、もしくは、 - .pfb 形式のフォントのいずれも利用することができます。 - X11 では、フォントは + X11 では、 + .pfa 形式、もしくは、 + .pfb 形式のフォントのどちらでも利用できます。 + X11 では、フォントは /usr/X11R6/lib/X11/fonts 以下のさまざまなサブディレクトリに置かれています。 それぞれのディレクトリにある fonts.dir ファイルの内容によって、 - それぞれのフォントのファイルと X11 + それぞれのフォントのファイルと X11 上でのフォント名が関連付けられています。 Type1 という名前のディレクトリが既に存在しています。 新しいフォントを追加する最も簡単な方法は、 このディレクトリのそのフォントファイルを置くことです。 新しいフォントは別なディレクトリに置いておき、Type1 ディレクトリに追加フォントへのシンボリックリンクを張る方がより優れています。 なぜなら、この方法をとることでオリジナルで供給されているフォントと混乱することなく、 これらのフォントを追加した跡を残すことがより簡単にできるからです。 この方法は、例えば、次のように行います。 フォントファイルを入れるディレクトリを作成します。 &prompt.user; mkdir -p /usr/local/share/fonts/type1 &prompt.user; cd /usr/local/share/fonts/type1 ここに .pfa または .pfb ファイルと .afm ファイルを置きます。 フォントの readme ファイルやその他のドキュメントをこのディ レクトリに置いても構いません。 &prompt.user; cp /cdrom/fonts/atm/showboat/showboat.pfb . &prompt.user; cp /cdrom/fonts/atm/showboat/showboat.afm . フォントのクロスリファレンスのためにインデックスを変更します。 &prompt.user; echo showboat - InfoMagic CICA, Dec 1994, /fonts/atm/showboat >>INDEX - さて、新しいフォントを X11 で利用するためには、 - そのフォントファイルを利用できるようにし、そして、 + さて、新しいフォントを X11 で利用するためには、 + そのフォントファイルを利用できるようにして、 フォント名のファイルを更新する必要があります。 - X11 でのフォント名は次のようになっています。 + X11 のフォント名は次のようになっています。 -bitstream-charter-medium-r-normal-xxx-0-0-0-0-p-0-iso8859-1 | | | | | | | | | | | | \ \ | | | | | \ \ \ \ \ \ \ +----+- character set | | | | \ \ \ \ \ \ \ +- average width | | | | \ \ \ \ \ \ +- spacing | | | \ \ \ \ \ \ +- vertical res. | | | \ \ \ \ \ +- horizontal res. | | | \ \ \ \ +- points | | | \ \ \ +- pixels | | | \ \ \ foundry family weight slant width additional style 新しいフォントそれぞれに対して、新しい名前を付ける必要があります。 フォント付属のドキュメントにフォントに関する情報があれば、 名前を作る際の基になるかもしれません。そのような情報がない場合は、 フォントに対して &man.strings.1; を使うと何らかのアイデアが得ることができます。例えば、 &prompt.user; strings showboat.pfb | more %!FontType1-1.0: Showboat 001.001 %%CreationDate: 1/15/91 5:16:03 PM %%VMusage: 1024 45747 % Generated by Fontographer 3.1 % Showboat 1991 by David Rakowski. Alle Rechte Vorbehalten. FontDirectory/Showboat known{/Showboat findfont dup/UniqueID known{dup /UniqueID get 4962377 eq exch/FontType get 1 eq and}{pop false}ifelse {save true}{false}ifelse}{false}ifelse 12 dict begin /FontInfo 9 dict dup begin /version (001.001) readonly def /FullName (Showboat) readonly def /FamilyName (Showboat) readonly def /Weight (Medium) readonly def /ItalicAngle 0 def /isFixedPitch false def /UnderlinePosition -106 def /UnderlineThickness 16 def /Notice (Showboat 1991 by David Rakowski. Alle Rechte Vorbehalten.) readonly def end readonly def /FontName /Showboat def --stdin-- この情報から、次のような名前が考えられます: -type1-Showboat-medium-r-normal-decorative-0-0-0-0-p-0-iso8859-1 この名前の構成は次の通りです。 型 (foundry) 新フォントは type1 と名付けることにしましょう。 族 (family) フォントの名前です。 重み (weight) normal (普通)、bold (太い)、medium (中間)、 semibold (やや太め) などがあります。上記の &man.strings.1; の出力より、 フォントの重みは medium であると考えられます。 傾斜 (slant) roman (ローマン体)、italic (イタリック体)、oblique (斜字体) などがあります。 ItalicAngle が0になっていることにより、 roman を使っています。 normal (普通)、wide (幅広)、condensed (圧縮)、extended(拡張) などがあります。上記で調べた結果から、 normal を仮定します。 追加スタイル 通常は省略されますが、フォントに装飾用 (decorative) 英大文字が含まれていることをここで示します。 スペーシング proportional (プロポーショナル (訳注: 字形に応じて幅が変化するフォント)) または monospaced (単一幅フォント) があります。ここでは Proportional としてありますが、これは isFixedPitch が false (偽) になっているためです。 これらの名前は全て任意なのですが、 - 既存の慣習と互換性を保つよう努力すべきでしょう。X11 プログラムでは、 + 既存の慣習と互換性を保つよう努力すべきでしょう。 + X11 プログラムでは、 フォントはワイルドカードを含んだ名前で参照されます。ですから、 フォント名は何らかの意味づけを持って選択されるべきでしょう。 (訳注 : 適当なフォントを探すとき、) ある人は単純に以下の名前を使うことから始めるかもしれません。 …-normal-r-normal-…-p-… そして、 &man.xfontsel.1; で該当するフォントを調べてみて、そのフォントの形を見ながら、 名前を調節するかもしれません。 それでは、ここまでの例を完結させることにしましょう。 X11 に対してフォントをアクセスできるようにします。 &prompt.user; cd /usr/X11R6/lib/X11/fonts/Type1 &prompt.user; ln -s /usr/local/share/fonts/type1/showboat.pfb . fonts.dir と fonts.scale を編集して、フォントを記述する行を追加し、最初の行にある総フォント数を増やします。 &prompt.user; ex fonts.dir :1p 25 :1c 26 . :$a showboat.pfb -type1-showboat-medium-r-normal-decorative-0-0-0-0-p-0-iso8859-1 . :wq fonts.scalefonts.dirと同一内容のようですので… &prompt.user; cp fonts.dir fonts.scale X11 に内容が変更されたことを伝えます。 &prompt.user; xset fp rehash 新しいフォントを試してみます。 &prompt.user; xfontsel -pattern -type1-* 参考文献: &man.xfontsel.1;、&man.xset.1;、The X Windows System in a NutshellO'Reilly & Associates - + タイプ 1 フォントを Ghostscript で利用する - Ghostscript では、Fontmap - に従ってフォントを参照しています。このファイルを X11 の + Ghostscript では、 + Fontmap ファイルに従ってフォントを参照して + います。このファイルを X11fonts.dir - ファイルと同様な方法で変更しなくてはなりません。Ghostscript では、 + ファイルと同様な方法で変更しなくてはなりません。 + Ghostscript では、 .pfa 形式または .pfb 形式のフォントのいずれか一方を使用することができます。 - 前章の例で登場したフォントを使って、ここではこのフォントを Ghostscript + 前章の例で登場したフォントを使って、ここではこのフォントを + Ghostscript で使用する方法について述べます。 フォントを Ghostscript のフォントディレクトリに置きます。 &prompt.user; cd /usr/local/share/ghostscript/fonts &prompt.user; ln -s /usr/local/share/fonts/type1/showboat.pfb . Ghostscript にフォントを認識させるために Fontmap を編集します。 &prompt.user; cd /usr/local/share/ghostscript/4.01 &prompt.user; ex Fontmap :$a /Showboat (showboat.pfb) ; % From CICA /fonts/atm/showboat . :wq Ghostscript を用いてフォントを試してみます。 &prompt.user; gs prfont.ps Aladdin Ghostscript 4.01 (1996-7-10) Copyright (C) 1996 Aladdin Enterprises, Menlo Park, CA. All rights reserved. This software comes with NO WARRANTY: see the file PUBLIC for details. Loading Times-Roman font from /usr/local/share/ghostscript/fonts/tir_____.pfb... /1899520 581354 1300084 13826 0 done. GS>Showboat DoFont Loading Showboat font from /usr/local/share/ghostscript/fonts/showboat.pfb... 1939688 565415 1300084 16901 0 done. >>showpage, press <return> to continue<< >>showpage, press <return> to continue<< >>showpage, press <return> to continue<< GS>quit - 参考文献: Ghostscript バージョン4.01 で配布されている + 参考文献: Ghostscript バージョン + 4.01 で配布されている fonts.txt - + タイプ 1 フォントを Groff で利用する - ここまでで新しいフォントを X11 と Ghostscript + ここまでで新しいフォントを X11 と + Ghostscript の両方で用いることができるようになりましたが、 - この新しいフォントをどのようにすれば groff で使うことができるでしょうか? + この新しいフォントをどのようにすれば + groff で使うことができるでしょうか? まず第一に、&postscript; のタイプ 1 フォントを扱っていますから、 - これを適用できる groff デバイスは ps デバイスです。 - 次に、各々のフォントを groff で使用できるように作らなくてはなりません。 - groff でのフォント名は /usr/share/groff_font/devps + これを適用できる groff デバイスは + ps デバイスです。次に、各々のフォントを + groff で使用できるようにフォントファ + イルを作らなくてはなりません。 + groff でのフォント名は + /usr/share/groff_font/devps の中のファイル名になります。上述の例では、フォントファイルは /usr/share/groff_font/devps/SHOWBOAT - とすることができるでしょう。このファイルは groff + とすることができるでしょう。このファイルは groff によって提供されているツールを用いて生成しなくてはなりません。 最初に afmtodit というツールを使います。 このコマンドは通常ではインストールされませんので、 ソースプログラム群から該当プログラムを取り出さなくてはなりません。 このファイルの最初の一行を変更しなくてはならないことが分かっています。 著者は次のようにしました。 &prompt.user; cp /usr/src/gnu/usr.bin/groff/afmtodit/afmtodit.pl /tmp &prompt.user; ex /tmp/afmtodit.pl :1c #!/usr/bin/perl -P- . :wq このツールはメトリックファイル (.afm 拡張子) - から groff フォントファイルを生成してくれます。 + から groff フォントファイルを生成してくれます。 フォント使用方法例を続けることにしましょう。 .afm ファイルの多くは Mac 形式&hellip すなわち行が ^M で区切られています。 これを行を ^J で区切る &unix; スタイルに変換する必要があります。 &prompt.user; cd /tmp &prompt.user; cat /usr/local/share/fonts/type1/showboat.afm | tr '\015' '\012' >showboat.afm そして、groff フォントファイルを生成します。 &prompt.user; cd /usr/share/groff_font/devps &prompt.user; /tmp/afmtodit.pl -d DESC -e text.enc /tmp/showboat.afm generate/textmap SHOWBOAT これでフォントを SHOWBOAT という名前で参照することができました。 - システムでプリンタを扱うために GhostScript を使用しているならば、 - これで作業は完了しました。しかしながら、本当に PostScript + システムでプリンタを扱うために + Ghostscript を使用しているならば、 + これで作業は完了しました。しかしながら、本物の &postscript; プリンタを使っている場合は、フォントを使用可能にする為に、 当該フォントをプリンタにダウンロードする必要があります (showboat フォントがプリンタに偶然にも最初から組み込まれている場合、 - もしくはプリンタからアクセスされるフォントディスクの中に入っている場合はこの限りではありません)。 + もしくはプリンタからアクセスされるフォントディスクの中に入ってい + る場合はこの限りではありません)。 フォント利用の最終段階として、 ダウンロード可能な形式のフォントを生成します。 ツール pfbtops は (訳注 : .pfb 形式から) .pfa 形式のフォントを生成するために、そして、 download というファイルを編集し、 フォントの内部名を参照するように変更しなくてはなりません。 この内部名は以下で示すように groff フォントファイルから容易に調べることができます。 .pfa フォントファイルを生成する。 &prompt.user; pfbtops /usr/local/share/fonts/type1/showboat.pfb >showboat.pfa もちろん、.pfa が既に利用可能であれば、 参照できるようにシンボリックリンクを張って下さい。 内部フォント名を得る。 &prompt.user; fgrep internalname SHOWBOAT internalname Showboat 該当フォントをダウンロードしなくてはならないことを groff に通知する。 &prompt.user; ex download :$a Showboat showboat.pfa . :wq フォントを試用する。 &prompt.user; cd /tmp &prompt.user; cat >example.t <<EOF .sp 5 .ps 16 This is an example of the Showboat font: .br .ps 48 .vs (\n(.s+2)p .sp .ft SHOWBOAT ABCDEFGHI .br JKLMNOPQR .br STUVWXYZ .sp .ps 16 .vs (\n(.s+2)p .fp 5 SHOWBOAT .ft R To use it for the first letter of a paragraph, it will look like: .sp 50p \s(48\f5H\s0\fRere is the first sentence of a paragraph that uses the showboat font as its first letter. Additional vertical space must be used to allow room for the larger letter. EOF &prompt.user; groff -Tps example.t >example.ps ghostscript/ghostviewを使って表示する。 &prompt.user; ghostview example.ps 印刷する (訳注 : プリンタ名は適宜変更して下さい)。 &prompt.user; lpr -Ppostscript example.ps 参考文献: /usr/src/gnu/usr.bin/groff/afmtodit/afmtodit.man、 &man.groff.font.5;、&man.groff.char.7;、&man.pfbtops.1; - + TrueType フォントを groff 用に groff/PostScript フォーマットに変換する これにはいくつかユーティリティが必要ですが、 ベースシステムの一部としてインストールされてはいないので若干の作業が必要となります。 インストールするものは: ttf2pf TrueType から PostScript への変換ユーティリティです。 これは TrueType フォントからアスキーフォントメトリック (.afm) ファイルへの変換を行います。 現時点では から入手できます。 注意: これらのファイルは PostScript によるプログラムなので、 Shift キーを押しながらリンクをクリックして ディスクにダウンロードしてください。 さもないとあなたのブラウザは ghostview を立ちあげます。 重要なファイルは: GS_TTF.PS PF2AFM.PS ttf2pf.ps - 大文字と小文字の混在は、 - これらが DOS シェルのことも考慮しているためです。 + 大文字と小文字が奇妙に混在しているのは、 + DOS シェルのことも考慮しているためです。 ttf2pf.ps はそれ以外のファイルを 大文字として扱いますので、 ファイル名の変更はそれに対応させてください (実際には GS_TTF.PS と - PFS2AFM.PS は - ghostscript の配布物の一部だと思われますが、 - 個別のユーティリティとして扱った方が便利なのでそうします。 - FreeBSD がこれらを含むとは思われません)。 + PFS2AFM.PS は、一応 + Ghostscript の配布物の一部ですが、 + 個別のユーティリティとしても問題なく利用できます。 + FreeBSD には後者が入っていないようです)。 /usr/local/share/groff_font/devps - にインストールされているのがいいかもしれません + にインストールするとよいかもしれません。 afmtodit はアスキーフォントメトリックファイルから - groff とともに使うフォントファイルを作ります。 + groff とともに使うフォントファイルを作ります。 これは通常、 /usr/src/contrib/groff/afmtodit ディレクトリに存在していて、 使えるようにするには作業が必要です。 もしも /usr/src ツリーで作業をすることを躊躇うなら、 このディレクトリの内容を作業用の場所にコピーすればいいです。 作業エリアで以下のようにしてこのユーティリティします。 # make -f Makefile.sub afmtodit もし、まだ存在していなければ /usr/contrib/groff/devps/generate/textmap/usr/share/groff_font/devps/generate にコピーします。 これらのユーティリティが所定の場所に収まったら いつでも開始できます。 .afm ファイルを以下のようにして作ります。 % gs -dNODISPLAY -q -- ttf2pf.ps TTF_name PS_font_name AFM_name ここで、TTF_name はあなたの TrueType フォントの名前で、PS_font_name.pfa ファイルのためのファイル名で、 AFM_name.afm ファイルに望む名前です. .pfa.afm 用の出力ファイル名を明示しなければ、 デフォルト名は TrueType フォントファイル名から作成されます。 この時、アスキー PostScript フォントメトリックファイルである .pfa ファイルも同時に作られます (.pfb はバイナリ形式です)。 これは不要となるでしょうが、(私が考えるに) フォントサーバには役立つでしょう。 例として、30f9 バーコードフォントをデフォルトのファイル名で変換するには以下のようにします。 % gs -dNODISPLAY -- ttf2pf.ps 3of9.ttf Aladdin Ghostscript 5.10 (1997-11-23) Copyright (C) 1997 Aladdin Enterprises, Menlo Park, CA. All rights reserved. This software comes with NO WARRANTY: see the file PUBLIC for details. Converting 3of9.ttf to 3of9.pfa and 3of9.afm. 変換後のフォントを A.pfaB.afm にするなら以下のようにします。 % gs -dNODISPLAY -- ttf2pf.ps 3of9.ttf A B Aladdin Ghostscript 5.10 (1997-11-23) Copyright (C) 1997 Aladdin Enterprises, Menlo Park, CA. All rights reserved. This software comes with NO WARRANTY: see the file PUBLIC for details. Converting 3of9.ttf to A.pfa and B.afm. - groff PostScript ファイルを作ります。 + groff PostScript ファイルを作ります。 以下のコマンドの実行が用意なように /usr/share/groff_font/devps に ディレクトリを変更します。 恐らく root 特権が必要になるでしょう (そこでの作業が気にいらないなら、このディレクトリの DESCtext.encgenerate/textmap ファイルが参照されるということに注意してください)。 % afmtodit -d DESC -e text.enc file.afm \ generate/textmap PS_font_name ここで、file.afmAFM_name で、上で ttf2pf.ps で作ったものです。 PS_font_name はコマンドから使われるフォント名で、 &man.groff.1; がこのフォントを参照するために使うものです。 たとえば、最初の tiff2pf.ps コマンドを上述のように行っていたとすると、 3of9 バーコードフォントは以下のコマンドで作成できます。 % afmtodit -d DESC -e text.enc 3of9.afm \ generate/textmap 3of9 得られる PS_font_name ファイル (この例では 3of9) はディレクトリ /usr/share/groff_font/devps に、コピーするなり移動するなりして置かれることに気をつけてください。 ttf2pf.ps がわりつけるフォント名は TrueType フォントファイル中に見つかったものになります。 それとは異なる名前を使いたかったら、 .afm ファイルを編集してから afmtodit を実行する必要があります。 &man.groff.1; から &man.gs.1; へパイプするつもりならば、 その名前は同時にフォントマップファイルで使われているものである必要があります。 - + TrueType フォントを他のプログラムで使うことができますか? TrueType フォント形式は Windows、Windows 95、Mac で用いられます。この形式は極めて有名であり、 非常にたくさんのフォントが利用できます。 - 不幸なことに、(訳注: FreeBSD で) - この形式を利用できるアプリケーションは、著者が知る限り、 - Ghostscript と povray の 2 つしかありません。 - Ghostscript では、ドキュメントによれば、そのサポートは不十分であり、 - フォントを利用してもタイプ 1 フォントより粗悪な結果が得られるようです。 - povray バージョン 3 もまた TrueType フォントを利用可能ですが、しかし、 - たくさんの人々がレイトレーシングされたページが続いているかのように、 - ドキュメントを作成しているのではないかと、著者はむしろ疑っています :-) - (訳注: povray はレイトレーシング関連のプログラムです。 - レイトレーシングは計算に時間がかかることから、 - ドキュメントを作るのが遅いんじゃないの、 - と著者が遠回しに言っているようです)。 + 残念ながら、この形式を (訳注: FreeBSD で) この形式を利用でき + るアプリケーションは、筆者が知る限りほとんどなく、 + Ghostscript と + Povray しか思いつきません。 + ドキュメントによれば、Ghostscript の + 対応は不十分であり、タイプ 1 フォントより粗悪な結果になるようです。 + Povray バージョン 3 もまた TrueType + フォントを利用可能ですが、筆者は、ドキュメントを一連のレイトレー + スしたページとして作成する人が多いのではないかと疑っています :-)。 + このなんとも悲惨な状況は変わりつつあります。 FreeType プロジェクト では FreeType の便利なツールを開発しています。 XFree86 4.x に含まれている freetype モジュール。 詳細は FreeBSD ハンドブックXFree86 4.0.2 Fonts ページを見てください。 - X11 用の xfsft フォントサーバは + X11 用の + xfsft フォントサーバは 一般のフォントに加えて TrueType フォントを提供します。 現在ベータ版であるにもかかわらずたいへん評判がいいものです。 詳しくは Juliusz Chroboczek's page をごらんください。 FreeBSD への移植についての情報は Stephen Montgomery's software page にあります。 - xfstt は X11 用のもうひとつの - フォントサーバで、 + xfstt は + X11 用のもうひとつのフォントサーバで、 から入手できます。 ttf2bdf というプログラムは、 X の環境下で TrueType フォントのセットから BDF 形式のファイルを作るものです。 Linux 用のバイナリが から 入手できます。 - - アジア圏で TrueType フォントを利用したいみなさんには、 - XTT フォントサーバは一見の価値があるでしょう。 - XTT に関する情報は - で得られます。 - - そしてその他 … - - - FreeType プロジェクトページは、 - 以上に挙げたものおよびその他のフリーな TrueType - プロジェクトに関する情報入手のよい出発点となるでしょう。 - + どこでフォントを入手できますか? インターネット上でたくさんのフォントを利用することができます。 これらは完全に無料であるか、シェアウェアです。加えて、 たくさんのフォントが収録されたあまり高価ではない CDROM がたくさんあります。インターネットでのアクセスポイント (1996年8月現在)を以下に示します。 - - - (以前は CICA) - - - - - - - + - - - - - + Ports Collection の x11-fonts/ - - 未解決問題 + + その他の質問 .pfm ファイルを利用するものはあるのか? .afm ファイルを .pfa もしくは .pfb から作成できるか? - 非標準キャラクタ名がある PostScript フォントを groff - キャラクタにマッピングするファイルをどのように作成するか? + 非標準キャラクタ名がある PostScript フォントを + groff キャラクタにマッピングする + ファイルをどのように作成するか? xditview と devX?? デバイスで新たなファイル全てにアクセスするためのセットアップをすることができるか? - povray と Ghostscript で TrueType + Povray と + Ghostscript で TrueType フォントを利用する例があるといいだろう。