- Merge the following from the English version:

1.42  -> 1.47  articles/Makefile
  1.503 -> 1.506 articles/contributing/article.sgml
  1.9   -> 1.10  articles/contributors/Makefile
  1.436 -> 1.446 articles/contributors/article.sgml
  New   -> 1.3   articles/fbsd-from-scratch/stage_1.conf.default
  1.1   -> 1.5   articles/fbsd-from-scratch/stage_1.sh
  New   -> 1.3   articles/fbsd-from-scratch/stage_2.conf.default
  1.1   -> 1.5   articles/fbsd-from-scratch/stage_2.sh
  1.1   -> 1.4   articles/fbsd-from-scratch/stage_3.mk
  1.27  -> 1.30  articles/fonts/article.sgml
  1.23  -> 1.32  articles/problem-reports/article.sgml

- Append stage_[12].conf.default into EXTRAS.

                 articles/fbsd-from-scratch/Makefile

Submitted by:	Hiroo Ono <hiroo _at_ jp dot FreeBSD dot org>
This commit is contained in:
Hideyuki KURASHINA 2006-03-13 16:46:15 +00:00
parent 591abf3ae4
commit 6be9b78bd8
Notes: svn2git 2020-12-08 03:00:23 +00:00
svn path=/head/; revision=27320
11 changed files with 682 additions and 636 deletions

View file

@ -1,12 +1,15 @@
# $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
@ -19,11 +22,13 @@ SUBDIR+= fbsd-from-scratch
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
@ -39,6 +44,7 @@ SUBDIR+= problem-reports
#SUBDIR+= serial-uart
#SUBDIR+= solid-state
#SUBDIR+= storage-devices
#SUBDIR+= version-guide
#SUBDIR+= vinum
#SUBDIR+= vm-design
SUBDIR+= zip-drive

View file

@ -2,7 +2,7 @@
The FreeBSD Documentation Project
The FreeBSD Japanese Documentation Project
Original revision: 1.503
Original revision: 1.506
$FreeBSD$
-->
<!DOCTYPE article PUBLIC "-//FreeBSD//DTD DocBook V4.1-Based Extension//EN" [
@ -219,7 +219,7 @@
<indexterm><primary>障害報告 (PR) データベース</primary></indexterm>
<para><ulink url="&url.base;/cgi/query-pr-summary.cgi">FreeBSD
<para><ulink url="http://www.FreeBSD.org/cgi/query-pr-summary.cgi">FreeBSD
障害報告一覧</ulink>では、現在問題となっている障害報告と、
FreeBSD の利用者によって提出された改良の要望すべての一覧を公開しています。
障害報告データベースには、プログラマ向けと非プログラマ向けの
@ -276,8 +276,8 @@
<para>レポートがファイリングされれば、
バグ報告の確認とトラッキング番号をメールで受け取るはずです。
このトラッキング番号を覚えておき、問題に関する詳細情報を
<email>FreeBSD-gnats-submit@FreeBSD.org</email> に
メールで送って更新できるようにしてください。たとえば
&a.bugfollowup;
メールで送って更新できるようにしてください。たとえば
<literal>"Re: kern/3377"</literal> のように、
この番号をサブジェクト行に使用してください。
すべてのバグレポートの追加情報は、
@ -536,9 +536,9 @@ Copyright (C) [ǯ]
<sect3 id="donations">
<title>資金の寄付</title>
<para>FreeBSD 財団は、FreeBSD プロジェクトの目標を推進するために
<para>The FreeBSD Foundation は、FreeBSD プロジェクトの目標を推進するために
設立された、非営利の、税金を免除された財団です。501(c)3 に
適合する団体として、財団はアメリカ合衆国連邦所得税ならびに
適合する団体として、Foundation はアメリカ合衆国連邦所得税ならびに
コロラド州所得税を一般に免除されています。免税団体への寄付は、
多くの場合連邦政府の課税対象所得から控除できます。</para>
@ -553,15 +553,15 @@ Copyright (C) [ǯ]
<para>また、寄付の受け付けを PayPal を通じて
web 経由でできるようになりました。
寄付をするには、FreeBSD 財団
寄付をするには、The FreeBSD Foundation
<ulink url="http://www.freebsdfoundation.org">web サイト</ulink>を
ぜひご覧ください。</para>
<para>FreeBSD 財団に関するこれ以上の情報は
<para>The FreeBSD Foundation に関するこれ以上の情報は
<ulink
url="http://people.FreeBSD.org/~jdp/foundation/announcement.html">The
FreeBSD Foundation -- an Introduction</ulink> を見てください。
財団への email での連絡は
Foundation への email での連絡は
<email>bod@FreeBSDFoundation.org</email>
へどうぞ。</para>
</sect3>

View file

@ -3,7 +3,7 @@
#
# Article: Contributors to FreeBSD
#
# Original revision: 1.9
# Original revision: 1.10
DOC?= article
@ -23,7 +23,9 @@ 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}/../../..

