From 9ab42c1f53fc3bd131c1812c23490f4f6df266ca Mon Sep 17 00:00:00 2001
From: Eitan Adler
Date: Fri, 3 Apr 2015 01:10:52 +0000
Subject: [PATCH] fbsd-from-scratch: remove it - it references sysinstall,
which is gone - the scripts used to install the system use pkg_add not pkg
- and are rotted in other ways - the limitations of sysinstall have
been somewhat mitigated by bsdinstall (which can install into a new
directory) - it warns of outdated stuff (acroread8 doesn't exist anymore)
- package building takes place on runnning system and not on poudriere
- many of the packages referenced don't exist or are vastly changed
- it incorrectly installs the base system - and more
Discussed with: jmg, Daniel O'Connor, bjk
---
en_US.ISO8859-1/articles/Makefile | 1 -
.../articles/fbsd-from-scratch/Makefile | 30 -
.../articles/fbsd-from-scratch/article.xml | 599 ------------------
.../fbsd-from-scratch/stage_1.conf.default | 175 -----
.../articles/fbsd-from-scratch/stage_1.sh | 163 -----
.../fbsd-from-scratch/stage_2.conf.default | 98 ---
.../articles/fbsd-from-scratch/stage_2.sh | 131 ----
.../articles/fbsd-from-scratch/stage_3.mk | 252 --------
en_US.ISO8859-1/htdocs/docs/books.xml | 6 -
9 files changed, 1455 deletions(-)
delete mode 100644 en_US.ISO8859-1/articles/fbsd-from-scratch/Makefile
delete mode 100644 en_US.ISO8859-1/articles/fbsd-from-scratch/article.xml
delete mode 100644 en_US.ISO8859-1/articles/fbsd-from-scratch/stage_1.conf.default
delete mode 100644 en_US.ISO8859-1/articles/fbsd-from-scratch/stage_1.sh
delete mode 100644 en_US.ISO8859-1/articles/fbsd-from-scratch/stage_2.conf.default
delete mode 100644 en_US.ISO8859-1/articles/fbsd-from-scratch/stage_2.sh
delete mode 100644 en_US.ISO8859-1/articles/fbsd-from-scratch/stage_3.mk
diff --git a/en_US.ISO8859-1/articles/Makefile b/en_US.ISO8859-1/articles/Makefile
index 2036fe856c..b99ed2bb07 100644
--- a/en_US.ISO8859-1/articles/Makefile
+++ b/en_US.ISO8859-1/articles/Makefile
@@ -12,7 +12,6 @@ SUBDIR+= contributors
SUBDIR+= cups
SUBDIR+= custom-gcc
SUBDIR+= explaining-bsd
-SUBDIR+= fbsd-from-scratch
SUBDIR+= filtering-bridges
SUBDIR+= fonts
SUBDIR+= freebsd-questions
diff --git a/en_US.ISO8859-1/articles/fbsd-from-scratch/Makefile b/en_US.ISO8859-1/articles/fbsd-from-scratch/Makefile
deleted file mode 100644
index 978c47925e..0000000000
--- a/en_US.ISO8859-1/articles/fbsd-from-scratch/Makefile
+++ /dev/null
@@ -1,30 +0,0 @@
-#
-# $FreeBSD$
-#
-# Article: FreeBSD From Scratch
-
-DOC?= article
-
-FORMATS?= html
-
-MAINTAINER= schweikh@FreeBSD.org
-
-INSTALL_COMPRESSED?= gz
-INSTALL_ONLY_COMPRESSED?=
-
-EXTRAS= stage_1.conf.default
-EXTRAS+= stage_1.sh
-EXTRAS+= stage_2.conf.default
-EXTRAS+= stage_2.sh
-EXTRAS+= stage_3.mk
-
-SRCS= article.xml
-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/en_US.ISO8859-1/articles/fbsd-from-scratch/article.xml b/en_US.ISO8859-1/articles/fbsd-from-scratch/article.xml
deleted file mode 100644
index c3cb6d8e81..0000000000
--- a/en_US.ISO8859-1/articles/fbsd-from-scratch/article.xml
+++ /dev/null
@@ -1,599 +0,0 @@
-
-FreeBSD From Scratch">
-]>
-
- FreeBSD From Scratch
-
-
- JensSchweikhardt
- schweikh@FreeBSD.org
-
-
- 2002,2003,2004,2008
- Jens Schweikhardt
-
-
-
- &tm-attrib.freebsd;
- &tm-attrib.adobe;
- &tm-attrib.general;
-
-
- $FreeBSD$
-
- $FreeBSD$
-
-
- This article describes my efforts at &scratch.ap;: a fully
- automated installation of a customized &os; system compiled from
- source, including compilation of all your favorite ports and
- configured to match your idea of the perfect system. If you
- think make world is a wonderful concept,
- &scratch.ap; extends it to make evenmore.
-
-
-
-
- Introduction
-
- Have you ever upgraded your system with make world?
- There is a problem if you have only one system on your disks. If
- the installworld fails partway through,
- you are left with a broken system that might not even boot any
- longer. Or maybe the installworld runs
- smoothly but the new kernel does not boot. Then it is time to
- reach for the Fixit CD and dig for those backups you have taken
- half a year ago.
-
- I believe in the wipe your disks when upgrading systems
- paradigm. Wiping disks, or rather partitions, makes sure there is no
- old cruft left lying around, something which most upgrade procedures
- just do not care about. But wiping the partitions means you have to
- also recompile/reinstall all your ports and packages and then
- redo all your carefully crafted configuration tweaks.
- If you think that this task should be automated as well, read on.
-
-
-
- Why would I (not) want &scratch.ap;?
-
- This is a legitimate question. We have
- sysinstall and the well known way to
- compile the kernel and the userland tools.
-
- The problem with sysinstall is
- that it is severely limited in what, where and how it can install.
-
-
-
- It is normally used to install pre-built distribution sets and
- packages from some other source (CD, DVD, FTP). It cannot install
- the result of a make buildworld.
-
-
-
- It cannot install a second system under a directory
- in a running system.
-
-
-
- It cannot install in Vinum
- or ZFS partitions.
-
-
-
- It cannot compile ports, only install precompiled packages.
-
-
-
- It is hard to script or to make arbitrary post-installation
- changes.
-
-
-
- Last but not least, sysinstall
- is semi-officially at its End-Of-Life.
-
-
-
- The well known way to build and install the world, as
- described in the
- Handbook, by default replaces
- the existing system. Only the kernel and modules are saved.
- System binaries, headers and a lot of other files are overwritten;
- obsolete files are still present and can cause surprises. If the
- upgrade fails for any reason, it may be hard or even impossible to
- restore the previous state of the system.
-
- &scratch.ap; solves all these problems. The strategy is
- simple: use a running system to install a new system under an empty
- directory tree, while new partitions are mounted appropriately
- in that tree. Many config files can be copied to the appropriate
- place and &man.mergemaster.8; can take care of those that cannot.
- Arbitrary post-configuration of the new system can be
- done from within the old system, up to the point where you can
- chroot to the new system. In other words, we go through three
- stages, where each stage consists of either running a shell
- script or invoking make:
-
-
-
- stage_1.sh:
- Create a new bootable system under an empty directory and merge
- or copy as many files as are necessary.
- Then boot the new system.
-
-
-
- stage_2.sh:
- Install desired ports.
-
-
-
- stage_3.mk:
- Do post-configuration for software installed in previous stage.
-
-
-
- Once you have used &scratch.ap; to build a second system and
- found it works satisfactorily for a couple of weeks, you can then
- use it again to reinstall the original system. From now on, whenever
- you feel like an update is in order, you simply toggle the
- partitions you want to wipe and reinstall.
-
- Maybe you have heard of or even tried Linux From Scratch,
- or LFS for short. LFS also describes how to build and install a
- system from scratch in empty partitions using a running system.
- The focus in LFS seems to be to show the role of each system
- component (such as kernel, compiler, devices, shell, terminal database,
- etc) and the details of each component's installation.
- &scratch.ap; does not go into that much detail. My goal is to
- provide an automated and complete installation, not explaining all
- the gory details that go on under the hood when making the world.
- In case you want to explore &os; at this level of detail, start
- looking at /usr/src/Makefile and follow the
- actions of a make buildworld.
-
- There are also downsides in the approach taken by &scratch.ap;
- that you should bear in mind.
-
-
-
-
-
- While compiling the ports during stage two the system can
- not be used for its usual duties. If you run a production server
- you have to consider the downtime caused by stage two. The ports
- compiled by stage_2.conf.default below require
- about 8 hours (of which 4 hours are due to
- OpenOffice.org) to build on a contemporary
- system. If you prefer to install packages instead of ports,
- you can significantly reduce the downtime to about 10 minutes.
-
-
-
-
-
- Prerequisites
-
- For going the &scratch.ap; way, you need to have:
-
-
-
- A running &os; system with sources and a ports tree.
-
-
-
- At least one unused partition where the new system will be
- installed.
-
-
-
- Experience with running &man.mergemaster.8;. Or at least no fear
- doing so.
-
-
-
- If you have no or only a slow link to the Internet: the distfiles
- for your favorite ports.
-
-
-
- Basic knowledge of shell scripting with the Bourne shell,
- &man.sh.1;.
-
-
-
- Finally, you should also be able to tell your boot
- loader how to boot the new system, either interactively, or
- by means of a config file.
-
-
-
-
-
- Stage One: System Installation
-
- The first version of this article used a single shell script
- for stage one where all your customization had to be done by editing
- the script. After valuable user feedback I have decided to
- separate the code and data in the scripts. This allows to have
- different configuration data sets to install different systems
- without changing any of the code scripts.
-
- The code script for stage one is
- stage_1.sh and when run with exactly one
- argument, like
-
-
- &prompt.root; ./stage_1.sh default
-
-
- will read its configuration from
- stage_1.conf.default and write a log to
- stage_1.log.default.
-
- Further below you find my stage_1.conf.default.
- You need to customize it in various places to match your idea of the
- perfect system. I have tried to extensively comment
- the places you should adapt. The configuration script must provide
- four shell functions, create_file_systems,
- create_etc_fstab, copy_files
- and all_remaining_customization (in case it
- matters: this is also the sequence in which they will be called
- from stage_1.sh).
-
- The points to ponder are:
-
-
-
- Partition layout.
-
- I do not subscribe to the idea of a single huge partition
- for the whole system. My systems generally have at least
- one partition for
- /,
- /usr and
- /var with
- /tmp symlinked to
- /var/tmp.
- In addition I share the file systems for
- /home (user homes),
- /home/ncvs (&os; CVS repository replica),
- /usr/ports (the ports tree),
- /src (various checked out src trees) and
- /share (other shared data without the need
- for backups, like the news spool).
-
-
-
- Luxury items.
-
- What you want immediately after booting the new system and
- even before starting stage two. The reason for not simply
- chrooting to the new system during stage one and installing
- all my beloved ports is that in theory and in practice there
- are bootstrap and consistency issues: stage one has your old
- kernel running, but the chrooted environment consists of new
- binaries and headers. If the new binaries use a new system
- call, these binaries will die with SIGSYS, Bad
- system call, because the old kernel does not have
- that system call. I have seen other issues when I tried
- building lang/perl5.8.
-
-
-
-
- Before you run stage_1.sh make sure
- you have completed the usual tasks in preparation for
- make installworld installkernel, like:
-
-
-
- configured your kernel config file
-
-
-
- successfully completed make buildworld
-
-
-
- successfully completed make buildkernel
- KERNCONF=whatever
-
-
-
- When you run stage_1.sh for the first
- time, and the config files copied from your running system to the
- new system are not up-to-date with respect to what is under
- /usr/src, mergemaster will
- ask you how to proceed. I recommend merging the changes. If you get
- tired of going through the dialogues you can simply update the files
- on your running system once (Only if this is an
- option. You probably do not want to do this if one of your systems
- runs -STABLE and the other
- -CURRENT. The changes may be incompatible).
- Subsequent mergemaster invocations will detect
- that the RCS version IDs match those under
- /usr/src and skip the file.
-
- The stage_1.sh script will stop at the
- first command that fails (returns a non-zero exit status) due to
- set -e, so you cannot overlook errors. It will
- also stop if you use an unset environment variable, probably due
- to a typo. You should correct any errors in your version of
- stage_1.conf.default before you go on.
-
- In stage_1.sh we invoke
- mergemaster. Even if none of the files requires a
- merge, it will display and ask at the end
-
- *** Comparison complete
-*** Saving mtree database for future upgrades
-
-Do you wish to delete what is left of /var/tmp/temproot.stage1? [no] no
-
- Please answer no or just hit
- Enter. The reason is that mergemaster
- will have left a few zero sized files below
- /var/tmp/temproot.stage1 which will be copied to the
- new system later (unless already there).
-
- After that mergemaster will list the files it
- installed and ask if the new login.conf should be
- generated:
-
-*** You chose the automatic install option for files that did not
- exist on your system. The following were installed for you:
- /newroot/etc/defaults/rc.conf
- ...
- /newroot/COPYRIGHT
-
-*** You installed a new aliases file into /newroot/etc/mail, but
- the newaliases command is limited to the directories configured
- in sendmail.cf. Make sure to create your aliases database by
- hand when your sendmail configuration is done.
-
-*** You installed a login.conf file, so make sure that you run
- '/usr/bin/cap_mkdb /newroot/etc/login.conf'
- to rebuild your login.conf database
-
- Would you like to run it now? y or n [n]
-
- The answer does not matter since stage_1.sh will
- run &man.cap.mkdb.1; for you in any case.
-
- Here is the author's stage_1.conf.default,
- which you need to modify substantially. The comments give you
- enough information what to change.
-
-
-
- Download stage_1.conf.default
- .
-
- Running this script installs a system that when booted
- provides:
-
-
- Inherited users and groups.
-
-
- Firewalled Internet connectivity over Ethernet.
-
-
- Correct time zone and NTP.
-
-
- Some more minor configuration, like
- /etc/ttys and
- inetd.
-
-
-
- Other areas are prepared for configuration, but will not work
- until stage two is completed. For example we have copied files to
- configure printing and X11. Printing however is likely to need
- applications not found in the base system, like &postscript;
- utilities. X11 will not run before we have compiled the server,
- libraries and programs.
-
-
-
- Stage Two: Ports Installation
-
-
- It is also possible to install the (precompiled)
- packages at this stage, instead of compiling ports. In this case,
- stage_2.sh would be nothing more than a list of
- pkg_add commands. I trust you know how to write
- such a script. Here we concentrate on the more flexible and
- traditional way of using the ports.
-
-
- The following stage_2.sh script is how I
- install my favorite ports. It can be run any number of times and
- will skip all ports that are already installed. It supports the
- dryrun option () to just
- show what would be done. You run it like stage_1.sh
- with exactly one argument to denote a config file, e.g.
-
-
- &prompt.root; ./stage_2.sh default
-
-
- which will read the list of ports from
- stage_2.conf.default.
-
- The list of ports consists of lines with two or more space
- separated words: the category and the port, optionally followed by
- an installation command that will compile and install the port
- (default: make install BATCH=yes < /dev/null).
- Empty lines and lines
- starting with # are ignored. Most of the time it suffices to only
- name category and port. A few ports however can be fine tuned by
- specifying make variables, e.g.:
-
- www mozilla make WITHOUT_MAILNEWS=yes WITHOUT_CHATZILLA=yes install
-
- In fact you can specify arbitrary shell commands, so you are
- not restricted to simple make invocations:
-
- java jdk16 echo true > files/license.sh; make install BATCH=yes < /dev/null
-print acroread8 yes accept | make install PAGER=ls
-x11-fonts gnu-unifont make install && mkfontdir /usr/local/lib/X11/fonts/local
-news inn-stable CONFIGURE_ARGS="--enable-uucp-rnews --enable-setgid-inews" make install
-
- The first two lines are examples how you can handle ports
- asking you to accept a licence. Note how the line for
- news/inn-stable is an example
- for a one-shot shell variable assignment to
- CONFIGURE_ARGS. The port
- Makefile will use this as an initial value
- and augment some other essential args. The difference to
- specifying a make variable on the command line
- with
-
- news inn-stable make CONFIGURE_ARGS="--enable-uucp-rnews --enable-setgid-inews" install
-
- is that the latter will override instead of augment. It depends on
- the particular port which method you want.
-
- Be careful that your ports do not use an interactive install, i.e.
- they should not try to read from stdin other than what you explicitly
- give them on stdin. If they do, they will read the next line(s) from
- your list of ports in the here-document and get confused. If
- stage_2.sh mysteriously skips a port or stops
- processing, this is likely the reason.
-
- Below is stage_2.conf.default. A log file named
- LOGDIR/category+port is created for each port
- it actually installs.
-
-
-
- Download stage_2.conf.default.
-
-
-
- Stage Three
-
- You have installed your beloved ports during stage two. Some
- ports require a little bit of configuration. This is what stage three,
- the post-configuration is for. I could have integrated this
- post-configuration at the end of the stage_2.sh
- script. However, I think there is a conceptual difference between
- installing a port and modifying its out-of-the-box configuration
- that warrants a separate stage.
-
- I have chosen to implement stage three as a
- Makefile because this allows easy selection of
- what you want to configure simply by running:
-
-
- &prompt.root; make -f stage_3.mk target
-
-
- As with stage_2.sh make sure you have
- stage_3.mk available after booting the new
- system, either by putting it on a shared partition or copying it
- somewhere on the new system.
-
-
-
- Limitations
-
- The automated installation of a port may prove difficult if it
- is interactive and does not support make BATCH=YES
- install. For a few ports the interaction is nothing more
- than typing yes when asked to accept some license.
- If the answer is read from standard input, simply pipe the
- appropriate answers to the installation command (e.g. yes |
- make install. For other ports you need to investigate
- where exactly the interactive command is located and deal with it
- appropriately. See the examples above for
- print/acroread8 and
- java/jdk16.
-
- You should also be aware of upgrade issues for config files.
- In general you do not know when and if the format or contents of a
- config file changes. A new group may be added to
- /etc/group, or /etc/passwd
- may gain another field. All of this has happened in the past. Simply
- copying a config file from the old to the new system may be enough
- most of the time, but in these cases it was not. If you update a
- system the canonical way (by overwriting the old files) you are
- expected to use mergemaster to deal with changes
- where you effectively want to merge your local config with
- potentially new items. Unfortunately, mergemaster
- is only available for base system files, not for anything installed
- by ports. Some third party software seems to be especially designed
- to keep me on my toes by changing the config file format every
- fortnight. To detect such silent changes, I keep a copy of the
- modified config files in the same place where I keep
- stage_3.mk and compare the result with a
- make rule, e.g. for
- apache's httpd.conf
- in target config_apache with
-
-
-@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 the diff is innocuous I can make the message go away with
- cp /usr/local/etc/apache2/httpd.conf
- httpd.conf.
-
- I have used &scratch.ap; several times to update a
- 7-CURRENT to 7-CURRENT and
- 8-CURRENT to 8-CURRENT, i.e.
- I have never tried to install a 8-CURRENT from
- a 7-CURRENT system or vice versa. Due to the
- number of changes between different major release numbers I would
- expect this process to be a bit more involved. Using &scratch.ap;
- for upgrades within the realm of a STABLE branch
- should work painlessly (although I have not yet tried it.)
-
-
-
-
- The Files
-
- Here are the three files you need beside the config files
- already shown above.
-
- This is the stage_1.sh
- script, which you should not need to modify.
-
-
-
- Download stage_1.sh.
-
- This is the stage_2.sh
- script. You may want to modify the variables at the
- beginning.
-
-
-
- Download stage_2.sh.
-
- This is my stage_3.mk to
- give you an idea how to automate all reconfiguration.
-
-
-
- Download stage_3.mk.
-
-
-
diff --git a/en_US.ISO8859-1/articles/fbsd-from-scratch/stage_1.conf.default b/en_US.ISO8859-1/articles/fbsd-from-scratch/stage_1.conf.default
deleted file mode 100644
index d706c7092b..0000000000
--- a/en_US.ISO8859-1/articles/fbsd-from-scratch/stage_1.conf.default
+++ /dev/null
@@ -1,175 +0,0 @@
-# This file: stage_1.conf.default, sourced by stage_1.sh.
-#
-# $Id: stage_1.conf.default,v 1.5 2011-05-14 20:44:31 hrs Exp $
-# $FreeBSD$
-
-# Root mount point where you create the new system. Because it is only
-# used as a mount point, no space will be used on that file system as all
-# files are of course written to the mounted file system(s).
-DESTDIR="/newroot"
-
-# Where your src tree is.
-SRC="/usr/src"
-
-# Where your obj is.
-MAKEOBJDIRPREFIX="/usr/obj"
-
-# Your kernel config name as from make buildkernel KERNCONF=...
-KERNCONF="HAL9000"
-
-# Your target architecture as used for make buildworld TARGET=...
-# If you did not specify a TARGET when building world, it defaulted
-# to the build architecture (run "uname -m" to find out if you are unsure).
-TARGET="i386" # amd64 arm i386 ia64 mips pc98 powerpc sparc64
-
-# Available time zones are those under /usr/share/zoneinfo.
-TIMEZONE="Europe/Berlin"
-
-
-#
-# The create_file_systems function must create the mountpoints under
-# DESTDIR, create the file systems, and then mount them under DESTDIR.
-#
-create_file_systems () {
- # The new root file system. Mandatory.
- # Change DEVICE names.
- DEVICE=/dev/daXYZs1a
- mkdir -m 755 -p ${DESTDIR}
- chown root:wheel ${DESTDIR}
- newfs -U ${DEVICE}
- mount -o noatime ${DEVICE} ${DESTDIR}
-
- # Additional file systems and initial mount points. Optional.
- DEVICE=/dev/daXYZs1e
- mkdir -m 755 -p ${DESTDIR}/var
- chown root:wheel ${DESTDIR}/var
- newfs -U ${DEVICE}
- mount -o noatime ${DEVICE} ${DESTDIR}/var
-
- DEVICE=/dev/daXYZs1e
- mkdir -m 755 -p ${DESTDIR}/usr
- chown root:wheel ${DESTDIR}/usr
- newfs -U ${DEVICE}
- mount -o noatime ${DEVICE} ${DESTDIR}/usr
-}
-
-#
-# The create_etc_fstab function must create an fstab matching the
-# file systems created in create_file_systems.
-#
-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
-}
-
-#
-# The copy_files function is used to copy files before mergemaster is run.
-#
-copy_files () {
- # Add or remove from this list at your discretion. Mostly mandatory.
- for f in \
- /.profile \
- /etc/devd.conf \
- /etc/devd.rules \
- /etc/exports \
- /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/src.conf \
- /etc/sysctl.conf \
- /etc/ttys \
- /etc/mail/aliases \
- /etc/mail/aliases.db \
- /etc/mail/hal9000.mc \
- /etc/mail/service.switch \
- /etc/ssh/*key* \
- /etc/ssh/*_config \
- /etc/X11/xorg.conf \
- /var/cron/tabs/* \
- /root/.profile \
- /boot/*.bmp \
- /boot/loader.conf \
- /boot/device.hints ; do
- cp -p ${f} ${DESTDIR}${f}
- done
-}
-
-#
-# Everything else you want to tune in the new system.
-# NOTE: Do not install too many binaries here. With the old system running and
-# the new binaries and headers installed you are likely to run into bootstrap
-# problems. Ports should be compiled after you have booted in the new system.
-#
-all_remaining_customization () {
- # Without the compat symlink the linux_base files end up on the root fs:
- 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
-
- # Create the ntp and slip log files.
- touch ${DESTDIR}/var/log/ntp ${DESTDIR}/var/log/slip.log
-
- # Make /usr/src point to the right directory. Optional.
- # Note: some ports need part of the src tree, e.g. emulators/kqemu,
- # sysutils/lsof, sysutils/fusefs, ...
- cd ${DESTDIR}/usr
- if test "${SRC}" != /usr/src; then
- rmdir src; ln -s ${SRC}
- fi
- if test "${MAKEOBJDIRPREFIX}" != /usr/obj; then
- rmdir obj; ln -s ${MAKEOBJDIRPREFIX}
- fi
-
- # My personal preference is to symlink tmp -> var/tmp. Optional.
- cd ${DESTDIR}; rmdir tmp; ln -s var/tmp
-
- # Make spooldirs for the printers in my /etc/printcap.
- cd ${DESTDIR}/var/spool/output/lpd; mkdir -p as od ev te lp da
- touch ${DESTDIR}/var/log/lpd-errs
-
- # If you do not have /home on a shared partition, you may want to copy it:
- # mkdir -p ${DESTDIR}/home
- # cd /home; tar cf - . | (cd ${DESTDIR}/home; tar xpvf -)
-}
-
-# vim: tabstop=2:expandtab:shiftwidth=2:syntax=sh:
-# EOF $RCSfile: stage_1.conf.default,v $
diff --git a/en_US.ISO8859-1/articles/fbsd-from-scratch/stage_1.sh b/en_US.ISO8859-1/articles/fbsd-from-scratch/stage_1.sh
deleted file mode 100644
index 9e8760c6ca..0000000000
--- a/en_US.ISO8859-1/articles/fbsd-from-scratch/stage_1.sh
+++ /dev/null
@@ -1,163 +0,0 @@
-#!/bin/sh
-#
-# stage_1.sh - FreeBSD From Scratch, Stage 1: System Installation.
-# Usage: ./stage_1.sh profile
-# will read profile
-# and write ./stage_1.log.profile
-#
-# Author: Jens Schweikhardt
-# $Id: stage_1.sh,v 1.7 2008-12-11 19:48:21 schweikh Exp $
-# $FreeBSD$
-
-PATH=/bin:/usr/bin:/sbin:/usr/sbin
-
-# Prerequisites:
-#
-# a) Successfully completed "make buildworld" and "make buildkernel"
-# b) Unused partitions (at least one for the root fs, probably more for
-# the new /usr and /var, to your liking.)
-# c) A customized profile file.
-
-if test $# -ne 1; then
- echo "usage: stage_1.sh profile" 1>&2
- exit 1
-fi
-
-# ---------------------------------------------------------------------------- #
-# Step 1: Create an empty directory tree below $DESTDIR.
-# ---------------------------------------------------------------------------- #
-
-step_one () {
- create_file_systems
- # Now create all the other directories. Mandatory.
- cd ${SRC}/etc; make distrib-dirs DESTDIR=${DESTDIR} TARGET=${TARGET}
-}
-
-# ---------------------------------------------------------------------------- #
-# Step 2: Fill the empty /etc directory tree and put a few files in /.
-# ---------------------------------------------------------------------------- #
-
-step_two () {
- copy_files
-
- # Delete mergemaster's temproot, if any.
- 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 does not create empty files, e.g. in /var/log. Do so now,
- # but do not clobber files that may have been copied with 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}
-}
-
-# ---------------------------------------------------------------------------- #
-# Step 3: Install world.
-# ---------------------------------------------------------------------------- #
-
-step_three () {
- cd ${SRC}
- make installworld DESTDIR=${DESTDIR} TARGET=${TARGET}
-}
-
-# ---------------------------------------------------------------------------- #
-# Step 4: Install kernel and modules.
-# ---------------------------------------------------------------------------- #
-
-step_four () {
- cd ${SRC}
- # The loader.conf and device.hints are required by the installkernel target.
- # If you have not copied them in Step 2, cp them as shown in the next 2 lines.
- # cp sys/boot/forth/loader.conf ${DESTDIR}/boot/defaults
- # cp sys/${TARGET}/conf/GENERIC.hints ${DESTDIR}/boot/device.hints
- make installkernel DESTDIR=${DESTDIR} KERNCONF=${KERNCONF} TARGET=${TARGET}
-}
-
-# ---------------------------------------------------------------------------- #
-# Step 5: Install /etc/fstab and time zone info.
-# ---------------------------------------------------------------------------- #
-
-step_five () {
- create_etc_fstab
-
- # Setup time zone info; pretty much mandatory.
- 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
- fi
-}
-
-# ---------------------------------------------------------------------------- #
-# Step 6: All remaining customization.
-# ---------------------------------------------------------------------------- #
-
-step_six () {
- all_remaining_customization
-}
-
-do_steps () {
- echo "PROFILE=${PROFILE}"
- echo "TARGET=${TARGET}"
- 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
-}
-
-# ---------------------------------------------------------------------------- #
-# The ball starts rolling here.
-# ---------------------------------------------------------------------------- #
-
-PROFILE="$1"
-set -x -e -u # Stop for any error or use of an undefined variable.
-. ${PROFILE}
-
-# Determine a few variables from the sources that were used to make the
-# world. The variables can be used to modify actions, e.g. depending on
-# the system's version. The __FreeBSD_version numbers
-# for RELDATE are documented in the Porter's Handbook,
-# doc/en_US.ISO8859-1/books/porters-handbook/freebsd-versions.html.
-# Scheme is: <0 if release branch, otherwise 1>xx
-# The result will be something like
-#
-# TYPE="FreeBSD"
-# REVISION="8.0"
-# BRANCH="RC" { "CURRENT", "STABLE", "RELEASE" }
-# RELDATE="800028"
-#
-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.${PROFILE}.log"
-do_steps 2>&1 | tee "stage_1.${PROFILE}.log"
-
-# vim: tabstop=2:expandtab:shiftwidth=2:
-# EOF $RCSfile: stage_1.sh,v $
diff --git a/en_US.ISO8859-1/articles/fbsd-from-scratch/stage_2.conf.default b/en_US.ISO8859-1/articles/fbsd-from-scratch/stage_2.conf.default
deleted file mode 100644
index b188cb0e11..0000000000
--- a/en_US.ISO8859-1/articles/fbsd-from-scratch/stage_2.conf.default
+++ /dev/null
@@ -1,98 +0,0 @@
-# vim: syntax=sh
-# $Id: stage_2.conf.default,v 1.4 2008-12-03 21:59:51 schweikh Exp $
-# $FreeBSD$
-devel ccache
-shells zsh
-devel gettext
-archivers unzip
-archivers zip
-security sudo
-x11 xorg
-x11-servers xorg-server
-x11-fonts xorg-fonts-100dpi
-x11-fonts xorg-fonts-75dpi
-x11-fonts xorg-fonts-miscbitmaps
-x11-fonts xorg-fonts-truetype
-x11-fonts xorg-fonts-type1
-x11-fonts gnu-unifont make install && mkfontdir /usr/local/lib/X11/fonts/local
-x11-fonts urwfonts
-x11-fonts webfonts
-x11-toolkits open-motif
-x11-wm ctwm
-x11 wdm
-security openssh-askpass
-astro xplanet
-astro xephem
-editors vim
-print ghostscript8
-print psutils-a4
-print a2ps-a4
-print gv
-print transfig
-print teTeX
-print cups-base
-emulators linux_base-fc6
-print acroread8 yes accept | make install PAGER=ls
-java jdk16 echo true > files/license.sh; make install BATCH=yes < /dev/null
-www apache22
-www amaya
-www firefox3
-www checkbot
-www p5-HTML-Parser
-www validator
-www mplayer-plugin
-math p5-Math-Combinatorics
-math p5-Bit-Vector
-graphics evince
-graphics xfig
-graphics xv
-graphics gphoto2
-multimedia xawtv
-lang expect
-lang gawk
-lang python
-news tin
-net freebsd-uucp
-net cvsup-without-gui
-net rsync
-ftp wget
-textproc ispell
-german ispell-neu
-german ispell-alt
-textproc docproj
-sysutils samefile
-sysutils smartmontools
-sysutils pstree
-sysutils cdrtools
-sysutils dvd+rw-tools
-sysutils grub
-sysutils lsof
-devel subversion-freebsd
-devel bcc
-devel ddd
-devel gindent
-devel ctags
-devel ElectricFence
-devel strace
-devel perltidy
-mail procmail
-mail metamail
-mail mutt-devel
-ports-mgmt portupgrade
-news inn CONFIGURE_ARGS="--enable-uucp-rnews --enable-setgid-inews" make BATCH=yes install < /dev/null
-misc figlet-fonts
-security gpa
-mail spamoracle
-textproc rman
-multimedia mplayer
-multimedia mplayer-fonts
-multimedia acidrip
-multimedia ogle
-multimedia ogle-gui
-audio pacpl
-audio p5-CDDB_get
-audio cowbell
-shells bash
-editors openoffice.org-3-RC
-java eclipse
-java netbeans
diff --git a/en_US.ISO8859-1/articles/fbsd-from-scratch/stage_2.sh b/en_US.ISO8859-1/articles/fbsd-from-scratch/stage_2.sh
deleted file mode 100644
index 699c940353..0000000000
--- a/en_US.ISO8859-1/articles/fbsd-from-scratch/stage_2.sh
+++ /dev/null
@@ -1,131 +0,0 @@
-#!/bin/sh
-#
-# stage_2.sh - FreeBSD From Scratch, Stage 2: Ports Installation.
-# Usage: ./stage_2.sh [-hnp] configname
-#
-# Author: Jens Schweikhardt
-# $Id: stage_2.sh,v 1.5 2004-07-19 21:02:26 schweikh Exp $
-# $FreeBSD$
-
-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=
-
-MYNAME="$(basename $0)"
-usage () {
- exec >&2
- 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
-}
-
-# Look for a package in these locations in sequence.
-# Returns as soon as the first is found. Result on stdout.
-#
-# ${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
-}
-
-#
-# Parse command line arguments.
-#
-args=`getopt hnp $*`
-if test $? != 0; then
- usage
-fi
-set -- $args
-DRYRUN=
-CHKPKG=
-for i; do
- case "$i" in
- -n) DRYRUN="yes"; shift;;
- -p) CHKPKG="yes"; shift;;
- --) shift; break;;
- *) usage;;
- esac
-done
-if test $# -eq 1; then
- DATAFILE="$1"
-else
- usage
-fi
-
-#
-# Loop over the ports list.
-#
-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 BATCH=yes < /dev/null"
- if test -n "${DRYRUN}"; then
- if test -n "${PKG}"; then
- echo pkg_add -v ${PKG}
- else
- echo "${CMD}"
- fi
- continue
- fi
- date "++++ Started %v %T +++" > ${LOG}
- STARTED=$(date +%s)
- (
- if test -n "${PKG}"; then
- echo "Found package ${PKG}"
- pkg_add -v ${PKG}
- else
- echo "CMD: ${CMD}"
- make clean
- eval "${CMD}"
- make clean # Uncomment if diskspace is tight under ${PORTS}.
- fi
- ) 2>&1 | tee -a ${LOG}
- FINISHED=$(date +%s)
- DURATION=$(dc -e "${FINISHED} ${STARTED} - p")
- date "++++ Finished %v %T after ${DURATION} secs +++" >> ${LOG}
-done < stage_2.conf.${DATAFILE}
-
-# vim: tabstop=4:
-# EOF $RCSfile: stage_2.sh,v $
diff --git a/en_US.ISO8859-1/articles/fbsd-from-scratch/stage_3.mk b/en_US.ISO8859-1/articles/fbsd-from-scratch/stage_3.mk
deleted file mode 100644
index 901ba1d801..0000000000
--- a/en_US.ISO8859-1/articles/fbsd-from-scratch/stage_3.mk
+++ /dev/null
@@ -1,252 +0,0 @@
-# stage_3.mk - FreeBSD From Scratch, Stage 3: Ports Post-Configuration.
-# Usage: make -f stage_3.mk all (configure everything)
-# or make -f stage_3.mk target (just configure target)
-#
-# Author: Jens Schweikhardt
-#
-# It is a good idea to make sure any target can be made more than
-# once without ill effect.
-#
-# $Id: stage_3.mk,v 1.5 2008-12-03 21:59:51 schweikh Exp $
-# $FreeBSD$
-
-.POSIX:
-
-message:
- @echo "Please use one of the following targets:"
- @echo "config_apache"
- @echo "config_cups"
- @echo "config_firefox"
- @echo "config_inn"
- @echo "config_javaplugin"
- @echo "config_openoffice"
- @echo "config_sudo"
- @echo "config_TeX"
- @echo "config_tin"
- @echo "config_wdm"
- @echo "config_uucp"
- @echo "all -- all of the above"
-
-all: \
- config_apache \
- config_cups \
- config_firefox \
- config_inn \
- config_javaplugin \
- config_openoffice \
- config_sudo \
- config_TeX \
- config_tin \
- config_wdm \
- config_uucp
-
-APACHE = apache22
-config_apache:
- # 1. Modify httpd.conf.
- perl -pi \
- -e 's/^\s*ServerAdmin.*/ServerAdmin schweikh\@schweikhardt.net/;' \
- -e 's/^#?ServerName .*/ServerName hal9000.schweikhardt.net:80/;' \
- -e 's/^\s*Listen.*/Listen 127.0.0.1:80/;' \
- -e 's/^\s*Deny from all/ Allow from 127.0.0.1/i;' \
- -e 's,/usr/local/www/$(APACHE)/cgi-bin/,/home/opt/www/cgi-bin/,;' \
- /usr/local/etc/$(APACHE)/httpd.conf
- cp w3c-validator.conf /usr/local/etc/$(APACHE)/Includes
- # 2. Restore symlinks to web pages.
- cd /usr/local/www/$(APACHE)/data && \
- ln -fs /home/schweikh/prj/homepage schweikhardt.net && \
- ln -fs /home/opt/www/test .
- # 3. Restore W3C Validator config.
- mkdir -p /etc/w3c
- cp /usr/local/www/validator/htdocs/config/validator.conf.sample \
- /etc/w3c/validator.conf
- perl -pi \
- -e 's/^Allow Private IPs.*/Allow Private IPs = yes/;' \
- /etc/w3c/validator.conf
- # Test if the httpd.conf has changed.
- @if ! cmp -s /usr/local/etc/$(APACHE)/httpd.conf httpd.conf; then \
- echo "ATTENTION: the httpd.conf has changed. Please examine if"; \
- echo "the modifications are still correct. If so you can simply"; \
- echo "cp /usr/local/etc/$(APACHE)/httpd.conf httpd.conf"; \
- echo "to make this message go away. Here is the diff:"; \
- diff -u /usr/local/etc/$(APACHE)/httpd.conf httpd.conf; \
- fi
- if test -f /var/run/httpd.pid; then \
- /usr/local/etc/rc.d/$(APACHE) stop; \
- /usr/local/etc/rc.d/$(APACHE) start; \
- else \
- /usr/local/etc/rc.d/$(APACHE) start; \
- fi
-
-# The original ppd file is from http://www.cups.org/ppd.php?L63+I0+T+Q2300
-# = http://www.cups.org/ppd/hp/de/hpc2325s.ppd.gz
-config_cups:
- chmod 644 /usr/local/etc/cups/cupsd.conf
- cp printers.conf /usr/local/etc/cups/printers.conf
- cp LaserJet_2300d.ppd /usr/local/etc/cups/ppd/LaserJet_2300d.ppd
-
-config_firefox:
- # Make this group wheel writable to allow extensions being installed.
- chmod -R g+w /usr/local/lib/firefox3/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
- # Give the news system its initial configuration.
- cd /home/root/setup && \
- 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
- # Configure storage method.
- 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
- # Configure newsfeeds.
- printf "%s\n%s\n" \
- "ME:*::" \
- "shuttle/news2.shuttle.de:!junk,!control:B32768/512,Tf,Wfb:" \
- >/usr/local/news/etc/newsfeeds
- # Configure inn.conf.
- 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
- # Create empty history, if none there.
- # See post-install in /usr/ports/news/inn-stable/Makefile.
- set -e; 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
- # Configure send-uucp.
- echo shuttle:shuttle >/usr/local/news/etc/send-uucp.cf
- # Satisfy inncheck:
- set -e; cd /usr/local/news/etc; \
- chown news:news *; \
- chmod 640 control.ctl expire.ctl nntpsend.ctl readers.conf
- /usr/local/news/bin/inncheck
- # Test if the inn.conf has changed.
- @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. If so you can simply"; \
- echo "cp /usr/local/news/etc/inn.conf inn.conf"; \
- echo "to make this message go away. 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 start; \
- fi
-
-config_javaplugin:
- cd /usr/local/lib/firefox3/plugins && \
- ln -fs /usr/local/jdk1.6.0/jre/plugin/$$(uname -m)/ns7/libjavaplugin_oji.so
-
-config_openoffice:
- # Copy some truetype files so ooo can use them.
- find /usr/local/openoffice.org* -type d -name truetype \
- -exec echo cp *.ttf {} \; -exec cp *.ttf {} \;
-
-config_sudo:
- if ! grep -q schweikh /usr/local/etc/sudoers; then \
- echo 'schweikh ALL = (ALL) NOPASSWD: ALL' >> /usr/local/etc/sudoers; \
- fi
- chmod 440 /usr/local/etc/sudoers
-
-config_TeX:
- # textproc/docproj advises: to typeset the FreeBSD Handbook with JadeTeX,
- # change the following settings to the listed values:
- 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
- # Test if the texmf.cnf has changed.
- @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. If so you can simply"; \
- echo "cp /usr/local/share/texmf/web2c/texmf.cnf texmf.cnf"; \
- echo "to make this message go away. Here is the diff:"; \
- diff -u /usr/local/share/texmf/web2c/texmf.cnf texmf.cnf; \
- fi
-
-config_tin:
- # Point tin to our files.
- 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_wdm:
- cp daemon1-JS-1600x1200.jpg FreeBSD_small.png \
- /usr/local/lib/X11/wdm/pixmaps
- perl -pi \
- -e 's,^(DisplayManager\*wdmBg:).*,\1 pixmap:/usr/local/lib/X11/wdm/pixmaps/daemon1-JS-1600x1200.jpg,;' \
- -e 's,^(DisplayManager\*wdmLogo:).*,\1 /usr/local/lib/X11/wdm/pixmaps/FreeBSD_small.png,;' \
- -e 's,^(DisplayManager\*wdmWm:).*,\1 ctwm:icewm:xfce4:tvtwm,;' \
- /usr/local/lib/X11/wdm/wdm-config
- @if ! cmp -s /usr/local/lib/X11/wdm/wdm-config wdm-config; then \
- echo "ATTENTION: the wdm-config has changed. Please examine if"; \
- echo "the modifications are still correct. If so you can simply"; \
- echo "cp /usr/local/lib/X11/wdm/wdm-config wdm-config"; \
- echo "to make this message go away. Here is the diff:"; \
- diff -u /usr/local/lib/X11/wdm/wdm-config wdm-config; \
- fi
-
-config_uucp:
- cd /etc/mail && make install SENDMAIL_MC=/etc/mail/hal9000.mc
- # Make the uucp user's shell the correct uucico, so su(1) works.
- chpass -s /usr/local/libexec/uucp/uucico uucp
- # UUCP expects to find /usr/bin/rnews.
- cd /usr/bin && ln -fs ../local/news/bin/rnews .
- # Actual UUCP configuration.
- 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" \
- "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 *
- # Trigger uucico after booting.
- mkdir -p /usr/local/etc/rc.d
- cp uucp.sh /usr/local/etc/rc.d
- # Rebuild the aliases.db.
- cp aliases /etc/mail/aliases
- newaliases
-
-# vim: tabstop=4:
-# EOF $RCSfile: stage_3.mk,v $
diff --git a/en_US.ISO8859-1/htdocs/docs/books.xml b/en_US.ISO8859-1/htdocs/docs/books.xml
index 9629f56d24..2575a4fb09 100644
--- a/en_US.ISO8859-1/htdocs/docs/books.xml
+++ b/en_US.ISO8859-1/htdocs/docs/books.xml
@@ -142,12 +142,6 @@
BSD (explaining-bsd)
An answer to the question ``What is BSD?''
-
FreeBSD
- From Scratch (fbsd-from-scratch)
- How to automatically compile, install and configure a system
- from scratch (i.e. to an empty file system), including your
- favorite ports.
-
Filtering
Bridges (filtering-bridges)
Configuring firewalls and filtering on FreeBSD hosts acting as