View file

@ -2,7 +2,7 @@
The FreeBSD Documentation Project
The FreeBSD Japanese Documentation Project
Original revision: 1.436
Original revision: 1.446
$FreeBSD$
-->
<!DOCTYPE article PUBLIC "-//FreeBSD//DTD DocBook V4.1-Based Extension//EN" [
@ -412,260 +412,13 @@
しています。それぞれのサービスは、以下の担当者とその
<emphasis>副担当者</emphasis>によって運用されています。</para>
<variablelist>
<varlistentry>
<term>ドキュメンテーションプロジェクト担当</term>
<listitem>
<para>&a.doceng;</para>
</listitem>
</varlistentry>
<varlistentry>
<term>ハンドブック編集担当</term>
<listitem>
<para>&a.doc;</para>
</listitem>
</varlistentry>
<varlistentry>
<term>FAQ 編集担当</term>
<listitem>
<para>&a.doc;</para>
</listitem>
</varlistentry>
<varlistentry>
<term>ニュースフラッシュ編集担当</term>
<listitem>
<para>&a.www;</para>
</listitem>
</varlistentry>
<varlistentry>
<term>In the Press 編集担当</term>
<listitem>
<para>&a.jkoshy;</para>
</listitem>
</varlistentry>
<varlistentry>
<term>FreeBSD Really-Quick NewsLetter編集担当</term>
<listitem>
<para>Chris Coleman <email>chrisc@vmunix.com</email></para>
</listitem>
</varlistentry>
<varlistentry>
<term>商用ベンダーページ担当</term>
<listitem>
<para>&a.brueffer;</para>
</listitem>
</varlistentry>
<varlistentry>
<term>ユーザグループ担当</term>
<listitem>
<para>&a.grog;</para>
</listitem>
</varlistentry>
<varlistentry>
<term>FreeBSD &java; プロジェクト</term>
<listitem>
<para>&a.patrick;</para>
</listitem>
</varlistentry>
</variablelist>
&contrib.docproj;
</sect1>
<sect1 id="staff-who">
<title>担当者</title>
<variablelist>
<varlistentry>
<term><ulink url="&url.base;/docproj/index.html">
ドキュメンテーションプロジェクト担当</ulink></term>
<listitem>
<para>&a.doceng;</para>
</listitem>
</varlistentry>
<varlistentry>
<term>CVSup ミラーサイトコーディネータ</term>
<listitem>
<para>&a.cvsup-master;</para>
<para>担当:</para>
<para>&a.kuriyama; (責任者),</para>
<para>&a.jdp; (アドバイザ)</para>
</listitem>
</varlistentry>
<varlistentry>
<term>FTP/WWW ミラーサイトコーディネータ</term>
<listitem>
<para>&a.mirror-admin;</para>
<para>担当:</para>
<para>&a.kuriyama;,</para>
<para>&a.kensmith;</para>
</listitem>
</varlistentry>
<varlistentry>
<term>地域化</term>
<listitem>
<para>&a.ache;</para>
</listitem>
</varlistentry>
<varlistentry>
<term>ポストマスタ</term>
<listitem>
<para><hostid role="domainname">FreeBSD.org</hostid>
ポストマスタチーム <email>postmaster@FreeBSD.org</email></para>
<para>担当:</para>
<para>David Wolfskill</para>
</listitem>
</varlistentry>
<varlistentry>
<term><ulink url="&url.articles.releng.en;/index.html">リリースコーディネーション</ulink></term>
<listitem>
<para>&a.re; (リーダは &a.murray;)</para>
</listitem>
</varlistentry>
<varlistentry>
<term>広報および渉外担当</term>
<listitem>
<para>空席</para>
</listitem>
</varlistentry>
<varlistentry>
<term><ulink url="&url.base;/security/index.html">
セキュリティオフィサ</ulink></term>
<listitem>
<para>&a.security-officer; (リーダは &a.nectar;)</para>
</listitem>
</varlistentry>
<varlistentry>
<term><ulink url="&url.base;/support.html#cvs">
CVS ツリー管理者</ulink></term>
<listitem>
<para>責任者: &a.peter;</para>
<para>副責任者: &a.markm;, &a.joe;</para>
</listitem>
</varlistentry>
<varlistentry>
<term>ウェブサイト管理者</term>
<listitem>
<para>&a.www;</para>
</listitem>
</varlistentry>
<varlistentry>
<term><ulink url="&url.base;/ports/index.html">
Ports マネージャ</ulink></term>
<listitem>
<para>&a.portmgr;</para>
<para>以下のメンバで構成されています。</para>
<para>&a.kris;,</para>
<para>&a.marcus;,</para>
<para>&a.linimon;,</para>
<para>&a.eik;,</para>
<para>&a.krion;,</para>
<para>&a.erwin; (秘書)</para>
</listitem>
</varlistentry>
<varlistentry>
<term>標準化担当</term>
<listitem>
<para>&a.wollman;</para>
</listitem>
</varlistentry>
<varlistentry>
<term>XFree86 Project, Inc. との渉外担当</term>
<listitem>
<para>&a.rich;</para>
</listitem>
</varlistentry>
<varlistentry>
<term><ulink url="&url.base;/support.html#gnats">
GNATS 管理者</ulink></term>
<listitem>
<para>&a.ceri;</para>
<para>&a.keramida;</para>
<para>&a.linimon;</para>
</listitem>
</varlistentry>
<varlistentry>
<term>Bugmeisters</term>
<listitem>
<para>&a.ceri;</para>
<para>&a.keramida;</para>
<para>&a.linimon;</para>
</listitem>
</varlistentry>
<varlistentry>
<term><ulink url="&url.base;/donations/index.html">寄贈品受付事務局</ulink></term>
<listitem>
<para>&a.donations;</para>
<para>以下のメンバで構成されています。</para>
<para>&a.mwlucas</para>
<para>&a.nsayer</para>
<para>&a.obrien</para>
<para>&a.rwatson</para>
<para>&a.trhodes</para>
</listitem>
</varlistentry>
</variablelist>
&contrib.who;
</sect1>
<sect1 id="contrib-corealumni">

View file

@ -14,9 +14,9 @@ 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

View file

@ -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 <<EOF >${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 $

View file

@ -1,12 +1,15 @@
#!/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
# 前提とする環境:
@ -14,47 +17,22 @@ 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
}
# ---------------------------------------------------------------------------- #
@ -62,48 +40,21 @@ step_one () {
# ---------------------------------------------------------------------------- #
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
@ -125,6 +76,13 @@ step_two () {
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}
}
# ---------------------------------------------------------------------------- #
@ -137,89 +95,41 @@ step_four () {
# ステップ 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 <<EOF >${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
create_etc_fstab
# その他のディレクトリ。オプション。
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
# タイムゾーンの設定。ほとんどの場合は必須。
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
@ -228,6 +138,37 @@ do_steps () {
step_six
}
do_steps 2>&1 | tee stage_1.log
# ---------------------------------------------------------------------------- #
# ここから実行開始
# ---------------------------------------------------------------------------- #
# EOF $RCSfile: stage_1.sh,v $ vim: tabstop=2:expandtab:
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}
# vim: tabstop=2:expandtab:shiftwidth=2:
# EOF $RCSfile: stage_1.sh,v $

View file

@ -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

View file

@ -1,114 +1,83 @@
#!/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;;
@ -121,29 +90,43 @@ while read CATEGORY NAME CMD; do
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
FINISHED=$(date +%s)
DURATION=$(dc -e "${FINISHED} ${STARTED} - p")
date "++++ Finished %v %T after ${DURATION} secs +++" >> ${LOG}
done < stage_2.conf.${DATAFILE}
# StarOffice は、X11 を使った対話的インストールが必要なので、
# 古いシステム上で "make package" を実行して作成した
# package からインストールする。
#pkg_add ${PORTS}/editors/staroffice52/staroffice-*.tbz
# EOF $RCSfile: stage_2.sh,v $ vim: tabstop=4:
# vim: tabstop=4:
# EOF $RCSfile: stage_2.sh,v $

View file

@ -2,58 +2,99 @@
# 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
# 格納方法の設定
@ -71,34 +112,71 @@ config_inn:
"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
# 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_privoxy:
install -C -o root -g wheel -m 644 config /usr/local/etc/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_setiathome:
perl -pi \
-e 's,^.*seti_wrkdir.*#,seti_wrkdir=/home/nobody/setiathome #,;' \
/usr/local/etc/rc.setiathome.conf
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 \
@ -108,23 +186,32 @@ config_sudo:
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 の設定
@ -144,4 +231,5 @@ config_uucp:
# 起動後に 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 $

View file

@ -3,7 +3,7 @@
The FreeBSD Japanese Documentation Project
$FreeBSD$
Original revision: 1.27
Original revision: 1.30
-->
<!DOCTYPE ARTICLE PUBLIC "-//FreeBSD//DTD DocBook V4.1-Based Extension//EN" [
<!ENTITY % articles.ent PUBLIC "-//FreeBSD//ENTITIES DocBook FreeBSD Articles Entity Set//EN">
@ -65,14 +65,16 @@
</legalnotice>
<abstract>
<para>ここでは FreeBSD の syscons ドライバや X11、Ghostscript、Groff
<para>ここでは FreeBSD の syscons ドライバや
<application>X11</application>, <application>Ghostscript</application>,
<application>Groff</application>
で利用することができるさまざまなフォントファイルについて説明しています。
また、syscons ディスプレイを 80x60 行モードに切り替える方法や、
上述のアプリケーションでタイプ 1 フォントを利用する方法を例示します。</para>
</abstract>
</articleinfo>
<sect1>
<sect1 id="intro">
<title>はじめに</title>
<para>数多くのフォントのソースを入手することができますが、これらを
@ -83,7 +85,7 @@
その近道を教えようと試みるものであります。</para>
</sect1>
<sect1>
<sect1 id="terminology">
<title>基本用語</title>
<para>フォント形式の種類やそれに関連したフォントファイルの拡張子は多数存在します。
@ -151,7 +153,7 @@
FreeBSD でこの形式のフォントを利用する方法を筆者は知りません。</para>
</sect1>
<sect1>
<sect1 id="font-formats">
<title>どのフォント形式を利用できますか?</title>
<para>どのフォントファイル形式が有用であるかは、
@ -185,7 +187,7 @@
<listitem>
<variablelist>
<varlistentry>
<term>Ghostscript</term>
<term><application>Ghostscript</application></term>
<listitem>
<para><filename>.pfa</filename>、
@ -195,7 +197,7 @@
</varlistentry>
<varlistentry>
<term>X11</term>
<term><application>X11</application></term>
<listitem>
<para><filename>.pfa</filename>、
@ -204,7 +206,7 @@
</varlistentry>
<varlistentry>
<term>Groff</term>
<term><application>Groff</application></term>
<listitem>
<para><filename>.pfa</filename>、
@ -213,7 +215,7 @@
</varlistentry>
<varlistentry>
<term>Povray</term>
<term><application>Povray</application></term>
<listitem>
<para><filename>.ttf</filename></para>
@ -237,7 +239,7 @@
ファイルを利用する試みは一切行っていません。</para>
</sect1>
<sect1>
<sect1 id="virtual-console">
<title>仮想コンソールを 80x60 行モードに設定する</title>
<para>まず、8x8 サイズのフォントがロードされていなくてはなりません。
@ -275,17 +277,18 @@
<para>参考文献: &man.rc.conf.5;、&man.vidcontrol.1;</para>
</sect1>
<sect1>
<title>タイプ 1 フォントを X11 で利用する</title>
<sect1 id="type1-fonts-x11">
<title>タイプ 1 フォントを <application>X11</application> で利用する</title>
<para>X11 では、<filename>.pfa</filename> 形式、もしくは、
<filename>.pfb</filename> 形式のフォントのいずれも利用することができます。
X11 では、フォントは
<para><application>X11</application> では、
<filename>.pfa</filename> 形式、もしくは、
<filename>.pfb</filename> 形式のフォントのどちらでも利用できます。
<application>X11</application> では、フォントは
<filename>/usr/X11R6/lib/X11/fonts</filename>
以下のさまざまなサブディレクトリに置かれています。
それぞれのディレクトリにある
<filename>fonts.dir</filename> ファイルの内容によって、
それぞれのフォントのファイルと X11
それぞれのフォントのファイルと <application>X11</application>
上でのフォント名が関連付けられています。</para>
<para><filename>Type1</filename>
@ -313,10 +316,10 @@
&prompt.user; <userinput>echo showboat - InfoMagic CICA, Dec 1994, /fonts/atm/showboat &gt;&gt;INDEX</userinput></screen>
</informalexample>
<para>さて、新しいフォントを X11 で利用するためには、
そのフォントファイルを利用できるようにし、そして、
<para>さて、新しいフォントを <application>X11</application> で利用するためには、
そのフォントファイルを利用できるようにして、
フォント名のファイルを更新する必要があります。
X11 でのフォント名は次のようになっています。</para>
<application>X11</application> のフォント名は次のようになっています。</para>
<informalexample>
<screen>-bitstream-charter-medium-r-normal-xxx-0-0-0-0-p-0-iso8859-1
@ -450,7 +453,8 @@ end readonly def
</variablelist>
<para>これらの名前は全て任意なのですが、
既存の慣習と互換性を保つよう努力すべきでしょう。X11 プログラムでは、
既存の慣習と互換性を保つよう努力すべきでしょう。
<application>X11</application> プログラムでは、
フォントはワイルドカードを含んだ名前で参照されます。ですから、
フォント名は何らかの意味づけを持って選択されるべきでしょう。
(訳注 : 適当なフォントを探すとき、)
@ -501,16 +505,19 @@ showboat.pfb -type1-showboat-medium-r-normal-decorative-0-0-0-0-p-0-iso8859-1
Associates</ulink></para>
</sect1>
<sect1>
<sect1 id="type1-fonts-ghostscript">
<title>タイプ 1 フォントを Ghostscript で利用する</title>
<para>Ghostscript では、<filename>Fontmap</filename>
に従ってフォントを参照しています。このファイルを X11 の
<para><application>Ghostscript</application> では、
<filename>Fontmap</filename> ファイルに従ってフォントを参照して
います。このファイルを <application>X11</application> の
<filename>fonts.dir</filename>
ファイルと同様な方法で変更しなくてはなりません。Ghostscript では、
ファイルと同様な方法で変更しなくてはなりません。
<application>Ghostscript</application> では、
<filename>.pfa</filename> 形式または <filename>.pfb</filename>
形式のフォントのいずれか一方を使用することができます。
前章の例で登場したフォントを使って、ここではこのフォントを Ghostscript
前章の例で登場したフォントを使って、ここではこのフォントを
<application>Ghostscript</application>
で使用する方法について述べます。</para>
<informalexample>
@ -543,23 +550,29 @@ Loading Showboat font from /usr/local/share/ghostscript/fonts/showboat.pfb...
GS&gt;<userinput>quit</userinput></screen>
</informalexample>
<para>参考文献: Ghostscript バージョン4.01 で配布されている
<para>参考文献: <application>Ghostscript バージョン
4.01</application> で配布されている
<filename>fonts.txt</filename></para>
</sect1>
<sect1>
<sect1 id="type1-fonts-groff">
<title>タイプ 1 フォントを Groff で利用する</title>
<para>ここまでで新しいフォントを X11 と Ghostscript
<para>ここまでで新しいフォントを <application>X11</application> と
<application>Ghostscript</application>
の両方で用いることができるようになりましたが、
この新しいフォントをどのようにすれば groff で使うことができるでしょうか?
この新しいフォントをどのようにすれば
<application>groff</application> で使うことができるでしょうか?
まず第一に、&postscript; のタイプ 1 フォントを扱っていますから、
これを適用できる groff デバイスは <emphasis>ps</emphasis> デバイスです。
次に、各々のフォントを groff で使用できるように作らなくてはなりません。
groff でのフォント名は <filename>/usr/share/groff_font/devps</filename>
これを適用できる <application>groff</application> デバイスは
<emphasis>ps</emphasis> デバイスです。次に、各々のフォントを
<application>groff</application> で使用できるようにフォントファ
イルを作らなくてはなりません。
<application>groff</application> でのフォント名は
<filename>/usr/share/groff_font/devps</filename>
の中のファイル名になります。上述の例では、フォントファイルは
<filename>/usr/share/groff_font/devps/SHOWBOAT</filename>
とすることができるでしょう。このファイルは groff
とすることができるでしょう。このファイルは <application>groff</application>
によって提供されているツールを用いて生成しなくてはなりません。</para>
<para>最初に <command>afmtodit</command> というツールを使います。
@ -578,7 +591,7 @@ GS&gt;<userinput>quit</userinput></screen>
</informalexample>
<para>このツールはメトリックファイル (<filename>.afm</filename> 拡張子)
から groff フォントファイルを生成してくれます。
から <application>groff</application> フォントファイルを生成してくれます。
フォント使用方法例を続けることにしましょう。</para>
<informalexample>
@ -595,12 +608,14 @@ GS&gt;<userinput>quit</userinput></screen>
<para>これでフォントを SHOWBOAT という名前で参照することができました。</para>
<para>システムでプリンタを扱うために GhostScript を使用しているならば、
これで作業は完了しました。しかしながら、本当に PostScript
<para>システムでプリンタを扱うために
<application>Ghostscript</application> を使用しているならば、
これで作業は完了しました。しかしながら、本物の &postscript;
プリンタを使っている場合は、フォントを使用可能にする為に、
当該フォントをプリンタにダウンロードする必要があります
(showboat フォントがプリンタに偶然にも最初から組み込まれている場合、
もしくはプリンタからアクセスされるフォントディスクの中に入っている場合はこの限りではありません)。
もしくはプリンタからアクセスされるフォントディスクの中に入ってい
る場合はこの限りではありません)。
フォント利用の最終段階として、
ダウンロード可能な形式のフォントを生成します。
ツール <command>pfbtops</command> は (訳注 : <filename>.pfb</filename> 形式から)
@ -675,7 +690,7 @@ EOF</userinput>
&man.groff.font.5;、&man.groff.char.7;、&man.pfbtops.1;</para>
</sect1>
<sect1>
<sect1 id="convert-truetype">
<title>TrueType フォントを groff 用に groff/PostScript
フォーマットに変換する</title>
@ -717,18 +732,18 @@ EOF</userinput>
</listitem>
</itemizedlist>
<para>大文字と小文字の混在は、
これらが DOS シェルのことも考慮しているためです。
<para>大文字と小文字が奇妙に混在しているのは、
DOS シェルのことも考慮しているためです。
<filename>ttf2pf.ps</filename> はそれ以外のファイルを
大文字として扱いますので、
ファイル名の変更はそれに対応させてください
(実際には <filename>GS_TTF.PS</filename> と
<filename>PFS2AFM.PS</filename> は
ghostscript の配布物の一部だと思われますが、
個別のユーティリティとして扱った方が便利なのでそうします。
FreeBSD がこれらを含むとは思われません)。
<filename>PFS2AFM.PS</filename> は、一応
<application>Ghostscript</application> の配布物の一部ですが、
個別のユーティリティとしても問題なく利用できます。
FreeBSD には後者が入っていないようです)。
<filename>/usr/local/share/groff_font/devps</filename>
にインストールされているのがいいかもしれません</para>
にインストールするとよいかもしれません。</para>
</listitem>
</varlistentry>
@ -737,7 +752,7 @@ EOF</userinput>
<listitem>
<para>はアスキーフォントメトリックファイルから
groff とともに使うフォントファイルを作ります。
<application>groff</application> とともに使うフォントファイルを作ります。
これは通常、
<filename>/usr/src/contrib/groff/afmtodit</filename>
ディレクトリに存在していて、
@ -810,7 +825,7 @@ Converting 3of9.ttf to A.pfa and B.afm.
</listitem>
<listitem>
<para>groff PostScript ファイルを作ります。</para>
<para><application>groff</application> PostScript ファイルを作ります。</para>
<para>以下のコマンドの実行が用意なように
<filename>/usr/share/groff_font/devps</filename> に
@ -856,25 +871,32 @@ Converting 3of9.ttf to A.pfa and B.afm.
</orderedlist>
</sect1>
<sect1>
<sect1 id="truetype-for-other-programs">
<title>TrueType フォントを他のプログラムで使うことができますか?</title>
<para>TrueType フォント形式は Windows、Windows 95、Mac
で用いられます。この形式は極めて有名であり、
非常にたくさんのフォントが利用できます。</para>
<para>不幸なことに、(訳注: FreeBSD で)
この形式を利用できるアプリケーションは、著者が知る限り、
Ghostscript と povray の 2 つしかありません。
Ghostscript では、ドキュメントによれば、そのサポートは不十分であり、
フォントを利用してもタイプ 1 フォントより粗悪な結果が得られるようです。
povray バージョン 3 もまた TrueType フォントを利用可能ですが、しかし、
たくさんの人々がレイトレーシングされたページが続いているかのように、
ドキュメントを作成しているのではないかと、著者はむしろ疑っています :-)
(訳注: povray はレイトレーシング関連のプログラムです。
レイトレーシングは計算に時間がかかることから、
ドキュメントを作るのが遅いんじゃないの、
と著者が遠回しに言っているようです)。</para>
<para>残念ながら、この形式を (訳注: FreeBSD で) この形式を利用でき
るアプリケーションは、筆者が知る限りほとんどなく、
<application>Ghostscript</application> と
<application>Povray</application> しか思いつきません。
ドキュメントによれば、<application>Ghostscript</application> の
対応は不十分であり、タイプ 1 フォントより粗悪な結果になるようです。
<application>Povray</application> バージョン 3 もまた TrueType
フォントを利用可能ですが、筆者は、ドキュメントを一連のレイトレー
スしたページとして作成する人が多いのではないかと疑っています :-)。</para>
<!--
もとの訳注は少しずれているように感じたので削りました。
I rather doubt many people will be creating documents
as a series of raytraced pages
とドキュメントを作る部分は未来形なので、むしろ
でも、TrueType フォントを使わないで、ドキュメントまで ray trace
して作っちゃうユーザーが多いんじゃないの
という冗談で、PovRay の開発側のドキュメントに対する苦情の成分は
ないのではないかと思います。
-->
<para>このなんとも悲惨な状況は変わりつつあります。
<ulink url="http://www.freetype.org/">FreeType プロジェクト</ulink>
@ -891,7 +913,8 @@ Converting 3of9.ttf to A.pfa and B.afm.
</listitem>
<listitem>
<para>X11 用の <command>xfsft</command> フォントサーバは
<para><application>X11</application> 用の
<application>xfsft</application> フォントサーバは
一般のフォントに加えて TrueType フォントを提供します。
現在ベータ版であるにもかかわらずたいへん評判がいいものです。
詳しくは
@ -903,8 +926,8 @@ Converting 3of9.ttf to A.pfa and B.afm.
</listitem>
<listitem>
<para><command>xfstt</command> は X11 用のもうひとつの
フォントサーバで、
<para><application>xfstt</application> は
<application>X11</application> 用のもうひとつのフォントサーバで、
<ulink url=" ftp://sunsite.unc.edu/pub/Linux/X11/fonts/"></ulink>
から入手できます。</para>
</listitem>
@ -918,26 +941,13 @@ Converting 3of9.ttf to A.pfa and B.afm.
入手できます。</para>
</listitem>
<listitem>
<para>アジア圏で TrueType フォントを利用したいみなさんには、
<command>XTT</command> フォントサーバは一見の価値があるでしょう。
<command>XTT</command> に関する情報は <ulink
url="http://hawk.ise.chuo-u.ac.jp/student/person/tshiozak/study/freebsd-at-random/x-tt/index-en.html"></ulink>
で得られます。</para>
</listitem>
<listitem>
<para>そしてその他 &hellip;</para>
</listitem>
</itemizedlist>
<para>
<ulink url="http://www.freetype.org/projects.htm">FreeType プロジェクトページ</ulink>は、
以上に挙げたものおよびその他のフリーな TrueType
プロジェクトに関する情報入手のよい出発点となるでしょう。</para>
</sect1>
<sect1>
<sect1 id="obtaining-additional-fonts">
<title>どこでフォントを入手できますか?</title>
<para>インターネット上でたくさんのフォントを利用することができます。
@ -947,41 +957,23 @@ Converting 3of9.ttf to A.pfa and B.afm.
(1996年8月現在)を以下に示します。</para>
<itemizedlist>
<listitem>
<para><ulink
url="ftp://ftp.winsite.com/"></ulink>
(以前は CICA)</para>
</listitem>
<listitem>
<para><ulink
url="http://www.simtel.net/"></ulink></para>
</listitem>
<listitem>
<para><ulink
url="ftp://ftp.coast.net/"></ulink></para>
<para><ulink url="http://www.freshmeat.net/"></ulink></para>
</listitem>
<listitem>
<para><ulink
url="http://af-pc-plloyd.ecel.uwa.edu.au/fonts/"></ulink></para>
</listitem>
<listitem>
<para><ulink
url="http://www.esselte.com/letraset/"></ulink></para>
</listitem>
<listitem>
<para><ulink
url="http://www.inil.com/users/elfring/esf.htm"></ulink></para>
<para>Ports Collection の <filename>x11-fonts/</filename></para>
</listitem>
</itemizedlist>
</sect1>
<sect1>
<title>未解決問題</title>
<sect1 id="additional-questions">
<title>その他の質問</title>
<itemizedlist>
<listitem>
@ -994,8 +986,9 @@ Converting 3of9.ttf to A.pfa and B.afm.
</listitem>
<listitem>
<para>非標準キャラクタ名がある PostScript フォントを groff
キャラクタにマッピングするファイルをどのように作成するか?</para>
<para>非標準キャラクタ名がある PostScript フォントを
<application>groff</application> キャラクタにマッピングする
ファイルをどのように作成するか?</para>
</listitem>
<listitem>
@ -1004,7 +997,8 @@ Converting 3of9.ttf to A.pfa and B.afm.
</listitem>
<listitem>
<para>povray と Ghostscript で TrueType
<para><application>Povray</application> と
<application>Ghostscript</application> で TrueType
フォントを利用する例があるといいだろう。</para>
</listitem>
</itemizedlist>