Compare commits

...
96 Commits
Author SHA1 Message Date
Ken Smith a1fc2b0c89 Ready to do one final test build and then start the release build process.
Approved by:	re (implicit)
2008-12-31 17:19:19 +00:00
Ken Smith 70fc74b056 Predict when we'll be ready to do the 7.1-RELEASE announcement.
Approved by:	re (implicit)
2008-12-31 17:17:36 +00:00
Hiroki Sato cd743ad0dc Merge the following changes from the English version:
r181796	-> r186637	errata/article.sgml
	r185258	-> r186206	hardware/article.sgml
	r185258	-> r186643	relnotes/article.sgml

Submitted by:	delphij
Approved by:	re (implicit)
2008-12-31 15:39:46 +00:00
Hiroki Sato b1bb6a3b3f Fix $RDIR (installation directory) of relnotes.
Approved by:	re (implicit)
2008-12-31 11:05:28 +00:00
Hiroki Sato 9a42d00083 Fix a typo.
Approved by:	re (implicit)
2008-12-31 08:07:10 +00:00
Hiroki Sato 8e7023f868 Fix order in arch="".
Approved by:	re (implicit)
2008-12-31 06:27:09 +00:00
Hiroki Sato 621df53ec2 Remove old (unmaintained) translations.
Approved by:	re (implicit)
2008-12-31 05:59:54 +00:00
Hiroki Sato 3ab7c7d68c Trim 7.1R Errata.
Approved by:	re (implicit)
2008-12-31 05:56:22 +00:00
Hiroki Sato 00a9318f0c Update release notes for 7.1R:
SA-08:05.openssh,
	SA-08:06.bind,
	SA-08:07.amd64,
	SA-08:08.nmount,
	SA-08:09.icmp6,
	SA-08:10.nd6,
	SA-08:11.arc4random,
	SA-08:12.ftpd,
	SA-08:13.protosw,
	clock id CLOCK_THREAD_CPUTIME_ID added,
	cpuset(2) added,
	DTrace framework and dtrace(1),
	ddb(4) capture, ex /S command, show conifhk added,
	fcntl F_DUP2FD,
	linux(4) sched_setaffinity() and get_setaffinity(),
	in-kernel NFSLOCKD,
	textdump,
	ULE enabled by default,
	wait4(2) WNOWAIT and WSTOPPED added,
	CPU binding of interrupts on amd64,i386,sparc64,
	kern.features.compat_freebsd[456] sysctls,
	BTX USB drive issue fixed,
	gptboot boot loader,
	kbdmux(4) on sparc64,
	nvram(4) MPSAFE,
	puc(4) PUC_FASTINTR option removed,
	psm(4) Synaptics detection changed,
	agp(4) G33/G45 support,
	dpms(4) added for suspend/resume support,
	DRM supports i915 GME devices,
	hme(4) improved,
	ixgbe(4) updated to 1.6.2,
	auto-negotiation issue in some PHYs in miibus(4) fixed,
	workaround of msk(4) checksum offload issue added,
	ndis(4) improved,
	sf(4) improved,
	stge(4) WOL support,
	vr(4) improved,
	wpi(4) improved,
	arp(8) reject/blackhole keywords added,
	bpf(4) ioctl BIOCSETFNR added,
	if_bridge(4) ifmaxaddr parameter added,
	carp(4) stability fix,
	dummynet(4) fast mode,
	enc(4) inner/outer header selection for firewall or bpf(4) via sysctl,
	gre(4) GRE key support,
	ipsec(4) PMTU issue fixed,
	netatm removed,
	ng_nat(4) redirect support,
	ng_pptpgre(4) multiple hook support,
	resolver(3) underscore support,
	TCP_CONGESTION socket option for TCP socket,
	rwlock(9) now used in various network stack,
	aac(4) >2TB array support,
	ata(4) 80pin cable check sysctl added,
	ata(4) ServerWorks HT1000 chipset issue fixed,
	ciss(4) ADAPTER HEARTBEAT FAILED issue fixed,
	geom_part kernel module support,
	geom_linux_lvm kernel module support,
	iir(4) stability fix,
	mpt(4) mpt_user personality added,
	rr232x(4) removed in favor of hptrr(4),
	twa(4) stability fix,
	fdescfs(5) MPSAFE,
	gpart(8) BSD and VTOC8 support,
	gvinum(8) volume parameter support when a plex created,
	unionfs(7) pathname lookup issue of UNIX domain socket fixed,
	atacontrol(8) spindown command added,
	chflags(1) -v, -f, -h options added,
	cp(1) -a added,
	cp(1) ACL bug fixed,
	cron(8) -m flag added,
	dhclient(8) more options added,
	dhclient(8) is_default_interface() function added,
	dhclient(8) default route handling bug fixed,
	environ(7) unsetting detection improved,
	fdisk(8) -q flag added,
	fetch(1) NO_PROXY added,
	ffsll(3) and flsll(3) added,
	fortune(6) FORTUNE_PATH added,
	fortune(6) an issue of -e with multiple files fixed,
	freebsd-update.conf(5) IDSIgnorePaths added,
	fwcontrol(8) -f node option added,
	gcc(1) -mcpu support on sparc64,
	gpt(8) ZFS support,
	ifconfig(8) WPS IE support,
	kgdb(1) add-kld command, kld shared-lib backend support, tid command,
	kvm_getcptime(3) added,
	libalias PORT/EPRT of FTP command in lowercase support,
	man(1) bzip2-compressed manual page support,
	mdconfig(8) -v added,
	memrchr(3) added,
	morse(6) grammar fix,
	mountd(8) -h added,
	moused(8) -L added,
	mv(1) POSIX comformance improved,
	periodic(8) daily_status_mail_rejects_shorten added,
	ping6(8) exit status change,
	ping6(8) -o, -r, -R added,
	ping6(8) minimum allowed interval changed,
	rfcomm_pppd(8) -D added,
	sdpd(8) NAP, GN, PANU profiles added,
	setkey(8) esp keyword support,
	telnetd(8) -a off bugfix,
	top(1) and vmstat(8) -P flag added,
	traceroute(8) -a for AS number lookup added,
	uuid_{enc,dec}_{be,le}(3) functions added,
	watch(8) >10 snp(4) devices support,
	ypserv(8) -P added,
	rc.d var dummynet_enable added,
	a bug in rc.d/ntpd when no configuration has been fixed,
	rc.d/ppp multiple instances support,
	rc.d/sysctl /etc/sysctl.conf.local support,
	rc.firewall setting in rc.conf,
	am-utils 6.1.5,
	ISC BIND 9.4.2-P2,
	bzip2 1.0.5,
	CVS 1.11.22.1,
	hostapd 0.5.10 + radius ACL support,
	libarchive 2.5.5,
	ncurses 5.6-20080503,
	NTP 4.2.4p5,
	resolver library to ISC BIND 9.4.3,
	timezone database tzdata2008h,
	wpa_supplicant 0.5.10 + syslog support, and
	KDE 3.5.10.

Approved by:	re (implicit)
2008-12-31 05:53:37 +00:00
Hiroki Sato 8d6fabce01 Bump version numbers and update descriptions for 7.1R.
Approved by:	re (implicit)
2008-12-31 05:50:37 +00:00
Hiroki Sato 88b95e6d80 Add arch="" attr support.
Approved by:	re (implicit)
2008-12-31 05:49:15 +00:00
Warner Losh 53933eb8d7 Bump year.
Approved by:	re@ (kensmith)
2008-12-30 05:37:39 +00:00
Warner Losh edf911093a Merge bump of copyright.
Approved by:	re@ (kensmith)
2008-12-30 05:36:18 +00:00
Xin LI 48b6a05055 Revert partially manual page changes as we reveted ICH10 and IT8213F
support.

Approved by:	re (kensmith)
2008-12-29 01:09:40 +00:00
Xin LI b62549d11b Revert r184442 (ata(4) changes to support ICH10 and ITE8213F chips) to
previous state due to some late problem reports on -stable@.

Approved by:	re (kensmith)
2008-12-29 01:06:11 +00:00
Xin LI 0d022b4cad Reflect what is actually being supported by bce(4) in RELENG_7_1.
Approved by:	re (kensmith)
2008-12-29 00:58:21 +00:00
Daniel Gerzo 03e4a93de8 MFC r185692
- correct variable name

PR:		docs/129448
Submitted by:	Kenyon Ralph <[email protected]>
Approved by:	re@ (kensmith)
2008-12-28 23:50:05 +00:00
Xin LI 19ba15332a Revert MFC of 185574 in response of changeset 186533 which removed
BCM5709/5716 support.

Approved by:	re (kensmith)
2008-12-28 05:38:49 +00:00
Xin LI 1b9288497e Revert the bce(4) MFC and restore the state of code as of before changeset
184826.  Some pending reliability changes needs to be tested throughly and
it  does not seem  to be  a good idea to ship the  current state of bce(4)
with the  release.  Thanks for everyone who provided testing and sorry for
the mess.

Approved by:	re (kensmith)
2008-12-28 05:32:17 +00:00
Yoshihiro Takahashi 709f4e5025 MFH: part of 186372
Disable the pccard, parallel, GbE and wireless lan related devices
to decrease a kernel size.

Approved by:	re (kensmith)
2008-12-23 02:19:14 +00:00
Ken Smith d517dc04ef Prepare for 7.1-RC2 builds.
Approved by:	re (implicit)
2008-12-23 02:05:56 +00:00
Colin Percival 76acf827a2 Prevent cross-site forgery attacks on ftpd(8) due to splitting
long commands into multiple requests. [08:12]

Avoid calling uninitialized function pointers in protocol switch
code. [08:13]

Merry Christmas everybody...

Approved by:	so (cperciva)
Approved by:	re (kensmith)
Security:	FreeBSD-SA-08:12.ftpd, FreeBSD-SA-08:13.protosw
2008-12-23 01:23:09 +00:00
Sean Bruno b99e4e1a7e MFC 182911,182948,185996 from HEAD to syncronize fwcontrol between all branches
of FreeBSD.

These changes provide the following features:
  Allow users of more than one Firewire board to execute commands
  Allow users to pass more than one command line argument at a time
  Provide NetBSD code support
  Cleanup Mergeinfo and mark the branch in sync

Reviewed by:    slong ([email protected]) Mentor
Approved by:    re Ken ([email protected])
2008-12-22 00:39:33 +00:00
VANHULLEBUS Yvan 940cae7a4f Fix to bug kern/126850. Only dispatch event hander if the interface had a parent...
PR:		kern/126850
Reviewed by:	EvilSam
Approved by:	re
2008-12-21 19:16:30 +00:00
Peter Wemm f2a9b8efa2 Merge head 185728 via 186368: initialize dummy argument to umtx_op()
Approved by:	re (kib)
2008-12-21 04:34:20 +00:00
Peter Wemm d4deb6c9e7 Merge rev 185725 (184996 in head): Use correct names in END() macros.
Approved by:	re (kib)
Reminded by:	kensmith
2008-12-21 04:27:52 +00:00
Christian S.J. Peron 76e5cc839b MFC revision 185713 from head.
Make sure we are maintaining the reference count on the route eliminating
another:

rtfree: 0xc841ee88 has 1 refs

Reviewed by:	bz
Approved by:	re@ (gnn)
2008-12-20 19:45:22 +00:00
Joe Marcus Clarke fa6af338c0 MFC r186315:
Do not segfault when procstat -f or procstat -v is called on a process not
owned by the current user.  If kinfo_getfile() or kinfo_getvmmap() return
NULL, simply exit, and do not try and derefernce the memory.

Approved by:	re (kib)
2008-12-19 20:23:38 +00:00
Joe Marcus Clarke 974e3f1816 MFC r186314:
Initialize the cntp pointer to 0 prior to doing any work so that callers
don't try to iterate through garbage or NULL memory.  Additionally, return
NULL instead of 0 on error.

Approved by:	re (kib)
2008-12-19 20:22:55 +00:00
Konstantin Belousov 931346f9f0 MFC r185984:
Reference the vmspace of the process being inspected by procfs, linprocfs
and sysctl kern_proc_vmmap handlers.

Approved by:	re (kensmith)
2008-12-19 16:11:04 +00:00
Konstantin Belousov 2baf651277 MFC r185983:
The userland_sysctl() function retries sysctl_root() until returned
error is not EAGAIN. Several sysctls that inspect another process use
p_candebug() for checking access right for the curproc. p_candebug()
returns EAGAIN for some reasons, in particular, for the process doing
exec() now. If execing process tries to lock Giant, we get a livelock,
because sysctl handlers are covered by Giant, and often do not sleep.

Break the livelock by dropping Giant and allowing other threads to
execute in the EAGAIN loop.

This commit does not merge the following change, as was discussed with jhb:
[Also, do not return EAGAIN from p_candebug() when process is executing,
use more appropriate EBUSY error.]

MFC r185987:
Uio_yield() already does DROP_GIANT/PICKUP_GIANT, no need to repeat this
around the call.

Approved by:	re (kensmith)
2008-12-19 16:08:40 +00:00
Konstantin Belousov 01a0e4ea1a MFC r185765, r185766:
Make two style changes to create new commit and document proper commit
message for r185765.
Commit message for r185765 should be:
In procfs map handler, and in linprocfs maps handler, do not call
vn_fullpath() while having vm map locked. This is done in anticipation
of the vop_vptocnp commit, that would make vn_fullpath sometime
acquire vnode lock.

Also, in linprocfs, maps handler already acquires vnode lock.

MFC r185864:
Relock user map earlier, to have the lock held when break leaves the
loop earlier due to sbuf error.

Approved by:	re (kensmith)
2008-12-19 16:03:20 +00:00
Konstantin Belousov ffc51d63fc MFC r185764:
Do drop vm map lock earlier in the sysctl_kern_proc_vmmap(), to avoid
locking a vnode while having vm map locked.

Approved by:	re (kensmith)
2008-12-19 15:58:04 +00:00
Kip Macy 986efd3e2f MFC 185970
fix support and capabilities

Approved by:	re
2008-12-19 06:34:57 +00:00
Kip Macy 16ad3d073b Log:
MFC 183967, 184861, 185157

 183967:
 Track number of packets transmitted and number of packets received
 PR:   125806

 184861:
 Update firmware version check
  make ddp a tunable

  Obtained from:        Chelsio Inc.

 185157:
  Several small additions to the Chelsio 10G driver.

  1) Fix a bug in dealing with the Alerus 1006 PHY which prevented the
  device from ever coming back up once it had been set to down.

  2) Add a kernel tunable (hw.cxgb.snd_queue_len) which makes it possible
  to give the device more than IFQ_MAXLEN entries in its send queue.  The
  default remains 50.

  3) Add code to place the card'd identification and serial number into
  its description (%desc) so that users can tell which card they have
  installed.

Approved by:	re
2008-12-19 05:05:35 +00:00
Ken Smith ed37bbed63 MFC r186165:
> Handle VFS_VGET() failing with an error other than EOPNOTSUPP in addition
> to failing with that error.
>
> PR:           125149
> Submitted by: Jaakko Heinonen (jh <at> saunalahti <dot> fi)
> Reviewed by:  mohans, kan

Approved by:    re (kib)
2008-12-19 04:02:16 +00:00
Xin LI 71d12cc165 MFC r186169:
Don't count InFramesL2FilterDiscards into Ierr.  This value does not represent
a real packet error but simply indicate that an unexpected unicast or multicast
error was received by the NIC, which was not counted in the past as well.

Reported by:	many (on -stable@)
Reviewed by:	davidch
Approved by:	re (kensmith)
2008-12-19 00:20:48 +00:00
Xin LI f042a9d43c MFC r186168:
Test whether sc->tx_mbuf_map[i], not whether sc->tx_mbuf_map is NULL before
doing bus_dmamap_sync() since it operates on the former, not the latter.

Reviewed by:	davidch
Approved by:	re (kensmith)
2008-12-19 00:19:46 +00:00
Doug Ambrisko 0edbfd9d3d MFC: r185584,185994,185999,186132 which updates the strings that identifies
the new supported HW and bump the driver version number.

Submitted by:	LSI
Approved by:	re (kib)
2008-12-17 17:39:36 +00:00
Hajimu UMEMOTO 2519621b02 MFC 186090
Update our resolver to BIND 9.4.3.
It includes the following fix:

  2426.   [bug]           libbind: inet_net_pton() can sometimes return the
                          wrong value if excessively large netmasks are
                          supplied. [RT #18512]

Reported by:	Maksymilian Arciemowicz <cxib__at__securityreason.com>
Approved by:	re (kib)
2008-12-17 12:33:39 +00:00
Murray Stokely b6bf404ec8 MFC: r186204
Update the list of Intel chips with EM64T for FreeBSD/amd64 and
increase the known maximum memory configuration from 8gb to 32gb.

Approved by:	re (hrs)
2008-12-17 03:57:28 +00:00
Ruslan Ermilov 8c5308e1d8 MFC: Fix printing of shared memory limits.
Approved by:	re (kib)
2008-12-16 20:48:38 +00:00
Marius Strobl e91dd3cb0d MFC: 185750
- According to the corresponding Linux, NetBSD and OpenSolaris
  drivers, there should be a 1us delay after every write when
  bit-banging the MII. Also insert barriers in order to ensure
  the intended ordering. These changes hopefully will solve the
  bus wedging occasionally experienced with DM9102A since r182461.
- Deobfuscate dc_mii_readreg() a bit.

Approved by:	re (kib)
2008-12-15 21:37:40 +00:00
Marius Strobl 8b901d50f4 - Limit BCM5701 B5 to 32-bit mode as a workaround for a bug which
causes data corruption in combination with certain bridges.
  Information about this problem was kindly provided by davidch. [1]
- As BGE_FLAG_PCIX is meant to indicate that the controller is in
  PCI-X mode, revert to the pre __FreeBSD_version 602101 method of
  reading the bus mode register rather than checking the mere
  existence of a PCI-X capability, which is also there when the
  NIC f.e. is put into a 32-bit slot causing it not to be in PCI-X
  mode. Setting BGE_FLAG_PCIX inappropriately could cause the NIC
  to be tuned incorrectly.

PR:		128833 [1]
Reviewed by:	jhb
Approved by:	re (kib)
2008-12-15 20:36:32 +00:00
Pyun YongHyeon cf697531e8 MFC r185962:
It seems there are still issues on multicast perfect filtering.
  Disable it until I find spare time to analyze the issue.

Approved by:	re (kensmith)
2008-12-15 05:59:52 +00:00
Daichi GOTO 991c8a703b MFC r185284, r185283
PR:             118346
Submitted by:   Masanori OZAWA <[email protected]>, trasz
Discussed at:   devsummit Strassburg, EuroBSDCon2008
Discussed with: rwatson, gnn, hrs
Approved by:    re (gnn)
2008-12-15 03:58:55 +00:00
Ken Smith c38091d27e Change default operating system for upcoming release. Add FreeBSD releases
not in contrib/groff/tmac/doc-common yet.

Submitted by:	ru
Approved by:	re (implicit)
2008-12-13 18:33:22 +00:00
Ruslan Ermilov ad1b912506 MFC: Fix fread() to return a correct value on platforms where sizeof(int) !=
sizeof(size_t), i.e. on all 64-bit platforms.

Approved by:	re (kib)
2008-12-13 16:53:35 +00:00
Robert Watson b09a01d59a Merge r185944 from stable/7 to releng/7.1:
Merge r185857 from head to stable/7:

    Move syncache flag definitions below data structure, compress some
    vertical whitespace.

Approved by:    re (gnn)
2008-12-12 16:52:33 +00:00
Robert Watson 60fd60cf34 Merge r185930 from stable/7 to releng/7.1:
Merge r185855 from head to stable/7:

    Move flag definitions for t_flags and t_oobflags below the definition of
    struct tcpcb so that the structure definition is a bit more vertically
    compact.  Can't yet fit it on one printed page, though.

Approved by:    re (gnn)
2008-12-12 16:37:15 +00:00
Robert Watson 3bc6837574 Merge r185929 from stable/7 to releng/7.1:
Merge r185813 from head to stable/7:

    Update comment on INP_TIMEWAIT to say what it's about, as we caution
    regarding the misplacement of flags in inp_vflag in an earlier comment.

Approved by:    re (gnn)
2008-12-12 16:12:19 +00:00
Konstantin Belousov 9ad1823560 MFC r185634:
Improve db_backtrace() for compat ia32 on amd64. 32bit image enters
the kernel via Xint0x80_syscall().

Approved by:	re (kensmith)
2008-12-12 13:21:31 +00:00
Tim Kientzle 812abfab33 MFC r183009, r184807, r184808: Fix --strip-components, plus
a handful of test suite improvements.

PR:		bin/128562
Submitted by:	Jaakko Heinonen
Approved by:	re
2008-12-11 05:56:25 +00:00
Konstantin Belousov 2c7f4707d3 MFC r185739:
Improve usefulness of the panic by printing the pointer to the problematic
dquot.

Approved by:	re (kensmith)
2008-12-10 17:20:39 +00:00
Konstantin Belousov af6587ea98 MFC r185335:
In null_lookup(), do the needed cleanup instead of panicing saying
the cleanup is needed.

Approved by:	re (kensmith)
2008-12-10 17:16:11 +00:00
Robert Watson 10178d08fd Merge r185814 from stable/7 to releng/7.1:
Merge r185791 from head to stable/7:

    Move macros defining flags and shortcuts to nested structure fields in
    inpcbinfo below the structure definition in order to make inpcbinfo
    fit on a single printed page; related style tweaks.

Approved by:    re (kib)
2008-12-10 08:55:12 +00:00
George V. Neville-Neil bf2e12d8f9 MFC of 3 separate commits.
Bug fix from Chelsio which addresses the issue of the device resetting
when it sees only received packets.  In some cases where a device only
recieves data it mistakenly thinks that its transmitting side is broken
and resets the device.

Fix a bug with the ael1006 PHY.  The bug shows up as persistent but incomplete
packet loss, of between 10-30%. The fix is to put the PHY into
and take it out of local loopback mode when resetting the interface.

Bug fix to support N310 version of Chelsio cards (board ID 1088).

Obtained from:	Chelsio Inc.
Approved by:	re@
2008-12-09 19:36:50 +00:00
Konstantin Belousov e5ab3a091d MFC r185761:
Recheck the DQ_MOD after the dqh lock is relocked. Repeat dqsync() if
the dq is dirty. This ensures that up to date dq is written in the quota
file and fixes assertion in dqget().

Approved by:	re (kensmith)
2008-12-09 17:47:00 +00:00
Konstantin Belousov e674b1ce25 MFC r185557:
Prevent creation of the duplicated negative namecache entries.

Approved by:	re (kensmith)
Requested by:	jhb
2008-12-09 17:33:56 +00:00
Pyun YongHyeon ee58ae8c0b MFC r185542:
Add 8168D support.

  Submitted by: Andrew < andrewwtulloch <> gmail DOT com >
Approved by:	re (kib)
2008-12-09 11:05:59 +00:00
Tim Kientzle aa68910f50 MFC r185667,r185680,r185681: Overhaul the Rockridge option
parsing and beef up the ISO9660 bidder.  This makes the
ISO reader a lot more robust when reading malformed input.

Approved by:	re
2008-12-09 04:17:44 +00:00
Ken Smith bdbdcfbc03 Get ready for 7.1-RC1 builds.
Approved by:	re (implicit)
2008-12-06 20:49:08 +00:00
Peter Wemm 3b7212732b MF7: 185716 (head 185548 + followups). KERN_PROC_* kinfo updates.
Approved by:	re (kensmith)
2008-12-06 20:36:46 +00:00
Giorgos Keramidas e8ed639521 MFC: r185519
The times(3) function returns the number of CLK_TCKs since the
startup time of FreeBSD, not since the UNIX Epoch.

PR:           docs/122359
Submitted by: Viktor &#352;tujber
Approved by:  re (kib)
2008-12-06 13:50:03 +00:00
Giorgos Keramidas 6100ac3258 MFC: r172623, r175681, r176182, r176184, and r185217
* Document quotachecks use of the passno field.
* Explain how the passno field in /etc/fstab works with fsck and
  quotacheck in some more detail.
* Explain in more detail how the pass number field works.
* Remove information about block devices; we don't have this sort
  of separation between character and block devices anymore.
* Enhance the explanation of using filesystem-specific mount
  options, and add a mount_msdosfs example.

Approved by:    re (kib)
2008-12-06 13:47:04 +00:00
Giorgos Keramidas 14d3d61ef8 MFC: r173282
Use getcwd() instead of getwd().  The former includes buffer length
checks, so it's probably "safer" to use in mtree.

Approved by:    re (kib)
2008-12-06 13:44:09 +00:00
Giorgos Keramidas e27a602831 MFC: r175379, r175380
Document that loader(8) stops reading `loader.conf' when it
encounters a syntax error, and add a tip about adding first
the `vital' options and then experimental ones.

PR:             docs/119658
Submitted by:   Julian Stacey, jhs at berklix.org
Approved by:    re (kib)
2008-12-06 13:40:17 +00:00
Giorgos Keramidas 609150d31a MFC: r175680, r175728.
Document the no-op -r option of BSD xargs(1).

PR:             docs/106416
Submitted by:   Pete Slagle, freebsd-stable at voidcaptain.com
Approved by:    re (kib)
2008-12-06 13:37:15 +00:00
Pyun YongHyeon b8216019f0 MFC r185576:
Add some PHY magic to enable PHY hibernation and 1000baseT/10baseT
  power adjustment. This change is required to guarantee correct
  operation on certain switches.

MFC r185577:
  AR8113 also need to set DMA read burst value. This should fix
  occasional DMA read error seen on AR8113.

Approved by:	re (kensmith)
2008-12-06 01:11:45 +00:00
Xin LI 96a7939a6b MFC revisions 183648 and 185574:
183648 (simon): Document that the bce(4) driver works with Dell PowerEdge
1950/2950 NIC's.

185574 (delphij): Update bce(4)'s hardware list to reflect the recent
update to driver.

Approved by:	re (kib)
2008-12-05 22:36:49 +00:00
Xin LI d92a56e529 MFC r185593:
Don't attempt to clear status updates if we did not do a link state
change.  As a side effect, this makes the excessive interrupts to
disappear which has been observed as a regression in recent stable/7.

Reported by:	many (on -stable@)
Reviewed by:	davidch
Approved by:	re (kensmith, kib)
2008-12-05 21:32:30 +00:00
Ken Smith d90cba5508 MFC r185517:
> Catch up with the disappearance of sys/dev/hfa.

Approved by:    re (kib)
2008-12-04 13:37:54 +00:00
Ken Smith 4a49422398 MFC r185515:
> Adjustments to make a tags file a bit more suitable to amd64.

Reviewed by:    peter
Approved by:    re (kib)
2008-12-04 13:32:25 +00:00
Daniel Gerzo 04e40ee4b7 - MFC the nullfs(5) manual page
Approved by:	re@ (blackend)
2008-12-04 12:23:52 +00:00
Konstantin Belousov 341f511fb1 MFC r185474:
Clarify the reason to not use the volatile string as an argument to CTR
macros. Note the logging of file and line.

Approved by:	re (hrs)
2008-12-03 15:10:31 +00:00
Konstantin Belousov b673393236 MFC r185451:
Third argument to the vi_mmap_t function is vm_paddr_t *.

Approved by:	re (kensmith)
2008-12-02 13:36:38 +00:00
Marcel Moolenaar 2f0c6718ce MFstable/7 rev 185526; MFhead rev 179382:
Work-around a compiler optimization bug, that broke libthr.
See log of rev 185526 or 179382 for the analysis.

Approved by:	re (kensmith)
2008-12-01 20:16:56 +00:00
Ken Smith c6961c821f Make adjustments to the package set for 7.1-RELEASE.
Approved by:	re (kib)
2008-12-01 17:29:41 +00:00
Christian S.J. Peron 370b1ff3f1 MFC revision 185484
- fixup ABI issues with ip6/audit

Approved by:	re@ (kib)
2008-11-30 21:06:23 +00:00
Jack F Vogel 36e142df74 Update driver to version 1.6.2, new hardware support
added, header split support added as default, code
simplification and improvement.

Approved by:re
2008-11-30 04:44:46 +00:00
Jack F Vogel 183cb7a832 MFC of a fix for ESB2 network interfaces that will
sometimes fail to initialize on startup. This also
required shared code as a whole be updated.

VLAN HW filtering code is present but undefined
until after release.

Approved by:re
2008-11-30 04:41:25 +00:00
Luigi Rizzo 309d38202e MFC: pass the correct value in %si to the next stage boot
Approved by:	re@
2008-11-30 00:00:35 +00:00
Robert Watson b6cfef513c Merge r185440 from stable/7 to releng/7.1:
Merge r184367 from head to stable/7:

    When the mac_bsdextended policy is unloaded, free rule memory.

    Obtained from:       TrustedBSD Project

Approved by:  re (kensmith)
2008-11-29 21:48:12 +00:00
Robert Watson c56524219a Merge r185437 from stable/7 to releng/7.1:
Merge r184567 from head to stable/7:

    When encoding an smb name, truncate one byte earlier in order than we did
    previously in order to ensure it fit properly in the bufer when encoded.
    This prevents a debugging printf from firing if a source or destination
    host name for an smb mount exceeds 15 characters.

    Obtained from:       Apple, Inc.

Approved by:  re (kensmith)
2008-11-29 21:42:13 +00:00
Robert Noland d75d2ad5fc MFC r183555: Correctly handle Intel g33 chips and add support for g45
chips.

g33 based chips use a different method of identifying the gtt size.
g45 based chips gtt is located in a different area of stolen memory.

Approved by:	re@ (kensmith)
2008-11-29 17:36:08 +00:00
Tim Kientzle 7aa0874e3a MFC r185334: Recognize Rockridge extensions even when the
IEEE-standard extension name (as standardized in 1994) is used.

PR:		kern/128942
Submitted by:	J.R. Oldroyd
Approved by:	re
2008-11-29 05:08:49 +00:00
Tim Kientzle e00c02d2c0 MFC r185361: Timezone value is signed.
PR:		kern/128934
Submitted by:	J.R. Oldroyd
Approved by:	re
2008-11-29 03:21:25 +00:00
Tim Kientzle a5dfc4f9ec MFC r185359: Non-zero exit when directories disappear
during the filesystem traversal.

Tested by:	David Wolfskill
Approved by:	re
2008-11-28 20:14:41 +00:00
Tim Kientzle 0338c5fc06 MFC 182590,182778,182779,184109: Support for certain
archive_entry attributes to be explicitly "unset".
This fixes a number of issues:
 * Zip archives with "length at end" can now be
   extracted correctly, since the Zip extractor
   can simply mark the size as "unknown."
 * Extract-to-disk can now accurately handle
   cases with partial time information (e.g.,
   mtime is known but not atime)
 * We get more accurate handling of different
   hardlink extraction cases; sometimes a hardlink
   entry has definitive size information and sometimes
   not.

Approved by:	re
2008-11-28 20:09:48 +00:00
Bjoern A. Zeeb ab2c4bae0a MFC: r185332
Plug a credential leak in case the inpcb is freed by
  in6_pcbfree() instead of in_pcbfree(); missed in r183606.

Discussed with:	re (kib)
Approved by:	re (gnn)
Reminded by:	rwatson (with his re hat?)
2008-11-27 16:41:46 +00:00
Julian Elischer eff4b3de1f MFC @ 185101
Fix a scope problem in the multiple routing table code that
stopped the SO_SETFIB socket option from working correctly.

Approved by:     re (kensmith, kostik)
Obtained from:  Ironport
2008-11-25 20:02:47 +00:00
Ken Smith 0d1cd1f8ac Add __FreeBSD_version and package directory for 7.1.
Approved by:	re (implicit)
2008-11-25 19:46:21 +00:00
Ken Smith e8e8be86df Adjust __FreeBSD_version for 7.1.
Approved by:	re (implicit)
2008-11-25 19:45:09 +00:00
Ken Smith 95ec085f03 Update branch tag used for example.
Approved by:	re (implicit)
2008-11-25 19:39:27 +00:00
Ken Smith ae717c1770 Change version number.
Approved by:	re (implicit)
2008-11-25 19:38:12 +00:00
Ken Smith caeeb20a22 Change branch used for "make update".
Approved by:	re (implicit)
2008-11-25 19:36:50 +00:00
416 changed files with 16857 additions and 66286 deletions

No files matched your search

+1 -1
View File
@@ -4,7 +4,7 @@
The compilation of software known as FreeBSD is distributed under the
following terms:
Copyright (C) 1992-2008 The FreeBSD Project. All rights reserved.
Copyright (c) 1992-2009 The FreeBSD Project. All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
+1 -1
View File
@@ -88,7 +88,7 @@ CLEANDIR= cleandir
.endif
CVS?= cvs
CVSFLAGS?= -r RELENG_7 -P -d -I!
CVSFLAGS?= -r RELENG_7_1 -P -d -I!
SUP?= /usr/bin/csup
SUPFLAGS?= -g -L 2
.if defined(SUPHOST)
+10
View File
@@ -8,6 +8,16 @@ Items affecting the ports and packages system can be found in
/usr/ports/UPDATING. Please read that file before running
portupgrade.
20090106:
FreeBSD 7.1-RELEASE
20081223: FreeBSD-SA-08:12.ftpd, FreeBSD-SA-08:13.protosw
Prevent cross-site forgery attacks on ftpd(8) due to splitting
long commands into multiple requests. [08:12]
Avoid calling uninitialized function pointers in protocol switch
code. [08:13]
20080903:
ntpd has been upgraded to 4.2.4p5.
+1 -1
View File
@@ -169,7 +169,7 @@ nb_name_encode(struct nb_name *np, u_char *dst)
memsetw(cp + 2, NB_NAMELEN - 1, NBENCODE(' '));
cp += NB_ENCNAMELEN;
} else {
for (i = 0; *name && i < NB_NAMELEN; i++, cp += 2, name++)
for (i = 0; *name && i < NB_NAMELEN - 1; i++, cp += 2, name++)
*(u_short*)cp = NBENCODE(toupper(*name));
i = NB_NAMELEN - i - 1;
if (i > 0) {
+3 -1
View File
@@ -64,10 +64,12 @@
.ds doc-volume-as-arm arm
.
.\" Default .Os value
.ds doc-default-operating-system FreeBSD\~7.0
.ds doc-default-operating-system FreeBSD\~7.1
.
.\" FreeBSD releases not found in doc-common
.ds doc-operating-system-FreeBSD-6.3 6.3
.ds doc-operating-system-FreeBSD-6.4 6.4
.ds doc-operating-system-FreeBSD-7.1 7.1
.ds doc-operating-system-FreeBSD-8.0 8.0
.
.ec
+3 -2
View File
@@ -49,7 +49,7 @@
*/
/*
* $Id: nameser.h,v 1.7.18.1 2005/04/27 05:00:50 sra Exp $
* $Id: nameser.h,v 1.7.18.2 2008/04/03 23:15:15 marka Exp $
* $FreeBSD$
*/
@@ -424,9 +424,10 @@ typedef enum __ns_cert_types {
#define NS_NXT_MAX 127
/*%
* EDNS0 extended flags, host order.
* EDNS0 extended flags and option codes, host order.
*/
#define NS_OPT_DNSSEC_OK 0x8000U
#define NS_OPT_NSID 3
/*%
* Inline versions of get/put short/long. Pointer is advanced.
+5 -1
View File
@@ -50,7 +50,7 @@
/*%
* @(#)resolv.h 8.1 (Berkeley) 6/2/93
* $Id: resolv.h,v 1.19.18.3 2005/08/25 04:43:51 marka Exp $
* $Id: resolv.h,v 1.19.18.4 2008/04/03 23:15:15 marka Exp $
* $FreeBSD$
*/
@@ -245,6 +245,7 @@ union res_sockaddr_union {
#define RES_NOCHECKNAME 0x00008000 /*%< do not check names for sanity. */
#define RES_KEEPTSIG 0x00010000 /*%< do not strip TSIG records */
#define RES_BLAST 0x00020000 /*%< blast all recursive servers */
#define RES_NSID 0x00040000 /*%< request name server ID */
#define RES_NOTLDQUERY 0x00100000 /*%< don't unqualified name as a tld */
#define RES_USE_DNSSEC 0x00200000 /*%< use DNSSEC using OK bit in OPT */
/* #define RES_DEBUG2 0x00400000 */ /* nslookup internal */
@@ -386,6 +387,7 @@ extern const struct res_sym __p_rcode_syms[];
#define sym_ntos __sym_ntos
#define sym_ston __sym_ston
#define res_nopt __res_nopt
#define res_nopt_rdata __res_nopt_rdata
#define res_ndestroy __res_ndestroy
#define res_nametoclass __res_nametoclass
#define res_nametotype __res_nametotype
@@ -474,6 +476,8 @@ int res_findzonecut2(res_state, const char *, ns_class, int,
union res_sockaddr_union *, int);
void res_nclose(res_state);
int res_nopt(res_state, int, u_char *, int, int);
int res_nopt_rdata(res_state, int, u_char *, int, u_char *,
u_short, u_short, u_char *);
void res_send_setqhook(res_send_qhook);
void res_send_setrhook(res_send_rhook);
int __res_vinit(res_state, int);
+91 -24
View File
@@ -395,8 +395,7 @@ archive_entry_clone(struct archive_entry *entry)
aes_copy(&entry2->ae_hardlink, &entry->ae_hardlink);
aes_copy(&entry2->ae_pathname, &entry->ae_pathname);
aes_copy(&entry2->ae_symlink, &entry->ae_symlink);
entry2->ae_hardlinkset = entry->ae_hardlinkset;
entry2->ae_symlinkset = entry->ae_symlinkset;
entry2->ae_set = entry->ae_set;
aes_copy(&entry2->ae_uname, &entry->ae_uname);
/* Copy ACL data over. */
@@ -455,12 +454,24 @@ archive_entry_atime_nsec(struct archive_entry *entry)
return (entry->ae_stat.aest_atime_nsec);
}
int
archive_entry_atime_is_set(struct archive_entry *entry)
{
return (entry->ae_set & AE_SET_ATIME);
}
time_t
archive_entry_ctime(struct archive_entry *entry)
{
return (entry->ae_stat.aest_ctime);
}
int
archive_entry_ctime_is_set(struct archive_entry *entry)
{
return (entry->ae_set & AE_SET_CTIME);
}
long
archive_entry_ctime_nsec(struct archive_entry *entry)
{
@@ -562,17 +573,17 @@ archive_entry_gname_w(struct archive_entry *entry)
const char *
archive_entry_hardlink(struct archive_entry *entry)
{
if (!entry->ae_hardlinkset)
return (NULL);
return (aes_get_mbs(&entry->ae_hardlink));
if (entry->ae_set & AE_SET_HARDLINK)
return (aes_get_mbs(&entry->ae_hardlink));
return (NULL);
}
const wchar_t *
archive_entry_hardlink_w(struct archive_entry *entry)
{
if (!entry->ae_hardlinkset)
return (NULL);
return (aes_get_wcs(&entry->ae_hardlink));
if (entry->ae_set & AE_SET_HARDLINK)
return (aes_get_wcs(&entry->ae_hardlink));
return (NULL);
}
ino_t
@@ -599,6 +610,12 @@ archive_entry_mtime_nsec(struct archive_entry *entry)
return (entry->ae_stat.aest_mtime_nsec);
}
int
archive_entry_mtime_is_set(struct archive_entry *entry)
{
return (entry->ae_set & AE_SET_MTIME);
}
unsigned int
archive_entry_nlink(struct archive_entry *entry)
{
@@ -651,6 +668,12 @@ archive_entry_size(struct archive_entry *entry)
return (entry->ae_stat.aest_size);
}
int
archive_entry_size_is_set(struct archive_entry *entry)
{
return (entry->ae_set & AE_SET_SIZE);
}
const char *
archive_entry_sourcepath(struct archive_entry *entry)
{
@@ -660,17 +683,17 @@ archive_entry_sourcepath(struct archive_entry *entry)
const char *
archive_entry_symlink(struct archive_entry *entry)
{
if (!entry->ae_symlinkset)
return (NULL);
return (aes_get_mbs(&entry->ae_symlink));
if (entry->ae_set & AE_SET_SYMLINK)
return (aes_get_mbs(&entry->ae_symlink));
return (NULL);
}
const wchar_t *
archive_entry_symlink_w(struct archive_entry *entry)
{
if (!entry->ae_symlinkset)
return (NULL);
return (aes_get_wcs(&entry->ae_symlink));
if (entry->ae_set & AE_SET_SYMLINK)
return (aes_get_wcs(&entry->ae_symlink));
return (NULL);
}
uid_t
@@ -773,7 +796,9 @@ archive_entry_set_hardlink(struct archive_entry *entry, const char *target)
{
aes_set_mbs(&entry->ae_hardlink, target);
if (target != NULL)
entry->ae_hardlinkset = 1;
entry->ae_set |= AE_SET_HARDLINK;
else
entry->ae_set &= ~AE_SET_HARDLINK;
}
void
@@ -781,7 +806,9 @@ archive_entry_copy_hardlink(struct archive_entry *entry, const char *target)
{
aes_copy_mbs(&entry->ae_hardlink, target);
if (target != NULL)
entry->ae_hardlinkset = 1;
entry->ae_set |= AE_SET_HARDLINK;
else
entry->ae_set &= ~AE_SET_HARDLINK;
}
void
@@ -789,25 +816,43 @@ archive_entry_copy_hardlink_w(struct archive_entry *entry, const wchar_t *target
{
aes_copy_wcs(&entry->ae_hardlink, target);
if (target != NULL)
entry->ae_hardlinkset = 1;
entry->ae_set |= AE_SET_HARDLINK;
else
entry->ae_set &= ~AE_SET_HARDLINK;
}
void
archive_entry_set_atime(struct archive_entry *entry, time_t t, long ns)
{
entry->stat_valid = 0;
entry->ae_set |= AE_SET_ATIME;
entry->ae_stat.aest_atime = t;
entry->ae_stat.aest_atime_nsec = ns;
}
void
archive_entry_unset_atime(struct archive_entry *entry)
{
archive_entry_set_atime(entry, 0, 0);
entry->ae_set &= ~AE_SET_ATIME;
}
void
archive_entry_set_ctime(struct archive_entry *entry, time_t t, long ns)
{
entry->stat_valid = 0;
entry->ae_set |= AE_SET_CTIME;
entry->ae_stat.aest_ctime = t;
entry->ae_stat.aest_ctime_nsec = ns;
}
void
archive_entry_unset_ctime(struct archive_entry *entry)
{
archive_entry_set_ctime(entry, 0, 0);
entry->ae_set &= ~AE_SET_CTIME;
}
void
archive_entry_set_dev(struct archive_entry *entry, dev_t d)
{
@@ -836,7 +881,7 @@ archive_entry_set_devminor(struct archive_entry *entry, dev_t m)
void
archive_entry_set_link(struct archive_entry *entry, const char *target)
{
if (entry->ae_symlinkset)
if (entry->ae_set & AE_SET_SYMLINK)
aes_set_mbs(&entry->ae_symlink, target);
else
aes_set_mbs(&entry->ae_hardlink, target);
@@ -846,7 +891,7 @@ archive_entry_set_link(struct archive_entry *entry, const char *target)
void
archive_entry_copy_link(struct archive_entry *entry, const char *target)
{
if (entry->ae_symlinkset)
if (entry->ae_set & AE_SET_SYMLINK)
aes_copy_mbs(&entry->ae_symlink, target);
else
aes_copy_mbs(&entry->ae_hardlink, target);
@@ -856,7 +901,7 @@ archive_entry_copy_link(struct archive_entry *entry, const char *target)
void
archive_entry_copy_link_w(struct archive_entry *entry, const wchar_t *target)
{
if (entry->ae_symlinkset)
if (entry->ae_set & AE_SET_SYMLINK)
aes_copy_wcs(&entry->ae_symlink, target);
else
aes_copy_wcs(&entry->ae_hardlink, target);
@@ -865,7 +910,7 @@ archive_entry_copy_link_w(struct archive_entry *entry, const wchar_t *target)
int
archive_entry_update_link_utf8(struct archive_entry *entry, const char *target)
{
if (entry->ae_symlinkset)
if (entry->ae_set & AE_SET_SYMLINK)
return (aes_update_utf8(&entry->ae_symlink, target));
else
return (aes_update_utf8(&entry->ae_hardlink, target));
@@ -882,10 +927,18 @@ void
archive_entry_set_mtime(struct archive_entry *entry, time_t m, long ns)
{
entry->stat_valid = 0;
entry->ae_set |= AE_SET_MTIME;
entry->ae_stat.aest_mtime = m;
entry->ae_stat.aest_mtime_nsec = ns;
}
void
archive_entry_unset_mtime(struct archive_entry *entry)
{
archive_entry_set_mtime(entry, 0, 0);
entry->ae_set &= ~AE_SET_MTIME;
}
void
archive_entry_set_nlink(struct archive_entry *entry, unsigned int nlink)
{
@@ -954,6 +1007,14 @@ archive_entry_set_size(struct archive_entry *entry, int64_t s)
{
entry->stat_valid = 0;
entry->ae_stat.aest_size = s;
entry->ae_set |= AE_SET_SIZE;
}
void
archive_entry_unset_size(struct archive_entry *entry)
{
archive_entry_set_size(entry, 0);
entry->ae_set &= ~AE_SET_SIZE;
}
void
@@ -967,7 +1028,9 @@ archive_entry_set_symlink(struct archive_entry *entry, const char *linkname)
{
aes_set_mbs(&entry->ae_symlink, linkname);
if (linkname != NULL)
entry->ae_symlinkset = 1;
entry->ae_set |= AE_SET_SYMLINK;
else
entry->ae_set &= ~AE_SET_SYMLINK;
}
void
@@ -975,7 +1038,9 @@ archive_entry_copy_symlink(struct archive_entry *entry, const char *linkname)
{
aes_copy_mbs(&entry->ae_symlink, linkname);
if (linkname != NULL)
entry->ae_symlinkset = 1;
entry->ae_set |= AE_SET_SYMLINK;
else
entry->ae_set &= ~AE_SET_SYMLINK;
}
void
@@ -983,7 +1048,9 @@ archive_entry_copy_symlink_w(struct archive_entry *entry, const wchar_t *linknam
{
aes_copy_wcs(&entry->ae_symlink, linkname);
if (linkname != NULL)
entry->ae_symlinkset = 1;
entry->ae_set |= AE_SET_SYMLINK;
else
entry->ae_set &= ~AE_SET_SYMLINK;
}
void
+30 -2
View File
@@ -1,5 +1,5 @@
/*-
* Copyright (c) 2003-2007 Tim Kientzle
* Copyright (c) 2003-2008 Tim Kientzle
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -152,12 +152,29 @@ __LA_DECL struct archive_entry *archive_entry_new(void);
/*
* Retrieve fields from an archive_entry.
*
* There are a number of implicit conversions among these fields. For
* example, if a regular string field is set and you read the _w wide
* character field, the entry will implicitly convert narrow-to-wide
* using the current locale. Similarly, dev values are automatically
* updated when you write devmajor or devminor and vice versa.
*
* In addition, fields can be "set" or "unset." Unset string fields
* return NULL, non-string fields have _is_set() functions to test
* whether they've been set. You can "unset" a string field by
* assigning NULL; non-string fields have _unset() functions to
* unset them.
*
* Note: There is one ambiguity in the above; string fields will
* also return NULL when implicit character set conversions fail.
* This is usually what you want.
*/
__LA_DECL time_t archive_entry_atime(struct archive_entry *);
__LA_DECL long archive_entry_atime_nsec(struct archive_entry *);
__LA_DECL int archive_entry_atime_is_set(struct archive_entry *);
__LA_DECL time_t archive_entry_ctime(struct archive_entry *);
__LA_DECL long archive_entry_ctime_nsec(struct archive_entry *);
__LA_DECL int archive_entry_ctime_is_set(struct archive_entry *);
__LA_DECL dev_t archive_entry_dev(struct archive_entry *);
__LA_DECL dev_t archive_entry_devmajor(struct archive_entry *);
__LA_DECL dev_t archive_entry_devminor(struct archive_entry *);
@@ -175,6 +192,7 @@ __LA_DECL __LA_INO_T archive_entry_ino(struct archive_entry *);
__LA_DECL __LA_MODE_T archive_entry_mode(struct archive_entry *);
__LA_DECL time_t archive_entry_mtime(struct archive_entry *);
__LA_DECL long archive_entry_mtime_nsec(struct archive_entry *);
__LA_DECL int archive_entry_mtime_is_set(struct archive_entry *);
__LA_DECL unsigned int archive_entry_nlink(struct archive_entry *);
__LA_DECL const char *archive_entry_pathname(struct archive_entry *);
__LA_DECL const wchar_t *archive_entry_pathname_w(struct archive_entry *);
@@ -183,6 +201,7 @@ __LA_DECL dev_t archive_entry_rdevmajor(struct archive_entry *);
__LA_DECL dev_t archive_entry_rdevminor(struct archive_entry *);
__LA_DECL const char *archive_entry_sourcepath(struct archive_entry *);
__LA_DECL int64_t archive_entry_size(struct archive_entry *);
__LA_DECL int archive_entry_size_is_set(struct archive_entry *);
__LA_DECL const char *archive_entry_strmode(struct archive_entry *);
__LA_DECL const char *archive_entry_symlink(struct archive_entry *);
__LA_DECL const wchar_t *archive_entry_symlink_w(struct archive_entry *);
@@ -195,10 +214,16 @@ __LA_DECL const wchar_t *archive_entry_uname_w(struct archive_entry *);
*
* Note that string 'set' functions do not copy the string, only the pointer.
* In contrast, 'copy' functions do copy the object pointed to.
*
* Note: As of libarchive 2.4, 'set' functions do copy the string and
* are therefore exact synonyms for the 'copy' versions. The 'copy'
* names will be retired in libarchive 3.0.
*/
__LA_DECL void archive_entry_set_atime(struct archive_entry *, time_t, long);
__LA_DECL void archive_entry_unset_atime(struct archive_entry *);
__LA_DECL void archive_entry_set_ctime(struct archive_entry *, time_t, long);
__LA_DECL void archive_entry_unset_ctime(struct archive_entry *);
__LA_DECL void archive_entry_set_dev(struct archive_entry *, dev_t);
__LA_DECL void archive_entry_set_devmajor(struct archive_entry *, dev_t);
__LA_DECL void archive_entry_set_devminor(struct archive_entry *, dev_t);
@@ -226,6 +251,7 @@ __LA_DECL void archive_entry_copy_link_w(struct archive_entry *, const wchar_t *
__LA_DECL int archive_entry_update_link_utf8(struct archive_entry *, const char *);
__LA_DECL void archive_entry_set_mode(struct archive_entry *, __LA_MODE_T);
__LA_DECL void archive_entry_set_mtime(struct archive_entry *, time_t, long);
__LA_DECL void archive_entry_unset_mtime(struct archive_entry *);
__LA_DECL void archive_entry_set_nlink(struct archive_entry *, unsigned int);
__LA_DECL void archive_entry_set_pathname(struct archive_entry *, const char *);
__LA_DECL void archive_entry_copy_pathname(struct archive_entry *, const char *);
@@ -236,6 +262,7 @@ __LA_DECL void archive_entry_set_rdev(struct archive_entry *, dev_t);
__LA_DECL void archive_entry_set_rdevmajor(struct archive_entry *, dev_t);
__LA_DECL void archive_entry_set_rdevminor(struct archive_entry *, dev_t);
__LA_DECL void archive_entry_set_size(struct archive_entry *, int64_t);
__LA_DECL void archive_entry_unset_size(struct archive_entry *);
__LA_DECL void archive_entry_copy_sourcepath(struct archive_entry *, const char *);
__LA_DECL void archive_entry_set_symlink(struct archive_entry *, const char *);
__LA_DECL void archive_entry_copy_symlink(struct archive_entry *, const char *);
@@ -257,6 +284,7 @@ __LA_DECL int archive_entry_update_uname_utf8(struct archive_entry *, const char
__LA_DECL const struct stat *archive_entry_stat(struct archive_entry *);
__LA_DECL void archive_entry_copy_stat(struct archive_entry *, const struct stat *);
/*
* ACL routines. This used to simply store and return text-format ACL
* strings, but that proved insufficient for a number of reasons:
+8 -2
View File
@@ -136,6 +136,14 @@ struct archive_entry {
dev_t aest_rdevminor;
} ae_stat;
int ae_set; /* bitmap of fields that are currently set */
#define AE_SET_HARDLINK 1
#define AE_SET_SYMLINK 2
#define AE_SET_ATIME 4
#define AE_SET_CTIME 8
#define AE_SET_MTIME 16
#define AE_SET_SIZE 64
/*
* Use aes here so that we get transparent mbs<->wcs conversions.
*/
@@ -147,8 +155,6 @@ struct archive_entry {
struct aes ae_pathname; /* Name of entry */
struct aes ae_symlink; /* symlink contents */
struct aes ae_uname; /* Name of owner */
unsigned char ae_hardlinkset;
unsigned char ae_symlinkset;
/* Not used within libarchive; useful for some clients. */
struct aes ae_sourcepath; /* Path this entry is sourced from. */
@@ -138,6 +138,15 @@ __FBSDID("$FreeBSD$");
#define PVD_reserved4_size 1
#define PVD_application_data_offset (PVD_reserved4_offset + PVD_reserved4_size)
#define PVD_application_data_size 512
#define PVD_reserved5_offset (PVD_application_data_offset + PVD_application_data_size)
#define PVD_reserved5_size (2048 - PVD_reserved5_offset)
/* TODO: It would make future maintenance easier to just hardcode the
* above values. In particular, ECMA119 states the offsets as part of
* the standard. That would eliminate the need for the following check.*/
#if PVD_reserved5_offset != 1395
#error PVD offset and size definitions are wrong.
#endif
/* Structure of an on-disk directory record. */
/* Note: ISO9660 stores each multi-byte integer twice, once in
@@ -178,17 +187,20 @@ struct file_info {
uint64_t size; /* File size in bytes. */
uint64_t ce_offset; /* Offset of CE */
uint64_t ce_size; /* Size of CE */
time_t birthtime; /* File created time. */
time_t mtime; /* File last modified time. */
time_t atime; /* File last accessed time. */
time_t ctime; /* File creation time. */
time_t ctime; /* File attribute change time. */
uint64_t rdev; /* Device number */
mode_t mode;
uid_t uid;
gid_t gid;
ino_t inode;
int nlinks;
char *name; /* Null-terminated filename. */
struct archive_string name; /* Pathname */
char name_continues; /* Non-zero if name continues */
struct archive_string symlink;
char symlink_continues; /* Non-zero if link continues */
};
@@ -210,6 +222,7 @@ struct iso9660 {
uint64_t current_position;
ssize_t logical_block_size;
uint64_t volume_size; /* Total size of volume in bytes. */
off_t entry_sparse_offset;
int64_t entry_bytes_remaining;
@@ -224,7 +237,9 @@ static int archive_read_format_iso9660_read_data_skip(struct archive_read *);
static int archive_read_format_iso9660_read_header(struct archive_read *,
struct archive_entry *);
static const char *build_pathname(struct archive_string *, struct file_info *);
#if DEBUG
static void dump_isodirrec(FILE *, const unsigned char *isodirrec);
#endif
static time_t time_from_tm(struct tm *);
static time_t isodate17(const unsigned char *);
static time_t isodate7(const unsigned char *);
@@ -238,6 +253,12 @@ static struct file_info *
static void parse_rockridge(struct iso9660 *iso9660,
struct file_info *file, const unsigned char *start,
const unsigned char *end);
static void parse_rockridge_NM1(struct file_info *,
const unsigned char *, int);
static void parse_rockridge_SL1(struct file_info *,
const unsigned char *, int);
static void parse_rockridge_TF1(struct file_info *,
const unsigned char *, int);
static void release_file(struct iso9660 *, struct file_info *);
static unsigned toi(const void *p, int n);
@@ -314,13 +335,61 @@ static int
isPVD(struct iso9660 *iso9660, const unsigned char *h)
{
struct file_info *file;
int i;
if (h[0] != 1)
return (0);
if (memcmp(h+1, "CD001", 5) != 0)
/* Type of the Primary Volume Descriptor must be 1. */
if (h[PVD_type_offset] != 1)
return (0);
/* ID must be "CD001" */
if (memcmp(h + PVD_id_offset, "CD001", 5) != 0)
return (0);
/* PVD version must be 1. */
if (h[PVD_version_offset] != 1)
return (0);
/* Reserved field must be 0. */
if (h[PVD_reserved1_offset] != 0)
return (0);
/* Reserved field must be 0. */
for (i = 0; i < PVD_reserved2_size; ++i)
if (h[PVD_reserved2_offset + i] != 0)
return (0);
/* Reserved field must be 0. */
for (i = 0; i < PVD_reserved3_size; ++i)
if (h[PVD_reserved3_offset + i] != 0)
return (0);
/* Logical block size must be > 0. */
/* I've looked at Ecma 119 and can't find any stronger
* restriction on this field. */
iso9660->logical_block_size = toi(h + PVD_logical_block_size_offset, 2);
if (iso9660->logical_block_size <= 0)
return (0);
iso9660->volume_size = iso9660->logical_block_size
* (uint64_t)toi(h + PVD_volume_space_size_offset, 4);
/* File structure version must be 1 for ISO9660/ECMA119. */
if (h[PVD_file_structure_version_offset] != 1)
return (0);
/* Reserved field must be 0. */
for (i = 0; i < PVD_reserved4_size; ++i)
if (h[PVD_reserved4_offset + i] != 0)
return (0);
/* Reserved field must be 0. */
for (i = 0; i < PVD_reserved5_size; ++i)
if (h[PVD_reserved5_offset + i] != 0)
return (0);
/* XXX TODO: Check other values for sanity; reject more
* malformed PVDs. XXX */
/* Store the root directory in the pending list. */
file = parse_file_info(iso9660, NULL, h + PVD_root_directory_record_offset);
@@ -352,12 +421,22 @@ archive_read_format_iso9660_read_header(struct archive_read *a,
iso9660->entry_bytes_remaining = file->size;
iso9660->entry_sparse_offset = 0; /* Offset for sparse-file-aware clients. */
if (file->offset + file->size > iso9660->volume_size) {
archive_set_error(&a->archive, ARCHIVE_ERRNO_MISC,
"File is beyond end-of-media: %s", file->name);
iso9660->entry_bytes_remaining = 0;
iso9660->entry_sparse_offset = 0;
release_file(iso9660, file);
return (ARCHIVE_WARN);
}
/* Set up the entry structure with information about this entry. */
archive_entry_set_mode(entry, file->mode);
archive_entry_set_uid(entry, file->uid);
archive_entry_set_gid(entry, file->gid);
archive_entry_set_nlink(entry, file->nlinks);
archive_entry_set_ino(entry, file->inode);
/* archive_entry_set_birthtime(entry, file->birthtime, 0); */
archive_entry_set_mtime(entry, file->mtime, 0);
archive_entry_set_ctime(entry, file->ctime, 0);
archive_entry_set_atime(entry, file->atime, 0);
@@ -535,13 +614,7 @@ parse_file_info(struct iso9660 *iso9660, struct file_info *parent,
file->mtime = isodate7(isodirrec + DR_date_offset);
file->ctime = file->atime = file->mtime;
name_len = (size_t)*(const unsigned char *)(isodirrec + DR_name_len_offset);
file->name = (char *)malloc(name_len + 1);
if (file->name == NULL) {
free(file);
return (NULL);
}
memcpy(file->name, isodirrec + DR_name_offset, name_len);
file->name[name_len] = '\0';
archive_strncpy(&file->name, isodirrec + DR_name_offset, name_len);
flags = *(isodirrec + DR_flags_offset);
if (flags & 0x02)
file->mode = AE_IFDIR | 0700;
@@ -561,6 +634,7 @@ parse_file_info(struct iso9660 *iso9660, struct file_info *parent,
parse_rockridge(iso9660, file, rr_start, rr_end);
}
#if DEBUG
/* DEBUGGING: Warn about attributes I don't yet fully support. */
if ((flags & ~0x02) != 0) {
fprintf(stderr, "\n ** Unrecognized flag: ");
@@ -583,7 +657,7 @@ parse_file_info(struct iso9660 *iso9660, struct file_info *parent,
dump_isodirrec(stderr, isodirrec);
fprintf(stderr, "\n");
}
#endif
return (file);
}
@@ -623,6 +697,7 @@ parse_rockridge(struct iso9660 *iso9660, struct file_info *file,
while (p + 4 < end /* Enough space for another entry. */
&& p[0] >= 'A' && p[0] <= 'Z' /* Sanity-check 1st char of name. */
&& p[1] >= 'A' && p[1] <= 'Z' /* Sanity-check 2nd char of name. */
&& p[2] >= 4 /* Sanity-check length. */
&& p + p[2] <= end) { /* Sanity-check length. */
const unsigned char *data = p + 4;
int data_length = p[2] - 4;
@@ -635,61 +710,54 @@ parse_rockridge(struct iso9660 *iso9660, struct file_info *file,
*/
switch(p[0]) {
case 'C':
if (p[0] == 'C' && p[1] == 'E' && version == 1) {
/*
* CE extension comprises:
* 8 byte sector containing extension
* 8 byte offset w/in above sector
* 8 byte length of continuation
*/
file->ce_offset = toi(data, 4)
* iso9660->logical_block_size
+ toi(data + 8, 4);
file->ce_size = toi(data + 16, 4);
if (p[0] == 'C' && p[1] == 'E') {
if (version == 1 && data_length == 24) {
/*
* CE extension comprises:
* 8 byte sector containing extension
* 8 byte offset w/in above sector
* 8 byte length of continuation
*/
file->ce_offset = (uint64_t)toi(data, 4)
* iso9660->logical_block_size
+ toi(data + 8, 4);
file->ce_size = toi(data + 16, 4);
/* If the result is rediculous,
* ignore it. */
if (file->ce_offset + file->ce_size
> iso9660->volume_size) {
file->ce_offset = 0;
file->ce_size = 0;
}
}
break;
}
/* FALLTHROUGH */
case 'N':
if (p[0] == 'N' && p[1] == 'M' && version == 1
&& *data == 0) {
/* NM extension with flag byte == 0 */
/*
* NM extension comprises:
* one byte flag
* rest is long name
*/
/* TODO: Obey flags. */
char *old_name = file->name;
data++; /* Skip flag byte. */
data_length--;
file->name = (char *)malloc(data_length + 1);
if (file->name != NULL) {
free(old_name);
memcpy(file->name, data, data_length);
file->name[data_length] = '\0';
} else
file->name = old_name;
if (p[0] == 'N' && p[1] == 'M') {
if (version == 1)
parse_rockridge_NM1(file,
data, data_length);
break;
}
/* FALLTHROUGH */
case 'P':
if (p[0] == 'P' && p[1] == 'D' && version == 1) {
if (p[0] == 'P' && p[1] == 'D') {
/*
* PD extension is padding;
* contents are always ignored.
*/
break;
}
if (p[0] == 'P' && p[1] == 'N' && version == 1) {
if (data_length == 16) {
if (p[0] == 'P' && p[1] == 'N') {
if (version == 1 && data_length == 16) {
file->rdev = toi(data,4);
file->rdev <<= 32;
file->rdev |= toi(data + 8, 4);
}
break;
}
if (p[0] == 'P' && p[1] == 'X' && version == 1) {
if (p[0] == 'P' && p[1] == 'X') {
/*
* PX extension comprises:
* 8 bytes for mode,
@@ -698,12 +766,22 @@ parse_rockridge(struct iso9660 *iso9660, struct file_info *file,
* 8 bytes for gid,
* 8 bytes for inode.
*/
if (data_length == 32) {
file->mode = toi(data, 4);
file->nlinks = toi(data + 8, 4);
file->uid = toi(data + 16, 4);
file->gid = toi(data + 24, 4);
file->inode = toi(data + 32, 4);
if (version == 1) {
if (data_length >= 8)
file->mode
= toi(data, 4);
if (data_length >= 16)
file->nlinks
= toi(data + 8, 4);
if (data_length >= 24)
file->uid
= toi(data + 16, 4);
if (data_length >= 32)
file->gid
= toi(data + 24, 4);
if (data_length >= 40)
file->inode
= toi(data + 32, 4);
}
break;
}
@@ -720,56 +798,14 @@ parse_rockridge(struct iso9660 *iso9660, struct file_info *file,
}
/* FALLTHROUGH */
case 'S':
if (p[0] == 'S' && p[1] == 'L' && version == 1
&& *data == 0) {
int cont = 1;
/* SL extension with flags == 0 */
/* TODO: handle non-zero flag values. */
data++; /* Skip flag byte. */
data_length--;
while (data_length > 0) {
unsigned char flag = *data++;
unsigned char nlen = *data++;
data_length -= 2;
if (cont == 0)
archive_strcat(&file->symlink, "/");
cont = 0;
switch(flag) {
case 0x01: /* Continue */
archive_strncat(&file->symlink,
(const char *)data, nlen);
cont = 1;
break;
case 0x02: /* Current */
archive_strcat(&file->symlink, ".");
break;
case 0x04: /* Parent */
archive_strcat(&file->symlink, "..");
break;
case 0x08: /* Root */
case 0x10: /* Volume root */
archive_string_empty(&file->symlink);
break;
case 0x20: /* Hostname */
archive_strcat(&file->symlink, "hostname");
break;
case 0:
archive_strncat(&file->symlink,
(const char *)data, nlen);
break;
default:
/* TODO: issue a warning ? */
break;
}
data += nlen;
data_length -= nlen;
}
if (p[0] == 'S' && p[1] == 'L') {
if (version == 1)
parse_rockridge_SL1(file,
data, data_length);
break;
}
if (p[0] == 'S' && p[1] == 'P'
&& version == 1 && data_length == 7
&& version == 1 && data_length == 3
&& data[0] == (unsigned char)'\xbe'
&& data[1] == (unsigned char)'\xef') {
/*
@@ -805,66 +841,27 @@ parse_rockridge(struct iso9660 *iso9660, struct file_info *file,
return;
}
case 'T':
if (p[0] == 'T' && p[1] == 'F' && version == 1) {
char flag = data[0];
/*
* TF extension comprises:
* one byte flag
* create time (optional)
* modify time (optional)
* access time (optional)
* attribute time (optional)
* Time format and presence of fields
* is controlled by flag bits.
*/
data++;
if (flag & 0x80) {
/* Use 17-byte time format. */
if (flag & 1) /* Create time. */
data += 17;
if (flag & 2) { /* Modify time. */
file->mtime = isodate17(data);
data += 17;
}
if (flag & 4) { /* Access time. */
file->atime = isodate17(data);
data += 17;
}
if (flag & 8) { /* Attribute time. */
file->ctime = isodate17(data);
data += 17;
}
} else {
/* Use 7-byte time format. */
if (flag & 1) /* Create time. */
data += 7;
if (flag & 2) { /* Modify time. */
file->mtime = isodate7(data);
data += 7;
}
if (flag & 4) { /* Access time. */
file->atime = isodate7(data);
data += 7;
}
if (flag & 8) { /* Attribute time. */
file->ctime = isodate7(data);
data += 7;
}
}
if (p[0] == 'T' && p[1] == 'F') {
if (version == 1)
parse_rockridge_TF1(file,
data, data_length);
break;
}
/* FALLTHROUGH */
default:
/* The FALLTHROUGHs above leave us here for
* any unsupported extension. */
#if DEBUG
{
const unsigned char *t;
fprintf(stderr, "\nUnsupported RRIP extension for %s\n", file->name);
fprintf(stderr, "\nUnsupported RRIP extension for %s\n", file->name.s);
fprintf(stderr, " %c%c(%d):", p[0], p[1], data_length);
for (t = data; t < data + data_length && t < data + 16; t++)
fprintf(stderr, " %02x", *t);
fprintf(stderr, "\n");
}
#endif
break;
}
@@ -873,6 +870,215 @@ parse_rockridge(struct iso9660 *iso9660, struct file_info *file,
}
}
static void
parse_rockridge_NM1(struct file_info *file, const unsigned char *data,
int data_length)
{
if (!file->name_continues)
archive_string_empty(&file->name);
file->name_continues = 0;
if (data_length < 1)
return;
/*
* NM version 1 extension comprises:
* 1 byte flag, value is one of:
* = 0: remainder is name
* = 1: remainder is name, next NM entry continues name
* = 2: "."
* = 4: ".."
* = 32: Implementation specific
* All other values are reserved.
*/
switch(data[0]) {
case 0:
if (data_length < 2)
return;
archive_strncat(&file->name, data + 1, data_length - 1);
break;
case 1:
if (data_length < 2)
return;
archive_strncat(&file->name, data + 1, data_length - 1);
file->name_continues = 1;
break;
case 2:
archive_strcat(&file->name, ".");
break;
case 4:
archive_strcat(&file->name, "..");
break;
default:
return;
}
}
static void
parse_rockridge_TF1(struct file_info *file, const unsigned char *data,
int data_length)
{
char flag;
/*
* TF extension comprises:
* one byte flag
* create time (optional)
* modify time (optional)
* access time (optional)
* attribute time (optional)
* Time format and presence of fields
* is controlled by flag bits.
*/
if (data_length < 1)
return;
flag = data[0];
++data;
--data_length;
if (flag & 0x80) {
/* Use 17-byte time format. */
if ((flag & 1) && data_length >= 17) {
/* Create time. */
file->birthtime = isodate17(data);
data += 17;
data_length -= 17;
}
if ((flag & 2) && data_length >= 17) {
/* Modify time. */
file->mtime = isodate17(data);
data += 17;
data_length -= 17;
}
if ((flag & 4) && data_length >= 17) {
/* Access time. */
file->atime = isodate17(data);
data += 17;
data_length -= 17;
}
if ((flag & 8) && data_length >= 17) {
/* Attribute change time. */
file->ctime = isodate17(data);
data += 17;
data_length -= 17;
}
} else {
/* Use 7-byte time format. */
if ((flag & 1) && data_length >= 7) {
/* Create time. */
file->birthtime = isodate17(data);
data += 7;
data_length -= 7;
}
if ((flag & 2) && data_length >= 7) {
/* Modify time. */
file->mtime = isodate7(data);
data += 7;
data_length -= 7;
}
if ((flag & 4) && data_length >= 7) {
/* Access time. */
file->atime = isodate7(data);
data += 7;
data_length -= 7;
}
if ((flag & 8) && data_length >= 7) {
/* Attribute change time. */
file->ctime = isodate7(data);
data += 7;
data_length -= 7;
}
}
}
static void
parse_rockridge_SL1(struct file_info *file, const unsigned char *data,
int data_length)
{
int component_continues = 1;
if (!file->symlink_continues)
archive_string_empty(&file->symlink);
else
archive_strcat(&file->symlink, "/");
file->symlink_continues = 0;
/*
* Defined flag values:
* 0: This is the last SL record for this symbolic link
* 1: this symbolic link field continues in next SL entry
* All other values are reserved.
*/
if (data_length < 1)
return;
switch(*data) {
case 0:
break;
case 1:
file->symlink_continues = 1;
break;
default:
return;
}
++data; /* Skip flag byte. */
--data_length;
/*
* SL extension body stores "components".
* Basically, this is a complicated way of storing
* a POSIX path. It also interferes with using
* symlinks for storing non-path data. <sigh>
*
* Each component is 2 bytes (flag and length)
* possibly followed by name data.
*/
while (data_length >= 2) {
unsigned char flag = *data++;
unsigned char nlen = *data++;
data_length -= 2;
if (!component_continues)
archive_strcat(&file->symlink, "/");
component_continues = 0;
switch(flag) {
case 0: /* Usual case, this is text. */
if (data_length < nlen)
return;
archive_strncat(&file->symlink,
(const char *)data, nlen);
break;
case 0x01: /* Text continues in next component. */
if (data_length < nlen)
return;
archive_strncat(&file->symlink,
(const char *)data, nlen);
component_continues = 1;
break;
case 0x02: /* Current dir. */
archive_strcat(&file->symlink, ".");
break;
case 0x04: /* Parent dir. */
archive_strcat(&file->symlink, "..");
break;
case 0x08: /* Root of filesystem. */
archive_string_empty(&file->symlink);
archive_strcat(&file->symlink, "/");
break;
case 0x10: /* Undefined (historically "volume root" */
archive_string_empty(&file->symlink);
archive_strcat(&file->symlink, "ROOT");
break;
case 0x20: /* Undefined (historically "hostname") */
archive_strcat(&file->symlink, "hostname");
break;
default:
/* TODO: issue a warning ? */
return;
}
data += nlen;
data_length -= nlen;
}
}
static void
release_file(struct iso9660 *iso9660, struct file_info *file)
{
@@ -880,8 +1086,7 @@ release_file(struct iso9660 *iso9660, struct file_info *file)
if (file->refcount == 0) {
parent = file->parent;
if (file->name)
free(file->name);
archive_string_free(&file->name);
archive_string_free(&file->symlink);
free(file);
if (parent != NULL) {
@@ -906,7 +1111,9 @@ next_entry_seek(struct archive_read *a, struct iso9660 *iso9660,
/* CE area precedes actual file data? Ignore it. */
if (file->ce_offset > file->offset) {
fprintf(stderr, " *** Discarding CE data.\n");
#if DEBUG
fprintf(stderr, " *** Discarding CE data.\n");
#endif
file->ce_offset = 0;
file->ce_size = 0;
}
@@ -1071,17 +1278,18 @@ time_from_tm(struct tm *t)
static const char *
build_pathname(struct archive_string *as, struct file_info *file)
{
if (file->parent != NULL && file->parent->name[0] != '\0') {
if (file->parent != NULL && archive_strlen(&file->parent->name) > 0) {
build_pathname(as, file->parent);
archive_strcat(as, "/");
}
if (file->name[0] == '\0')
if (archive_strlen(&file->name) == 0)
archive_strcat(as, ".");
else
archive_strcat(as, file->name);
archive_string_concat(as, &file->name);
return (as->s);
}
#if DEBUG
static void
dump_isodirrec(FILE *out, const unsigned char *isodirrec)
{
@@ -1106,3 +1314,4 @@ dump_isodirrec(FILE *out, const unsigned char *isodirrec)
fprintf(out, " `%.*s'",
toi(isodirrec + DR_name_len_offset, DR_name_len_size), isodirrec + DR_name_offset);
}
#endif
@@ -444,7 +444,9 @@ zip_read_file_header(struct archive_read *a, struct archive_entry *entry,
archive_entry_set_mtime(entry, zip->mtime, 0);
archive_entry_set_ctime(entry, zip->ctime, 0);
archive_entry_set_atime(entry, zip->atime, 0);
archive_entry_set_size(entry, zip->uncompressed_size);
/* Set the size only if it's meaningful. */
if (0 == (zip->flags & ZIP_LENGTH_AT_END))
archive_entry_set_size(entry, zip->uncompressed_size);
zip->entry_bytes_remaining = zip->compressed_size;
zip->entry_offset = 0;
@@ -573,12 +575,16 @@ archive_read_format_zip_read_data(struct archive_read *a,
}
break;
}
if (r != ARCHIVE_OK)
return (r);
/* Update checksum */
if (r == ARCHIVE_OK && *size) {
if (*size)
zip->entry_crc32 =
crc32(zip->entry_crc32, *buff, *size);
}
return (r);
/* Return EOF immediately if this is a non-regular file. */
if (AE_IFREG != (zip->mode & AE_IFMT))
return (ARCHIVE_EOF);
return (ARCHIVE_OK);
}
/*
+12
View File
@@ -69,6 +69,18 @@ __archive_string_copy(struct archive_string *dest, struct archive_string *src)
}
}
void
__archive_string_concat(struct archive_string *dest, struct archive_string *src)
{
if (src->length > 0) {
if (__archive_string_ensure(dest, dest->length + src->length + 1) == NULL)
__archive_errx(1, "Out of memory");
memcpy(dest->s + dest->length, src->s, src->length);
dest->length += src->length;
dest->s[dest->length] = 0;
}
}
void
__archive_string_free(struct archive_string *as)
{
+6
View File
@@ -92,6 +92,12 @@ __archive_string_copy(struct archive_string *dest, struct archive_string *src);
#define archive_string_copy(dest, src) \
__archive_string_copy(dest, src)
/* Concatenate one archive_string to another */
void
__archive_string_concat(struct archive_string *dest, struct archive_string *src);
#define archive_string_concat(dest, src) \
__archive_string_concat(dest, src)
/* Ensure that the underlying buffer is at least as large as the request. */
struct archive_string *
__archive_string_ensure(struct archive_string *, size_t);
+132 -57
View File
@@ -176,7 +176,7 @@ struct archive_write_disk {
int fd;
/* Current offset for writing data to the file. */
off_t offset;
/* Maximum size of file. */
/* Maximum size of file, -1 if unknown. */
off_t filesize;
/* Dir we were in before this restore; only for deep paths. */
int restore_pwd;
@@ -231,7 +231,8 @@ static int set_time(struct archive_write_disk *);
static struct fixup_entry *sort_dir_list(struct fixup_entry *p);
static gid_t trivial_lookup_gid(void *, const char *, gid_t);
static uid_t trivial_lookup_uid(void *, const char *, uid_t);
static ssize_t write_data_block(struct archive_write_disk *,
const char *, size_t, off_t);
static struct archive_vtable *archive_write_disk_vtable(void);
@@ -337,7 +338,10 @@ _archive_write_header(struct archive *_a, struct archive_entry *entry)
a->offset = 0;
a->uid = a->user_uid;
a->mode = archive_entry_mode(a->entry);
a->filesize = archive_entry_size(a->entry);
if (archive_entry_size_is_set(a->entry))
a->filesize = archive_entry_size(a->entry);
else
a->filesize = -1;
archive_strcpy(&(a->_name_data), archive_entry_pathname(a->entry));
a->name = a->_name_data.s;
archive_clear_error(&a->archive);
@@ -439,15 +443,25 @@ _archive_write_header(struct archive *_a, struct archive_entry *entry)
fe->mode = a->mode;
}
if (a->deferred & TODO_TIMES) {
if ((a->deferred & TODO_TIMES)
&& (archive_entry_mtime_is_set(entry)
|| archive_entry_atime_is_set(entry))) {
fe = current_fixup(a, archive_entry_pathname(entry));
fe->fixup |= TODO_TIMES;
fe->mtime = archive_entry_mtime(entry);
fe->mtime_nanos = archive_entry_mtime_nsec(entry);
fe->atime = archive_entry_atime(entry);
fe->atime_nanos = archive_entry_atime_nsec(entry);
if (fe->atime == 0 && fe->atime_nanos == 0)
if (archive_entry_mtime_is_set(entry)) {
fe->mtime = archive_entry_mtime(entry);
fe->mtime_nanos = archive_entry_mtime_nsec(entry);
} else {
fe->mtime = a->start_time;
fe->mtime_nanos = 0;
}
if (archive_entry_atime_is_set(entry)) {
fe->atime = archive_entry_atime(entry);
fe->atime_nanos = archive_entry_atime_nsec(entry);
} else {
fe->atime = a->start_time;
fe->atime_nanos = 0;
}
}
if (a->deferred & TODO_FFLAGS) {
@@ -486,89 +500,113 @@ archive_write_disk_set_skip_file(struct archive *_a, dev_t d, ino_t i)
}
static ssize_t
_archive_write_data_block(struct archive *_a,
const void *buff, size_t size, off_t offset)
write_data_block(struct archive_write_disk *a,
const char *buff, size_t size, off_t offset)
{
struct archive_write_disk *a = (struct archive_write_disk *)_a;
ssize_t bytes_written = 0;
ssize_t block_size, bytes_to_write;
int r = ARCHIVE_OK;
ssize_t block_size = 0, bytes_to_write;
int r;
__archive_check_magic(&a->archive, ARCHIVE_WRITE_DISK_MAGIC,
ARCHIVE_STATE_DATA, "archive_write_disk_block");
if (a->fd < 0) {
archive_set_error(&a->archive, 0, "File not open");
if (a->filesize == 0 || a->fd < 0) {
archive_set_error(&a->archive, 0,
"Attempt to write to an empty file");
return (ARCHIVE_WARN);
}
archive_clear_error(&a->archive);
if (a->flags & ARCHIVE_EXTRACT_SPARSE) {
if ((r = _archive_write_disk_lazy_stat(a)) != ARCHIVE_OK)
return (r);
block_size = a->pst->st_blksize;
} else
block_size = -1;
if ((off_t)(offset + size) > a->filesize) {
size = (size_t)(a->filesize - a->offset);
archive_set_error(&a->archive, 0,
"Write request too large");
r = ARCHIVE_WARN;
}
if (a->filesize >= 0 && (off_t)(offset + size) > a->filesize)
size = (size_t)(a->filesize - offset);
/* Write the data. */
while (size > 0) {
if (block_size != -1) {
const char *buf;
if (block_size == 0) {
bytes_to_write = size;
} else {
/* We're sparsifying the file. */
const char *p, *end;
off_t block_end;
for (buf = buff; size; ++buf, --size, ++offset) {
if (*buf != '\0')
/* Skip leading zero bytes. */
for (p = buff, end = buff + size; p < end; ++p) {
if (*p != '\0')
break;
}
offset += p - buff;
size -= p - buff;
buff = p;
if (size == 0)
break;
bytes_to_write = block_size - offset % block_size;
buff = buf;
} else
/* Calculate next block boundary after offset. */
block_end
= (offset / block_size) * block_size + block_size;
/* If the adjusted write would cross block boundary,
* truncate it to the block boundary. */
bytes_to_write = size;
if (offset + bytes_to_write > block_end)
bytes_to_write = block_end - offset;
}
/* Seek if necessary to the specified offset. */
if (offset != a->last_offset) {
if (lseek(a->fd, offset, SEEK_SET) < 0) {
archive_set_error(&a->archive, errno, "Seek failed");
archive_set_error(&a->archive, errno,
"Seek failed");
return (ARCHIVE_FATAL);
}
}
bytes_written = write(a->fd, buff, size);
bytes_written = write(a->fd, buff, bytes_to_write);
if (bytes_written < 0) {
archive_set_error(&a->archive, errno, "Write failed");
return (ARCHIVE_WARN);
}
buff = (const char *)buff + bytes_written;
buff += bytes_written;
size -= bytes_written;
offset += bytes_written;
a->archive.file_position += bytes_written;
a->archive.raw_position += bytes_written;
a->last_offset = a->offset = offset;
}
a->offset = offset;
return (r);
return (bytes_written);
}
static ssize_t
_archive_write_data_block(struct archive *_a,
const void *buff, size_t size, off_t offset)
{
struct archive_write_disk *a = (struct archive_write_disk *)_a;
ssize_t r;
__archive_check_magic(&a->archive, ARCHIVE_WRITE_DISK_MAGIC,
ARCHIVE_STATE_DATA, "archive_write_disk_block");
r = write_data_block(a, buff, size, offset);
if (r < 0)
return (r);
if ((size_t)r < size) {
archive_set_error(&a->archive, 0,
"Write request too large");
return (ARCHIVE_WARN);
}
return (ARCHIVE_OK);
}
static ssize_t
_archive_write_data(struct archive *_a, const void *buff, size_t size)
{
struct archive_write_disk *a = (struct archive_write_disk *)_a;
int r;
__archive_check_magic(&a->archive, ARCHIVE_WRITE_DISK_MAGIC,
ARCHIVE_STATE_DATA, "archive_write_data");
if (a->fd < 0)
return (ARCHIVE_OK);
r = _archive_write_data_block(_a, buff, size, a->offset);
if (r < ARCHIVE_OK)
return (r);
return size;
return (write_data_block(a, buff, size, a->offset));
}
static int
@@ -584,7 +622,15 @@ _archive_write_finish_entry(struct archive *_a)
return (ARCHIVE_OK);
archive_clear_error(&a->archive);
if (a->last_offset != a->filesize && a->fd >= 0) {
/* Pad or truncate file to the right size. */
if (a->fd < 0) {
/* There's no file. */
} else if (a->filesize < 0) {
/* File size is unknown, so we can't set the size. */
} else if (a->last_offset == a->filesize) {
/* Last write ended at exactly the filesize; we're done. */
/* Hopefully, this is the common case. */
} else {
if (ftruncate(a->fd, a->filesize) == -1 &&
a->filesize == 0) {
archive_set_error(&a->archive, errno,
@@ -601,7 +647,8 @@ _archive_write_finish_entry(struct archive *_a)
if (a->st.st_size != a->filesize) {
const char nul = '\0';
if (lseek(a->fd, a->st.st_size - 1, SEEK_SET) < 0) {
archive_set_error(&a->archive, errno, "Seek failed");
archive_set_error(&a->archive, errno,
"Seek failed");
return (ARCHIVE_FATAL);
}
if (write(a->fd, &nul, 1) < 0) {
@@ -609,6 +656,7 @@ _archive_write_finish_entry(struct archive *_a)
"Write to restore size failed");
return (ARCHIVE_FATAL);
}
a->pst = NULL;
}
}
@@ -975,7 +1023,7 @@ create_filesystem_object(struct archive_write_disk *a)
* If the hardlink does carry data, let the last
* archive entry decide ownership.
*/
if (r == 0 && a->filesize == 0) {
if (r == 0 && a->filesize <= 0) {
a->todo = 0;
a->deferred = 0;
} if (r == 0 && a->filesize > 0) {
@@ -1635,18 +1683,31 @@ set_time(struct archive_write_disk *a)
{
struct timeval times[2];
times[1].tv_sec = archive_entry_mtime(a->entry);
times[1].tv_usec = archive_entry_mtime_nsec(a->entry) / 1000;
/* If no time was provided, we're done. */
if (!archive_entry_atime_is_set(a->entry)
&& !archive_entry_mtime_is_set(a->entry))
return (ARCHIVE_OK);
times[0].tv_sec = archive_entry_atime(a->entry);
times[0].tv_usec = archive_entry_atime_nsec(a->entry) / 1000;
/* We know at least one is set, so... */
if (archive_entry_mtime_is_set(a->entry)) {
times[1].tv_sec = archive_entry_mtime(a->entry);
times[1].tv_usec = archive_entry_mtime_nsec(a->entry) / 1000;
} else {
times[1].tv_sec = a->start_time;
times[1].tv_usec = 0;
}
/* If no atime was specified, use start time instead. */
/* In theory, it would be marginally more correct to use
* time(NULL) here, but that would cost us an extra syscall
* for little gain. */
if (times[0].tv_sec == 0 && times[0].tv_usec == 0)
if (archive_entry_atime_is_set(a->entry)) {
times[0].tv_sec = archive_entry_atime(a->entry);
times[0].tv_usec = archive_entry_atime_nsec(a->entry) / 1000;
} else {
times[0].tv_sec = a->start_time;
times[0].tv_usec = 0;
}
#ifdef HAVE_FUTIMES
if (a->fd >= 0 && futimes(a->fd, times) == 0) {
@@ -1684,10 +1745,24 @@ set_time(struct archive_write_disk *a)
{
struct utimbuf times;
times.modtime = archive_entry_mtime(a->entry);
times.actime = archive_entry_atime(a->entry);
if (times.actime == 0)
/* If no time was provided, we're done. */
if (!archive_entry_atime_is_set(a->entry)
&& !archive_entry_mtime_is_set(a->entry))
return (ARCHIVE_OK);
/* We know at least one is set, so... */
/* Set mtime from mtime if set, else start time. */
if (archive_entry_mtime_is_set(a->entry))
times.modtime = archive_entry_mtime(a->entry);
else
times.modtime = a->start_time;
/* Set atime from provided atime, else mtime. */
if (archive_entry_atime_is_set(a->entry))
times.actime = archive_entry_atime(a->entry);
else
times.actime = a->start_time;
if (!S_ISLNK(a->mode) && utime(a->name, &times) != 0) {
archive_set_error(&a->archive, errno,
"Can't update time for %s", a->name);
+31
View File
@@ -69,14 +69,25 @@ DEFINE_TEST(test_entry)
* The following tests are ordered alphabetically by the
* name of the field.
*/
/* atime */
archive_entry_set_atime(e, 13579, 24680);
assertEqualInt(archive_entry_atime(e), 13579);
assertEqualInt(archive_entry_atime_nsec(e), 24680);
archive_entry_unset_atime(e);
assertEqualInt(archive_entry_atime(e), 0);
assertEqualInt(archive_entry_atime_nsec(e), 0);
assert(!archive_entry_atime_is_set(e));
/* ctime */
archive_entry_set_ctime(e, 13580, 24681);
assertEqualInt(archive_entry_ctime(e), 13580);
assertEqualInt(archive_entry_ctime_nsec(e), 24681);
archive_entry_unset_ctime(e);
assertEqualInt(archive_entry_ctime(e), 0);
assertEqualInt(archive_entry_ctime_nsec(e), 0);
assert(!archive_entry_ctime_is_set(e));
#if ARCHIVE_VERSION_STAMP >= 1009000
/* dev */
archive_entry_set_dev(e, 235);
@@ -85,6 +96,7 @@ DEFINE_TEST(test_entry)
skipping("archive_entry_dev()");
#endif
/* devmajor/devminor are tested specially below. */
#if ARCHIVE_VERSION_STAMP >= 1009000
/* filetype */
archive_entry_set_filetype(e, AE_IFREG);
@@ -92,10 +104,13 @@ DEFINE_TEST(test_entry)
#else
skipping("archive_entry_filetype()");
#endif
/* fflags are tested specially below */
/* gid */
archive_entry_set_gid(e, 204);
assertEqualInt(archive_entry_gid(e), 204);
/* gname */
archive_entry_set_gname(e, "group");
assertEqualString(archive_entry_gname(e), "group");
@@ -104,6 +119,7 @@ DEFINE_TEST(test_entry)
assertEqualWString(archive_entry_gname_w(e), L"wgroup");
memset(wbuff, 0, sizeof(wbuff));
assertEqualWString(archive_entry_gname_w(e), L"wgroup");
/* hardlink */
archive_entry_set_hardlink(e, "hardlinkname");
assertEqualString(archive_entry_hardlink(e), "hardlinkname");
@@ -158,10 +174,16 @@ DEFINE_TEST(test_entry)
/* mode */
archive_entry_set_mode(e, 0123456);
assertEqualInt(archive_entry_mode(e), 0123456);
/* mtime */
archive_entry_set_mtime(e, 13581, 24682);
assertEqualInt(archive_entry_mtime(e), 13581);
assertEqualInt(archive_entry_mtime_nsec(e), 24682);
archive_entry_unset_mtime(e);
assertEqualInt(archive_entry_mtime(e), 0);
assertEqualInt(archive_entry_mtime_nsec(e), 0);
assert(!archive_entry_mtime_is_set(e));
#if ARCHIVE_VERSION_STAMP >= 1009000
/* nlink */
archive_entry_set_nlink(e, 736);
@@ -169,6 +191,7 @@ DEFINE_TEST(test_entry)
#else
skipping("archive_entry_nlink()");
#endif
/* pathname */
archive_entry_set_pathname(e, "path");
assertEqualString(archive_entry_pathname(e), "path");
@@ -184,6 +207,7 @@ DEFINE_TEST(test_entry)
assertEqualWString(archive_entry_pathname_w(e), L"wpath");
memset(wbuff, 0, sizeof(wbuff));
assertEqualWString(archive_entry_pathname_w(e), L"wpath");
#if ARCHIVE_VERSION_STAMP >= 1009000
/* rdev */
archive_entry_set_rdev(e, 532);
@@ -192,9 +216,14 @@ DEFINE_TEST(test_entry)
skipping("archive_entry_rdev()");
#endif
/* rdevmajor/rdevminor are tested specially below. */
/* size */
archive_entry_set_size(e, 987654321);
assertEqualInt(archive_entry_size(e), 987654321);
archive_entry_unset_size(e);
assertEqualInt(archive_entry_size(e), 0);
assert(!archive_entry_size_is_set(e));
/* symlink */
archive_entry_set_symlink(e, "symlinkname");
assertEqualString(archive_entry_symlink(e), "symlinkname");
@@ -207,9 +236,11 @@ DEFINE_TEST(test_entry)
#endif
archive_entry_copy_symlink_w(e, L"wsymlink");
assertEqualWString(archive_entry_symlink_w(e), L"wsymlink");
/* uid */
archive_entry_set_uid(e, 83);
assertEqualInt(archive_entry_uid(e), 83);
/* uname */
archive_entry_set_uname(e, "user");
assertEqualString(archive_entry_uname(e), "user");
+8 -1
View File
@@ -25,6 +25,12 @@
#include "test.h"
__FBSDID("$FreeBSD$");
/*
* The reference file for this has been manually tweaked so that:
* * file2 has length-at-end but file1 does not
* * file2 has an invalid CRC
*/
DEFINE_TEST(test_read_format_zip)
{
const char *refname = "test_read_format_zip.zip";
@@ -57,7 +63,8 @@ DEFINE_TEST(test_read_format_zip)
assertA(0 == archive_read_next_header(a, &ae));
assertEqualString("file2", archive_entry_pathname(ae));
assertEqualInt(1179605932, archive_entry_mtime(ae));
assertEqualInt(18, archive_entry_size(ae));
failure("file2 has length-at-end, so we shouldn't see a valid size");
assertEqualInt(0, archive_entry_size_is_set(ae));
failure("file2 has a bad CRC, so reading to end should fail");
assertEqualInt(ARCHIVE_WARN, archive_read_data(a, buff, 19));
assert(0 == memcmp(buff, "hello\nhello\nhello\n", 18));
@@ -1,13 +1,14 @@
$FreeBSD$
begin 644 test_read_format_zip.zip
M4$L#!`H``````%EFLS8````````````````$`!4`9&ER+U54"0`#&55/1AE5
M3T95>`0`Z`/H`U!+`P04````"`!O9K,V.C=F/0H````2````!0`5`&9I;&4Q
M550)``-!54]&K%M/1E5X!`#H`^@#RTC-R<GGRD`B`5!+`P04````"`!::K,V
M>%8T$@H````2````!0`5`&9I;&4R550)``.L6T]&K%M/1E5X!`#H`^@#RTC-
MR<GGRD`B`5!+`0(7`PH``````%EFLS8````````````````$``T`````````
M$`#M00````!D:7(O550%``,954]&57@``%!+`0(7`Q0````(`&]FLS8Z-V8]
M"@```!(````%``T```````$```"D@3<```!F:6QE,554!0`#055/1E5X``!0
M2P$"%P,4````"`!::K,V>%8T$@H````2````!0`-```````!````I(%Y````
H9FEL93)55`4``ZQ;3T95>```4$L%!@`````#``,`OP```+L`````````
M4$L#!`H`"````%EFLS8````````````````$`!4`9&ER+U54"0`#&55/1M19
M_4A5>`0`Z`/H`U!+!P@```````````````!02P,$%`````@`;V:S-CHW9CT*
M````$@````4`%0!F:6QE,554"0`#055/1L!9_4A5>`0`Z`/H`\M(S<G)Y\I`
M(@%02P,$%``(``@`6FJS-@``````````$@````4`%0!F:6QE,E54"0`#K%M/
M1L!9_4A5>`0`Z`/H`\M(S<G)Y\I`(@%02P<(.C=F$@H````2````4$L!`A<#
M"@`(````66:S-@````````````````0`#0`````````0`.U!`````&1I<B]5
M5`4``QE53T95>```4$L!`A<#%``(``@`;V:S-CHW9CT*````$@````4`#0``
M`````0```.V!1P```&9I;&4Q550%``-!54]&57@``%!+`0(7`Q0`"``(`%IJ
MLS8Z-V8]"@```!(````%``T```````$```#M@8D```!F:6QE,E54!0`#K%M/
;1E5X``!02P4&``````,``P"_````VP``````
`
end
+70 -1
View File
@@ -84,7 +84,7 @@ static void create_reg_file(struct archive_entry *ae, const char *msg)
* the entry being a maximum size.
*/
archive_entry_set_size(ae, sizeof(data));
archive_entry_set_mtime(ae, 123456789, 0);
archive_entry_set_mtime(ae, 123456789, 0);
assertEqualIntA(ad, 0, archive_write_header(ad, ae));
assertEqualInt(sizeof(data), archive_write_data(ad, data, sizeof(data)));
assertEqualIntA(ad, 0, archive_write_finish_entry(ad));
@@ -152,6 +152,61 @@ static void create_reg_file2(struct archive_entry *ae, const char *msg)
free(compare);
free(data);
}
static void create_reg_file3(struct archive_entry *ae, const char *msg)
{
static const char data[]="abcdefghijklmnopqrstuvwxyz";
struct archive *ad;
struct stat st;
/* Write the entry to disk. */
assert((ad = archive_write_disk_new()) != NULL);
failure("%s", msg);
/* Set the size smaller than the data and verify the truncation. */
archive_entry_set_size(ae, 5);
assertEqualIntA(ad, 0, archive_write_header(ad, ae));
assertEqualInt(5, archive_write_data(ad, data, sizeof(data)));
assertEqualIntA(ad, 0, archive_write_finish_entry(ad));
#if ARCHIVE_VERSION_NUMBER < 2000000
archive_write_finish(ad);
#else
assertEqualInt(0, archive_write_finish(ad));
#endif
/* Test the entry on disk. */
assert(0 == stat(archive_entry_pathname(ae), &st));
failure("st.st_mode=%o archive_entry_mode(ae)=%o",
st.st_mode, archive_entry_mode(ae));
assertEqualInt(st.st_mode, (archive_entry_mode(ae) & ~UMASK));
assertEqualInt(st.st_size, 5);
}
static void create_reg_file4(struct archive_entry *ae, const char *msg)
{
static const char data[]="abcdefghijklmnopqrstuvwxyz";
struct archive *ad;
struct stat st;
/* Write the entry to disk. */
assert((ad = archive_write_disk_new()) != NULL);
/* Leave the size unset. The data should not be truncated. */
assertEqualIntA(ad, 0, archive_write_header(ad, ae));
assertEqualInt(ARCHIVE_OK,
archive_write_data_block(ad, data, sizeof(data), 0));
assertEqualIntA(ad, 0, archive_write_finish_entry(ad));
#if ARCHIVE_VERSION_NUMBER < 2000000
archive_write_finish(ad);
#else
assertEqualInt(0, archive_write_finish(ad));
#endif
/* Test the entry on disk. */
assert(0 == stat(archive_entry_pathname(ae), &st));
failure("st.st_mode=%o archive_entry_mode(ae)=%o",
st.st_mode, archive_entry_mode(ae));
assertEqualInt(st.st_mode, (archive_entry_mode(ae) & ~UMASK));
failure(msg);
assertEqualInt(st.st_size, sizeof(data));
}
#endif
DEFINE_TEST(test_write_disk)
@@ -178,6 +233,20 @@ DEFINE_TEST(test_write_disk)
create_reg_file2(ae, "Test creating another regular file");
archive_entry_free(ae);
/* A regular file with a size restriction */
assert((ae = archive_entry_new()) != NULL);
archive_entry_copy_pathname(ae, "file3");
archive_entry_set_mode(ae, S_IFREG | 0755);
create_reg_file3(ae, "Regular file with size restriction");
archive_entry_free(ae);
/* A regular file with an unspecified size */
assert((ae = archive_entry_new()) != NULL);
archive_entry_copy_pathname(ae, "file3");
archive_entry_set_mode(ae, S_IFREG | 0755);
create_reg_file4(ae, "Regular file with unspecified size");
archive_entry_free(ae);
/* A regular file over an existing file */
assert((ae = archive_entry_new()) != NULL);
archive_entry_copy_pathname(ae, "file");
+99 -42
View File
@@ -61,18 +61,48 @@ DEFINE_TEST(test_write_disk_hardlink)
archive_entry_set_mode(ae, S_IFREG | 0755);
archive_entry_set_size(ae, sizeof(data));
assertEqualIntA(ad, 0, archive_write_header(ad, ae));
assertEqualInt(sizeof(data), archive_write_data(ad, data, sizeof(data)));
assertEqualInt(sizeof(data),
archive_write_data(ad, data, sizeof(data)));
assertEqualIntA(ad, 0, archive_write_finish_entry(ad));
archive_entry_free(ae);
/* Link. */
/* Link. Size of zero means this doesn't carry data. */
assert((ae = archive_entry_new()) != NULL);
archive_entry_copy_pathname(ae, "link1b");
archive_entry_set_mode(ae, S_IFREG | 0600);
archive_entry_set_mode(ae, S_IFREG | 0642);
archive_entry_set_size(ae, 0);
archive_entry_copy_hardlink(ae, "link1a");
assertEqualIntA(ad, 0, archive_write_header(ad, ae));
assertEqualInt(0, archive_write_data(ad, data, sizeof(data)));
assertEqualInt(ARCHIVE_WARN,
archive_write_data(ad, data, sizeof(data)));
assertEqualIntA(ad, 0, archive_write_finish_entry(ad));
archive_entry_free(ae);
/*
* Repeat tar approach test, but use unset to mark the
* hardlink as having no data.
*/
/* Regular file. */
assert((ae = archive_entry_new()) != NULL);
archive_entry_copy_pathname(ae, "link2a");
archive_entry_set_mode(ae, S_IFREG | 0755);
archive_entry_set_size(ae, sizeof(data));
assertEqualIntA(ad, 0, archive_write_header(ad, ae));
assertEqualInt(sizeof(data),
archive_write_data(ad, data, sizeof(data)));
assertEqualIntA(ad, 0, archive_write_finish_entry(ad));
archive_entry_free(ae);
/* Link. Unset size means this doesn't carry data. */
assert((ae = archive_entry_new()) != NULL);
archive_entry_copy_pathname(ae, "link2b");
archive_entry_set_mode(ae, S_IFREG | 0642);
archive_entry_unset_size(ae);
archive_entry_copy_hardlink(ae, "link2a");
assertEqualIntA(ad, 0, archive_write_header(ad, ae));
assertEqualInt(ARCHIVE_WARN,
archive_write_data(ad, data, sizeof(data)));
assertEqualIntA(ad, 0, archive_write_finish_entry(ad));
archive_entry_free(ae);
@@ -81,43 +111,13 @@ DEFINE_TEST(test_write_disk_hardlink)
* another identical one (which has been marked hardlink).
*/
/* Regular file. */
assert((ae = archive_entry_new()) != NULL);
archive_entry_copy_pathname(ae, "link2a");
archive_entry_set_mode(ae, S_IFREG | 0600);
archive_entry_set_size(ae, sizeof(data));
assertEqualIntA(ad, 0, archive_write_header(ad, ae));
assertEqualInt(sizeof(data), archive_write_data(ad, data, sizeof(data)));
assertEqualIntA(ad, 0, archive_write_finish_entry(ad));
archive_entry_free(ae);
/* Link. */
assert((ae = archive_entry_new()) != NULL);
archive_entry_copy_pathname(ae, "link2b");
archive_entry_set_mode(ae, S_IFREG | 0755);
archive_entry_set_size(ae, sizeof(data));
archive_entry_copy_hardlink(ae, "link2a");
assertEqualIntA(ad, 0, archive_write_header(ad, ae));
assertEqualInt(sizeof(data), archive_write_data(ad, data, sizeof(data)));
assertEqualIntA(ad, 0, archive_write_finish_entry(ad));
archive_entry_free(ae);
/*
* Finally, try a new-cpio-like approach, where the initial
* regular file is empty and the hardlink has the data.
*/
/* Regular file. */
assert((ae = archive_entry_new()) != NULL);
archive_entry_copy_pathname(ae, "link3a");
archive_entry_set_mode(ae, S_IFREG | 0600);
archive_entry_set_size(ae, 0);
archive_entry_set_size(ae, sizeof(data));
assertEqualIntA(ad, 0, archive_write_header(ad, ae));
#if ARCHIVE_VERSION_NUMBER < 3000000
assertEqualInt(ARCHIVE_WARN, archive_write_data(ad, data, 1));
#else
assertEqualInt(-1, archive_write_data(ad, data, 1));
#endif
assertEqualInt(sizeof(data), archive_write_data(ad, data, sizeof(data)));
assertEqualIntA(ad, 0, archive_write_finish_entry(ad));
archive_entry_free(ae);
@@ -131,6 +131,36 @@ DEFINE_TEST(test_write_disk_hardlink)
assertEqualInt(sizeof(data), archive_write_data(ad, data, sizeof(data)));
assertEqualIntA(ad, 0, archive_write_finish_entry(ad));
archive_entry_free(ae);
/*
* Finally, try a new-cpio-like approach, where the initial
* regular file is empty and the hardlink has the data.
*/
/* Regular file. */
assert((ae = archive_entry_new()) != NULL);
archive_entry_copy_pathname(ae, "link4a");
archive_entry_set_mode(ae, S_IFREG | 0600);
archive_entry_set_size(ae, 0);
assertEqualIntA(ad, 0, archive_write_header(ad, ae));
#if ARCHIVE_VERSION_NUMBER < 3000000
assertEqualInt(ARCHIVE_WARN, archive_write_data(ad, data, 1));
#else
assertEqualInt(-1, archive_write_data(ad, data, 1));
#endif
assertEqualIntA(ad, 0, archive_write_finish_entry(ad));
archive_entry_free(ae);
/* Link. */
assert((ae = archive_entry_new()) != NULL);
archive_entry_copy_pathname(ae, "link4b");
archive_entry_set_mode(ae, S_IFREG | 0755);
archive_entry_set_size(ae, sizeof(data));
archive_entry_copy_hardlink(ae, "link4a");
assertEqualIntA(ad, 0, archive_write_header(ad, ae));
assertEqualInt(sizeof(data), archive_write_data(ad, data, sizeof(data)));
assertEqualIntA(ad, 0, archive_write_finish_entry(ad));
archive_entry_free(ae);
#if ARCHIVE_VERSION_NUMBER < 2000000
archive_write_finish(ad);
#else
@@ -138,30 +168,44 @@ DEFINE_TEST(test_write_disk_hardlink)
#endif
/* Test the entries on disk. */
/* Test #1 */
assert(0 == stat("link1a", &st));
/* If the hardlink was successfully created and the archive
* doesn't carry data for it, we consider it to be
* non-authoritive for meta data as well. This is consistent
* with GNU tar and BSD pax. */
assertEqualInt(st.st_mode, (S_IFREG | 0755) & ~UMASK);
assertEqualInt(st.st_size, sizeof(data));
assertEqualInt(st.st_nlink, 2);
assert(0 == stat("link1b", &st2));
assertEqualInt(st2.st_mode, (S_IFREG | 0755) & ~UMASK);
assertEqualInt(st2.st_size, sizeof(data));
assertEqualInt(st2.st_nlink, 2);
assertEqualInt(st.st_mode, st2.st_mode);
assertEqualInt(st.st_size, st2.st_size);
assertEqualInt(st.st_nlink, st2.st_nlink);
assertEqualInt(st.st_ino, st2.st_ino);
assertEqualInt(st.st_dev, st2.st_dev);
/* Test #2: Should produce identical results to test #1 */
/* Note that marking a hardlink with size = 0 is treated the
* same as having an unset size. This is partly for backwards
* compatibility (we used to not have unset tracking, so
* relied on size == 0) and partly to match the model used by
* common file formats that store a size of zero for
* hardlinks. */
assert(0 == stat("link2a", &st));
assertEqualInt(st.st_mode, (S_IFREG | 0755) & ~UMASK);
assertEqualInt(st.st_size, sizeof(data));
assertEqualInt(st.st_nlink, 2);
assert(0 == stat("link2b", &st2));
assertEqualInt(st2.st_mode, (S_IFREG | 0755) & ~UMASK);
assertEqualInt(st2.st_size, sizeof(data));
assertEqualInt(st2.st_nlink, 2);
assertEqualInt(st.st_mode, st2.st_mode);
assertEqualInt(st.st_size, st2.st_size);
assertEqualInt(st.st_nlink, st2.st_nlink);
assertEqualInt(st.st_ino, st2.st_ino);
assertEqualInt(st.st_dev, st2.st_dev);
/* Test #3 */
assert(0 == stat("link3a", &st));
assertEqualInt(st.st_mode, (S_IFREG | 0755) & ~UMASK);
assertEqualInt(st.st_size, sizeof(data));
@@ -173,5 +217,18 @@ DEFINE_TEST(test_write_disk_hardlink)
assertEqualInt(st2.st_nlink, 2);
assertEqualInt(st.st_ino, st2.st_ino);
assertEqualInt(st.st_dev, st2.st_dev);
/* Test #4 */
assert(0 == stat("link4a", &st));
assertEqualInt(st.st_mode, (S_IFREG | 0755) & ~UMASK);
assertEqualInt(st.st_size, sizeof(data));
assertEqualInt(st.st_nlink, 2);
assert(0 == stat("link4b", &st2));
assertEqualInt(st2.st_mode, (S_IFREG | 0755) & ~UMASK);
assertEqualInt(st2.st_size, sizeof(data));
assertEqualInt(st2.st_nlink, 2);
assertEqualInt(st.st_ino, st2.st_ino);
assertEqualInt(st.st_dev, st2.st_dev);
#endif
}
+9 -4
View File
@@ -28,7 +28,7 @@
.\" @(#)times.3 8.1 (Berkeley) 6/4/93
.\" $FreeBSD$
.\"
.Dd June 4, 1993
.Dd December 1, 2008
.Dt TIMES 3
.Os
.Sh NAME
@@ -52,9 +52,13 @@ The
.Fn times
function returns the value of time in
.Dv CLK_TCK Ns 's
of a second since
0 hours, 0 minutes, 0 seconds, January 1, 1970, Coordinated Universal
Time.
of a second since the system startup time.
The current value of
.Dv CLK_TCK ,
the frequency of the statistics clock in ticks per second, may be
obtained through the
.Xr sysconf 3
interface.
.Pp
It also fills in the structure pointed to by
.Fa tp
@@ -131,6 +135,7 @@ and
.Xr getrusage 2 ,
.Xr gettimeofday 2 ,
.Xr wait 2 ,
.Xr sysconf 3 ,
.Xr clocks 7
.Sh STANDARDS
The
+1 -1
View File
@@ -44,4 +44,4 @@ SYSCALL(pipe)
movl %edx,4(%ecx)
movl $0,%eax
ret
END(pipe)
END(__sys_pipe)
+1 -1
View File
@@ -40,4 +40,4 @@ __FBSDID("$FreeBSD$");
SYSCALL(reboot)
iret
END(reboot)
END(__sys_reboot)
+1 -1
View File
@@ -52,4 +52,4 @@ SYSCALL(setlogin)
movl $0,CNAME(_logname_valid)
#endif
ret /* setlogin(name) */
END(setlogin)
END(__sys_setlogin)
+3 -1
View File
@@ -18,7 +18,7 @@
/* eventlib.h - exported interfaces for eventlib
* vix 09sep95 [initial]
*
* $Id: eventlib.h,v 1.3.18.2 2005/07/28 07:38:07 marka Exp $
* $Id: eventlib.h,v 1.3.18.3 2008/01/23 02:12:01 marka Exp $
*/
#ifndef _EVENTLIB_H
@@ -29,6 +29,8 @@
#include <sys/time.h>
#include <stdio.h>
#include <isc/platform.h>
#ifndef __P
# define __EVENTLIB_P_DEFINED
# ifdef __STDC__
+37
View File
@@ -0,0 +1,37 @@
/*
* Copyright (C) 2008 Internet Systems Consortium, Inc. ("ISC")
*
* Permission to use, copy, modify, and/or distribute this software for any
* purpose with or without fee is hereby granted, provided that the above
* copyright notice and this permission notice appear in all copies.
*
* THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH
* REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
* AND FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT,
* INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
* LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
* OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
* PERFORMANCE OF THIS SOFTWARE.
*/
/* $Id: platform.h.in,v 1.2.6.2 2008/01/23 02:15:02 tbox Exp $ */
/* $FreeBSD$ */
/*! \file */
#ifndef ISC_PLATFORM_H
#define ISC_PLATFORM_H
/*
* Define if the OS does not define struct timespec.
*/
#undef ISC_PLATFORM_NEEDTIMESPEC
#ifdef ISC_PLATFORM_NEEDTIMESPEC
#include <time.h> /* For time_t */
struct timespec {
time_t tv_sec; /* seconds */
long tv_nsec; /* nanoseconds */
};
#endif
#endif
+3 -3
View File
@@ -16,7 +16,7 @@
*/
#if defined(LIBC_SCCS) && !defined(lint)
static const char rcsid[] = "$Id: inet_net_pton.c,v 1.7.18.1 2005/04/27 05:00:53 sra Exp $";
static const char rcsid[] = "$Id: inet_net_pton.c,v 1.7.18.2 2008/08/26 04:42:43 marka Exp $";
#endif
#include <sys/cdefs.h>
__FBSDID("$FreeBSD$");
@@ -135,11 +135,11 @@ inet_net_pton_ipv4(const char *src, u_char *dst, size_t size) {
assert(n >= 0 && n <= 9);
bits *= 10;
bits += n;
if (bits > 32)
goto enoent;
} while ((ch = *src++) != '\0' && isascii(ch) && isdigit(ch));
if (ch != '\0')
goto enoent;
if (bits > 32)
goto emsgsize;
}
/* Firey death and destruction unless we prefetched EOS. */
+51 -4
View File
@@ -91,7 +91,7 @@
#if defined(LIBC_SCCS) && !defined(lint)
static const char sccsid[] = "@(#)res_debug.c 8.1 (Berkeley) 6/4/93";
static const char rcsid[] = "$Id: res_debug.c,v 1.10.18.5 2005/07/28 07:38:11 marka Exp $";
static const char rcsid[] = "$Id: res_debug.c,v 1.10.18.6 2008/04/03 23:15:15 marka Exp $";
#endif /* LIBC_SCCS and not lint */
#include <sys/cdefs.h>
__FBSDID("$FreeBSD$");
@@ -187,10 +187,56 @@ do_section(const res_state statp,
p_type(ns_rr_type(rr)),
p_class(ns_rr_class(rr)));
else if (section == ns_s_ar && ns_rr_type(rr) == ns_t_opt) {
u_int16_t optcode, optlen, rdatalen = ns_rr_rdlen(rr);
u_int32_t ttl = ns_rr_ttl(rr);
fprintf(file,
"; EDNS: version: %u, udp=%u, flags=%04x\n",
(ttl>>16)&0xff, ns_rr_class(rr), ttl&0xffff);
while (rdatalen >= 4) {
const u_char *cp = ns_rr_rdata(rr);
int i;
GETSHORT(optcode, cp);
GETSHORT(optlen, cp);
if (optcode == NS_OPT_NSID) {
fputs("; NSID: ", file);
if (optlen == 0) {
fputs("; NSID\n", file);
} else {
fputs("; NSID: ", file);
for (i = 0; i < optlen; i++)
fprintf(file, "%02x ",
cp[i]);
fputs(" (",file);
for (i = 0; i < optlen; i++)
fprintf(file, "%c",
isprint(cp[i])?
cp[i] : '.');
fputs(")\n", file);
}
} else {
if (optlen == 0) {
fprintf(file, "; OPT=%u\n",
optcode);
} else {
fprintf(file, "; OPT=%u: ",
optcode);
for (i = 0; i < optlen; i++)
fprintf(file, "%02x ",
cp[i]);
fputs(" (",file);
for (i = 0; i < optlen; i++)
fprintf(file, "%c",
isprint(cp[i]) ?
cp[i] : '.');
fputs(")\n", file);
}
}
rdatalen -= 4 + optlen;
}
} else {
n = ns_sprintrr(handle, &rr, NULL, NULL,
buf, buflen);
@@ -202,7 +248,7 @@ do_section(const res_state statp,
buf = malloc(buflen += 1024);
if (buf == NULL) {
fprintf(file,
";; memory allocation failure\n");
";; memory allocation failure\n");
return;
}
continue;
@@ -379,7 +425,7 @@ static const struct res_sym __p_default_section_syms[] = {
{ns_s_an, "ANSWER", (char *)0},
{ns_s_ns, "AUTHORITY", (char *)0},
{ns_s_ar, "ADDITIONAL", (char *)0},
{0, (char *)0, (char *)0}
{0, (char *)0, (char *)0}
};
static const struct res_sym __p_update_section_syms[] = {
@@ -387,7 +433,7 @@ static const struct res_sym __p_update_section_syms[] = {
{S_PREREQ, "PREREQUISITE", (char *)0},
{S_UPDATE, "UPDATE", (char *)0},
{S_ADDT, "ADDITIONAL", (char *)0},
{0, (char *)0, (char *)0}
{0, (char *)0, (char *)0}
};
const struct res_sym __p_key_syms[] = {
@@ -615,6 +661,7 @@ p_option(u_long option) {
case RES_USE_INET6: return "inet6";
#ifdef RES_USE_EDNS0 /*%< KAME extension */
case RES_USE_EDNS0: return "edns0";
case RES_NSID: return "nsid";
#endif
#ifdef RES_USE_DNAME
case RES_USE_DNAME: return "dname";
+56 -10
View File
@@ -66,7 +66,7 @@
#if defined(LIBC_SCCS) && !defined(lint)
static const char sccsid[] = "@(#)res_mkquery.c 8.1 (Berkeley) 6/4/93";
static const char rcsid[] = "$Id: res_mkquery.c,v 1.5.18.1 2005/04/27 05:01:11 sra Exp $";
static const char rcsid[] = "$Id: res_mkquery.c,v 1.5.18.2 2008/04/03 23:15:15 marka Exp $";
#endif /* LIBC_SCCS and not lint */
#include <sys/cdefs.h>
__FBSDID("$FreeBSD$");
@@ -201,9 +201,6 @@ res_nmkquery(res_state statp,
#ifdef RES_USE_EDNS0
/* attach OPT pseudo-RR, as documented in RFC2671 (EDNS0). */
#ifndef T_OPT
#define T_OPT 41
#endif
int
res_nopt(res_state statp,
@@ -228,15 +225,16 @@ res_nopt(res_state statp,
if ((ep - cp) < 1 + RRFIXEDSZ)
return (-1);
*cp++ = 0; /*%< "." */
ns_put16(T_OPT, cp); /*%< TYPE */
*cp++ = 0; /*%< "." */
ns_put16(ns_t_opt, cp); /*%< TYPE */
cp += INT16SZ;
if (anslen > 0xffff)
anslen = 0xffff; /* limit to 16bit value */
ns_put16(anslen & 0xffff, cp); /*%< CLASS = UDP payload size */
ns_put16(anslen & 0xffff, cp); /*%< CLASS = UDP payload size */
cp += INT16SZ;
*cp++ = NOERROR; /*%< extended RCODE */
*cp++ = 0; /*%< EDNS version */
*cp++ = NOERROR; /*%< extended RCODE */
*cp++ = 0; /*%< EDNS version */
if (statp->options & RES_USE_DNSSEC) {
#ifdef DEBUG
if (statp->options & RES_DEBUG)
@@ -246,12 +244,60 @@ res_nopt(res_state statp,
}
ns_put16(flags, cp);
cp += INT16SZ;
ns_put16(0, cp); /*%< RDLEN */
ns_put16(0U, cp); /*%< RDLEN */
cp += INT16SZ;
hp->arcount = htons(ntohs(hp->arcount) + 1);
return (cp - buf);
}
/*
* Construct variable data (RDATA) block for OPT psuedo-RR, append it
* to the buffer, then update the RDLEN field (previously set to zero by
* res_nopt()) with the new RDATA length.
*/
int
res_nopt_rdata(res_state statp,
int n0, /*%< current offset in buffer */
u_char *buf, /*%< buffer to put query */
int buflen, /*%< size of buffer */
u_char *rdata, /*%< ptr to start of opt rdata */
u_short code, /*%< OPTION-CODE */
u_short len, /*%< OPTION-LENGTH */
u_char *data) /*%< OPTION_DATA */
{
register u_char *cp, *ep;
#ifdef DEBUG
if ((statp->options & RES_DEBUG) != 0U)
printf(";; res_nopt_rdata()\n");
#endif
cp = buf + n0;
ep = buf + buflen;
if ((ep - cp) < (4 + len))
return (-1);
if (rdata < (buf + 2) || rdata >= ep)
return (-1);
ns_put16(code, cp);
cp += INT16SZ;
ns_put16(len, cp);
cp += INT16SZ;
memcpy(cp, data, len);
cp += len;
len = cp - rdata;
ns_put16(len, rdata - 2); /* Update RDLEN field */
return (cp - buf);
}
#endif
/*! \file */
+11 -3
View File
@@ -66,7 +66,7 @@
#if defined(LIBC_SCCS) && !defined(lint)
static const char sccsid[] = "@(#)res_query.c 8.1 (Berkeley) 6/4/93";
static const char rcsid[] = "$Id: res_query.c,v 1.7.18.1 2005/04/27 05:01:11 sra Exp $";
static const char rcsid[] = "$Id: res_query.c,v 1.7.18.2 2008/04/03 23:15:15 marka Exp $";
#endif /* LIBC_SCCS and not lint */
#include <sys/cdefs.h>
__FBSDID("$FreeBSD$");
@@ -115,8 +115,9 @@ res_nquery(res_state statp,
{
u_char buf[MAXPACKET];
HEADER *hp = (HEADER *) answer;
int n;
u_int oflags;
u_char *rdata;
int n;
oflags = statp->_flags;
@@ -131,8 +132,14 @@ again:
buf, sizeof(buf));
#ifdef RES_USE_EDNS0
if (n > 0 && (statp->_flags & RES_F_EDNS0ERR) == 0 &&
(statp->options & (RES_USE_EDNS0|RES_USE_DNSSEC)) != 0U)
(statp->options & (RES_USE_EDNS0|RES_USE_DNSSEC|RES_NSID))) {
n = res_nopt(statp, n, buf, sizeof(buf), anslen);
rdata = &buf[n];
if (n > 0 && (statp->options & RES_NSID) != 0U) {
n = res_nopt_rdata(statp, n, buf, sizeof(buf), rdata,
NS_OPT_NSID, 0, NULL);
}
}
#endif
if (n <= 0) {
#ifdef DEBUG
@@ -142,6 +149,7 @@ again:
RES_SET_H_ERRNO(statp, NO_RECOVERY);
return (n);
}
n = res_nsend(statp, buf, n, answer, anslen);
if (n < 0) {
#ifdef RES_USE_EDNS0
+21 -7
View File
@@ -66,7 +66,7 @@
#if defined(LIBC_SCCS) && !defined(lint)
static const char sccsid[] = "@(#)res_send.c 8.1 (Berkeley) 6/4/93";
static const char rcsid[] = "$Id: res_send.c,v 1.9.18.8 2006/10/16 23:00:58 marka Exp $";
static const char rcsid[] = "$Id: res_send.c,v 1.9.18.10 2008/01/27 02:06:26 marka Exp $";
#endif /* LIBC_SCCS and not lint */
#include <sys/cdefs.h>
__FBSDID("$FreeBSD$");
@@ -302,7 +302,7 @@ int
res_nsend(res_state statp,
const u_char *buf, int buflen, u_char *ans, int anssiz)
{
int gotsomewhere, terrno, try, v_circuit, resplen, ns, n;
int gotsomewhere, terrno, tries, v_circuit, resplen, ns, n;
#ifdef USE_KQUEUE
int kq;
#endif
@@ -420,7 +420,7 @@ res_nsend(res_state statp,
/*
* Send request, RETRY times, or until successful.
*/
for (try = 0; try < statp->retry; try++) {
for (tries = 0; tries < statp->retry; tries++) {
for (ns = 0; ns < statp->nscount; ns++) {
struct sockaddr *nsap;
int nsaplen;
@@ -471,7 +471,7 @@ res_nsend(res_state statp,
if (v_circuit) {
/* Use VC; at most one attempt per server. */
try = statp->retry;
tries = statp->retry;
n = send_vc(statp, buf, buflen, ans, anssiz, &terrno,
ns);
if (n < 0)
@@ -486,7 +486,7 @@ res_nsend(res_state statp,
kq,
#endif
buf, buflen, ans, anssiz, &terrno,
ns, try, &v_circuit, &gotsomewhere);
ns, tries, &v_circuit, &gotsomewhere);
if (n < 0)
goto fail;
if (n == 0)
@@ -632,6 +632,9 @@ send_vc(res_state statp,
u_short len;
u_char *cp;
void *tmp;
#ifdef SO_NOSIGPIPE
int on = 1;
#endif
nsap = get_nsaddr(statp, ns);
nsaplen = get_salen(nsap);
@@ -679,6 +682,17 @@ send_vc(res_state statp,
return (-1);
}
}
#ifdef SO_NOSIGPIPE
/*
* Disable generation of SIGPIPE when writing to a closed
* socket. Write should return -1 and set errno to EPIPE
* instead.
*
* Push on even if setsockopt(SO_NOSIGPIPE) fails.
*/
(void)_setsockopt(statp->_vcsock, SOL_SOCKET, SO_NOSIGPIPE, &on,
sizeof(on));
#endif
errno = 0;
if (_connect(statp->_vcsock, nsap, nsaplen) < 0) {
*terrno = errno;
@@ -811,7 +825,7 @@ send_dg(res_state statp,
int kq,
#endif
const u_char *buf, int buflen, u_char *ans,
int anssiz, int *terrno, int ns, int try, int *v_circuit,
int anssiz, int *terrno, int ns, int tries, int *v_circuit,
int *gotsomewhere)
{
const HEADER *hp = (const HEADER *) buf;
@@ -915,7 +929,7 @@ send_dg(res_state statp,
/*
* Wait for reply.
*/
seconds = (statp->retrans << try);
seconds = (statp->retrans << tries);
if (ns > 0)
seconds /= statp->nscount;
if (seconds <= 0)
+1 -1
View File
@@ -50,7 +50,7 @@ __FBSDID("$FreeBSD$");
size_t
fread(void * __restrict buf, size_t size, size_t count, FILE * __restrict fp)
{
int ret;
size_t ret;
FLOCKFILE(fp);
ret = __fread(buf, size, count, fp);
+1 -1
View File
@@ -214,7 +214,7 @@ _thr_rtld_init(void)
{
struct RtldLockInfo li;
struct pthread *curthread;
long dummy;
long dummy = -1;
curthread = _get_curthread();
+2 -1
View File
@@ -9,7 +9,8 @@ LIB= util
SHLIB_MAJOR= 7
SRCS= _secure_path.c auth.c gr_util.c expand_number.c flopen.c fparseln.c \
humanize_number.c kld.c login.c login_auth.c login_cap.c login_class.c \
humanize_number.c kinfo_getfile.c kinfo_getvmmap.c kld.c \
login.c login_auth.c login_cap.c login_class.c \
login_crypt.c login_ok.c login_times.c login_tty.c logout.c \
logwtmp.c pidfile.c property.c pty.c pw_util.c realhostname.c \
stub.c trimdomain.c uucplock.c
+73
View File
@@ -0,0 +1,73 @@
#include <sys/cdefs.h>
__FBSDID("$FreeBSD$");
#include <sys/types.h>
#include <sys/user.h>
#include <sys/sysctl.h>
#include <stdlib.h>
#include <string.h>
#include "libutil.h"
struct kinfo_file *
kinfo_getfile(pid_t pid, int *cntp)
{
int mib[4];
int error;
int cnt;
size_t len;
char *buf, *bp, *eb;
struct kinfo_file *kif, *kp, *kf;
*cntp = 0;
len = 0;
mib[0] = CTL_KERN;
mib[1] = KERN_PROC;
mib[2] = KERN_PROC_FILEDESC;
mib[3] = pid;
error = sysctl(mib, 4, NULL, &len, NULL, 0);
if (error)
return (NULL);
len = len * 4 / 3;
buf = malloc(len);
if (buf == NULL)
return (NULL);
error = sysctl(mib, 4, buf, &len, NULL, 0);
if (error) {
free(buf);
return (NULL);
}
/* Pass 1: count items */
cnt = 0;
bp = buf;
eb = buf + len;
while (bp < eb) {
kf = (struct kinfo_file *)(uintptr_t)bp;
bp += kf->kf_structsize;
cnt++;
}
kif = calloc(cnt, sizeof(*kif));
if (kif == NULL) {
free(buf);
return (NULL);
}
bp = buf;
eb = buf + len;
kp = kif;
/* Pass 2: unpack */
while (bp < eb) {
kf = (struct kinfo_file *)(uintptr_t)bp;
/* Copy/expand into pre-zeroed buffer */
memcpy(kp, kf, kf->kf_structsize);
/* Advance to next packed record */
bp += kf->kf_structsize;
/* Set field size to fixed length, advance */
kp->kf_structsize = sizeof(*kp);
kp++;
}
free(buf);
*cntp = cnt;
return (kif); /* Caller must free() return value */
}
+73
View File
@@ -0,0 +1,73 @@
#include <sys/cdefs.h>
__FBSDID("$FreeBSD$");
#include <sys/types.h>
#include <sys/user.h>
#include <sys/sysctl.h>
#include <stdlib.h>
#include <string.h>
#include "libutil.h"
struct kinfo_vmentry *
kinfo_getvmmap(pid_t pid, int *cntp)
{
int mib[4];
int error;
int cnt;
size_t len;
char *buf, *bp, *eb;
struct kinfo_vmentry *kiv, *kp, *kv;
*cntp = 0;
len = 0;
mib[0] = CTL_KERN;
mib[1] = KERN_PROC;
mib[2] = KERN_PROC_VMMAP;
mib[3] = pid;
error = sysctl(mib, 4, NULL, &len, NULL, 0);
if (error)
return (NULL);
len = len * 4 / 3;
buf = malloc(len);
if (buf == NULL)
return (NULL);
error = sysctl(mib, 4, buf, &len, NULL, 0);
if (error) {
free(buf);
return (NULL);
}
/* Pass 1: count items */
cnt = 0;
bp = buf;
eb = buf + len;
while (bp < eb) {
kv = (struct kinfo_vmentry *)(uintptr_t)bp;
bp += kv->kve_structsize;
cnt++;
}
kiv = calloc(cnt, sizeof(*kiv));
if (kiv == NULL) {
free(buf);
return (NULL);
}
bp = buf;
eb = buf + len;
kp = kiv;
/* Pass 2: unpack */
while (bp < eb) {
kv = (struct kinfo_vmentry *)(uintptr_t)bp;
/* Copy/expand into pre-zeroed buffer */
memcpy(kp, kv, kv->kve_structsize);
/* Advance to next packed record */
bp += kv->kve_structsize;
/* Set field size to fixed length, advance */
kp->kve_structsize = sizeof(*kp);
kp++;
}
free(buf);
*cntp = cnt;
return (kiv); /* Caller must free() return value */
}
+6
View File
@@ -64,6 +64,8 @@ struct termios;
struct winsize;
struct utmp;
struct in_addr;
struct kinfo_file;
struct kinfo_vmentry;
__BEGIN_DECLS
void clean_environment(const char * const *_white,
@@ -99,6 +101,10 @@ int realhostname_sa(char *host, size_t hsize, struct sockaddr *addr,
int kld_isloaded(const char *name);
int kld_load(const char *name);
struct kinfo_file *
kinfo_getfile(pid_t _pid, int *_cntp);
struct kinfo_vmentry *
kinfo_getvmmap(pid_t _pid, int *_cntp);
#ifdef _STDIO_H_ /* avoid adding new includes */
char *fparseln(FILE *, size_t *, size_t *, const char[3], int);
+1 -1
View File
@@ -46,7 +46,7 @@ void fatalerror(char *);
void ftpd_logwtmp(char *, char *, struct sockaddr *addr);
int ftpd_pclose(FILE *);
FILE *ftpd_popen(char *, char *);
char *getline(char *, int, FILE *);
int getline(char *, int, FILE *);
void lreply(int, const char *, ...) __printflike(2, 3);
void makedir(char *);
void nack(char *);
+22 -6
View File
@@ -1191,7 +1191,7 @@ lookup(struct tab *p, char *cmd)
/*
* getline - a hacked up version of fgets to ignore TELNET escape codes.
*/
char *
int
getline(char *s, int n, FILE *iop)
{
int c;
@@ -1207,7 +1207,7 @@ getline(char *s, int n, FILE *iop)
if (ftpdebug)
syslog(LOG_DEBUG, "command: %s", s);
tmpline[0] = '\0';
return(s);
return(0);
}
if (c == 0)
tmpline[0] = '\0';
@@ -1244,13 +1244,24 @@ getline(char *s, int n, FILE *iop)
}
}
*cs++ = c;
if (--n <= 0 || c == '\n')
if (--n <= 0) {
/*
* If command doesn't fit into buffer, discard the
* rest of the command and indicate truncation.
* This prevents the command to be split up into
* multiple commands.
*/
while (c != '\n' && (c = getc(iop)) != EOF)
;
return (-2);
}
if (c == '\n')
break;
}
got_eof:
sigprocmask(SIG_SETMASK, &osset, NULL);
if (c == EOF && cs == s)
return (NULL);
return (-1);
*cs++ = '\0';
if (ftpdebug) {
if (!guest && strncasecmp("pass ", s, 5) == 0) {
@@ -1270,7 +1281,7 @@ got_eof:
syslog(LOG_DEBUG, "command: %.*s", len, s);
}
}
return (s);
return (0);
}
static void
@@ -1300,9 +1311,14 @@ yylex(void)
case CMD:
(void) signal(SIGALRM, toolong);
(void) alarm(timeout);
if (getline(cbuf, sizeof(cbuf)-1, stdin) == NULL) {
n = getline(cbuf, sizeof(cbuf)-1, stdin);
if (n == -1) {
reply(221, "You could at least say goodbye.");
dologout(0);
} else if (n == -2) {
reply(500, "Command too long.");
(void) alarm(0);
continue;
}
(void) alarm(0);
#ifdef SETPROCTITLE
+6 -1
View File
@@ -2794,15 +2794,20 @@ static int
myoob(void)
{
char *cp;
int ret;
if (!transflag) {
syslog(LOG_ERR, "Internal: myoob() while no transfer");
return (0);
}
cp = tmpline;
if (getline(cp, 7, stdin) == NULL) {
ret = getline(cp, 7, stdin);
if (ret == -1) {
reply(221, "You could at least say goodbye.");
dologout(0);
} else if (ret == -2) {
/* Ignore truncated command. */
return (0);
}
upper(cp);
if (strcmp(cp, "ABOR\r\n") == 0) {
+2 -2
View File
@@ -18,11 +18,11 @@
# Set these, release builder!
#
# Fixed version:
#BUILDNAME=7.0-STABLE
#BUILDNAME=7.1-STABLE
#
# Automatic SNAP versioning:
DATE != date +%Y%m%d
BASE = 7.0
BASE = 7.1
BUILDNAME?=${BASE}-${DATE}-SNAP
#
#CHROOTDIR=/junk/release
-17
View File
@@ -1,17 +0,0 @@
# $FreeBSD$
# $FreeBSDde: de-docproj/relnotes/de_DE.ISO8859-1/Makefile,v 1.4 2002/10/28 18:37:19 ue Exp $
# basiert auf: 1.3
RELN_ROOT?= ${.CURDIR}/..
SUBDIR = relnotes
SUBDIR+= hardware
SUBDIR+= readme
SUBDIR+= errata
SUBDIR+= installation
SUBDIR+= early-adopter
COMPAT_SYMLINK = de
.include "${RELN_ROOT}/share/mk/doc.relnotes.mk"
.include "${DOC_PREFIX}/share/mk/doc.project.mk"
@@ -1,23 +0,0 @@
# The FreeBSD Documentation
# The FreeBSD German Documentation Project
#
# $FreeBSD$
# $FreeBSDde: de-docproj/relnotes/de_DE.ISO8859-1/early-adopter/Makefile,v 1.1 2002/10/28 18:37:20 ue Exp $
# basiert auf: 1.3
RELN_ROOT?= ${.CURDIR}/../..
.ifdef NO_LANGCODE_IN_DESTDIR
DESTDIR?= ${DOCDIR}/early-adopter
.else
DESTDIR?= ${DOCDIR}/de_DE.ISO8859-1/early-adopter
.endif
DOC?= article
FORMATS?= html
INSTALL_COMPRESSED?=gz
INSTALL_ONLY_COMPRESSED?=
SRCS+= article.sgml
.include "${RELN_ROOT}/share/mk/doc.relnotes.mk"
.include "${DOC_PREFIX}/share/mk/doc.project.mk"
@@ -1,557 +0,0 @@
<!--
The FreeBSD Documentation Project
The FreeBSD German Documentation Project
$FreeBSD$
$FreeBSDde: de-docproj/relnotes/de_DE.ISO8859-1/early-adopter/article.sgml,v 1.24 2003/05/25 12:44:41 mheinen Exp $
basiert auf: 1.15
-->
<!DOCTYPE article PUBLIC "-//FreeBSD//DTD DocBook V4.1-Based Extension//EN" [
<!ENTITY % man PUBLIC "-//FreeBSD//ENTITIES DocBook Manual Page Entities//EN">
%man;
<!ENTITY % freebsd PUBLIC "-//FreeBSD//ENTITIES DocBook Miscellaneous FreeBSD Entities//EN">
%freebsd;
<!ENTITY % authors PUBLIC "-//FreeBSD//ENTITIES DocBook Author Entities//EN">
%authors;
<!ENTITY % teams PUBLIC "-//FreeBSD//ENTITIES DocBook Team Entities//EN">
%teams;
<!ENTITY % mailing-lists PUBLIC "-//FreeBSD//ENTITIES DocBook Mailing List Entities//DE">
%mailing-lists;
<!ENTITY % release PUBLIC "-//FreeBSD//ENTITIES Release Specification//EN">
%release;
<!ENTITY release.4x "4.<replaceable>X</replaceable>">
<!ENTITY release.5x "5.<replaceable>X</replaceable>">
]>
<article lang="de">
<articleinfo>
<title>Hinweise f&uuml;r die ersten Anwender von &os;
&release.current;</title>
<authorgroup>
<corpauthor>The &os; Release Engineering Team</corpauthor>
</authorgroup>
<pubdate>$FreeBSD$</pubdate>
<copyright>
<year>2002</year>
<year>2003</year>
<holder role="mailto:[email protected]">The &os; Release
Engineering Team</holder>
</copyright>
<abstract>
<para>Dieser Artikel enth&auml;lt Informationen &uuml;ber den
Status von &os; &release.current; f&uuml;r die Anwender, die
bisher noch keine Erfahrung mit den &release.5x; Versionen
oder &os; sammeln konnten. Er enth&auml;lt einige
Hintergrundinformationen &uuml;ber die vor und w&auml;hrend
einer Ver&ouml;ffentlichung ablaufende Prozesse, nennt die
wichtigsten Neuerungen und die Stellen, an denen die ersten
Anwender Probleme haben k&ouml;nnten. Weiterhin gibt es
Informationen &uuml;ber die Pl&auml;ne f&uuml;r weitere
Ver&ouml;ffentlichungen im Entwicklungszweig 4-STABLE und
ein paar Hinweise f&uuml;r die Aktualisierung bestehender
Systeme.</para>
</abstract>
</articleinfo>
<sect1 id="intro">
<title>Einf&uuml;hrung</title>
<para>Nach &uuml;ber zwei Jahren steht mit &os; &release.5x;
wieder eine komplett neue &os;-Version zur Verf&uuml;gung. Sie
bietet nicht nur diverse neue M&ouml;glichkeiten, auch und
gerade <quote>unter der Haube</quote> hat sich einiges
verbessert. Der Nachteil dieser Neuerungen ist, da&szlig;
gro&szlig;e Teile des Systems neu und nicht ausreichend getestet
sind. Im Vergleich zu den existierenden &release.4x; Versionen
kann der Schritt zu den ersten &release.5x; Versionen zu
Verschlechterungen in den Bereichen Stabilit&auml;t, Leistung
und teilweise auch Funktionalit&auml;t f&uuml;hren.</para>
<para>Aus diesen Gr&uuml;nden warnen wir alle Anwender, ihre
Systeme nicht von &auml;lteren &os;-Versionen auf 5.0 zu
aktualisieren, wenn sie die &quot;Problemzonen&quot; nicht kennen
oder nicht bereit sind, die Einschr&auml;nkungen in den neuesten
Versionen in Kauf zu nehmen. Gerade konservative Anwender
sollten in der nahen Zukunft &release.4x;-Versionen (wie
4.8-RELEASE) benutzen. Wir meinen, da&szlig; diese Anwender
erst zu &release.5x; wechseln sollten, nachdem der
Entwicklungszweig 5-STABLE existiert; dies wird wahrscheinlich
nach der Ver&ouml;ffentlichung von 5.2-RELEASE
passieren.</para>
<para>Hier zeigt sich das <quote>Henne und Ei</quote> Problem bei
der Ver&ouml;ffentlichung von &os; &release.5x;. Alle am &os;
Project beteiligten Personen wollen ein &os;, das m&ouml;glichst
stabil und zuverl&auml;ssig ist. Um dieses Ziel zu erreichen,
m&uuml;ssen die neue Version und speziell die neuen Komponenten
von m&ouml;glichst vielen Anwendern getestet werden.
Dummerweise gibt es bei realistischer Betrachtung nur eine
M&ouml;glichkeit, eine gr&ouml;&szlig;ere Anzahl an Anwender
f&uuml;r einen Test zu gewinnen: Die Ver&ouml;ffentlichung der
zu testenden Version!</para>
<para>Dieser Artikel beschreibt einige der Probleme, die bei der
Installation und Benutzung von &os; &release.current; auftreten
k&ouml;nnen. Zuerst wird beschrieben, wie eine neue FreeBSD
Version ver&ouml;ffentlicht wird. Dann werden die
interessanteren Neuerungen in FreeBSD &release.current; und die
Bereiche, in denen (gerade f&uuml;r unvorsichtige Anwender)
Probleme auftreten k&ouml;nnen, vorgestellt. Anwender, die erst
einmal bei Systemen auf Basis von 4-STABLE bleiben m&ouml;chten,
erhalten einen kurzen Ausblick auf die kurz- und mittelfristigen
Planungen f&uuml;r diesen Entwicklungszweig. Zuletzt wird
besprochen, was bei einer Aktualisierung eines existierenden
&release.4x; Systems auf 5.0 beachtet werden mu&szlig;.</para>
</sect1>
<sect1 id="release-overview">
<title>Ver&ouml;ffentlichung neuer &os;-Versionen</title>
<para>Das Prinzip der &os;-Entwicklung ist die Verwendung mehrerer
Entwicklungszweige innerhalb eines <quote>CVS
Repository</quote>. Der Hauptzweig wird <quote>CURRENT</quote>
genannt und innerhalb des Repository mit dem symbolischen Namen
<literal>HEAD</literal> referenziert. Neuerungen werden
zun&auml;chst in diesen Zweig eingebracht. Das bedeutet zwar,
da&szlig; neue M&ouml;glichkeiten zun&auml;chst einmal nur in
CURRENT zur Verf&uuml;gung stehen, es bedeutet allerdings auch,
da&szlig; dieser Zweig von Zeit zu Zeit Kummer bereitet,
w&auml;hrend die Neuerungen getestet und ihre Fehler entfernt
werden.</para>
<para>Wenn eine neue &os;-Version ver&ouml;ffentlicht wird,
basiert diese in der Regel auf einem der <quote>STABLE</quote>
(stabil) genannten Entwicklungszweige. Neuerungen werden nur in
diese Entwicklungszweige &uuml;bernommen, nachdem sie in CURRENT
getestet wurden. Zur Zeit gibt es nur einen aktiven STABLE
Entwicklungszweig: <quote>4-STABLE</quote>; dieser Zweig war
die Grundlage f&uuml;r alle &release.4x; Versionen. Dieser
Zweig wird innerhalb des CVS Repository durch den symbolischen
Namen <literal>RELENG_4</literal> gekennzeichnet.</para>
<para>Die Basis f&uuml;r &os; 5.0 und 5.1 ist der
Entwicklungszweig CURRENT. Damit wird zum ersten Mal nach
&uuml;ber zwei Jahren eine neue Version auf Basis dieses
Entwicklungszweiges erscheinen (die letzte war &os; 4.0, im
M&auml;rz 2000).</para>
<para>Einige Zeit nach der Ver&ouml;ffentlichung von &os; 5.0 wird
im &os; CVS Repository der Zweig <quote>5-STABLE</quote> mit dem
symbolischen Namen <literal>RELENG_5</literal> erzeugt werden.
Die letzten beiden Entwicklungszweige dieser Art (3-STABLE und
4-STABLE) wurden unmittelbar nach der Ver&ouml;ffentlichung der
jeweiligen <quote>Punkt Null</quote> Versionen (3.0 bzw. 4.0)
erzeugt. R&uuml;ckblickend m&uuml;ssen wir feststellen,
da&szlig; dadurch in beiden F&auml;llen nicht genug Zeit war, um
CURRENT zu stabilisieren, bevor der neue Entwicklungszweig
eingerichtet wurde. Dies f&uuml;hrte zu unn&ouml;tiger
Mehrarbeit, da Fehlerkorrekturen von einem Zweig in den anderen
Zweig &uuml;bertragen werden mu&szlig;ten; au&szlig;erdem kam
es zu einigen &Auml;nderungen in der Architektur, die nicht in
den jeweils anderen Zweig &uuml;bernommen werden konnten.</para>
<para>Aus diesem Grund wird das Release Engineering Team den neuen
5-STABLE Entwicklungszweig erst dann im CVS Repository
einrichten, wenn eine solide Grundlage zur Verf&uuml;gung steht.
Es ist sehr wahrscheinlich, da&szlig; vorher mehrere
&release.5x; Versionen erscheinen werden; zur Zeit rechnen wir
damit, da&szlig; 5-STABLE nach dem Erscheinen von 5.2-RELEASE
erzeugt werden wird.</para>
<para>Weitere Informationen &uuml;ber den Ablauf bei der
Ver&ouml;ffentlichung einer neuen &os; Version finden Sie auf
den <ulink
url="http://www.FreeBSD.org/releng/index.html">Release
Engineering Web pages</ulink> und im Artikel <ulink
url="http://www.freebsd.org/doc/en_US.ISO8859-1/articles/releng/index.html">&os;
Release Engineering</ulink>. Informationen &uuml;ber den
geplanten Entwicklungszweig 5-STABLE finden Sie auf der <ulink
url="http://www.FreeBSD.org/doc/en_US.ISO8859-1/articles/5-roadmap/index.html"><quote>The
Roadmap for 5-STABLE</quote></ulink>.</para>
</sect1>
<sect1 id="new">
<title>Neuerungen</title>
<para>Die Glanzpunkte von &os; &release.5x; sind die vielen Neuerungen.
Diese Neuerungen und die neue Funktionalit&auml;t basieren zum
gr&ouml;&szlig;ten Teil auf massiven &Auml;nderungen der
Systemarchitektur, die nicht in den Entwicklungszweig 4-STABLE
eingepflegt wurden. Viele in sich abgeschlossene
&Auml;nderungen wie Treiber f&uuml;r neue Ger&auml;te oder neue
Benutzerprogramme wurden dagegen schon nach 4-STABLE
&uuml;bernommen. Die folgende Liste enth&auml;lt eine kurze
&Uuml;bersicht &uuml;ber die wichtigsten Neuerungen in &os;
5.0:</para>
<itemizedlist>
<listitem>
<para>SMPng: Die <quote>n&auml;chste Generation</quote> der
Unterst&uuml;tzung f&uuml;r Systeme mit mehreren Prozessoren
(noch nicht abgeschlossen). Es ist jetzt m&ouml;glich,
da&szlig; mehrere Prozessoren gleichzeitig den Kernel
nutzen.</para>
</listitem>
<listitem>
<para>KSE: Die <quote>Kernel Scheduled Entities</quote>
erlauben es einem Prozess, mehrere Threads auf Kernel-Ebene
zu nutzen, analog zur Aktivierung via Scheduler. Die
(experimentellen) Bibliotheken <filename>libkse</filename>
und <filename>libthr</filename> erlauben auch normalen
Programmen mit mehreren Threads, diese Erweiterung zu
nutzen.</para>
</listitem>
<listitem>
<para>Neue Plattformen: Zus&auml;tzlich zu i386, pc98 und
Alpha werden jetzt auch sparc64 und ia64 Systeme
unterst&uuml;tzt.</para>
</listitem>
<listitem>
<para>GCC: Der Compiler und die dazugeh&ouml;rigen Werkzeuge
basieren jetzt auf GCC 3.2.2 und nicht mehr auf GCC
2.95.<replaceable>X</replaceable>.</para>
</listitem>
<listitem>
<para>MAC: Unterst&uuml;tzung f&uuml;r erweiterbare
<quote>Mandatory Access Control</quote> Regelwerke.</para>
</listitem>
<listitem>
<para>GEOM: Ein flexibles Ger&uuml;st zur Manipulation von
Daten beim Transfer von und zu Festplatten. Auf dieser
Basis wurde ein experimentelles Modul zur
Verschl&uuml;sselung des Festplatteninhaltes
entwickelt.</para>
</listitem>
<listitem>
<para>FFS: Das Dateisystem unterst&uuml;tzt jetzt
Hintergrund-&man.fsck.8; (um das System nach einem Absturz
schneller verf&uuml;gbar zu machen) sowie
<quote>Schnappsch&uuml;sse</quote>.</para>
</listitem>
<listitem>
<para>UFS2: Dieses neue Dateisystem unterst&uuml;tzt
gr&ouml;&szlig;ere Dateien und zus&auml;tzliche
Dateiberechtigungen. &man.newfs.8; erzeugt jetzt
standardm&auml;&szlig;ig UFS2 Dateisysteme und auf allen
Plattformen au&szlig;er PC98 gilt dies auch f&uuml;r
Dateisysteme, die mit &man.sysinstall.8; erzeugt
werden.</para>
</listitem>
<listitem>
<para>Cardbus: Cardbus wird jetzt unterst&uuml;tzt.</para>
</listitem>
</itemizedlist>
<para>Eine ausf&uuml;hrlichere &Uuml;bersicht &uuml;ber die
Neuerungen finden Sie in den <quote>Release Notes</quote>
f&uuml;r &os; &release.prev; und &release.current;.</para>
</sect1>
<sect1 id="drawbacks">
<title>Nachteile f&uuml;r fr&uuml;he Anwender</title>
<para>Ein Nachteil der Neuerungen in &os; &release.5x; ist,
da&szlig; es in einigen Bereichen auf Grund der noch nicht
abgeschlossenen Entwicklung zu Problemen oder zu unerwarteten
Effekten kommen kann. Einige (aber nicht alle) der Problemzonen
sind in der folgenden Liste zusammengefa&szlig;t:</para>
<itemizedlist>
<listitem>
<para>Die Arbeit an diversen Neuerungen ist noch nicht
abgeschlossen, dazu geh&ouml;ren unter anderem SMPng und
KSE. Diese Erweiterungen sind zwar f&uuml;r Test- und
Experimentalzwecke ausreichend stabil, aber unter
Umst&auml;nden nicht stabil genug f&uuml;r den
Produktionsbetrieb.</para>
</listitem>
<listitem>
<para>Durch die &Auml;nderungen in den Datenstrukturen des
Kernels und der Schnittstellen f&uuml;r Anwendungen und
Programmierer (ABI/API), m&uuml;ssen Treiber anderer
Hersteller angepa&szlig;t werden, damit sie korrekt mit &os;
5.0 zusammenarbeiten. Es ist nicht ausgeschlossen,
da&szlig; es bis zum Erscheinen des Entwicklungszweiges
5-STABLE weitere kleinere &Auml;nderungen am ABI/API geben
wird.</para>
</listitem>
<listitem>
<para>Einige Teile des &os; Basissystems wurden in die Ports
Collection verschoben. Dazu geh&ouml;ren insbesondere
<application>Perl</application>,
<application>UUCP</application> und die meisten (nicht alle)
Spiele. Diese Programme werden zwar weiterhin entwickelt
und unterst&uuml;tzt, es kann aber verwirren, da&szlig; sie
nicht mehr Teil des Basissystems sind.</para>
</listitem>
<listitem>
<para>Einige Teile des &os;-Basissystems wurden nicht mehr
gepflegt, weil es nicht gen&uuml;gend Anwender und/oder
Entwickler gab. Diese Teile mu&szlig;ten entfernt werden,
dazu z&auml;hlen unter anderem die Erzeugung von Programmen
im Format a.out;, die XNS-Netzwerkprotokolle und der Treiber
f&uuml;r den X-10 Controller.</para>
</listitem>
<listitem>
<para>Viele Ports und Packages, die mit &os; 4-STABLE noch
korrekt liefen, k&ouml;nnen mit &os; 5.0 nicht genutzt oder
nicht kompiliert werden. Der Grund ist in der Regel der
neue Compiler oder die Aufr&auml;umarbeiten in den
Header-Dateien.</para>
</listitem>
<listitem>
<para>Viele der Neuerungen in &os; &release.5x; wurden bisher
nur auf relativ wenigen Systemen getestet. Viele dieser
Neuerungen (wie SMPng) haben Auswirkungen auf gro&szlig;e
Bereiche des Kernels.</para>
</listitem>
<listitem>
<para>Die Neuerungen in &os; 5.0 enthalten noch Routinen
zur Unterst&uuml;tzung bei der Fehlersuche und Diagnose.
Dadurch kann es dazu kommen, da&szlig; ein System mit
&os; 5.0 langsamer ist als mit 4-STABLE.</para>
</listitem>
<listitem>
<para>Neuerungen werden erst in den Entwicklungszweig 4-STABLE
&uuml;bernommen, nachdem sie eine Zeit lang in -CURRENT
<quote>gereift</quote> sind. Bei &os; 5.0 fehlt dieser
stabilisierende Effekt eines -STABLE Entwicklungszweiges.
Der Entwicklungszweig 5-STABLE wird wahrscheinlich erst
einige Zeit nach der Ver&ouml;ffentlichung von 5.2-RELEASE
eingerichtet werden.</para>
</listitem>
<listitem>
<para>Die Dokumentation (wie z.B. das &os; <ulink
url="http://www.FreeBSD.org/doc/de_DE.ISO8859-1/books/handbook/index.html">Handbuch</ulink>
und der <ulink
url="http://www.FreeBSD.org/doc/de_DE.ISO8859-1/books/faq/index.html">FAQ</ulink>)
ist teilweise noch nicht auf dem Stand von
&os; &release.5x;.</para>
</listitem>
</itemizedlist>
<para>Da einige dieser Probleme auch negative Auswirkungen auf die
Stabilit&auml;t des Systems haben, r&auml;t das Release
Engineering Team konservativen Anwendern und Firmen, Versionen
aus dem Entwicklungszweig 4-STABLE zu verwenden, bis die
&release.5x; Versionen zuverl&auml;ssiger
geworden sind.</para>
</sect1>
<sect1 id="plans-stable">
<title>Die Zukunft des Entwicklungszweiges 4-STABLE</title>
<para>Die Ver&ouml;ffentlichung von &os; 5.0 bedeutete nicht das
Ende des Entwicklungszweiges 4-STABLE: &os; 4.8 erschien im
April 2003, zwei Monate nach der Ver&ouml;ffentlichung von &os;
5.0. Es wird wahrscheinlich noch eine weitere Version auf der
Basis dieses Entwicklungszweiges geben: Das f&uuml;r den Sommer
2003 geplante 4.9-RELEASE. Auch eine Version 4.10 liegt im
Bereich des M&ouml;glichen. Dies h&auml;ngt von mehreren
Faktoren ab, der wichtigste davon ist die Existenz und
Stabilit&auml;t des Entwicklungszweiges 5-STABLE. Wenn CURRENT
nicht stabil genug ist, um einen Entwicklungszweig 5-STABLE zu
rechtfertigen, werden weitere Versionen auf Basis des
Entwicklungszweiges 4-STABLE m&ouml;glich und notwendig sein.
Bis zum Erscheinen der offiziell letzten Version auf Basis von
4-STABLE bleibt es den Entwicklern &uuml;berlassen, ob sie
Neuerungen aus <literal>HEAD</literal> in 4-STABLE einpflegen
(im Rahmen der schon bestehenden Regelungen).</para>
<para>Bis zu einem gewissen Grad werden das Release Engineering
Team und die Entwickler auch die W&uuml;nsche der Benutzer nach
weiteren Versionen auf Basis von 4-STABLE beachten. Allerdings
nur, so weit dies im Rahmen der beschr&auml;nkten Ressourcen
m&ouml;glich ist.</para>
<para>Neue Versionen auf Basis des Entwicklungszweiges 4-STABLE
werden vom &a.security-officer; im &uuml;blichen Rahmen
unterst&uuml;tzt werden, genauere Informationen dazu finden Sie
auf der <ulink
url="http://www.FreeBSD.org/security/index.html">Security
page</ulink> auf der &os; Webseite. In der Regel werden die
letzten beiden Versionen jedes Entwicklungszweiges durch die
Ver&ouml;ffentlichung von Sicherheitshinweisen und Patches
unterst&uuml;tzt; dem Team ist es allerdings freigestellt, diese
Unterst&uuml;tzung auf weitere Versionen oder spezielle Probleme
auszudehnen.</para>
</sect1>
<sect1 id="upgrade">
<title>Hinweise f&uuml;r die Aktualisierung von &os; &release.4x;</title>
<para>Dieses Kapitel enth&auml;lt Hinweise f&uuml;r Anwender, die
ihr bestehendes &os; &release.4x; System auf &os; &release.5x;
aktualisieren wollen. Wie bei jeder Aktualisierung ist es auf
jeden Fall notwendig, vorher die Release Notes und die Errata der
neuen Version zu lesen; bei Aktualisierung &uuml;ber den
Quellcode ist <filename>src/UPDATING</filename>
Pflichtlekt&uuml;re.</para>
<sect2>
<title>Aktualisierung ohne Quellcode</title>
<para>Der einfachste Ansatz ist immer noch
<quote>Sicherheitskopien erstellen, Platte formatieren, neues
System installieren, Daten wieder einspielen</quote>. Dadurch
werden alle Probleme mit veralteten und nicht kompatiblen
Programmen und Konfigurationsdateien umgangen. Die neuen
Dateisysteme k&ouml;nnen maximalen Nutzen aus den diversen
Neuerungen (speziell UFS2) ziehen.</para>
<para>Zum gegenw&auml;rtigen Zeitpunkt hat noch niemand
ausf&uuml;hrlich getestet, ob und wie gut die
<quote>Upgrade</quote>-Option in &man.sysinstall.8; bei einem
Update von 4.0 zu 5.0 funktioniert. Wir raten daher dringend
von der Verwendung dieser Funktion ab. Eines der
Hauptprobleme ist, da&szlig; bei dieser Variante diverse
Dateien nicht gel&ouml;scht werden, die zwar von &release.4x;
genutzt wurden, aber in &release.5x; nicht mehr vorhanden
sind. Diese Altlasten k&ouml;nnen zu Problemen
f&uuml;hren.</para>
<para>Auf i386 und pc98 Systemen kann die Konfiguration von ISA
Ger&auml;ten beim Systemstart mit dem Werkzeug UserConfig
eingestellt werden, dies gilt auch beim Start von einem
Installations-Medium. Dieses Programm wurde in &os; 5.0 durch
&man.device.hints.5; ersetzt; dieses stellt zwar die gleiche
Funktionalit&auml;t bereit, ist aber von der Bedienung her
v&ouml;llig verschieden.</para>
<para>Bei einer Installation von Diskette kann es notwendig
werden, die neue Treiber-Diskette zu benutzen. Das
<filename>drivers.flp</filename> Diskettenimage sollte im
allgemeinen &uuml;berall dort verf&uuml;gbar sein, wo auch
schon die bekannten <filename>kern.flp</filename> und
<filename>mfsroot.flp</filename> verf&uuml;gbar sind.</para>
<para>Bei einer Installation von CD-ROM auf einem i386-System
wird jetzt ein neues Startprogramm mit dem Namen
<quote>no-emulation boot loader</quote> genutzt. Dadurch ist
es unter anderem m&ouml;glich, auf der CD den Standardkernel
(<literal>GENERIC</literal>) statt des auf den Disketten
verwendeten Mini-Kernels zu nutzen. Jedes System, das von den
Installations-CDs f&uuml;r Windows NT 4.0 booten kann, sollte
auch mit den &os; &release.5x; CD-ROMs zurechtkommen.</para>
</sect2>
<sect2>
<title>Aktualisierung mit Quellcode</title>
<para>Es ist auf jeden Fall erforderlich, vor der Aktualisierung
<filename>src/UPDATING</filename> zu lesen. Der Abschnitt
<quote>To upgrade from 4.x-stable to current</quote>
enth&auml;lt eine Schritt-f&uuml;r-Schritt Anleitung, der Sie
unbedingt folgen m&uuml;ssen, die Nutzung der &uuml;blichen
<quote>Abk&uuml;rzungen</quote> ist nicht
m&ouml;glich.</para>
</sect2>
<sect2>
<title>Allgemeine Hinweise</title>
<para><application>Perl</application> wurde aus dem Basissystem
entfernt und sollte entweder als Package oder &uuml;ber die
Ports Collection installiert werden. Die bisher &uuml;bliche
Praxis, Perl als Teil des Basissystems zu behandeln und mit ihm
zusammen zu kompilieren, f&uuml;hrte zu diversen Problemen,
die eine Aktualisierung von Perl erschwerten. Die im
Standardsystem vorhandenen Programme, die Perl
ben&ouml;tigten, wurden entweder in einer anderen Sprache neu
geschrieben (wenn sie noch ben&ouml;tigt wurden) oder
ersatzlos entfernt (wenn sie &uuml;berfl&uuml;ssig waren). Da
&man.sysinstall.8; das Perl Package bei den meisten
Distributionen automatisch mit installiert, sollte diese
&Auml;nderung kaum Auswirkungen auf die Anwender
haben.</para>
<para>Einige Scripte verlassen sich darauf, da&szlig; der
Perl-Interpreter als <filename>/usr/bin/perl</filename>
verf&uuml;gbar ist. Der Perl Port enth&auml;lt das Programm
<filename>use.perl</filename>, mit dem ein passender Satz
symbolischer Links f&uuml;r diese Scripte erzeugt werden kann.
Nach dem Aufruf von <command>use.perl port</command> sollte
alles wie erwartet funktionieren.</para>
<para>Es ist zwar m&ouml;glich, f&uuml;r &release.4x;
geschriebene Programme unter &release.5x; zu nutzen,
allerdings mu&szlig; dazu die Distribution
<filename>compat4x</filename> installiert sein. Damit
<emphasis>k&ouml;nnte</emphasis> es auch m&ouml;glich sein,
alte Ports zu benutzen.</para>
<para>Bei der Aktualisierung eines bestehenden Systems auf Basis
von 4-STABLE, ist es unbedingt notwendig, die alten Dateien in
<filename>/usr/include</filename> zu l&ouml;schen. Im
allgemeinen ist es ausreichend, dieses Verzeichnis vor der
Installation bzw. vor dem
<maketarget>installworld</maketarget> zu entfernen. Wird das
Verzeichnis nicht entfernt, kann es zu Problemen kommen
(speziell mit C++-Programmen), da der Compiler dann einen Mix
aus alten und neuen Headerdateien verwendet.</para>
<para>Es gibt kein <filename>MAKEDEV</filename> mehr, weil es
nicht mehr ben&ouml;tigt wird. &os; &release.5x; benutzt ein
spezielles Dateisystem f&uuml;r Ger&auml;te, das die
entsprechenden Device Nodes bei Bedarf automatisch erzeugt.
Weitere Informationen finden Sie in &man.devfs.5;.</para>
<para>Alle mit &man.newfs.8; erzeugten Dateisysteme werden
standardm&auml;&szlig;ig im Format UFS2 angelegt. Diese gilt
auf allen Plattformen au&szlig;er PC98 auch f&uuml;r
Dateisysteme, die mit &man.sysinstall.8; erzeugt werden. Da
&os; &release.4x; nur UFS1 lesen kann, m&uuml;ssen alle
Dateisysteme, die sowohl mit &release.4x; als auch mit
&release.5x; nutzbar sein sollen, im Format UFS1 erzeugt
werden. Dieser Fall tritt typischerweise auf Systemen auf,
auf denen &release.4x; und &release.5x; installiert und
abwechselnd betrieben werden. In &man.newfs.8; steht dazu die
Option <option>-O1</option> zur Verf&uuml;gung, auch
&man.sysinstall.8; enth&auml;lt eine entsprechende Option.
Bitte beachten Sie, da&szlig; es kein Konvertierungsprogramm
zur Umwandlung von UFS1 nach UFS2 (oder umgekehrt) gibt, nur
die Variante Backup, Formatieren, Restore.</para>
</sect2>
</sect1>
<sect1 id="summary">
<title>Zusammenfassung</title>
<para>&os; &release.current; enth&auml;lt zwar viele interessante
Neuerungen, aber es ist noch nicht f&uuml;r alle Anwender
geeignet. Aus diesem Grund haben wir in diesem Dokument
Informationen &uuml;ber die Abl&auml;ufe bei der
Ver&ouml;ffentlichung einer neuen Version, die interessantesten
Neuerungen in den &release.5x; Versionen und wahrscheinliche
Probleme gegeben. Weiterhin enthielt er einen Ausblick auf die
Zukunft des Entwicklungszweiges 4-STABLE und Informationen
f&uuml;r Anwender, die schon jetzt umsteigen wollen.</para>
</sect1>
</article>
@@ -1,22 +0,0 @@
# $FreeBSD$
# $FreeBSDde: de-docproj/relnotes/de_DE.ISO8859-1/errata/Makefile,v 1.4 2002/03/10 18:26:34 ue Exp $
# $Id: Makefile,v 1.5 2002/03/10 16:39:26 ue Exp $
# basiert auf: 1.5
RELN_ROOT?= ${.CURDIR}/../..
.ifdef NO_LANGCODE_IN_DESTDIR
DESTDIR?= ${DOCDIR}/errata
.else
DESTDIR?= ${DOCDIR}/de_DE.ISO8859-1/errata
.endif
DOC?= article
FORMATS?= html
INSTALL_COMPRESSED?= gz
INSTALL_ONLY_COMPRESSED?=
# SGML content
SRCS+= article.sgml
.include "${RELN_ROOT}/share/mk/doc.relnotes.mk"
.include "${DOC_PREFIX}/share/mk/doc.project.mk"
@@ -1,411 +0,0 @@
<!--
FreeBSD errata document. Unlike some of the other RELNOTESng
files, this file should remain as a single SGML file, so that
the dollar FreeBSD dollar header has a meaningful modification
time. This file is all but useless without a datestamp on it,
so we'll take some extra care to make sure it has one.
(If we didn't do this, then the file with the datestamp might
not be the one that received the last change in the document.)
$FreeBSDde: de-docproj/relnotes/de_DE.ISO8859-1/errata/article.sgml,v 1.39 2003/05/24 13:23:46 ue Exp $
basiert auf: 1.38
-->
<!DOCTYPE ARTICLE PUBLIC "-//FreeBSD//DTD DocBook V4.1-Based Extension//EN" [
<!ENTITY % man PUBLIC "-//FreeBSD//ENTITIES DocBook Manual Page Entities//EN">
%man;
<!ENTITY % authors PUBLIC "-//FreeBSD//ENTITIES DocBook Author Entities//EN">
%authors;
<!ENTITY % translators PUBLIC "-//FreeBSD//ENTITIES DocBook Translator Entities//DE">
%translators;
<!ENTITY % mlists PUBLIC "-//FreeBSD//ENTITIES DocBook Mailing List Entities//DE">
%mlists;
<!ENTITY % release PUBLIC "-//FreeBSD//ENTITIES Release Specification//EN">
%release;
]>
<article lang="de">
<articleinfo>
<title>&os;
<![ %release.type.snapshot [
&release.prev;
]]>
<![ %release.type.release [
&release.current;
]]>
Errata</title>
<authorgroup>
<corpauthor>Das &os; Projekt</corpauthor>
</authorgroup>
<pubdate>$FreeBSD$</pubdate>
<copyright>
<year>2000</year>
<year>2001</year>
<year>2002</year>
<year>2003</year>
<holder role="mailto:[email protected]">The FreeBSD Documentation Project</holder>
</copyright>
<copyright>
<year>2001</year>
<year>2002</year>
<year>2003</year>
<holder role="mailto:[email protected]">The FreeBSD German Documentation Project</holder>
</copyright>
</articleinfo>
<abstract>
<para>Dieses Dokument enth&auml;lt die Errata f&uuml;r &os;
<![ %release.type.current [
&release.prev;,
]]>
<![ %release.type.snapshot [
&release.prev;,
]]>
<![ %release.type.release [
&release.current;,
]]>
also wichtige Informationen, die kurz vor bzw. erst nach
der Ver&ouml;ffentlichung bekannt wurden. Dazu geh&ouml;ren
Ratschl&auml;ge zur Sicherheit sowie &Auml;nderungen in der
Software oder Dokumentation, welche die Stabilit&auml;t und die
Nutzung beeintr&auml;chtigen k&ouml;nnten. Sie sollten immer
die aktuelle Version dieses Dokumentes lesen, bevor sie diese
Version von &os; installieren.</para>
<para>Diese Errata f&uuml;r &os;
<![ %release.type.current [
&release.prev;
]]>
<![ %release.type.snapshot [
&release.prev;
]]>
<![ %release.type.release [
&release.current;
]]>
werden bis zum
Erscheinen von &os; 5.1-RELEASE weiter aktualisiert
werden.</para>
</abstract>
<sect1 id="intro">
<title>Einleitung</title>
<para>Diese Errata enthalten <quote>brandhei&szlig;e</quote>
Informationen &uuml;ber &os;
<![ %release.type.current [
&release.prev;.
]]>
<![ %release.type.snapshot [
&release.prev;.
]]>
<![ %release.type.release [
&release.current;.
]]>
Bevor Sie diese
Version installieren, sollten Sie auf jeden Fall dieses Dokument
lesen, um &uuml;ber Probleme informiert zu werden, die erst nach
der Ver&ouml;ffentlichung entdeckt (und vielleicht auch schon
behoben) wurden.</para>
<para>Die zusammen mit der Ver&ouml;ffentlichung erschienene
Version dieses Dokumentes (zum Beispiel die Version auf der
CDROM) ist per Definition veraltet. Allerdings sind im Internet
aktualisierte Versionen verf&uuml;gbar, die die <quote>aktuellen
Errata</quote> f&uuml;r diese Version sind. Diese Versionen
sind bei <ulink url="http://www.FreeBSD.org/releases/"></ulink>
und allen aktuellen Mirrors dieser Webseite
verf&uuml;gbar.</para>
<para>Die Snapshots von &os; &release.branch; (sowohl die der
Quelltexte als auch die der ausf&uuml;hrbaren Programme)
enthalten ebenfalls die zum Zeitpunkt ihrer
Ver&ouml;ffentlichung aktuelle Version dieses
Dokumentes.</para>
<para>Die Liste der &os; CERT security advisories finden Sie bei
<ulink url="http://www.FreeBSD.org/security/"></ulink> oder
<ulink
url="ftp://ftp.FreeBSD.org/pub/FreeBSD/CERT/"></ulink>.</para>
</sect1>
<sect1 id="security">
<title>Sicherheitshinweise</title>
<para>Ein &uuml;ber das Netzwerk nutzbarer Fehler in
<application>CVS</application> k&ouml;nnte dazu f&uuml;hren,
da&szlig; ein Angreifer beliebige Programme auf dem CVS Server
ausf&uuml;hren kann. Weitere Informationen finden Sie in <ulink
url="ftp://ftp.FreeBSD.org/pub/FreeBSD/CERT/advisories/FreeBSD-SA-03:01.cvs.asc">FreeBSD-SA-03:01</ulink>.</para>
<para>Durch Auswertung der Antwortzeiten von
<application>OpenSSL</application> w&auml;re es einem Angreifer
mit sehr viel Rechenleistung m&ouml;glich gewesen, unter
bestimmten Umst&auml;nden den Klartext der &uuml;bermittelten
Daten zu erhalten. Dieser Fehler wurde in &os;
&release.current; durch die neue
<application>OpenSSL</application> Version 0.9.7 behoben. Auf
den f&uuml;r Sicherheitsprobleme unterst&uuml;tzten
Entwicklungszweigen wurde der Fehler durch die neue
<application>OpenSSL</application> Version 0.9.6i behoben.
Weitere Informationen finden Sie in <ulink
url="ftp://ftp.FreeBSD.org/pub/FreeBSD/CERT/advisories/FreeBSD-SA-03:02.openssl.asc">FreeBSD-SA-03:02</ulink></para>
<para>Es ist theoretisch m&ouml;glich, da&szlig; ein Angreifer den
geheimen Schl&uuml;ssel ermittelt, der von der Erweiterung
<quote>syncookies</quote> genutzt wird. Dadurch sinkt deren
Effektivit&auml;t beim Schutz vor TCP SYN Flood
Denial-of-Service Angriffen. Hinweise, wie sie das Problem
umgehen k&ouml;nnen und weitere Informationen finden Sie in
<ulink
url="ftp://ftp.FreeBSD.org/pub/FreeBSD/CERT/advisories/FreeBSD-SA-03:03.syncookies.asc">FreeBSD-SA-03:03</ulink>.</para>
<para>Durch diverse Puffer-&Uuml;berl&auml;ufe in den von
<application>sendmail</application> genutzten Routinen zum
Parsen des Headers war es einen Angreifer m&ouml;glich, eine
speziell konstruierte Nachricht an &man.sendmail.8; zu senden
und so beliebige Programme ausf&uuml;hren zu lassen. Diese
Programme verf&uuml;gten &uuml;ber die Rechte des Benutzers,
unter dessen Kennung &man.sendmail.8; lief, also typischerweise
<username>root</username>. Weitere Informationen und Verweise
auf Patches finden Sie in <ulink
url="ftp://ftp.FreeBSD.org/pub/FreeBSD/CERT/advisories/FreeBSD-SA-03:04.sendmail.asc">FreeBSD-SA-03:04</ulink>
und <ulink
url="ftp://ftp.FreeBSD.org/pub/FreeBSD/CERT/advisories/FreeBSD-SA-03:07.sendmail.asc">FreeBSD-SA-03:07</ulink>.</para>
<para>Durch einen Puffer-&Uuml;berlauf im XDR Kodierer/Dekodierer
war es einem Angreifer m&ouml;glich, den Service zum Absturz zu
bringen. Informationen, wie Sie den Fehler beheben, finden Sie
in <ulink
url="ftp://ftp.FreeBSD.org/pub/FreeBSD/CERT/advisories/FreeBSD-SA-03:05.xdr.asc">FreeBSD-SA-03:05</ulink>.</para>
<para><application>OpenSSL</application> enth&auml;lt zwei
Schwachstellen, die erst vor kurzer Zeit bekannt gemacht wurden.
Informationen, wie Sie die Probleme umgehen k&ouml;nnen und
weitere Informationen finden Sie in <ulink
url="ftp://ftp.FreeBSD.org/pub/FreeBSD/CERT/advisories/FreeBSD-SA-03:06.openssl.asc">FreeBSD-SA-03:06</ulink>.</para>
</sect1>
<sect1 id="late-news">
<title>Aktuelle Informationen</title>
<bridgehead renderas="sect3">GEOM</bridgehead>
<para>Die auf &man.geom.4; basierenden Routinen des Kernel zur
Partitionierung erlauben es nicht, eine aktive Partition zu
&uuml;berschreiben. Mit anderen Worten, es ist in der Regel
nicht m&ouml;glich, den Bootsektor einer Festplatte mit
<command>disklabel -B</command> zu aktualisieren, da die
Partition <literal>a</literal> auch den Bereich enth&auml;lt, in
dem die Bootsektoren gespeichert sind. Um dieses Problem zu
umgehen, sollten Sie von einer anderen Platte, einer CD oder der
Fixit-Diskette booten.</para>
<bridgehead renderas="sect3">&man.dump.8;</bridgehead>
<para>Werden Festplatten und &auml;hnliche Medien mit einer
Blockgr&ouml;&szlig;e von mehr als 512 Byte benutzt (zum
Beispiel mit &man.geom.4; verschl&uuml;sselte Partitionen),
behandelt &man.dump.8; die gr&ouml;&szlig;eren Sektoren nicht
korrekt und kann daher das Dateisystem nicht dumpen. Eine
M&ouml;glichkeit, das Problem zu umgehen, ist die Erzeugung einer
<quote>rohen</quote> Kopie des gesamten Dateisystems, die dann
als Eingabedatei f&uuml;r &man.dump.8; dient. Es ist
m&ouml;glich, ein komplettes Dateisystem in einer normalen Datei
zu speichern:</para>
<screen>&prompt.root; <userinput>dd if=/dev/ad0s1d.bde of=/junk/ad0.dd bs=1m</userinput>
&prompt.root; <userinput>dump 0f - /junk/ad0.dd | ...</userinput></screen>
<para>Eine etwas einfachere L&ouml;sung ist, &man.tar.1; oder
&man.cpio.1; zur Erzeugung des Backups zu verwende.</para>
<bridgehead renderas="sect3">&man.mly.4;</bridgehead>
<para>Es gibt Berichte, da&szlig; sich Systeme bei der
Installation von &os; 5.0 Snapshots auf RAIDs an
&man.mly.4;-kompatiblen Controller aufgeh&auml;ngt haben, obwohl
die Systeme problemlos mit 4.7-RELEASE zusammenarbeiten. Dieser
Fehler wurde in &os; &release.current; bereits behoben.</para>
<bridgehead renderas="sect3">NETNCP/Unterst&uuml;tzung des
Dateisystems</bridgehead>
<para>NETNCP und nwfs sind offenbar noch nicht an KSE
angepa&szlig;t worden und funktionieren daher nicht. Dieser
Fehler wurde in &os; &release.current; bereits behoben.</para>
<bridgehead renderas="sect3">&man.iir.4; Controller</bridgehead>
<para>Bei der Installation scheinen &man.iir.4;-Controller korrekt
erkannt zu werden, allerdings finden Sie keine der
angeschlossenen Festplatten.</para>
<bridgehead renderas="sect3">Timing-Probleme in
&man.truss.1;</bridgehead>
<para>Es scheint ein Timing-Problem beim Start des Debuggings mit
&man.truss.1; zu geben, durch das &man.truss.1; manchmal nicht
in der Lage ist, eine Verbindung zu einem Proze&szlig;
aufzubauen, bevor er gestartet wird. In diesem Fall meldet
&man.truss.1;, da&szlig; es die &man.procfs.5; Node f&uuml;r den
zu debuggenden Proze&szlig; nicht &ouml;ffnen kann. Es scheint
einen weiteren Fehler zu geben, durch den &man.truss.1; sich
aufh&auml;ngt, wenn &man.execve.2; den Wert
<literal>ENOENT</literal> zur&uuml;ckgibt. Ein weiteres
Timing-Problem f&uuml;hrt dazu, da&szlig; &man.truss.1; beim
Start manchmal <errorname>PIOCWAIT: Input/output
error</errorname> meldet. Es existieren zwar Korrekturen
f&uuml;r diese Probleme, da diese aber zu sehr in die Routinen
zur Ausf&uuml;hrung von Prozessen eingreifen, werden sie erst
nach dem Erscheinen von 5.0 ins System aufgenommen.</para>
<bridgehead renderas="sect3">Partitionierung von Festplatten durch
das Installationsprogramm</bridgehead>
<para>Es gibt einige Meldungen &uuml;ber Fehler bei der
Partitionierung von Festplatten mit &man.sysinstall.8;. Eines
der Probleme ist, da&szlig; &man.sysinstall.8; den freien Platz
auf einer Festplatten nicht neu berechnen kann, nachdem der Typ
einer FDISK-Partition ge&auml;ndert wurde.</para>
<bridgehead renderas="sect3">Veraltete Dokumentation</bridgehead>
<para>In einigen F&auml;llen wurde die Dokumentation (wie zum
Beispiel die FAQ und das Handbuch) nicht aktualisiert und geht
nicht auf die Neuerungen in &os; &release.prev; ein. Zum
Beispiel fehlt noch Dokumentation zu &man.gbde.8; und den neuen
<quote>fast IPsec</quote> Routinen.</para>
<bridgehead renderas="sect3">SMB Dateisystem</bridgehead>
<para>Ab und zu kommt beim Versuch, die Verbindung zu einem SMBFS
Share zu trennen, die Meldung <errorname>Device
busy</errorname>, obwohl das Share nicht benutzt wird. Die
einzige L&ouml;sung f&uuml;r dieses Problem ist, die Operation
so lange zu wiederholen, bis die Verbindung getrennt wird.
Dieser Fehler wurde in &release.current; bereits behoben.</para>
<para>Der Versuch, die Trennung der Verbindung zu einem SMBFS
Share mit <command>umount -f</command> zu erzwingen, kann zu
einer Kernel Panic f&uuml;hren. Dieser Fehler wurde in
&release.current; bereits behoben.</para>
<bridgehead renderas="sect3">&man.fstat.2;</bridgehead>
<para>Wird &man.fstat.2; auf einen Socket angewendet, f&uuml;r den
bereits eine Verbindung besteht, sollte es die Anzahl der zum
Lesen verf&uuml;gbaren Zeichen in dem Feld
<varname>st_size</varname> der Struktur <varname>struct
stat</varname> zur&uuml;ckgeben. Leider wird bei TCP Sockets immer ein
<varname>st_size</varname> von <literal>0</literal> gemeldet.
Dieser Fehler wurde in &release.current; bereits behoben.</para>
<bridgehead renderas="sect3">Kernel Event Queues</bridgehead>
<para>Der zu &man.kqueue.2; geh&ouml;rende Filter
<literal>EVFILT_READ</literal> meldet f&auml;lschlicherweise
immer, da&szlig; an einem TCP Socket <literal>0</literal>
Zeichen zum Lesen bereitstehen, auch wenn in Wirklichkeit
Zeichen zum Lesen verf&uuml;gbar sind. Die bei
<literal>EVFILT_READ</literal> verf&uuml;gbare Option
<literal>NOTE_LOWAT</literal> arbeitet bei TCP Sockets ebenfalls
fehlerhaft. Dieser Fehler wurde in &release.current; bereits
behoben.</para>
<bridgehead renderas="sect3">POSIX Named Semaphores</bridgehead>
<para>Eine der Neuerungen in &os; &release.prev; ist die
Unterst&uuml;tzung f&uuml;r Named Semaphores nach POSIX. Die
Routinen enthalten leider einen Fehler, durch den sich
&man.sem.open.3; falsch verhalten kann, wenn eine Semaphore von
einem Proze&szlig; mehrfach ge&ouml;ffnet wird und durch den
&man.sem.close.3; zum Absturz des Programms f&uuml;hren kann.
Dieser Fehler wurde in &release.current; bereits behoben.</para>
<bridgehead renderas="sect3">Zugriffsrechte f&uuml;r
<filename>/dev/tty</filename></bridgehead>
<para>&os; &release.prev; enth&auml;lt einen kleinen Fehler im
Bereich der Berechtigungen von <filename>/dev/tty</filename>.
Dieser Fehler tritt auf, wenn sich ein Benutzer einloggt, der
weder <username>root</username> noch Mitglied der Gruppe
<groupname>tty</groupname> ist. Wechselt dieser Benutzer nun mit
&man.su.1; zu einer anderen Benutzerkennung, die ebenfalls
weder <username>root</username> noch Mitglied der Gruppe
<groupname>tty</groupname> ist, kann er &man.ssh.1; nicht
nutzen, da es <filename>/dev/tty</filename> nicht &ouml;ffnen
kann. Dieser Fehler wurde in &release.current; bereits
behoben.</para>
<bridgehead renderas="sect3">&man.growfs.8;</bridgehead>
<para>&man.growfs.8; funktioniert auf &man.vinum.4; Partitionen
nicht mehr, da auf ihnen kein Disklabel mehr emuliert wird und
&man.growfs.8; das Disklabel analysieren will. Das Problem
betrifft wahrscheinlich auch alle anderen Massenspeicher,
f&uuml;r die &man.geom.4; benutzt wird.</para>
<bridgehead renderas="sect3">IPFW</bridgehead>
<para>&man.ipfw.4; <literal>skipto</literal> Regeln funktionieren
nicht, wenn gleichzeitig das Schl&uuml;sselwort
<literal>log</literal> verwendet wird. Auch die
<literal>uid</literal> funktionieren nicht richtig. Diese Fehler
wurden in &release.current; bereits behoben.</para>
<bridgehead renderas="sect3"> &man.adduser.8; und
Pa&szlig;w&ouml;rter</bridgehead>
<para>&man.adduser.8; kann das Pa&szlig;wort eines neu angelegten
Benutzers nicht setzen, wenn dieses Sonderzeichen der Shell
enth&auml;lt. Dieser Fehler wurde in &release.current; bereits
behoben.</para>
<bridgehead renderas="sect3">&man.xl.4;</bridgehead>
<para>Der Treiber &man.xl.4; enth&auml;lt einen Fehler, der zu
einem Absturz des Systems mit der Meldung <errorname>kernel
panic</errorname> und anderen Problemen f&uuml;hren kann, wenn
man versucht, ein Netzwerk-Interface zu konfigurieren. Dieser
Fehler wurde in &release.current; bereits behoben.</para>
<bridgehead renderas="sect3">ISC DHCP</bridgehead>
<para><application>ISC DHCP</application> steht jetzt in der
Version 3.0.1rc11 zur Verf&uuml;gung. Diese Aktualisierung
erfolgte bereits in &os; &release.prev;, wurde aber nicht in
den Release Notes dokumentiert.</para>
<bridgehead renderas="sect3">Kompatibilit&auml;tsprobleme bei
&man.amd.8;</bridgehead>
<para>Der nicht-blockierende Teil der RPC-Routinen in
&release.prev; ist fehlerhaft. Einer der auff&auml;lligsten
Effekte dieser Fehler ist, da&szlig; Anwender von &man.amd.8;
nicht in der Lage sind, Dateisysteme von einem &release.prev;
Server zu mounten. Dieser Fehler wurde in &release.current;
bereits behoben.</para>
<bridgehead renderas="sect3">nsswitch</bridgehead>
<para>Im Eintrag f&uuml;r <application>nsswitch</application> in
den Release Notes wurde ein falscher Name f&uuml;r die bisher
genutzte Konfigurationsdatei genannt. Die bisher genutzte
Konfigurationsdatei ist
<filename>/etc/host.conf</filename>.</para>
<bridgehead renderas="sect3">Mailman</bridgehead>
<para>Die &os; Mailinglisten werden jetzt mit Mailman und nicht
mehr mit Majordomo verwaltet. Weitere Informationen finden sie
auf der <ulink
url="http://www.FreeBSD.org/mailman/listinfo/">FreeBSD Mailman
Info Page</ulink>.</para>
</sect1>
</article>
@@ -1,14 +0,0 @@
# $FreeBSD$
# $FreeBSDde: de-docproj/relnotes/de_DE.ISO8859-1/hardware/Makefile,v 1.4 2002/11/09 18:00:42 ue Exp $
# basiert auf: 1.5
RELN_ROOT?= ${.CURDIR}/../..
SUBDIR = alpha
SUBDIR+= ia64
SUBDIR+= i386
SUBDIR+= pc98
SUBDIR+= sparc64
.include "${RELN_ROOT}/share/mk/doc.relnotes.mk"
.include "${DOC_PREFIX}/share/mk/doc.project.mk"
@@ -1,11 +0,0 @@
# $FreeBSD$
# $FreeBSDde: de-docproj/relnotes/de_DE.ISO8859-1/hardware/Makefile.inc,v 1.2 2002/03/10 18:41:33 ue Exp $
# $Id: Makefile.inc,v 1.5 2002/03/10 15:37:14 ue Exp $
# basiert auf: 1.2
.ifdef NO_LANGCODE_IN_DESTDIR
DESTDIR?= ${DOCDIR}/hardware/${.CURDIR:T}
.else
DESTDIR?= ${DOCDIR}/de_DE.ISO8859-1/hardware/${.CURDIR:T}
.endif
@@ -1,23 +0,0 @@
# $FreeBSD$
# $FreeBSDde: de-docproj/relnotes/de_DE.ISO8859-1/hardware/alpha/Makefile,v 1.3 2002/03/10 18:41:33 ue Exp $
# $Id: Makefile,v 1.6 2002/03/10 15:37:14 ue Exp $
# basiert auf: 1.6
RELN_ROOT?= ${.CURDIR}/../../..
DOC?= article
FORMATS?= html
INSTALL_COMPRESSED?= gz
INSTALL_ONLY_COMPRESSED?=
JADEFLAGS+= -V %generate-article-toc%
# SGML content
SRCS+= article.sgml
SRCS+= proc-alpha.sgml
SRCS+= ../common/hw.ent
SRCS+= ../common/artheader.sgml
SRCS+= ../common/dev.sgml
.include "${RELN_ROOT}/share/mk/doc.relnotes.mk"
.include "${DOC_PREFIX}/share/mk/doc.project.mk"
@@ -1,32 +0,0 @@
<!--
$FreeBSD$
$FreeBSDde: de-docproj/relnotes/de_DE.ISO8859-1/hardware/alpha/article.sgml,v 1.5 2002/10/12 18:02:21 ue Exp $
basiert auf: 1.4
-->
<!DOCTYPE article PUBLIC "-//FreeBSD//DTD DocBook V4.1-Based Extension//EN" [
<!ENTITY % man PUBLIC "-//FreeBSD//ENTITIES DocBook Manual Page Entities//EN">
%man;
<!ENTITY % authors PUBLIC "-//FreeBSD//ENTITIES DocBook Author Entities//EN">
%authors;
<!ENTITY % translators PUBLIC "-//FreeBSD//ENTITIES DocBook Translator Entities//DE">
%translators;
<!ENTITY % mlists PUBLIC "-//FreeBSD//ENTITIES DocBook Mailing List Entities//DE">
%mlists;
<!ENTITY % release PUBLIC "-//FreeBSD//ENTITIES Release Specification//EN">
%release;
<!ENTITY % sections SYSTEM "../common/hw.ent"> %sections;
<!-- Architecture-specific customization -->
<!ENTITY arch "alpha">
<!ENTITY arch.print "Alpha/AXP">
]>
<article lang="de">
&artheader;
&sect.intro;
&sect.proc.alpha;
&sect.dev;
</article>
File diff suppressed because it is too large. Load diff
@@ -1,33 +0,0 @@
<!--
$FreeBSD$
$FreeBSDde: de-docproj/relnotes/de_DE.ISO8859-1/hardware/common/artheader.sgml,v 1.4 2003/01/09 12:14:47 ue Exp $
basiert auf: 1.4
-->
<articleinfo>
<title>&os;/&arch; &release.current; Hardware Information</title>
<corpauthor>The FreeBSD German Documentation Project</corpauthor>
<copyright>
<year>2000</year>
<year>2001</year>
<year>2002</year>
<year>2003</year>
<holder role="mailto:[email protected]">The FreeBSD Documentation
Project</holder>
</copyright>
<copyright>
<year>2002</year>
<year>2003</year>
<holder role="mailto:[email protected]">The
FreeBSD German Documentation Project</holder>
</copyright>
</articleinfo>
File diff suppressed because it is too large. Load diff
@@ -1,20 +0,0 @@
<!-- -*- sgml -*- -->
<!--
$FreeBSD$
$FreeBSDde: de-docproj/relnotes/de_DE.ISO8859-1/hardware/common/hw.ent,v 1.4 2002/07/08 18:42:56 ue Exp $
basiert auf: 1.4
-->
<!-- Text constants which probably don't need to be changed.-->
<!-- Files to be included -->
<!ENTITY artheader SYSTEM "../common/artheader.sgml">
<!ENTITY sect.intro SYSTEM "../common/intro.sgml">
<!ENTITY sect.proc.alpha SYSTEM "../alpha/proc-alpha.sgml">
<!ENTITY sect.proc.i386 SYSTEM "../i386/proc-i386.sgml">
<!ENTITY sect.proc.ia64 SYSTEM "../ia64/proc-ia64.sgml">
<!ENTITY sect.proc.pc98 SYSTEM "../pc98/proc-pc98.sgml">
<!ENTITY sect.proc.sparc64 SYSTEM "../sparc64/proc-sparc64.sgml">
<!ENTITY sect.dev SYSTEM "../common/dev.sgml">
@@ -1,30 +0,0 @@
<!--
$FreeBSD$
$FreeBSDde: de-docproj/relnotes/de_DE.ISO8859-1/hardware/common/intro.sgml,v 1.6 2003/05/24 21:35:15 ue Exp $
basiert auf: 1.6
-->
<sect1 id="intro">
<title>Einf&uuml;hrung</title>
<para>Dieses Dokument enth&auml;lt die Liste der unterst&uuml;tzen
Ger&auml;te f&uuml;r &os; &release.current; auf &arch.print;
Systemen (meistens einfach &os;/&arch; &release.current; genannt).
Hier finden Sie zum einen alle die Ger&auml;te, von denen wir
wissen, da&szlig; Sie funktionieren; zum anderen finden Sie hier
Hinweise, wie Sie den Kernel anpassen k&ouml;nnen, wenn Sie ein
bisher noch nicht unterst&uuml;tztes Ger&auml;t verwenden
wollen.</para>
<note>
<para>Dieses Dokument enth&auml;lt Informationen f&uuml;r
&arch.print; Systeme. Andere Versionen dieses Dokumentes, die
f&uuml;r andere Plattformen gedacht sind, werden in vielen
Punkten von diesem Dokument abweichen.</para>
</note>
<para arch="ia64">Weitergehende Informationen &uuml;ber &os;/&arch;
finden Sie auf den Webseiten des <ulink
url="http://www.FreeBSD.org/platforms/ia64/index.html">&os;/&arch;
Project</ulink>.</para>
</sect1>
@@ -1,23 +0,0 @@
# $FreeBSD$
# $FreeBSDde: de-docproj/relnotes/de_DE.ISO8859-1/hardware/i386/Makefile,v 1.2 2002/03/10 18:41:36 ue Exp $
# $Id: Makefile,v 1.3 2002/03/10 15:37:15 ue Exp $
# basiert auf: 1.5
RELN_ROOT?= ${.CURDIR}/../../..
DOC?= article
FORMATS?= html
INSTALL_COMPRESSED?= gz
INSTALL_ONLY_COMPRESSED?=
JADEFLAGS+= -V %generate-article-toc%
# SGML content
SRCS+= article.sgml
SRCS+= proc-i386.sgml
SRCS+= ../common/hw.ent
SRCS+= ../common/artheader.sgml
SRCS+= ../common/dev.sgml
.include "${RELN_ROOT}/share/mk/doc.relnotes.mk"
.include "${DOC_PREFIX}/share/mk/doc.project.mk"
@@ -1,30 +0,0 @@
<!--
$FreeBSD$
$FreeBSDde: de-docproj/relnotes/de_DE.ISO8859-1/hardware/i386/article.sgml,v 1.5 2002/12/07 21:09:09 ue Exp $
basiert auf: 1.4
-->
<!DOCTYPE article PUBLIC "-//FreeBSD//DTD DocBook V4.1-Based Extension//EN" [
<!ENTITY % man PUBLIC "-//FreeBSD//ENTITIES DocBook Manual Page Entities//EN">
%man;
<!ENTITY % authors PUBLIC "-//FreeBSD//ENTITIES DocBook Author Entities//EN">
%authors;
<!ENTITY % mlists PUBLIC "-//FreeBSD//ENTITIES DocBook Mailing List Entities//DE">
%mlists;
<!ENTITY % release PUBLIC "-//FreeBSD//ENTITIES Release Specification//EN">
%release;
<!ENTITY % sections SYSTEM "../common/hw.ent"> %sections;
<!-- Architecture-specific customization -->
<!ENTITY arch "i386">
<!ENTITY arch.print "i386">
]>
<article lang="de">
&artheader;
&sect.intro;
&sect.proc.i386;
&sect.dev;
</article>
@@ -1,117 +0,0 @@
<!--
$FreeBSD$
$FreeBSDde: de-docproj/relnotes/de_DE.ISO8859-1/hardware/i386/proc-i386.sgml,v 1.13 2003/05/24 21:49:22 ue Exp $
basiert auf: 1.11
-->
<sect1 id="proc">
<title>Unterst&uuml;tzte Prozessoren und Mainboards</title>
<para>&os;/i386 kann auf vielen <quote>IBM PC kompatiblen</quote>
Maschinen benutzt werden. Es ist nicht m&ouml;glich, hier alle
unterst&uuml;tzten Kombinationen aufzuf&uuml;hren, die von &os;
unterst&uuml;tzt werden, da es viel zu viele M&ouml;glichkeiten
gibt. Dennoch ist es m&ouml;glich, einige allgemeine Hinweise zu
geben.</para>
<para>Fast alle i386-kompatiblen Prozessoren werden
unterst&uuml;tzt. Alle Prozessoren von Intel ab dem 80386 werden
unterst&uuml;tzt, also 80386, 80486, Pentium, Pentium Pro, Pentium
II, Pentium III, Pentium 4, und die Modellvarianten dieser
Prozessoren, wie der Xeon und Celeron. Der 80386sx wird zwar
unterst&uuml;tzt, wir raten aber dringend von der Verwendung
dieser CPU ab). Alle i386-kompatiblen Prozessoren von AMD werden
unterst&uuml;tzt, dazu geh&ouml;ren Am486, Am5x86, K5, K6 (alle
Varianten), Athlon (einschlie&szlig;lich Athlon-MP, Athlon-XP,
Athlon-4 und Athlon Thunderbird) und Duron. Der integrierte
Prozessor AMD &Eacute;lan SC520 wird unterst&uuml;tzt. Der
Transmeta Crusoe wird erkannt und unterst&uuml;tzt, das gleiche
gilt f&uuml;r die i386-kompatiblen Prozessoren von Cyrix und
NexGen.</para>
<para>F&uuml;r diese Plattform gibt es ganz Reihe verschiedener
Mainboards. F&uuml;r Mainboards mit ISA, VLB, EISA, AGP, und PCI
Steckpl&auml;tzen ist die Unterst&uuml;tzung ausgezeichnet. Der
MCA (<quote>MicroChannel</quote>) Bus, der in den IBM PS/2
Computern zu finden ist, wird nur teilweise
unterst&uuml;tzt.</para>
<para>Symmetrische Multi-Prozessor (SMP) Systeme werden im
allgemeinen von &os; unterst&uuml;tzt. Allerdings kommt es in
einigen F&auml;llen zu Problemen, weil das BIOS oder das Mainboard
fehlerhaft sind. Ein Blick in der Archive der Mailingliste &a.smp;
kann hier weiterhelfen.</para>
<para>&os; nutzt HyperThreading (HTT) auf Intel CPUs, wenn die CPU
dies unterst&uuml;tzt. Wenn in der Konfigurationsdatei f&uuml;r
den angepa&szlig;ten Kernel die Zeile
<literal>options&nbsp;SMP</literal> angegeben ist, erkennt und
aktiviert der Kernel die zus&auml;tzlichen logischen Prozessoren.
Der Standard-Scheduler in &os; behandelt diese logischen
Prozessoren genau so wie zus&auml;tzliche physikalische
Prozessoren. Mit anderen Worten, der Scheduler
ber&uuml;cksichtigt bei seinen Entscheidungen nicht, da&szlig;
sich die logischen Prozessoren auf einer CPU bestimmte Ressourcen
teilen. Da dieses sehr einfache Vorgehen zu schlechter
Performance f&uuml;hren kann, werden die logischen CPUs beim
Systemstart standardm&auml;&szlig;ig deaktiviert. Sie k&ouml;nnen
mit der sysctl-Variable
<varname>machdep.hlt_logical_cpus</varname> aktiviert werden. Es
ist au&szlig;erdem m&ouml;glich, jede CPU anzuhalten, die sich im
Idle-Loop befindet, dazu dient die sysctl-Variable
<varname>machdep.hlt_cpus</varname>. Weitere Informationen finden
Sie in &man.smp.4;.</para>
<para>Unterst&uuml;tzt die CPU die Physical Address Extension (PAE),
kann &os; diese Erweiterung nutzen, wenn in der
Konfigurationsdatei f&uuml;r den angepa&szlig;ten Kernel die
Option <literal>PAE</literal> angegeben wird. In diesem Fall
wird der Speicher oberhalb von 4 GByte erkannt und steht f&uuml;r
die Nutzung durch das System zur Verf&uuml;gung. Allerdings sind
nicht alle Teile von &os; und alle Treiber kompatibel zu
<literal>PAE</literal>. Weitere Informationen finden Sie in
&man.pae.4;.</para>
<para>&os; l&auml;uft normalerweise auf Laptops mit i386-Prozessoren,
allerdings gibt es keinen einheitlichen Standard f&uuml;r die
Unterst&uuml;tzung bestimmter Ausstattungsmerkmale wie Audio,
Grafik, Power Management und PCCARD Steckpl&auml;tzen. Diese
Merkmale sind von Maschine zu Maschine verschiedenen. In vielen
F&auml;llen ist es sogar notwendig, &os; speziell anzupassen, um
Fehlern in der Hardware und anderen Merkw&uuml;rdigkeiten
auszuweichen. Im Zweifelsfalle kann ein Blick in der Archive der
Mailingliste &a.mobile; weiterhelfen.</para>
<para>Die meisten aktuellen Laptops (und auch f&uuml;r den
Schreibtisch vorgesehene Ger&auml;te) unterst&uuml;tzen den
Advanced Configuration and Power Management (ACPI) Standard. Wie
in &man.acpi.4; beschrieben, nutzt &os; die von Intel
ver&ouml;ffentlichte Referenz-Implementierung &quot;ACPI Component
Architecture&quot;, um ACPI unterst&uuml;tzen zu k&ouml;nnen.
Leider kann es durch die Benutzung von ACPI auf einigen Systemen
zu Stabilit&auml;tsproblemen kommen, die es notwendig machen, den
ACPI-Treiber abzuschalten. Dieser wird normalerweise beim
Systemstart als Kernel-Modul geladen. Um ihn abzuschalten,
m&uuml;ssen Sie die folgende Zeile in die Datei
<filename>/boot/device.hints</filename> eintragen:</para>
<programlisting>hint.acpi.0.disabled="1"</programlisting>
<para>Wenn Sie ein Problem im Zusammenhang mit ACPI l&ouml;sen
wollen, kann es helfen, Teile der ACPI-Funktionen abzuschalten.
Informationen, welche der Einstellungen im Bootloader daf&uuml;r
verantwortlich sind, finden Sie in der Onlinehilfe zu
&man.acpi.4;</para>
<para>ACPI braucht zur korrekten Funktion die Differentiated System
Descriptor Table (DSDT), die vom BIOS bereitgestellt wird. Einige
Systemen haben fehlerhafte oder unvollst&auml;ndige DSDTs, daher
kann ACPI auf diesen Maschinen nicht korrekt funktionieren.
Korrigierte DSDTs f&uuml;r einige Maschinen sind im Bereich <ulink
url="http://acpi.sourceforge.net/dsdt/index.php">DSDT</ulink> der
Webseiten des <ulink
url="http://acpi.sourceforge.net/">ACPI4Linux</ulink> Projekts
verf&uuml;gbar. &os; kann diese DSDTs an Stelle der vom BIOS
bereitgestellten DSDT nutzen, weitere Informationen dazu finden
Sie in der Onlinehilfe zu &man.acpi.4;</para>
</sect1>
@@ -1,23 +0,0 @@
# $FreeBSD$
# $FreeBSDde: de-docproj/relnotes/de_DE.ISO8859-1/hardware/ia64/Makefile,v 1.2 2002/03/10 18:41:37 ue Exp $
# $Id: Makefile,v 1.2 2002/03/10 15:37:16 ue Exp $
# basiert auf: 1.2
RELN_ROOT?= ${.CURDIR}/../../..
DOC?= article
FORMATS?= html
INSTALL_COMPRESSED?= gz
INSTALL_ONLY_COMPRESSED?=
JADEFLAGS+= -V %generate-article-toc%
# SGML content
SRCS+= article.sgml
# SRCS+= proc-ia64.sgml
SRCS+= ../common/hw.ent
SRCS+= ../common/artheader.sgml
SRCS+= ../common/dev.sgml
.include "${RELN_ROOT}/share/mk/doc.relnotes.mk"
.include "${DOC_PREFIX}/share/mk/doc.project.mk"
@@ -1,40 +0,0 @@
<!--
$FreeBSD$
$FreeBSDde: de-docproj/relnotes/de_DE.ISO8859-1/hardware/ia64/article.sgml,v 1.6 2003/05/24 21:52:46 ue Exp $
basiert auf: 1.3
-->
<!DOCTYPE article PUBLIC "-//FreeBSD//DTD DocBook V4.1-Based Extension//EN" [
<!ENTITY % man PUBLIC "-//FreeBSD//ENTITIES DocBook Manual Page Entities//EN">
%man;
<!ENTITY % authors PUBLIC "-//FreeBSD//ENTITIES DocBook Author Entities//EN">
%authors;
<!ENTITY % mlists PUBLIC "-//FreeBSD//ENTITIES DocBook Mailing List Entities//DE">
%mlists;
<!ENTITY % release PUBLIC "-//FreeBSD//ENTITIES Release Specification//EN">
%release;
<!ENTITY % sections SYSTEM "../common/hw.ent"> %sections;
<!-- Architecture-specific customization -->
<!ENTITY arch "ia64">
<!ENTITY arch.print "IA-64">
]>
<article lang="de">
&artheader;
<abstract>
<para>Dieses Dokument befindet sich noch in einem sehr fr&uuml;hen
Stadium. Die Angaben sind unvollst&auml;ndig und m&uuml;ssen
dringend erweitert werden. Wenn Sie Informationen &uuml;ber
&os; &arch.print; Prozessoren, Mainboards und andere Ger&auml;te
haben, die mit &os; funktionieren, senden Sie sie bitte an die
&a.ia64; Mailingliste.</para>
</abstract>
&sect.intro;
&sect.proc.ia64;
&sect.dev;
</article>
@@ -1,108 +0,0 @@
<!--
$FreeBSD$
$FreeBSDde: de-docproj/relnotes/de_DE.ISO8859-1/hardware/ia64/proc-ia64.sgml,v 1.5 2003/05/24 22:16:24 ue Exp $
basiert auf: 1.7
-->
<sect1 id="proc-ia64">
<title>Unterst&uuml;tzte Prozessoren und Mainboards</title>
<para>Zur Zeit werden die <ulink
url="http://www.intel.com/design/itanium/itanium/index.htm">Itanium</ulink>
und <ulink
url="http://www.intel.com/design/itanium2/index.htm">Itanium
2</ulink> Prozessoren unterst&uuml;tzt. Die folgenden
Mainboard-Chips&auml;tze werden unterst&uuml;tzt:</para>
<itemizedlist>
<listitem>
<para>HP zx1 (nur auf dem Entwicklungszweig, weitere
Informationen finden Sie im <ulink
url="http://perforce.freebsd.org/">Perforce
repository</ulink>) </para>
</listitem>
<listitem>
<para>HP i2000</para>
</listitem>
<listitem>
<para>Intel 460GX</para>
</listitem>
<listitem>
<para>Intel E8870</para>
</listitem>
</itemizedlist>
<para>Zur Zeit wird sowohl an Ein-Prozessor (UP) als auch an
Mehr-Prozessor Systemen gearbeitet. Letztere sind zur Zeit
weniger stabil. Zur Zeit konzentriert sich die Arbeit auf
Verbesserungen f&uuml;r UP-Systeme, um deren Stabilit&auml;t zu
erh&ouml;hen.</para>
<sect2>
<title>&Uuml;bersicht &uuml;ber die unterst&uuml;tzten
Systeme</title>
<para>Dieser Abschnitt enth&auml;lt zus&auml;tzliche Informationen
dar&uuml;ber, welche Ger&auml;te von &os;/&arch;
unterst&uuml;tzt werden und welche nicht.</para>
<para>Mit Ausnahme der in die PC-Chips&auml;tze integrierten
Varianten sollten alle &man.ata.4; Kontroller sofort
funktionieren. Wir gehen davon aus, da&szlig; fr&uuml;her oder
sp&auml;ter alle &arch;-kompatiblen Kontroller vollst&auml;ndig
unterst&uuml;tzt werden. In den folgenden Abschnitten finden
Sie genauere Informationen &uuml;ber die verschiedenen
Festplattencontroller und ihren aktuellen Status.</para>
<para>Ganz generell sollten serielle Schnittstellen nach
<quote>PC-Standard</quote> auf Intel-Hardware funktionieren,
w&auml;hrend sie auf PA-Hardware nicht funktionieren werden.
Der Grund ist, da&szlig; auf HP-Maschinen alle Ger&auml;te in
den Speicher eingeblendet werden. Mit Ausnahme der von PCI
verlangten VGA-Unterst&uuml;tzung gibt es
<emphasis>keinerlei</emphasis> Unterst&uuml;tzung f&uuml;r
ISA-Ger&auml;te.</para>
<para>Au&szlig;er den schon genannten seriellen Schnittstellen mit
&man.sio.4;-Treiber gibt es eine Reihe weiterer Ger&auml;ten,
von denen wir wissen, da&szlig; sie auf Nicht-Intel Systemen
nicht funktionieren k&ouml;nnen, weil sie sich auf
ISA-spezifische Begebenheiten verlassen, die nicht mehr
zutreffen. Diese Ger&auml;te sollten jedoch auf Intel-Hardware
funktionieren.</para>
<informaltable frame="none">
<tgroup cols="2">
<tbody>
<row>
<entry>&man.sio.4;</entry>
<entry>Keine Unterst&uuml;tzung f&uuml;r I/O durch in den
Hauptspeicher eingeblendete Bereiche</entry>
</row>
<row>
<entry>&man.syscons.4;</entry>
<entry>Erwartet ein BIOS, VGA-Erkennung, etc.</entry>
</row>
<row>
<entry>&man.pcm.4;</entry>
<entry>Pr&uuml;ft MSS ISA Ports <emphasis>bis zum
Erbrechen</emphasis></entry>
</row>
<row>
<entry>&man.atkbd.4;, &man.psm.4;</entry>
<entry>Fest verdrahte ISA-Adressen</entry>
</row>
</tbody>
</tgroup>
</informaltable>
</sect2>
</sect1>
@@ -1,22 +0,0 @@
# $FreeBSD$
# $FreeBSDde: de-docproj/relnotes/de_DE.ISO8859-1/hardware/pc98/Makefile,v 1.1 2002/07/08 18:41:44 ue Exp $
# basiert auf: 1.1
RELN_ROOT?= ${.CURDIR}/../../..
DOC?= article
FORMATS?= html
INSTALL_COMPRESSED?= gz
INSTALL_ONLY_COMPRESSED?=
JADEFLAGS+= -V %generate-article-toc%
# SGML content
SRCS+= article.sgml
SRCS+= proc-pc98.sgml
SRCS+= ../common/hw.ent
SRCS+= ../common/artheader.sgml
SRCS+= ../common/dev.sgml
.include "${RELN_ROOT}/share/mk/doc.relnotes.mk"
.include "${DOC_PREFIX}/share/mk/doc.project.mk"
@@ -1,30 +0,0 @@
<!--
$FreeBSD$
$FreeBSDde: de-docproj/relnotes/de_DE.ISO8859-1/hardware/pc98/article.sgml,v 1.2 2002/10/12 18:02:22 ue Exp $
basiert auf: 1.1
-->
<!DOCTYPE article PUBLIC "-//FreeBSD//DTD DocBook V4.1-Based Extension//EN" [
<!ENTITY % man PUBLIC "-//FreeBSD//ENTITIES DocBook Manual Page Entities//EN">
%man;
<!ENTITY % authors PUBLIC "-//FreeBSD//ENTITIES DocBook Author Entities//EN">
%authors;
<!ENTITY % mlists PUBLIC "-//FreeBSD//ENTITIES DocBook Mailing List Entities//DE">
%mlists;
<!ENTITY % release PUBLIC "-//FreeBSD//ENTITIES Release Specification//EN">
%release;
<!ENTITY % sections SYSTEM "../common/hw.ent"> %sections;
<!-- Architecture-specific customization -->
<!ENTITY arch "pc98">
<!ENTITY arch.print "NEC PC-98x1">
]>
<article lang="de">
&artheader;
&sect.intro;
&sect.proc.pc98;
&sect.dev;
</article>
@@ -1,36 +0,0 @@
<!--
$FreeBSD$
$FreeBSDde: de-docproj/relnotes/de_DE.ISO8859-1/hardware/pc98/proc-pc98.sgml,v 1.3 2003/01/13 20:30:49 ue Exp $
basiert auf: 1.4
-->
<sect1 id="support-sys">
<title>Unterst&uuml;tzte Systeme</title>
<para>NEC PC-9801/9821 Systeme mit fast allen i386-kompatiblen
Prozessoren, dazu geh&ouml;ren unter anderem 80386, 80486,
Pentium, Pentium Pro und Pentium II inklusive aller Varianten.
Die i386-kompatiblen Prozessoren von AMD, Cyrix, IBM und IDT
werden ebenfalls unterst&uuml;tzt.</para>
<para>NEC FC-9801/9821 und NEC SV-98 (beide sind mit der
PC-9801/9821 Familie kompatibel) sollten auch unterst&uuml;tzt
werden.</para>
<para>Die EPSON PC-386/486/586 Familien sind kompatibel zur NEC
PC-9801 Familie und sollten auch unterst&uuml;tzt werden.</para>
<para>Der hochaufl&ouml;sende Modus wird nicht unterst&uuml;tzt.
Die Familien NEC PC-98XA/XL/RL/XL^2 und NEC PC-H98 werden nur im
normalen (PC-9801 kompatiblen) Modus unterst&uuml;tzt.</para>
<para>Es gibt zwar einige Mehrprozessorsysteme (wie Rs20/B20), die
SMP-F&auml;higkeiten in &os; werden allerdings noch nicht
unterst&uuml;tzt.</para>
<para>Der Standard-Bus des PC-9801/9821 (der sogenannte C-Bus), der
Erweiterungsbus des PC9801NOTE (110 Pin) und der PCI-Bus werden
unterst&uuml;tzt. Der New Extended Standard Architecture (NESA)
Bus (wird in den Familien PC-H98, SV-H98 und FC-H98 genutzt) wird
noch nicht unterst&uuml;tzt.</para>
</sect1>
@@ -1,22 +0,0 @@
# $FreeBSD$
# $FreeBSDde: de-docproj/relnotes/de_DE.ISO8859-1/hardware/sparc64/Makefile,v 1.3 2003/01/09 12:47:37 ue Exp $
# basiert auf: 1.3
RELN_ROOT?= ${.CURDIR}/../../..
DOC?= article
FORMATS?= html
INSTALL_COMPRESSED?= gz
INSTALL_ONLY_COMPRESSED?=
JADEFLAGS+= -V %generate-article-toc%
# SGML content
SRCS+= article.sgml
SRCS+= proc-sparc64.sgml
SRCS+= ../common/hw.ent
SRCS+= ../common/artheader.sgml
SRCS+= ../common/dev.sgml
.include "${RELN_ROOT}/share/mk/doc.relnotes.mk"
.include "${DOC_PREFIX}/share/mk/doc.project.mk"
@@ -1,29 +0,0 @@
<!--
$FreeBSD$
$FreeBSDde: de-docproj/relnotes/de_DE.ISO8859-1/hardware/sparc64/article.sgml,v 1.7 2003/01/09 12:46:28 ue Exp $
basiert auf: 1.3
-->
<!DOCTYPE article PUBLIC "-//FreeBSD//DTD DocBook V4.1-Based Extension//EN" [
<!ENTITY % man PUBLIC "-//FreeBSD//ENTITIES DocBook Manual Page Entities//EN">
%man;
<!ENTITY % authors PUBLIC "-//FreeBSD//ENTITIES DocBook Author Entities//EN">
%authors;
<!ENTITY % mlists PUBLIC "-//FreeBSD//ENTITIES DocBook Mailing List Entities//DE">
%mlists;
<!ENTITY % release PUBLIC "-//FreeBSD//ENTITIES Release Specification//EN">
%release;
<!ENTITY % sections SYSTEM "../common/hw.ent"> %sections;
<!-- Architecture-specific customization -->
<!ENTITY arch "sparc64">
<!ENTITY arch.print "UltraSPARC">
]>
<article lang="de">
&artheader;
&sect.intro;
&sect.proc.sparc64;
&sect.dev;
</article>
@@ -1,209 +0,0 @@
<!--
$FreeBSDde: de-docproj/relnotes/de_DE.ISO8859-1/hardware/sparc64/dev-sparc64.sgml,v 1.4 2003/01/13 20:30:50 ue Exp $
$Id: dev-sparc64.sgml,v 1.4 2002/03/10 15:37:16 ue Exp $
basiert auf: 1.3
-->
<sect1 id="support-dev">
<sect1info>
<pubdate>$FreeBSD$</pubdate>
</sect1info>
<title>Unterst&uuml;tzte Ger&auml;te</title>
<para>Dieses Kapitel enth&auml;lt alle Ger&auml;te, die auf jeden
Fall von &os; auf &arch; Systemen unterst&uuml;tzt werden. Andere
Konfigurationen k&ouml;nnen auch funktionieren, allerdings wurden
sie noch nicht getestet. R&uuml;ckmeldungen, Erg&auml;nzungen und
Korrekturen werden dankend angenommen.</para>
<para>Wenn m&ouml;glich, wird der zum jeweiligen Ger&auml;t bzw. zur
jeweiligen Ger&auml;teklasse passende Treiber aufgef&uuml;hrt.
Wenn es unter &os; eine Online-Hilfe f&uuml;r den betreffenden
Treiber gibt (das ist der Normalfall), wird sie ebenfalls
aufgef&uuml;hrt.</para>
<sect2>
<title>PCI Hardware</title>
<para>Rein theoretisch sollte jedes Ger&auml;t, f&uuml;r das es
einen Treiber gibt, auch auf sparc64 funktionieren. In der
Praxis funktionieren einige Treiber sofort, andere m&uuml;ssen
angepa&szlig;t werden (hier zeigt sich, da&szlig; dies die erste
<quote>big endian</quote> Architektur ist, die von FreeBSD
unterst&uuml;tzt wird).</para>
<para>Bei den folgenden Ger&auml;ten sind wir sicher, da&szlig; sie
unterst&uuml;tzt werden und funktionieren:</para>
<itemizedlist>
<listitem>
<para><literal>apb</literal> (Sun PCI-PCI Bridge)</para>
</listitem>
<listitem>
<para>alle Arten von PCI-PCI Bridges</para>
</listitem>
<listitem>
<para>&man.ahc.4; (jetzt sehr bald).</para>
</listitem>
<listitem>
<para>&man.ata.4;, <devicename>atadisk</devicename>,
<devicename>atapicd</devicename> (allerdings weder atapift
noch atapist)</para>
</listitem>
<listitem>
<para><devicename>gem</devicename> (Sun GEM/ERI Ethernet, ist
in der Blade 100 eingebaut)</para>
</listitem>
<listitem>
<para><literal>hme</literal> (Sun HME Ethernet, ist in der
Ultra 5 und Ultra 10 eingebaut)</para>
</listitem>
<listitem>
<para>&man.sio.4;</para>
</listitem>
<listitem>
<para>&man.sym.4;</para>
</listitem>
</itemizedlist>
</sect2>
<sect2>
<title>SBus Hardware</title>
<para>Die folgenden Treiber wurden an SBus
angepa&szlig;t:</para>
<itemizedlist>
<listitem>
<para><literal>hme</literal> Ethernet</para>
</listitem>
<listitem>
<para><literal>mk48txx</literal> ('eeprom' Ger&auml;t,
Systemuhr)</para>
</listitem>
</itemizedlist>
</sect2>
<sect2>
<title>ISA Hardware</title>
<para>Die Angaben &uuml;ber die Treiber f&uuml;r PCI Hardware
gelten auch f&uuml;r die Treiber f&uuml;r ISA-Karten, allerdings
gibt es eine wichtige Einschr&auml;nkung: ISA DMA wird noch nicht
unterst&uuml;tzt. Hierbei handelt es sich in der Regel um
eingebaute Ger&auml;te, uns ist kein einzige UltraSPARC System
bekannt, das &uuml;ber einen ISA Steckplatz verf&uuml;gt.</para>
<para>Bei den folgenden Ger&auml;ten sind wir sicher, da&szlig;
sie unterst&uuml;tzt werden und funktionieren:</para>
<itemizedlist>
<listitem>
<para>&man.sio.4;</para>
</listitem>
</itemizedlist>
</sect2>
<sect2>
<title>EBus Hardware</title>
<para>Der EBus gibt es nur in Suns, daher m&uuml;ssen die Treiber
um Unterst&uuml;tzung f&uuml;r diese Art von Ger&auml;ten
erweitert werden. Der EBus ist ISA sehr &auml;hnlich, daher
k&ouml;nnen ISA-Treiber in der Regel sehr einfach umgeschrieben
werden, wenn Sie das <quote>bus space interface</quote> und
nicht die <quote>in[bwl]/out[bwl]</quote> Funktionen nutzen.
DMA wird noch nicht unterst&uuml;tzt.</para>
<para>Bei den folgenden Ger&auml;ten sind wir sicher, da&szlig;
sie unterst&uuml;tzt werden und funktionieren:</para>
<itemizedlist>
<listitem>
<para>&man.sio.4;</para>
</listitem>
<listitem>
<para><literal>mk48txx</literal> ('eeprom' Ger&auml;t,
Systemuhr)</para>
</listitem>
</itemizedlist>
</sect2>
<sect2>
<title>Nicht unterst&uuml;tzte Ger&auml;te</title>
<para>Die folgenden Ger&auml;te, die alle Bestandteile von Sun
UltraSPARC System sind, werden zur Zeit noch nicht
unterst&uuml;tzt:</para>
<itemizedlist>
<listitem>
<para>Graphikkarten/Bildschirmspeicher, Tastatur (au&szlig;er
der indirekten Unterst&uuml;tzung im Textmodus durch den
<devicename>ofw_console</devicename> Treiber)</para>
</listitem>
<listitem>
<para>Serielle Schnittstellen mit Siemens sab82532 (Ultra
5/10; die Anschl&uuml;sse f&uuml;r Tastatur und Maus sind
auch RS232-Anschl&uuml;sse und werden daher vom &man.sio.4;
Treiber unterst&uuml;tzt; ein Treiber mit dem Namen 'se' ist
in Arbeit).</para>
</listitem>
<listitem>
<para>serielle Tastaturen (au&szlig;er der indirekten
Unterst&uuml;tzung durch den
<devicename>ofw_console</devicename> Treiber)</para>
</listitem>
<listitem>
<para>serielle Anschl&uuml;sse mit Zilog z8530 (Tastatur/Maus,
ttya und ttyb bei der Ultra 1 und Ultra 2 boxen)</para>
</listitem>
<listitem>
<para>fas (Fast SCSI Controller, der in den meisten Ultra 1
und Ultra 2 Maschinen eingebaut ist)</para>
</listitem>
<listitem>
<para>USB Anschl&uuml;sse (hier gibt es Probleme, es sollte
aber relativ einfach sein, diese zu beheben)</para>
</listitem>
<listitem>
<para>alle Diskettenlaufwerke und Controller
daf&uuml;r</para>
</listitem>
<listitem>
<para>Chipkarten-Leser (die Blade 100 besitzt einen,
allerdings gibt es nur wenige Informationen
dar&uuml;ber)</para>
</listitem>
<listitem>
<para>FireWire/IEEE1394</para>
</listitem>
<listitem>
<para>Soundkarten</para>
</listitem>
<listitem>
<para>parallele Anschl&uuml;sse</para>
</listitem>
</itemizedlist>
</sect2>
</sect1>
@@ -1,175 +0,0 @@
<!--
$FreeBSD$
$FreeBSDde: de-docproj/relnotes/de_DE.ISO8859-1/hardware/sparc64/proc-sparc64.sgml,v 1.10 2003/02/08 07:43:14 ue Exp $
basiert auf: 1.11
-->
<sect1 id="support-sys">
<title>Unterst&uuml;tzte Systeme</title>
<para>In diesem Kapitel sind alle Systeme aufgef&uuml;hrt, von denen
wir wissen, da&szlig; sie von &os; f&uuml;r &arch.print;
unterst&uuml;tzt werden. Zus&auml;tzliche Informationen zu den
einzelnen Systemen finden Sie im <ulink
url="http://sunsolve.sun.com/handbook_pub/">Sun System
Handbook</ulink>.</para>
<para>SMP wird auf allen Systemen mit mehr als einem Prozessor
unterst&uuml;tzt.</para>
<para>Wenn Sie ein System haben, da&szlig; nicht in dieser Liste
aufgef&uuml;hrt ist, k&ouml;nnte das daran liegen, da&szlig; es
noch mit &os; &release.current; getestet wurde. Bitte probieren
Sie es aus und schicken Sie eine Mail mit Ihren Ergebnissen (und
Informationen dar&uuml;ber, welche Ger&auml;te unterst&uuml;tzt
werden und welche nicht) an die &a.sparc;.</para>
<sect2>
<title>Vollst&auml;ndig unterst&uuml;tzte Systeme</title>
<para>Die folgenden Systeme werden vollst&auml;ndig
unterst&uuml;tzt:</para>
<itemizedlist>
<listitem>
<para>Blade 100</para>
</listitem>
<listitem>
<para>Blade 150</para>
</listitem>
<listitem>
<para>Enterprise 220R</para>
</listitem>
<listitem>
<para>Enterprise 250</para>
</listitem>
<listitem>
<para>Enterprise 420R</para>
</listitem>
<listitem>
<para>Enterprise 450</para>
</listitem>
<listitem>
<para>Fire V100</para>
</listitem>
<listitem>
<para>Fire V120</para>
</listitem>
<listitem>
<para>Netra t1 105</para>
</listitem>
<listitem>
<para>Netra t1 AC200/DC200</para>
</listitem>
<listitem>
<para>Netra t 1100</para>
</listitem>
<listitem>
<para>Netra t 1120</para>
</listitem>
<listitem>
<para>Netra t 1125</para>
</listitem>
<listitem>
<para>Netra t 1400/1405</para>
</listitem>
<listitem>
<para>Netra 120</para>
</listitem>
<listitem>
<para>Netra X1</para>
</listitem>
<listitem>
<para>SPARCEngine Ultra AXi</para>
</listitem>
<listitem>
<para>SPARCEngine Ultra AXmp</para>
</listitem>
<listitem>
<para>Ultra 5</para>
</listitem>
<listitem>
<para>Ultra 10</para>
</listitem>
<listitem>
<para>Ultra 30</para>
</listitem>
<listitem>
<para>Ultra 60</para>
</listitem>
<listitem>
<para>Ultra 80</para>
</listitem>
</itemizedlist>
</sect2>
<sect2>
<title>Teilweise unterst&uuml;tzte Systeme</title>
<para>Die folgenden Systeme werden nur unvollst&auml;ndig
unterst&uuml;tzt. Dies betrifft speziell den SCSI-Controller
auf dem Systemboard, der zur Zeit nicht unterst&uuml;tzt
wird.</para>
<itemizedlist>
<listitem>
<para>Enterprise 3500</para>
</listitem>
<listitem>
<para>Enterprise 4500</para>
</listitem>
<listitem>
<para>Ultra 1 Enterprise (auch als 1E bezeichnet)</para>
</listitem>
<listitem>
<para>Ultra 2</para>
</listitem>
</itemizedlist>
</sect2>
<sect2>
<title>Nicht unterst&uuml;tzte Systeme</title>
<para>Die folgenden Systeme werden von &os; nicht
unterst&uuml;tzt. Dies liegt zum Teil daran, da&szlig; der
Prozessor nicht unterst&uuml;tzt wird (UltraSPARC III); an
Merkw&uuml;rdigkeiten im Design des Systems, die zu Problemen im
Betrieb f&uuml;hren; oder an fehlender Unterst&uuml;tzten
f&uuml;r die Komponenten des Systems, wodurch &os; nicht
benutzbar wird.</para>
<itemizedlist>
<listitem>
<para>Alle Systeme mit UltraSPARC III Prozessor(en).</para>
</listitem>
<listitem>
<para>Ultra 1</para>
</listitem>
</itemizedlist>
</sect2>
</sect1>
@@ -1,14 +0,0 @@
# $FreeBSD$
# $FreeBSDde: de-docproj/relnotes/de_DE.ISO8859-1/installation/Makefile,v 1.6 2002/11/09 18:09:45 ue Exp $
# basiert auf: 1.5
RELN_ROOT?= ${.CURDIR}/../..
SUBDIR = alpha
SUBDIR+= ia64
SUBDIR+= i386
SUBDIR+= pc98
SUBDIR+= sparc64
.include "${RELN_ROOT}/share/mk/doc.relnotes.mk"
.include "${DOC_PREFIX}/share/mk/doc.project.mk"
@@ -1,10 +0,0 @@
# $FreeBSD$
# $FreeBSDde: de-docproj/relnotes/de_DE.ISO8859-1/installation/Makefile.inc,v 1.2 2002/03/10 18:41:39 ue Exp $
# $Id: Makefile.inc,v 1.4 2002/03/10 15:37:17 ue Exp $
# basiert auf: 1.2
.ifdef NO_LANGCODE_IN_DESTDIR
DESTDIR?= ${DOCDIR}/installation/${.CURDIR:T}
.else
DESTDIR?= ${DOCDIR}/de_DE.ISO8859-1/installation/${.CURDIR:T}
.endif
@@ -1,23 +0,0 @@
# $FreeBSD$
# $FreeBSDde: de-docproj/relnotes/de_DE.ISO8859-1/installation/alpha/Makefile,v 1.2 2002/03/10 18:41:40 ue Exp $
# $Id: Makefile,v 1.3 2002/03/10 15:37:17 ue Exp $
# basiert auf: 1.4
RELN_ROOT?= ${.CURDIR}/../../..
DOC?= article
FORMATS?= html
INSTALL_COMPRESSED?= gz
INSTALL_ONLY_COMPRESSED?=
# SGML content
SRCS+= article.sgml
SRCS+= ../common/artheader.sgml
SRCS+= ../common/abstract.sgml
SRCS+= ../common/install.sgml
SRCS+= ../common/layout.sgml
SRCS+= ../common/trouble.sgml
SRCS+= ../common/upgrade.sgml
.include "${RELN_ROOT}/share/mk/doc.relnotes.mk"
.include "${DOC_PREFIX}/share/mk/doc.project.mk"
@@ -1,31 +0,0 @@
<!--
$FreeBSD$
$FreeBSDde: de-docproj/relnotes/de_DE.ISO8859-1/installation/alpha/article.sgml,v 1.4 2002/10/12 18:02:23 ue Exp $
basiert auf: 1.3
-->
<!DOCTYPE article PUBLIC "-//FreeBSD//DTD DocBook V4.1-Based Extension//EN" [
<!ENTITY % man PUBLIC "-//FreeBSD//ENTITIES DocBook Manual Page Entities//EN">
%man;
<!ENTITY % authors PUBLIC "-//FreeBSD//ENTITIES DocBook Author Entities//EN">
%authors;
<!ENTITY % mlists PUBLIC "-//FreeBSD//ENTITIES DocBook Mailing List Entities//DE">
%mlists;
<!ENTITY % release PUBLIC "-//FreeBSD//ENTITIES Release Specification//EN">
%release;
<!ENTITY % sections SYSTEM "../common/install.ent"> %sections;
<!-- Architecture-specific customization -->
<!ENTITY arch "alpha">
<!ENTITY arch.print "Alpha/AXP">
]>
<article lang="de">
&artheader;
&abstract;
&sect.install;
&sect.layout;
&sect.upgrade;
&sect.trouble;
</article>
@@ -1,14 +0,0 @@
<!--
$FreeBSD$
$FreeBSDde: de-docproj/relnotes/de_DE.ISO8859-1/installation/common/abstract.sgml,v 1.3 2002/03/12 17:24:25 ue Exp $
$Id: abstract.sgml,v 1.2 2002/03/10 15:37:17 ue Exp $
basiert auf: 1.2
-->
<abstract>
<para>Dieser Artikel enth&auml;lt eine kurze Anleitung f&uuml;r die
Installation von &os;/&arch; &release.current;, dabei wird
besonderen Wert auf den Bezug einer &os; gelegt. Au&szlig;erdem
enth&auml;lt er einige Tips zur Fehlersuche sowie Antworten zu
einigen h&auml;ufig gestellten Fragen.</para>
</abstract>
@@ -1,27 +0,0 @@
<!--
$FreeBSD$
$FreeBSDde: de-docproj/relnotes/de_DE.ISO8859-1/installation/common/artheader.sgml,v 1.3 2003/01/09 12:17:18 ue Exp $
basiert auf: 1.4
-->
<articleinfo>
<title>&os;/&arch; &release.current; Installationsanleitung</title>
<corpauthor>
The &os; Project
</corpauthor>
<copyright>
<year>2000</year>
<year>2001</year>
<year>2002</year>
<year>2003</year>
<holder role="mailto:[email protected]">The FreeBSD Documentation Project</holder>
</copyright>
<copyright>
<year>2002</year>
<year>2003</year>
<holder role="mailto:[email protected]">The FreeBSD German Documentation Project</holder>
</copyright>
</articleinfo>
@@ -1,20 +0,0 @@
<!-- -*- sgml -*- -->
<!--
$FreeBSD$
$FreeBSDde: de-docproj/relnotes/de_DE.ISO8859-1/installation/common/install.ent,v 1.2 2002/03/10 18:41:41 ue Exp $
$Id: install.ent,v 1.3 2002/03/10 15:37:17 ue Exp $
basiert auf: 1.2
-->
<!-- Text constants which probably don't need to be changed.-->
<!-- Files to be included -->
<!ENTITY artheader SYSTEM "artheader.sgml">
<!ENTITY abstract SYSTEM "abstract.sgml">
<!ENTITY sect.install SYSTEM "install.sgml">
<!ENTITY sect.layout SYSTEM "layout.sgml">
<!ENTITY sect.upgrade SYSTEM "upgrade.sgml">
<!ENTITY sect.trouble SYSTEM "trouble.sgml">
File diff suppressed because it is too large. Load diff
@@ -1,171 +0,0 @@
<!--
$FreeBSD$
$FreeBSDde: de-docproj/relnotes/de_DE.ISO8859-1/installation/common/layout.sgml,v 1.5 2002/11/09 23:07:18 ue Exp $
basiert auf: 1.6
This section contains the contents of the old LAYOUT.TXT file.
-->
<sect1 id="layout">
<title>Format der Distribution</title>
<para>Ein Verzeichnis mit einer typischen &os; Distribution sieht
ungef&auml;hr so aus (das exakte Aussehen h&auml;ngt von der
jeweiligen Version, Architektur und andere Faktoren ab):</para>
<screen>ERRATA.HTM README.TXT compat1x dict kernel
ERRATA.TXT RELNOTES.HTM compat20 doc manpages
HARDWARE.HTM RELNOTES.TXT compat21 docbook.css packages
HARDWARE.TXT base compat22 filename.txt ports
INSTALL.HTM boot compat3x floppies proflibs
INSTALL.TXT catpages compat4x games src
README.HTM cdrom.inf crypto info tools</screen>
<para>Wenn Sie dieses Verzeichnis f&uuml;r eine CD-, FTP- oder
NFS-Installation nutzen wollen, brauchen Sie nur die beiden 1.44
MByte gro&szlig;en Bootdisketten zu erstellen (wie das geht, ist
in <xref linkend="floppies"> beschrieben), von diesen zu booten,
und dann den Anweisungen zu folgen. Alle anderen Dateien, die
f&uuml;r die Installation notwendig sind, werden auf der Grundlage
Ihrer Angaben automatisch geholt. Wenn Sie &os; noch nie
installiert haben, sollten Sie dieses Dokument (die
Installationsanleitung) komplett durchlesen.</para>
<para>Wenn Sie eine der anderen Varianten der Installation nutzen
oder einfach nur wissen wollen, wie eine Distribution aufgebaut
ist, finden Sie hier weitere Informationen zum Inhalt einiger der
Verzeichnisse:</para>
<orderedlist>
<listitem>
<para>Die <filename>*.TXT</filename> und
<filename>*.HTM</filename> Dateien enthalten Dokumentationen
(dieses Dokument ist zum Beispiels in
<filename>INSTALL.TXT</filename> und
<filename>INSTALL.HTM</filename> enthalten), die Sie vor der
Installation lesen sollten. Die <filename>*.TXT</filename>
Dateien enthalten normaler Text, die
<filename>*.HTM</filename> Dateien enthalten HTML und
k&ouml;nnen mit fast jedem Web Browser gelesen werden. Einige
Distributionen stellen die Dokumentationen auch in anderen
Formaten bereit, z.B. PDF oder PostScript.</para>
</listitem>
<listitem>
<para><filename>docbook.css</filename> ist ein Cascading Style
Sheet (CSS), der von einigen Browsern zur Formatierung der
HTML Dokumentation benutzt wird.</para>
</listitem>
<listitem>
<para>Die Verzeichnisse <filename>base</filename>,
<filename>catpages</filename>, <filename>crypto</filename>,
<filename>dict</filename>, <filename>doc</filename>,
<filename>games</filename>, <filename>info</filename>,
<filename>manpages</filename>, <filename>proflibs</filename>,
und <filename>src</filename> enthalten die Hauptkomponenten
der &os; Distribution. Diese sind auf kleine Dateien
aufgeteilt wurden, damit sie (zur Not) auch auf Disketten
passen.</para>
</listitem>
<listitem>
<para>Die Verzeichnisse <filename>compat1x</filename>,
<filename>compat20</filename>, <filename>compat21</filename>,
<filename>compat22</filename>, <filename>compat3x</filename>,
und <filename>compat4x</filename> enthalten Dateien, die zur
Ausf&uuml;hrung von Programmen f&uuml;r &auml;lteren &os;
Versionen notwendig sind. Auch diese Dateien liegen im
<filename>.tar.gz</filename> Format vor und k&ouml;nnen direkt
bei der Installation installiert werden. Falls Sie sie
nachtr&auml;glich installieren wollen, nutzen Sie das
<filename>install.sh</filename> Script in dem jeweiligen
Verzeichnis.</para>
</listitem>
<listitem>
<para>Das Verzeichnis <filename>floppies/</filename>
enth&auml;lt die Images der Bootdisketten. Informationen, wie
man diese Images benutzt, finden Sie in <xref
linkend="floppies">.</para>
</listitem>
<listitem>
<para>Die Verzeichnisse <filename>packages</filename> und
<filename>ports</filename> enthalten die &os; Packages bzw.
Ports Collection. Sie k&ouml;nnen Packages aus diesem
Verzeichnis installieren, indem Sie den folgenden Befehl
eingeben:</para>
<screen>&prompt.root;<userinput>/stand/sysinstall configPackages</userinput></screen>
<para>Alternativ k&ouml;nnen Sie auch die Namen einzelner
Dateien aus <filename>packages</filename> an das Programm
&man.pkg.add.1; &uuml;bergeben.</para>
<para>Die Ports Collection kann wie jede andere Distribution
installiert werden und belegt dann rund 100 MByte
Plattenplatz. Weitere Informationen &uuml;ber die Ports
Collection finden Sie auf <ulink
url="http://www.FreeBSD.org/ports/">http://www.FreeBSD.org/ports/</ulink>.
Wenn Sie die <filename>doc</filename> Distribution installiert
haben, sind diese Informationen auch unter
<filename>/usr/share/doc/handbook</filename>
verf&uuml;gbar.</para>
</listitem>
<listitem>
<para>Zum guten Schlu&szlig;: Das Verzeichnis
<filename>tools</filename> enth&auml;lt diverse DOS-Programme
zur Ermittlung der Plattengeometrie, zur Installation von
Bootmanager, und so weiter. Sie brauchen diese Programme
nicht unbedingt, sie werden nur mitgeliefert, um Ihnen das
Leben etwas einfacher zu machen.</para>
</listitem>
</orderedlist>
<para>Das Verzeichnisses einer typischen Distribution (in diesem Fall <filename>info</filename>) enth&auml;lt die folgenden Dateien:</para>
<screen>CHECKSUM.MD5 info.ab info.ad info.inf install.sh
info.aa info.ac info.ae info.mtree</screen>
<para>Die Datei <filename>CHECKSUM.MD5</filename> enth&auml;lt MD5
Pr&uuml;fsummen f&uuml;r die anderen Dateien. Sie wird nur
gebraucht, falls Sie vermuten, da&szlig; eine Datei
besch&auml;digt wurde. Diese Datei wird vom Installationsprogramm
nicht verwendet und mu&szlig; auch nicht zusammen mit den anderen
Dateien dieser Distribution kopiert werden. Die Dateien mit den
Namen <filename>info.a*</filename> sind Teile eines einzigen
.tar.gz Archiv, dessen Inhalt Sie sich mit dem folgenden Befehl
anzeigen lassen k&ouml;nnen:</para>
<screen>&prompt.root; <userinput>cat info.a* | tar tvzf -</userinput></screen>
<para>W&auml;hrend der Installation werden diese Dateien automatisch
zusammengesetzt und ausgepackt.</para>
<para>Die Datei <filename>info.inf</filename> wird vom
Installationsprogramm genutzt, um die Anzahl der Dateiteile zu
ermitteln, die es beschaffen und zusammensetzen mu&szlig;. Wenn
Sie eine Distribution auf Diskette kopieren,
<emphasis>m&uuml;ssen</emphasis> Sie die <filename>.inf</filename>
Datei auf die erste Diskette kopieren.</para>
<para>Die Datei <filename>info.mtree</filename> ist ebenfalls
optional und als Information f&uuml;r den Benutzer gedacht. Sie
enth&auml;lt die MD5 Pr&uuml;fsummen der
<emphasis>ungepackten</emphasis> Dateien in der Distribution und
kann sp&auml;ter vom Programm &man.mtree.8; genutzt werden, um
&Auml;nderungen an den Datei oder Dateirechten aufzusp&uuml;ren.
Wenn Sie das bei der <filename>base</filename> Distribution machen,
haben Sie eine sehr wirksame Methode, um Ihr System auf
trojanische Pferde zu untersuchen.</para>
<para>Zum guten Schlu&szlig;: Mit der Datei
<filename>install.sh</filename> k&ouml;nnen Sie eine Distribution
nachtr&auml;glich installieren. Wenn Sie zum Beispiel die info
Distribution nachtr&auml;glich von CD installieren wollen, kommen
Sie mit den folgenden Befehlen zum Ziel:</para>
<screen>&prompt.root; <userinput>cd /cdrom/info</userinput>
&prompt.root; <userinput>sh install.sh</userinput></screen>
</sect1>
@@ -1,471 +0,0 @@
<!--
$FreeBSD$
$FreeBSDde: de-docproj/relnotes/de_DE.ISO8859-1/installation/common/trouble.sgml,v 1.13 2003/05/24 19:11:45 ue Exp $
basiert auf: 1.12
This file contains the comments of the old TROUBLE.TXT file.
-->
<sect1 id="trouble">
<title>Erste Hilfe</title>
<sect2 id="repairing">
<title>Reparatur einer &os; Installation</title>
<para>Bei &os; gibt es im Hauptmen&uuml; des
Installationsprogramms den Punkt <quote>Fixit</quote>. Wenn Sie
diese Option benutzen wollen, brauchen Sie entweder eine
Diskette, die Sie aus dem Image <filename>fixit.flp</filename>
erzeugt haben; oder die CD mit dem <quote>live
filesystem</quote>, das ist normalerweise die zweite CD der &os;
Distribution.</para>
<para>Um fixit zu benutzen, m&uuml;ssen Sie zuerst von der
<filename>kern.flp</filename> Diskette booten, dann die Option
<quote>Fixit</quote> ausw&auml;hlen und dann die Fixit Diskette
oder CD einlegen, wenn Sie dazu aufgefordert werden. Danach
wird eine Shell gestartet, in der viele Programme zur
&Uuml;berpr&uuml;fung, Reparatur und Analyse von Dateisystem und
ihren Inhalten zur Verf&uuml;gung stehen. Sie finden diese
Programme in den Verzeichnissen <filename>/stand</filename> und
<filename>/mnt2/stand</filename>. Allerdings
<emphasis>brauchen</emphasis> Sie Erfahrung mit der
Administration von Unix-Systemen, um diese Option sinnvoll
einsetzen zu k&ouml;nnen.</para>
</sect2>
<sect2>
<title>Typische Probleme bei der Installation auf &arch.print;
Systemen</title>
<qandaset arch="i386">
<qandaentry>
<question>
<para>Mein Rechner h&auml;ngt sich beim Start des Systems
w&auml;hrend der Hardware-Erkennung auf, verh&auml;lt
sich bei der Installation seltsam, oder findet das
Diskettenlaufwerk nicht.</para>
</question>
<answer>
<para>&os; nutzt auf i386 Systemen ab Version 5.0 unter
anderem die ACPI-Dienste, um das System zu konfigurieren.
Leider existieren sowohl im ACPI-Triber als auch in der
ACPI-Implementierung vieler Mainbaords Fehler. Um ACPI
abzuschalten, m&uuml;ssen Sie die <quote>hint</quote>
<quote>hint.acpi.0.disabled</quote> in der dritten Phase des
Startprogramm aktivieren:</para>
<screen>set hint.acpi.0.disabled=1</screen>
<para>Diese Variable wird bei jedem Start des System
zur&uuml;ckgesetzt, daher m&uuml;ssen Sie die Anweisung
<literal>hint.acpi.0.disabled="1"</literal> in die Datei
<filename>/boot/loader.conf</filename> aufnehmen. Weitere
Informationen &uuml;ber das Startprogramm finden Sie im
FreeBSD Handbuch. </para>
</answer>
</qandaentry>
<qandaentry>
<question>
<para>Meine alte ISA-Karte wurde nicht mehr erkannt, in
&auml;lteren &os;-Versionen funktionierte sie. Woran
liegt das?</para>
</question>
<answer>
<para>Einige Treiber wurden mittlerweile entfernt, weil es
niemanden mehr gab, der sich um sie k&uuml;mmerte; dazu
geh&ouml;rt unter anderem matcd. Andere Treiber
existieren zwar noch, sind aber standardm&auml;&szlig;ig
inaktiv, weil die Routinen zur Hardware-Erkennung zu viele
Nebenwirkungen hatten. Dies betrifft die folgenden
ISA Treiber: aha, ahv, aic, bt, ed, cs, sn, ie, fe, le und
lnc. Diese Treiber m&uuml;ssen Sie in der dritten Phase
des Systemstarts manuell aktivieren. Dazu m&uuml;ssen Sie
w&auml;hrend des Startprogramm w&auml;hrend des 10
Sekunden dauernden Countdowns unterbrechen und die
folgende Anweisung eingeben:</para>
<screen>unset hint.foo.0.disabled</screen>
<para>Dabei steht <replaceable>foo</replaceable> f&uuml;r
den Namen des Treibers, den Sie aktivieren wollen. Um
diese &Auml;nderung permanent zu machen, m&uuml;ssen Sie
die Datei <filename>/boot/device.hints</filename>
&auml;ndern und den betreffenden <quote>disabled</quote>
Eintrag entfernen.</para>
</answer>
</qandaentry>
<qandaentry>
<question>
<para>Wenn ich das System nach der &os;-Installation zum
ersten von der Festplatte starte, wird der Kernel geladen
und sucht nach Hardware, aber danach kommt eine Meldung
wie:</para>
<screen>changing root device to ad1s1a panic: cannot mount root</screen>
<para>Was l&auml;uft falsch? Was kann ich tun?</para>
<para>Was bedeutet diese
<literal>bios_drive:interface(unit,partition)kernel_name</literal>
Meldung, die mir beim Booten als Hilfe angezeigt
wird?</para>
</question>
<answer>
<para>Es kann zu Problemen kommen, wenn die Festplatte, von
der Sie booten, nicht die erste Festplatte des Systems
ist. Leider sind sich das BIOS und &os; nicht immer
einig, wie die Festplatte numeriert werden sollen. Die
richtige Zuordnung zu finden, ist nicht einfach; daher
kommt es hier immer wieder zu Problemen.</para>
<para>Wenn die Festplatte, von der Sie booten, nicht die
erste Platte des Systems ist, braucht &os; in manchen
F&auml;llen etwas Hilfe. Es gibt zwei typische Ursachen
f&uuml;r dieses Problem und in beiden F&auml;llen
m&uuml;ssen Sie &os; sagen, wo das root filesystem liegt.
Dazu m&uuml;ssen Sie die vom BIOS verwendete Nummer der
Festplatte, den Typ der Festplatte, und die von FreeBSD
verwendete Nummer der Festplatte dieses Typs
angeben.</para>
<para>Eine typische Ursache ist ein System mit zwei IDE
Platten, die beide als Master Ihres IDE Kanals
konfiguriert sind und auf dem Sie &os; von der zweiten
Platte booten wollen. Das BIOS verwendet f&uuml;r die
beiden Platten die Nummern 0 und 1, w&auml;hrend &os;
<devicename>ad0</devicename> und
<devicename>ad2</devicename> verwendet.</para>
<para>&os; liegt auf BIOS Platte 1, der Typ der Platte ist
<literal>ad</literal>, und &os; vergibt die Nummer 2. In
diesem Fall m&uuml;ssen Sie folgendes eingeben:</para>
<screen><userinput>1:ad(2,a)kernel</userinput></screen>
<para>Bitte beachten Sie, da&szlig; Sie dies nicht eingeben
m&uuml;ssen, wenn sich auf dem prim&auml;ren IDE Kanal ein
weiteres Ger&auml;t befindet (um genau zu, w&auml;re es
sogar falsch).</para>
<para>Die andere typische Ursache ist ein System mit IDE und
SCSI Platten, bei dem Sie von der SCSI Platte booten
wollen. In diesem Fall vergibt &os; eine niedrigere
Nummer als das BIOS. Wenn Sie neben der SCSI-Festplatte
noch zwei IDE-Platten haben, vergibt das BIOS f&uuml;r die
SCSI Festplatte die Nummer 2, w&auml;hrend &os; die Nummer
0 vergibt. Da die Platte von Typ <literal>da</literal>
ist, lautet die L&ouml;sung:</para>
<screen><userinput>2:da(0,a)kernel</userinput></screen>
<para>Damit teilen Sie &os; mit, da&szlig; von der BIOS
Festplatte Nummer 2 booten wollen, die die erste
SCSI-Festplatte des System ist. Wenn Sie nur eine
IDE-Festplatten h&auml;tten, w&uuml;rden Sie 1:
verwenden.</para>
<para>Wenn Sie den korrekten Wert herausgefunden haben,
k&ouml;nnen Sie ihn mit einem normalen Editor in die Datei
<filename>/boot.config</filename> eintragen. &os; nutzt
den Inhalt dieser Datei, um den Standardwert f&uuml;r die
Antwort auf die Anforderung <literal>boot:</literal> zu
bestimmen.</para>
</answer>
</qandaentry>
<qandaentry>
<question>
<para>Wenn ich nach der &os;-Installation zum ersten Mal von
der Festplatte booten will, komme ich nur bis zum
<literal>F?</literal> Prompt des Bootmanagers.</para>
</question>
<answer>
<para>Sie haben bei der FreeBSD-Installation eine falsche
Geometrie f&uuml;r Ihre Festplatte angeben. Sie
m&uuml;ssen im Partitionseditor die richtige Geometrie
eingeben und &os; mit der richtigen Geometrie komplett neu
installieren.</para>
<para>Wenn Sie die korrekte Geometrie Ihrer Festplatte nicht
ermitteln k&ouml;nnen, k&ouml;nnen Sie den folgenden Trick
verwenden: Legen Sie eine am Anfang der Festplatte eine
kleine DOS-Partition an und installieren Sie danach &os;.
Das Installationsprogramm wird die DOS-Partition finden
und daraus die korrekte Geometrie berechnen, was
normalerweise funktioniert.</para>
<para>Es gibt eine weitere M&ouml;glichkeit, die nicht mehr
empfohlen wird und der Vollst&auml;ndigkeit halber
erw&auml;hnt wird:</para>
<blockquote>
<para>Wenn Sie einen Server oder eine Workstation
installieren, auf der ausschlie&szlig;lich &os; laufen soll
und Ihnen die (zuk&uuml;nftige) Kompatibilit&auml;t mit
DOS, Linux oder anderen Betriebssystemen egal ist,
k&ouml;nnen Sie auch die gesamte Platte verwenden (Taste
`A' im Partitions-Editor). Dadurch verwendet &os; die
gesamte Festplatte vom ersten bis zum letzten Sektor,
wodurch alle Probleme mit der Geometrie hinf&auml;llig
werden. Allerdings k&ouml;nnen Sie auf dieser
Festplatte nur &os; benutzen, was Sie evtl.
einschr&auml;nkt.</para>
</blockquote>
</answer>
</qandaentry>
<qandaentry>
<question>
<para>Der &man.mcd.4; Treiber glaubt, der habe ein
Ger&auml;t gefunden, dadurch funktioniert meine Intel
EtherExpress Netzwerkkarte nicht.</para>
</question>
<answer>
<para>Benutzen Sie UserConfig (wie, steht in
<filename>HARDWARE.TXT</filename>) und schalten die
Erkennung der Ger&auml;te <devicename>mcd0</devicename>
und <devicename>mcd1</devicename> ab. Es ist immer
besser, wenn Sie nur die Treiber aktiv lassen, f&uuml;r
die Sie auch passende Ger&auml;te haben, alle anderen
Treiber sollten Sie aus dem Kernel entfernen oder
deaktivieren.</para>
</answer>
</qandaentry>
<qandaentry>
<question>
<para>Das System erkennt meine &man.ed.4; Netzwerkkarte,
aber ich erhalte st&auml;ndig die Meldung device
timeout.</para>
</question>
<answer>
<para>Ihre Karte nutzt wahrscheinlich einen anderen IRQ als
den, der in der Kernel-Konfiguration angegeben ist. Der
ed Treiber benutzt die `soft' Konfiguration (die sie in
DOS mit EZSETUP eingestellt haben) normalerweise nicht.
Wenn er das tun soll, m&uuml;ssen Sie bei der
Kernelkonfiguration f&uuml;r den IRQ den Wert
<literal>?</literal> angeben.</para>
<para>Sie sollten entweder eine der festverdrahteten
Einstellungen benutzen (und gegebenenfalls die Einstellungen des
Kernels anpassen), oder in UserConfig f&uuml;r den IRQ den
Wert <literal>-1</literal> eingeben. Damit teilen Sie dem
Kernel mit, da&szlig; er die `soft' Konfiguration benutzen
soll.</para>
<para>Eine andere m&ouml;gliche Ursache ist, da&szlig; Ihre
Karte IRQ9 verwendet. IRQ 9 wird immer mit IRQ 2 geteilt,
was immer wieder Probleme macht (besonders, wenn Sie eine
VGA-Karte haben, die IRQ 2 benutzt!) Wenn m&ouml;glich,
sollten Sie IRQ 9 und IRQ 2 nicht benutzen.</para>
</answer>
</qandaentry>
<qandaentry>
<question>
<para>Ich habe meinen IBM ThinkPad (tm) Laptop von der
Installationsdiskette gebootet, und die Tastaturbelegung
ist v&ouml;llig konfus.</para>
</question>
<answer>
<para>&Auml;ltere IBM Laptops verwenden nicht den normalen
Tastaturcontroller, daher m&uuml;ssen Sie dem
Tastaturtreiber (atkbd0) in einen speziellen
ThinkPad-Modus schalten. &Auml;ndern Sie in UserConfig
die 'Flags' f&uuml;r atkbd0 auf 0x4 und das Problem sollte
gel&ouml;st sein. Die Einstellung finden Sie im Men&uuml;
Input.</para>
</answer>
</qandaentry>
<qandaentry>
<question>
<para>Meine Intel EtherExpress 16 wird nicht erkannt.</para>
</question>
<answer>
<para>Sie m&uuml;ssen die Intel EtherExpress 16 so
konfigurieren, da&szlig; 32K Speicher an der Adresse
0xD0000 eingeblendet werden. Benutzen Sie dazu das von
Intel mitgelieferte Programm
<filename>softset.exe</filename>.</para>
</answer>
</qandaentry>
<qandaentry>
<question>
<para>Wenn ich &os; auf meinem EISA HP Netserver
installiere, wird der eingebaute AIC-7xxx SCSI Controller
nicht erkannt.</para>
</question>
<answer>
<para>Dieses Problem ist bekannt, und wird hoffentlich bald
gel&ouml;st werden. Damit Sie &os; installieren
k&ouml;nnen, m&uuml;ssen Sie mit der Option
<option>-c</option> booten, um UserConfig zu starten. Sie
brauchen den CLI-Modus, <emphasis>nicht</emphasis> den
Visual Modus (auch wenn er sch&ouml;ner aussieht). Geben
Sie den folgenden Befehl ein:</para>
<screen><userinput>eisa 12</userinput>
<userinput>quit</userinput></screen>
<para>Statt `quit' k&ouml;nnen Sie auch `visual' eingeben,
um die restliche Konfigurationsarbeit in diesem Modus
erledigen. Die Erzeugung eines angepa&szlig;ten Kernels
wird zwar immer noch empfohlen, allerdings hat dset
gelernt, diesen Wert zu speichern.</para>
<para>Eine Erkl&auml;rung der Ursachen dieses Problems und
weitere Informationen finden Sie im FAQ. Wenn Sie die
Distribution `doc' installiert haben, finden Sie den FAQ
im Verzeichnis /usr/share/doc/FAQ auf Ihrer
Festplatte.</para>
</answer>
</qandaentry>
<qandaentry>
<question>
<para>Mein Panasonic AL-N1 oder Rios Chandler Pentium
Rechner h&auml;ngt sich auf, obwohl das
Installationsprogramm noch gar nicht gestartet
ist.</para>
</question>
<answer>
<para>Aus unerfindlichen Gr&uuml;nden vertragen diese
Rechner die neuen Anweisungen
<literal>i586_copyout</literal> und
<literal>i586_copyin</literal> nicht. Damit diese
Anweisungen nicht verwendet werden, m&uuml;ssen Sie von
der Bootdiskette booten. Im ersten Men&uuml; (die
Frage, ob Sie UserConfig starten wollen oder nicht)
w&auml;hlen Sie den Punkt command-line
interface (<quote>expert mode</quote>). Geben Sie den
folgenden Befehl ein:</para>
<screen><userinput>flags npx0 1</userinput></screen>
<para>Danach k&ouml;nnen Sie den Systemstart normal
fortsetzen. Die Einstellung wird in Ihrem Kernel
gespeichert, Sie m&uuml;ssen Sie also nur einmal
machen.</para>
</answer>
</qandaentry>
<qandaentry>
<question>
<para>Ich habe diesen CMD640 IDE Controller, der angeblich
<quote>broken</quote> ist.</para>
</question>
<answer>
<para>Das stimmt. &os; unterst&uuml;tzt diesen Controller
nicht mehr.</para>
</answer>
</qandaentry>
<qandaentry>
<question>
<para>Auf meinem Compaq Aero Notebook erhalte ich die
Meldung <quote>No floppy devices found! Please check
...</quote>, wenn ich von Diskette installieren
will.</para>
</question>
<answer>
<para>Compaq ist immer etwas anders als andere und sah daher
keinen Grund, das Diskettenlaufwerk im CMOS RAM der Aero
Notebooks einzutragen. Da sich der Treiber auf diese
Angaben verl&auml;&szlig;t, nimmt er an, da&szlig; kein
Diskettenlaufwerk vorhanden ist. Starten Sie UserConfig
und stellen Sie bei fdc0 unter flags den Wert 0x1 ein.
Damit teilen Sie dem Treiber mit, da&szlig; ein 1.44 MByte
Diskettenlaufwerk vorhanden ist, und da&szlig; er die Werte
im CMOS ignorieren soll.</para>
</answer>
</qandaentry>
<qandaentry>
<question>
<para>Wenn ich &os; auf einem Dell Poweredge XE installiere,
wird der Dell-eigene RAID Controller DSA (Dell SCSI Array)
nicht erkannt.</para>
</question>
<answer>
<para>Benutzen Sie das EISA Konfigurationsprogramm, um den
DSA auf AHA-1540 Emulation umzustellen. Danach wird er
von &os; als Adaptec AHA-1540 SCSI Controller auf IRQ 11
und Port 340 erkannt. In diesem Modus k&ouml;nnen Sie das
RAID des DSA nutzen, lediglich die DSA-spezifischen
Funktionen wie die RAID-&Uuml;berwachung stehen nicht zur
Verf&uuml;gung.</para>
</answer>
</qandaentry>
<qandaentry>
<question>
<para>Ich verwende eine Netzwerkkarte vom Typ IBM EtherJet
PCI, die zwar vom Treiber &man.fxp.4; korrekt erkannt
wird, aber trotzdem leuchten die Kontroll-LEDs nicht auf
und ich habe auch keine Verbindung zum Netzwerk.</para>
</question>
<answer>
<para>Wir wissen nicht, was die Ursache dieses Problems ist.
IBM hat das gleiche Problem (wir haben sie gefragt).
Diese Netzwerkkarte ist eine ganz normale Intel
EtherExpress Pro/100 mit einem IBM-Aufkleber, und diese
Netzwerkkarten machen normalerweise gar keine Probleme.
Das Problem tritt auch nur in einigen IBM Netfinity
Servern auf. Die einzige L&ouml;sung ist, eine andere
Netzwerkkarte zu verwenden.</para>
</answer>
</qandaentry>
<qandaentry>
<question>
<para>Wenn ich w&auml;hrend einer Installation auf einer IBM
Netfinity 3500 das Netzwerk konfiguriere, h&auml;ngt sich
das System auf.</para>
</question>
<answer>
<para>Es gibt Probleme mit der eingebauten Netzwerkkarte der
IBM Netfinity 3500, die wir noch nicht genau einkreisen
konnten. Die Ursache des Problems k&ouml;nnte eine falsche
Konfiguration der SMP Unterst&uuml;tzung auf diesen
Systemen sein. Sie m&uuml;ssen eine andere Netzwerkkarte
verwenden und Sie d&uuml;rfen die eingebaute Netzwerkkarte
werden benutzen noch konfigurieren.</para>
</answer>
</qandaentry>
<qandaentry>
<question>
<para>Wenn ich &os; auf einer Festplatte konfiguriere, die
an einem Mylex PCI RAID Controller abgeschlossen ist, kann
ich das System nicht neu starten (Abbruch mit der Meldung
<literal>read error</literal>).</para>
</question>
<answer>
<para>Ein Fehler im Mylex Treiber sorgt daf&uuml;r, da&szlig;
er die BIOS-Einstellung <quote>8GB</quote> Geometrie
ignoriert. Verwenden Sie den 2 GB Modus.</para>
</answer>
</qandaentry>
</qandaset>
</sect2>
</sect1>
@@ -1,246 +0,0 @@
<!--
$FreeBSD$
$FreeBSDde: de-docproj/relnotes/de_DE.ISO8859-1/installation/common/upgrade.sgml,v 1.10 2003/05/24 19:11:45 ue Exp $
basiert auf: 1.11
This section contains the contents of the old UPGRADE.TXT
file.
-->
<sect1 id="upgrading">
<title>Aktualisierung einer &os;-Installation</title>
<para>In diesem Abschnitt erfahren Sie, wie Sie Ihre
&os;-Installation aktualisieren k&ouml;nnen, ohne den Quellcode zu
verwenden.</para>
<warning>
<para>Die Programme, die zur Aktualisierung von &os; verwendet
werden, treffen alle m&ouml;glichen Vorkehrungen, um
Datenverluste zu vermeiden. Allerdings ist es immer noch
m&ouml;glich, da&szlig; Sie bei diesem Schritte <emphasis>den
kompletten Festplatteninhalt</emphasis> verlieren. Sie sollten
die letzte Sicherheitsabfrage nicht best&auml;tigen, bevor Sie
ein ad&auml;quates Backup aller Daten angelegt haben.</para>
</warning>
<important>
<para>Diese Anleitung geht davon aus, da&szlig; Sie das
&man.sysinstall.8;-Programm der <emphasis>NEUEN</emphasis>
&os;-Version zur Aktualisierung verwenden. Die Verwendung der
falschen &man.sysinstall.8;-Version f&uuml;hrt zu Problemen und
hat in der Vergangenheit schon System unbrauchbar gemacht. Ein
typischer Fehler ist die Verwendung des
&man.sysinstall.8;-Programms des installierten Systems, um das
System auf eine neuere &os;-Version zu aktualisieren. Sie
sollten das <emphasis>nicht</emphasis> versuchen.</para>
</important>
<warning>
<para>Sie sollten nicht versuchen, Ihr System mit der
Upgrade-Funktion von &man.sysinstall.8; von &os; 4-STABLE auf
&os; &release.current; zu aktualisieren. Einige in &os;
4-STABLE vorhandene Dateien f&uuml;hren zu Problemen, sie werden
aber bei dieser Art der Aktualisierung nicht entfernt. Ein
drastisches Beispiel ist ein veraltetes
<filename>/usr/include/g++</filename>, das dazu f&uuml;hren
kann, da&szlig; C++ Programme nicht korrekt (oder gar nicht)
&uuml;bersetzt werden.</para>
<para>Diese Anleitung zur Aktualisierung ist nur f&uuml;r Benutzer
gedacht, die schon einen halbwegs aktuellen &os;
&release.branch; Snapshot installiert haben.</para>
</warning>
<sect2>
<title>Einf&uuml;hrung</title>
<para>Bei der Aktualisierung werden die vom Benutzer
ausgew&auml;hlten Distributionen durch die entsprechenden
Distributionen der neuen &os;-Version ersetzt. Die normalen
Konfigurationsdateien des Systems, Benutzerdaten, installierte
Packages und andere Software werden nicht aktualisiert.</para>
<para>Systemadministratoren, die eine Aktualisierung planen,
sollten dieses Kapitel komplett lesen, bevor sie die
Aktualisierung durchf&uuml;hren, um das Risiko eines Fehlschlags
oder Datenverlustes zu vermeiden.</para>
<sect3>
<title>&Uuml;bersicht</title>
<para>Um eine Distribution zu aktualisieren, wird die neue
Version dieser Komponente &uuml;ber die alte Version kopiert.
Die zur alten Version geh&ouml;renden Dateien werden nicht
gel&ouml;scht.</para>
<para>Die Systemkonfiguration bleibt erhalten, da die
urspr&uuml;nglichen Versionen der nachfolgend aufgef&uuml;hrten
Dateien gesichert und zur&uuml;ckgespielt werden:</para>
<para><filename>Xaccel.ini</filename>,
<filename>XF86Config</filename>,
<filename>adduser.conf</filename>,
<filename>aliases</filename>,
<filename>aliases.db</filename>,
<filename>amd.map</filename>,
<filename>crontab</filename>,
<filename>csh.cshrc</filename>,
<filename>csh.login</filename>,
<filename>csh.logout</filename>,
<filename>cvsupfile</filename>,
<filename>dhclient.conf</filename>,
<filename>disktab</filename>,
<filename>dm.conf</filename>,
<filename>dumpdates</filename>,
<filename>exports</filename>,
<filename>fbtab</filename>,
<filename>fstab</filename>,
<filename>ftpusers</filename>,
<filename>gettytab</filename>,
<filename>gnats</filename>,
<filename>group</filename>,
<filename>hosts</filename>,
<filename>hosts.allow</filename>,
<filename>hosts.equiv</filename>,
<filename>hosts.lpd</filename>,
<filename>inetd.conf</filename>,
<filename>localtime</filename>,
<filename>login.access</filename>,
<filename>login.conf</filename>,
<filename>mail</filename>,
<filename>mail.rc</filename>,
<filename>make.conf</filename>,
<filename>manpath.config</filename>,
<filename>master.passwd</filename>,
<filename>motd</filename>,
<filename>namedb</filename>,
<filename>networks</filename>,
<filename>newsyslog.conf</filename>,
<filename>nsmb.conf</filename>,
<filename>nsswitch.conf</filename>,
<filename>pam.conf</filename>,
<filename>passwd</filename>,
<filename>periodic</filename>,
<filename>ppp</filename>,
<filename>printcap</filename>,
<filename>profile</filename>,
<filename>pwd.db</filename>,
<filename>rc.conf</filename>,
<filename>rc.conf.local</filename>,
<filename>rc.firewall</filename>,
<filename>rc.local</filename>,
<filename>remote</filename>,
<filename>resolv.conf</filename>,
<filename>rmt</filename>,
<filename>sendmail.cf</filename>,
<filename>sendmail.cw</filename>,
<filename>services</filename>,
<filename>shells</filename>,
<filename>skeykeys</filename>,
<filename>spwd.db</filename>,
<filename>ssh</filename>,
<filename>syslog.conf</filename>,
<filename>ttys</filename>,
<filename>uucp</filename></para>
<para>Die zur neuen Version geh&ouml;renden Versionen dieser
Dateien werden im Verzeichnis
<filename>/etc/upgrade/</filename> abgelegt. Sie sollten
einen Blick auf diese Dateien werfen und gegebenenfalls die Neuerungen
in das bestehende System einarbeiten. Allerdings gibt es
viele Wechselwirkungen zwischen den einzelnen Dateien; daher
empfehlen wir Ihnen, alle lokalen Anpassungen in die neuen
Dateien einzutragen und dann diese zu verwenden.</para>
<para>W&auml;hrend der Aktualisierung werden Sie gebeten, ein
Verzeichnis anzugeben, in dem Kopien aller Dateien aus dem
Verzeichnis <filename>/etc/</filename> abgelegt werden. Falls
Sie &Auml;nderungen in anderen Dateien vorgenommen haben,
k&ouml;nnen Sie diese aus diesem Verzeichnis
restaurieren.</para>
</sect3>
</sect2>
<sect2>
<title>Vorgehensweise</title>
<para>In diesem Abschnitt finden Sie Details zur Vorgehensweise
bei der Aktualisierung, dabei wird ein besonderes Augenmerk auf
die Punkte gelegt, bei denen besonders stark vor einer normalen
Installation abgewichen wird.</para>
<sect3>
<title>Datensicherung</title>
<para>Sie sollten Kopien der Benutzerdaten und
Konfigurationsdateien anlegen, bevor Sie das System
aktualisieren. Das Programm zur Aktualisierung versucht,
Fehler und Fehlbedienungen so weit wie m&ouml;glich zu
verhindern, aber es ist immer noch m&ouml;glich, da&szlig;
Daten oder Konfigurationsinformationen teilweise oder
vollst&auml;ndig gel&ouml;scht werden.</para>
</sect3>
<sect3>
<title>Mounten der Dateisysteme</title>
<para>Im <literal>disklabel editor</literal> werden die
vorhandenen Dateisysteme aufgef&uuml;hrt. Sie sollten vor dem
Beginn der Aktualisierung eine Liste der vorhandenen
Ger&auml;tenamen und der dazugeh&ouml;rigen Mountpoints
anlegen. Die Namen der Mountpoints m&uuml;ssen hier angegeben
werden. Sie d&uuml;rfen das <quote>newfs flag</quote>
f&uuml;r die Dateisysteme <emphasis>auf gar keinen
Fall</emphasis> aktivieren, da Sie sonst Daten verlieren
werden.</para>
</sect3>
<sect3>
<title>Auswahl der Distributionen</title>
<para>Es gibt keine Einschr&auml;nkungen bei der Auswahl der zu
aktualisierenden Distributionen. Allerdings sollten Sie die
Distribution <literal>base</literal> auf jeden Fall
aktualisieren; wenn Sie die Onlinehilfe installiert hatten,
sollte auch die Distribution <literal>man</literal>
aktualisieren. Wenn Sie zus&auml;tzliche Funktionalit&auml;t
hinzuf&uuml;gen wollen, k&ouml;nnen Sie auch Distributionen
ausw&auml;hlen, die bisher noch nicht installiert
waren.</para>
</sect3>
<sect3 id="fstab">
<title>Nach der Installation</title>
<para>Sobald die Installation abgeschlossen ist, werden Sie
aufgefordert, die neuen Konfigurationsdatei zu pr&uuml;fen. Zu
diesem Zeitpunkt sollten Sie &uuml;berpr&uuml;fen, ob die neue
Konfiguration korrekt ist. Dabei sollten Sie besonders auf
die Inhalte der Dateien <filename>/etc/rc.conf</filename> und
<filename>/etc/fstab</filename> achten.</para>
</sect3>
</sect2>
<sect2>
<title>Aktualisierung &uuml;ber den Quellcode</title>
<para>Wenn Sie an einer flexibleren und ausgefeilteren
M&ouml;glichkeit zur Aktualisierung Ihres Systems interessiert
sind, sollten Sie einen Blick in das Kapitel <ulink
url="http://www.FreeBSD.org/doc/de_DE.ISO8859-1/books/handbook/cutting-edge.html">The
Cutting Edge</ulink> des &os; Handbuchs werfen. Bei dieser
Variante erzeugen Sie &os; aus dem Quellcode komplett neu.
Diese Variante braucht eine verl&auml;&szlig;liche
Netzwerkverbindung, mehr Plattenplatz und mehr Zeit, bietet aber
Vorteile f&uuml;r Netzwerke und andere komplexe Installationen.
Sie entspricht ungef&auml;hr der Vorgehensweise, die f&uuml;r die
Entwicklungszweige -STABLE und -CURRENT verwendet wird.</para>
<para><filename>/usr/src/UPDATING</filename> enth&auml;lt wichtige
Informationen, wenn Sie ein &os; System mit Hilfe des Quellcodes
aktualisieren m&ouml;chten. Hier finden Sie eine Liste aller
Probleme, die durch &Auml;nderungen in &os; auftreten
k&ouml;nnen und die Aktualisierung beeinflussen
k&ouml;nnten.</para>
</sect2>
</sect1>
@@ -1,23 +0,0 @@
# $FreeBSD$
# $FreeBSDde: de-docproj/relnotes/de_DE.ISO8859-1/installation/i386/Makefile,v 1.2 2002/03/10 18:41:43 ue Exp $
# $Id: Makefile,v 1.3 2002/03/10 15:37:18 ue Exp $
# basiert auf: 1.4
RELN_ROOT?= ${.CURDIR}/../../..
DOC?= article
FORMATS?= html
INSTALL_COMPRESSED?= gz
INSTALL_ONLY_COMPRESSED?=
# SGML content
SRCS+= article.sgml
SRCS+= ../common/artheader.sgml
SRCS+= ../common/abstract.sgml
SRCS+= ../common/install.sgml
SRCS+= ../common/layout.sgml
SRCS+= ../common/trouble.sgml
SRCS+= ../common/upgrade.sgml
.include "${RELN_ROOT}/share/mk/doc.relnotes.mk"
.include "${DOC_PREFIX}/share/mk/doc.project.mk"
@@ -1,32 +0,0 @@
<!--
$FreeBSD$
$FreeBSDde: de-docproj/relnotes/de_DE.ISO8859-1/installation/i386/article.sgml,v 1.5 2002/12/07 21:09:56 ue Exp $
basiert auf: 1.4
-->
<!DOCTYPE article PUBLIC "-//FreeBSD//DTD DocBook V4.1-Based Extension//EN" [
<!ENTITY % man PUBLIC "-//FreeBSD//ENTITIES DocBook Manual Page Entities//EN">
%man;
<!ENTITY % authors PUBLIC "-//FreeBSD//ENTITIES DocBook Author Entities//EN">
%authors;
<!ENTITY % mlists PUBLIC "-//FreeBSD//ENTITIES DocBook Mailing List Entities//DE">
%mlists;
<!ENTITY % release PUBLIC "-//FreeBSD//ENTITIES Release Specification//EN">
%release;
<!ENTITY % sections SYSTEM "../common/install.ent"> %sections;
<!-- Architecture-specific customization -->
<!ENTITY arch "i386">
<!ENTITY arch.print "i386">
]>
<article lang="de">
&artheader;
&abstract;
&sect.install;
&sect.layout;
&sect.upgrade;
&sect.trouble;
</article>
@@ -1,22 +0,0 @@
# $FreeBSD$
# $FreeBSDde: de-docproj/relnotes/de_DE.ISO8859-1/installation/ia64/Makefile,v 1.1 2002/11/09 20:07:25 ue Exp $
# basiert auf: 1.1
RELN_ROOT?= ${.CURDIR}/../../..
DOC?= article
FORMATS?= html
INSTALL_COMPRESSED?= gz
INSTALL_ONLY_COMPRESSED?=
# SGML content
SRCS+= article.sgml
SRCS+= ../common/artheader.sgml
SRCS+= ../common/abstract.sgml
SRCS+= ../common/install.sgml
SRCS+= ../common/layout.sgml
SRCS+= ../common/trouble.sgml
SRCS+= ../common/upgrade.sgml
.include "${RELN_ROOT}/share/mk/doc.relnotes.mk"
.include "${DOC_PREFIX}/share/mk/doc.project.mk"
@@ -1,33 +0,0 @@
<!--
$FreeBSD$
$FreeBSDde: de-docproj/relnotes/de_DE.ISO8859-1/installation/ia64/article.sgml,v 1.1 2002/11/09 20:07:25 ue Exp $
basiert auf: 1.1
-->
<!DOCTYPE article PUBLIC "-//FreeBSD//DTD DocBook V4.1-Based Extension//EN" [
<!ENTITY % man PUBLIC "-//FreeBSD//ENTITIES DocBook Manual Page Entities//EN">
%man;
<!ENTITY % authors PUBLIC "-//FreeBSD//ENTITIES DocBook Author Entities//EN">
%authors;
<!ENTITY % mlists PUBLIC "-//FreeBSD//ENTITIES DocBook Mailing List Entities//DE">
%mlists;
<!ENTITY % release PUBLIC "-//FreeBSD//ENTITIES Release Specification//EN">
%release;
<!ENTITY % sections SYSTEM "../common/install.ent"> %sections;
<!-- Architecture-specific customization -->
<!ENTITY arch "ia64">
<!ENTITY arch.print "IA-64">
]>
<article lang="de">
&artheader;
&abstract;
&sect.install;
&sect.layout;
&sect.upgrade;
&sect.trouble;
</article>
@@ -1,22 +0,0 @@
# $FreeBSD$
# $FreeBSDde: de-docproj/relnotes/de_DE.ISO8859-1/installation/pc98/Makefile,v 1.1 2002/07/08 18:41:45 ue Exp $
# basiert auf: 1.1
RELN_ROOT?= ${.CURDIR}/../../..
DOC?= article
FORMATS?= html
INSTALL_COMPRESSED?= gz
INSTALL_ONLY_COMPRESSED?=
# SGML content
SRCS+= article.sgml
SRCS+= ../common/artheader.sgml
SRCS+= ../common/abstract.sgml
SRCS+= ../common/install.sgml
SRCS+= ../common/layout.sgml
SRCS+= ../common/trouble.sgml
SRCS+= ../common/upgrade.sgml
.include "${RELN_ROOT}/share/mk/doc.relnotes.mk"
.include "${DOC_PREFIX}/share/mk/doc.project.mk"
@@ -1,32 +0,0 @@
<!--
$FreeBSD$
$FreeBSDde: de-docproj/relnotes/de_DE.ISO8859-1/installation/pc98/article.sgml,v 1.2 2002/10/12 18:02:23 ue Exp $
basiert auf: 1.1
-->
<!DOCTYPE article PUBLIC "-//FreeBSD//DTD DocBook V4.1-Based Extension//EN" [
<!ENTITY % man PUBLIC "-//FreeBSD//ENTITIES DocBook Manual Page Entities//EN">
%man;
<!ENTITY % authors PUBLIC "-//FreeBSD//ENTITIES DocBook Author Entities//EN">
%authors;
<!ENTITY % mlists PUBLIC "-//FreeBSD//ENTITIES DocBook Mailing List Entities//DE">
%mlists;
<!ENTITY % release PUBLIC "-//FreeBSD//ENTITIES Release Specification//EN">
%release;
<!ENTITY % sections SYSTEM "../common/install.ent"> %sections;
<!-- Architecture-specific customization -->
<!ENTITY arch "pc98">
<!ENTITY arch.print "NEC PC-98x1">
]>
<article lang="de">
&artheader;
&abstract;
&sect.install;
&sect.layout;
&sect.upgrade;
&sect.trouble;
</article>
@@ -1,20 +0,0 @@
# $FreeBSD$
# $FreeBSDde: de-docproj/relnotes/de_DE.ISO8859-1/installation/sparc64/Makefile,v 1.1 2002/03/14 18:23:47 ue Exp $
# basiert auf: 1.1
RELN_ROOT?= ${.CURDIR}/../../..
DOC?= article
FORMATS?= html
INSTALL_COMPRESSED?= gz
INSTALL_ONLY_COMPRESSED?=
# SGML content
SRCS+= article.sgml
SRCS+= install.sgml
SRCS+= ../common/artheader.sgml
SRCS+= ../common/install.sgml
SRCS+= ../common/layout.sgml
.include "${RELN_ROOT}/share/mk/doc.relnotes.mk"
.include "${DOC_PREFIX}/share/mk/doc.project.mk"
@@ -1,34 +0,0 @@
<!--
$FreeBSD$
$FreeBSDde: de-docproj/relnotes/de_DE.ISO8859-1/installation/sparc64/article.sgml,v 1.3 2002/11/16 12:10:42 ue Exp $
basiert auf: 1.4
-->
<!DOCTYPE article PUBLIC "-//FreeBSD//DTD DocBook V4.1-Based Extension//EN" [
<!ENTITY release.url "ftp://ftp.FreeBSD.org/pub/FreeBSD/development/sparc64/">
<!ENTITY % man PUBLIC "-//FreeBSD//ENTITIES DocBook Manual Page Entities//EN">
%man;
<!ENTITY % authors PUBLIC "-//FreeBSD//ENTITIES DocBook Author Entities//EN">
%authors;
<!ENTITY % mlists PUBLIC "-//FreeBSD//ENTITIES DocBook Mailing List Entities//DE">
%mlists;
<!ENTITY % release PUBLIC "-//FreeBSD//ENTITIES Release Specification//EN">
%release;
<!ENTITY % sections SYSTEM "../common/install.ent"> %sections;
<!-- Architecture-specific customization -->
<!ENTITY arch "sparc64">
<!ENTITY arch.print "UltraSPARC">
]>
<article lang="de">
&artheader;
&abstract;
&sect.install;
&sect.layout;
&sect.upgrade;
&sect.trouble;
</article>
@@ -1,619 +0,0 @@
<!--
$FreeBSD$
$FreeBSDde: de-docproj/relnotes/de_DE.ISO8859-1/installation/sparc64/install.sgml,v 1.10 2003/01/13 20:30:51 ue Exp $
basiert auf: 1.14
This file contains sparc64-specific installation instructions.
-->
<sect1 id="install">
<title>Installation von &os;</title>
<para>Hier finden Sie Informationen, wie Sie die &arch; Version
installieren und booten k&ouml;nnen. Wenn Sie diese Version
benutzen, sollten Sie sich auf jeden Fall auf der Mailingliste
&a.sparc; eintragen.</para>
<warning>
<para>Die weiter unten genannten Programme und Kernel sind
experimenteller Natur; z.B. enth&auml;lt der Kernel
&Auml;nderungen bei der Behandlung von ATA und EEPOMS, die
potentiell gef&auml;hrlich sind. Wenn Sie sich nicht mit &os;
und &arch; auskennen oder nicht bereit sind, selbst Hand
anzulegen, um Probleme und Sch&auml;den zu beseitigen, sollten
Sie besser die Finger von dieser Version lassen.</para>
</warning>
<para>[Anmerkung des &Uuml;bersetzers: Diese Warnung ist nicht im
Sinne der &uuml;blichen <quote>Bitte nutzen Sie Ihre Mikrowelle
nicht zum Trocknen von kleinen Kindern und Hunden</quote> Hinweise
zu verstehen, die meinen das ernst.]</para>
<para>F&uuml;r &os;/&arch; gibt das von &os;/i386 und &os;/alpha
verwendete &man.sysinstall.8; nicht. Zur Installation m&uuml;ssen
Sie einen Kernel (von CD oder &uuml;ber ein Netzwerk) auf das
&arch; System laden, das Root-Dateisystem liegt entweder auf der
CD oder wird via NFS exportiert. Die Programme auf dem
Root-Dateisystem k&ouml;nnen dann dazu genutzt werden, die lokale
Festplatte zu partitionieren. Sie k&ouml;nnen danach die &os;
Distribution auf die lokale Festplatte kopieren, um ein
eigenst&auml;ndiges System zu bekommen.</para>
<para>Es gibt zwei Varianten bei der Installation von &os;/&arch;
auf einem System. Die einfachere Variante ist die Installation
von CD, dadurch k&ouml;nnen Sie &os; installieren, ohne auf andere
Rechner angewiesen zu sein.</para>
<para>Wenn Sie nicht von CD installieren k&ouml;nnen oder wollen,
k&ouml;nnen Sie alternativ auch &uuml;ber ein Netzwerk
installieren. Dazu ben&ouml;tigen Sie eine andere Maschine, die
so konfiguriert ist, da&szlig; sie der neuen Maschine Boot Loader,
Kernel und Root-Dateisystem zur Verf&uuml;gung stellt. Dazu
werden RARP, TFTP und BOOTP oder DHPC genutzt. Dieser
<literal>netboot</literal> Server kann ein anderes &os; System
sein, aber das ist nicht unbedingt notwendig.</para>
<para>Sie m&uuml;ssen sich f&uuml;r eine der beiden Varianten
entscheiden, da Sie f&uuml;r die beiden Versionen unterschiedliche
Dateien ben&ouml;tigen; au&szlig;erdem unterscheidet sich die
Vorgehensweise bei den beiden Varianten deutlich.</para>
<important>
<para>Die hier genannten URLs sind vorl&auml;ufig und k&ouml;nnen
sich jederzeit &auml;ndern. Sie sollten im Zweifelsfall einen
Blick in das Archiv der Mailingliste &a.sparc; werfen, um die
derzeit aktuellen URLs zu erhalten. Wenn sich die Situation
stabilisiert hat, wird dieser Hinweis entfernt.</para>
<para>[Anmerkung des &Uuml;bersetzers: Aus genau diesem Grund
finden Sie hier noch keine Verweise auf deutsche Server.</para>
</important>
<sect2 id="getting-to-prom-prompt">
<title>Start von OpenBoot</title>
<para>Die meisten &arch; Systeme booten automatisch von
Festplatte. Wenn Sie &os; installieren wollen, m&uuml;ssen Sie
den Startvorgang abbrechen, um zur OpenBoot Eingabeaufforderung
zu gelangen.</para>
<para>Dazu m&uuml;ssen Sie das System und auf die Boot-Meldung
warten. Diese ist zwar modellabh&auml;ngig, sollte aber wie
folgt aussehen:</para>
<screen>Sun Blade 100 (UltraSPARC-IIe), Keyboard Present
Copyright 1998-2001 Sun Microsystems, Inc. All rights reserved.
OpenBoot 4.2, 128 MB memory installed, Serial #51090132.
Ethernet address 0:3:ba:b:92:d4, Host ID: 830b92d4.</screen>
<para>Wenn Ihr System jetzt von Festplatte startet, m&uuml;ssen
Sie die Tastenkombination <keycombo
action="simul"><keycap>L1</keycap><keycap>A</keycap></keycombo>
oder <keycombo
action="simul"><keycap>Stop</keycap><keycap>A</keycap></keycombo>
dr&uuml;cken. Wenn Sie eine serielle Konsole verwenden,
m&uuml;ssen Sie ein <command>BREAK</command> senden (z.B. durch
die Eingabe von <command>~#</command> in &man.tip.1; oder
&man.cu.1;). Danach sollten Sie die Eingabeaufforderung von
OpenBoot sehen, die wie folgt aussieht:</para>
<screenco>
<areaspec>
<area id="prompt-single" coords="1 5">
<area id="prompt-smp" coords="2 5">
</areaspec>
<screen><prompt>ok </prompt>
<prompt>ok {0} </prompt></screen>
<calloutlist>
<callout arearefs="prompt-single">
<para>Diese Variante wird auf Systemen mit nur einer CPU
benutzt.</para>
</callout>
<callout arearefs="prompt-smp">
<para>Diese Varianten wird von SMP Systemen benutzt, die
Zahl ist die Nummer der aktiven CPU.</para>
</callout>
</calloutlist>
</screenco>
</sect2>
<sect2 id="prepare-cd">
<title>Vorbereitungen f&uuml;r die Installation von CD</title>
<para>Wenn Sie von CD installieren wollen, finden Sie ein ISO
Image mit einem Schnappschu&szlig; der aktuellen Version von
&os;/&arch; bei <ulink url="&release.url;"></ulink>. Mit dieser
Datei k&ouml;nnen Sie eine bootf&auml;hige CD erzeugen, auf der
sich alle notwendigen Dateien f&uuml;r den Systemstart und die
Erzeugung einer minimalen &os; Installation befinden.</para>
<!-- XXX ISO location?-->
<para>Legen Sie die CD ein, und wechseln Sie wie oben beschrieben
zur Eingabeaufforderung von OpenBoot. Geben Sie jetzt
<command>boot cdrom</command> ein. Das System sollte jetzt in
Single-User-Mode starten, danach k&ouml;nnen Sie die Festplatte
partitionieren und das Basissystem installieren, wie in <xref
linkend="creating-disk-label"> und <xref
linkend="creating-root-filesystem"> beschrieben.</para>
</sect2>
<sect2 id="prepare-network">
<title>Vorbereitungen f&uuml;r die Netzwerk-Installation</title>
<para>Um den &os;/&arch; Kernel zu starten, mu&szlig; die Firmware
den <application>Loader</application> laden und starten, dieser
l&auml;dt und startet dann den eigentlichen Kernel. Dazu
m&uuml;ssen Sie &man.rarpd.8; und &man.tftpd.8; (f&uuml;r die
Firmware) bzw. &man.bootpd.8; (f&uuml;r den
<application>Loader</application>) konfigurieren. Der Loader
kann TFTP oder NFS nutzen, um den Kernel zu laden. Weitere
Informationen dazu finden Sie in den folgenden Kapiteln.</para>
<sect3 id="downloading">
<title>Download der ben&ouml;tigten Dateien</title>
<para>Wenn Sie &uuml;ber ein Netzwerk installieren wollen,
brauchen Sie mehrere Dateien. Die erste ist der &os;/&arch;
Loader, der von &man.tftpd.8; f&uuml;r Ihr &arch; System
bereitgestellt wird. Der Nutzer benutzt entweder TFTP oder
NFS, um den &os; Kernel vom Netboot Server zu laden. F&uuml;r
jede dieser beiden Methoden gibt es einen separaten Loader
(also einen f&uuml;r TFTP und einen f&uuml;r NFS). Sie
brauchen also nur eine dieser beiden Dateien:</para>
<itemizedlist>
<listitem>
<para><ulink
url="&release.url;loader-tftp.gz"></ulink></para>
</listitem>
<listitem>
<para><ulink
url="&release.url;loader-nfs.gz"></ulink></para>
</listitem>
</itemizedlist>
<para>Die zweite Datei ist der Kernel, der dem bootenden System
zur Verf&uuml;gung gestellt wird. Diese Datei finden Sie auf
<ulink url="&release.url;"></ulink>.</para>
<!-- XXX kernel filename?-->
<para>Die dritte (und letzte) Datei ist das &man.tar.1; Archiv
mit den Programmen und Konfigurationsdateien des Basissystems.
Dieses Archiv finden Sie hier: <ulink
url="&release.url;distrib.tar.gz"></ulink>.</para>
</sect3>
<sect3>
<title>rarpd</title>
<para>Sie m&uuml;ssen die Ethernet-Adresse Ihres &os;/&arch;
System auf dem Netboot Server in die Datei
<filename>/etc/ethers</filename> eintragen. Die Eintr&auml;ge
sehen wie folgt aus:</para>
<programlisting>0:3:ba:b:92:d4 your.host.name</programlisting>
<para>Sie finden die Ethernet-Adresse in der Boot-Meldung Ihres
Systems.</para>
<para>Vergewissern Sie sich, da&szlig; in
<filename>/etc/hosts</filename> ein Eintrag f&uuml;r
<hostid>your.host.name</hostid> steht. Alternativ k&ouml;nnen
Sie einen entsprechenden DNS-Eintrag verwenden oder gleich
eine IP-Adresse verwenden. Danach m&uuml;ssen Sie
&man.rarpd.8; auf einem Netzwerk-Interface starten, das sich
im gleichen Subnetz wie Ihr &os;/&arch; System
befindet.</para>
</sect3>
<sect3>
<title>tftpd</title>
<para>In der Konfiguration von &man.inetd.8; mu&szlig;
&man.tftpd.8; aktiviert werden. Dazu m&uuml;ssen Sie in der
Datei <filename>/etc/inetd.conf</filename> das
Kommentarzeichen vor der folgenden Zeile entfernen:</para>
<programlisting>tftp dgram udp wait nobody /usr/libexec/tftpd tftpd /tftpboot</programlisting>
<para>Entpacken Sie den Loader und kopieren Sie ihn in das
Verzeichnis <filename>/tftpboot</filename>. Allerdings
k&ouml;nnen Sie der Datei keinen beliebigen Namen geben. Der
Dateiname mu&szlig; die IP-Adresse des &os;/&arch; in
hexadezimaler Notation in Gro&szlig;buchstaben und ohne Punkte
sein. Es ist nicht notwendig, die Datei umzubenennen, Sie
k&ouml;nnen auch einen symbolischen Link verwenden. Wenn die
IP-Adresse des &os;/&arch; Systems
<hostid>192.168.0.16</hostid> ist, w&uuml;rde Ihr
<filename>/tftpboot</filename>-Verzeichnis so
aussehen:</para>
<screen> lrwx------ 1 tmm users 9 Jul 24 17:05 /tftpboot/C0A80010 -> boot/loader
-rw-r--r-- 1 tmm users 1643021 Oct 20 18:04 /tftpboot/boot/loader</screen>
<para>Wenn Sie Probleme beim Systemstart haben, sollten Sie die
TFTP Anfragen mit &man.tcpdump.1; kontrollieren. Dadurch
sehen Sie, welchen Dateinamen Sie f&uuml;r den Loader benutzen
m&uuml;ssen. Fehlermeldungen des TFTP Servers werden in der
Regel durch falsche Berechtigungen verursacht.</para>
</sect3>
<sect3>
<title>Konfiguration von bootpd/dhcpd</title>
<para>Sie k&ouml;nnen entweder BOOTP oder DHCP (nicht beide
gleichzeitig) verwenden, um den Loader mit Informationen (wie
der IP-Adresse des Systems) zu versorgen. Wenn Sie ein &os;
System als Netboot Server benutzen, wird die BOOTP
Funktionalit&auml;t von &man.bootpd.8; bereitgestellt, der ein
Teil des &os; Basissystems ist. In der &os; Ports Collection
finden Sie verschiedene DHCP Server.</para>
<para>Wenn Sie &man.bootpd.8; benutzen, m&uuml;ssen Sie in
<filename>/etc/bootptab</filename> entsprechende Eintr&auml;ge
(Details finden Sie in &man.bootptab.5;) f&uuml;r Ihr
&os;/&arch; System erzeugen:</para>
<programlisting>.default:\
:bf="kernel":dn=local:ds=<replaceable>name-server-ip-address</replaceable>:\
:gw=<replaceable>gateway-ip-address</replaceable>:ht=ether:hd="/tftpboot/boot/kernel":hn:\
:sa="<replaceable>tftp-server-ip-address</replaceable>":\
:rp="<replaceable>tftp-server-ip-address</replaceable>:<replaceable>nfs-root-directory</replaceable>":\
:sm=<replaceable>ip-netmask</replaceable>
<replaceable>Name-des-Eintrags</replaceable>:\
ha=<replaceable>sparc64-ethernet-address</replaceable>:ip=<replaceable>sparc64-ip-address</replaceable>:tc=.default</programlisting>
<para>Die Ethernet-Adresse mu&szlig; mit der Adresse
&uuml;bereinstimmen, die Sie f&uuml;r TFTP verwendet haben;
allerdings mu&szlig; hier die hexadezimale Notation ohne
Doppelpunkte verwendet werden (f&uuml;r das oben verwendete
Beispiel w&auml;re das <literal>0003ba0b92d4</literal>). Sie
k&ouml;nnen die NFS/TFTP-spezifischen Eintr&auml;ge weglassen,
wenn Sie diese Variante nicht verwenden. Die Werte f&uuml;r
<literal>hd</literal> und <literal>bf</literal> werden
zusammengesetzt, um Dateinamen der zu bootenden Datei zu
erhalten. Wenn der Dateiname Ihres Kernels anders ist oder
Sie ein anderes Verzeichnis verwenden, m&uuml;ssen Sie diese
Werte anpassen. Wenn Sie NFS verwenden, sollten Sie die
Einstellungen <literal>bf</literal> und <literal>hd</literal>
entfernen oder dort das Verzeichnis und den Dateinamen im NFS
Root Dateisystem eintragen, in dem der Kernel liegt.
&Uuml;blicherweise wird f&uuml;r den Namen des Eintrags der
Hostname des Zielsystems ohne die Domain verwendet.</para>
<para>Wenn Sie einen DHCP Server verwenden, brauchen Sie einen
Eintrag in der <filename>dhcpd.conf</filename>. Ein Beispiel
f&uuml;r einen solchen Eintrag f&uuml;r den <application>ISC
DHCP</application> Version 2 (in der &os; Ports Collection
als <filename role="package">net/isc-dhcp2</filename>
erh&auml;ltlich) finden Sie weiter unten:</para>
<programlisting>host <replaceable>name-of-entry</replaceable> {
hardware ethernet <replaceable>sparc64-ethernet-address</replaceable>;
option host-name "<replaceable>sparc64-fully-qualified-domain-name</replaceable>";
fixed-address <replaceable>sparc64-ip-address</replaceable>;
always-reply-rfc1048 on;
filename "kernel";
option root-path "<replaceable>tftp-server-ip-address</replaceable>:<replaceable>nfs-root-directory</replaceable>";
}</programlisting>
<para>Die Option <literal>filename</literal> entspricht dem
zusammengesetzten Wert von <literal>hd</literal> und
<literal>bf</literal> in <filename>/etc/bootptab</filename>.
Die Ethernet-Adresse wird in hexadezimaler Notation mit
Doppelpunkten angaben, genau wie bei &man.rarpd.8;.
<literal>options root-path</literal> entspricht der
<literal>rp</literal> in <filename>/etc/bootptab</filename>.
Wenn der in <literal>option host-name</literal> angegebene
Name aufgel&ouml;st werden kann, also einen Eintrag im DNS
oder in <filename>/etc/hosts</filename> hat, kann auf die
Angabe von <literal>fixed-address</literal> verzichtet
werden.</para>
</sect3>
<sect3>
<title>Laden des Kernels</title>
<para>Wenn Sie die Daemonen auf dem Netboot Server konfiguriert
haben, m&uuml;ssen Sie im n&auml;chsten Schritt den Kernel an
die richtige Stelle kopieren (Informationen, woher Sie den
Kernel bekommen k&ouml;nnen, finden Sie in <xref
linkend="downloading">). Es gibt zwei M&ouml;glichkeiten, um
den Kernel &uuml;ber ein Netzwerk zu laden: TFTP oder NFS.
Welche der beiden Alternativen Sie verwenden, haben Sie
bereits bei der Auswahl des Loaders festgelegt.</para>
<para>Sowohl bei TFTP als auch bei NFS wird der Loader die via
BOOTP oder DHCP erhaltenen Informationen verwenden, um den
Kernel zu finden.</para>
<sect4>
<title>Laden des Kernels mit TFTP</title>
<para>Legen Sie den Kernel an die Stelle, die Sie in der
<filename>/etc/bootptab</filename> mit <literal>bf</literal>
und <literal>hd</literal> bzw. in der
<filename>dhcpd.conf</filename> mit
<literal>filename</literal> angegeben haben.</para>
</sect4>
<sect4>
<title>Laden des Kernels via NFS</title>
<para>Exportieren Sie das Verzeichnis, das Sie in der
<filename>/etc/bootptab</filename> unter
<literal>rp</literal> bzw. in der
<filename>dhcpd.conf</filename> mit
<literal>root-path</literal> definiert haben (siehe
&man.exports.5;). Kopieren Sie den Kernel in das
Verzeichnis, das Sie in der
<filename>/etc/bootptab</filename> mit <literal>bf</literal>
und <literal>hd</literal> bzw. in der
<filename>dhcpd.conf</filename> mit
<literal>filename</literal> angegeben haben.</para>
</sect4>
</sect3>
<sect3>
<title>Installation des Basissystems auf dem NetBoot
Server</title>
<para>Sie m&uuml;ssen das Archiv mit dem Verzeichnis entpacken,
das Sie in der <filename>/etc/bootptab</filename> unter
<literal>rp</literal> bzw. in der
<filename>dhcpd.conf</filename> mit
<literal>root-path</literal> definiert haben. Dieses
Verzeichnis wird nach dem Start des Kernels zum Root
Dateisystem f&uuml;r &arch; werden. Neben den &uuml;blichen
Benutzerprogrammen enth&auml;lt es alle notwendigen Programme,
um das Basissystem auf der lokalen Festplatte des &arch;
Systems zu installieren.</para>
<para>Sie werden wahrscheinlich die auf dem Netboot Server zur
Verf&uuml;gung stehenden Programme verwenden wollen, um die
von &arch; verwendete <filename>/etc/fstab</filename> und
<filename>/etc/rc.conf</filename> anzupassen und das
<username>root</username> Pa&szlig;wort zu
&auml;ndern.</para>
</sect3>
<sect3>
<title>Start des Systems</title>
<para>Wenn Sie alles richtig gemacht haben, sollten Sie jetzt
&os; auf Ihrem &arch; System starten, indem Sie zur
Eingabeaufforderung von OpenBoot wechseln, wie in <xref
linkend="getting-to-prom-prompt"> beschrieben. Wenn sie jetzt
<command>boot net</command> eingeben, sollte das System
hochfahren. Um genau zu sein, der Loader wird mit TFTP
geladen, setzt dann einen BOOTP Request ab und l&auml;dt den
Kernel via TFTP oder NFS, je nach verwendeter Variante des
Loaders. Danach sollte es 10 Sekunden auf eine Eingabe warten
und anschlie&szlig;end den Kernel starten.</para>
<para>Wenn irgend etwas nicht funktioniert und Sie ein Problem
mit TFTP/NFS/BOOTP vermuten, sollten Sie zur Fehlersuche
<application>Ethereal</application> (<filename
role="package">net/ethereal</filename> in der &os; Ports
Collection) verwenden. In den meisten F&auml;llen werden die
Probleme durch falsche Zugriffsrechte f&uuml;r die Dateien
verursacht. Weiterhin ist es in einigen F&auml;llen
m&ouml;glich, da&szlig; &man.rarpd.8; nicht reagiert, weitere
Informationen finden Sie in der Onlinehilfe.</para>
</sect3>
</sect2>
<sect2 id="creating-disk-label">
<title>Aufteilung der Festplatte</title>
<para>Der Kernel unterst&uuml;tzt das von Sun f&uuml;r den
<literal>Disk Label</literal> verwendete Format, sie k&ouml;nnen
die f&uuml;r &os; verwendete Platte also auch mit Solaris
partitionieren.</para>
<para>Da es f&uuml;r &os;/&arch; noch kein &man.sysinstall.8;
gibt, m&uuml;ssen Sie das Disk Label manuell erzeugen, wenn Sie
&os;/&arch; &os; verwenden. Weitere Informationen zu diesem
Thema k&ouml;nnen Sie dem <ulink
url="http://www.FreeBSD.org/doc/de_DE.ISO8859-1/books/handbook/">FreeBSD
Handbuch</ulink> entnehmen.</para>
<para>Bei &os;/&arch; mu&szlig; ein Sun-kompatibles Label in das
&os; Label eingebettet werden, damit OpenBoot von der Platte
booten kann. Dadurch ergibt sich eine zus&auml;tzliche
Einschr&auml;nkung: Der Anfang der Partitionen mu&szlig; auf
einer Zylindergrenze liegen.</para>
<para>Um ein Disk Label zu erzeugen, sollten Sie wie folgt
vorgehen:</para>
<procedure>
<step>
<para>Erzeugen sie mit <command>disklabel -w -r
<replaceable>device</replaceable> auto</command> ein leeres
Standard-Label. Der dritte Parameter ist der Name des
Ger&auml;tes, nicht der komplette Pfad zur Node f&uuml;r
dieses Ger&auml;t (z.B. <devicename>ad0</devicename>
f&uuml;r die erste ATA Festplatte).</para>
</step>
<step>
<para>Mit dem Befehl <command>disklabel -e
<replaceable>device</replaceable></command> starten Sie
einen Editor, in dem Sie das Disk Label bearbeiten
k&ouml;nnen. Das Disk Label sieht wie folgt aus:</para>
<screen># /dev/ad6c:
type: unknown
disk: amnesiac
label:
flags:
bytes/sector: 512
sectors/track: 63
tracks/cylinder: 16
sectors/cylinder: 1008
cylinders: 79780
sectors/unit: 80418240
rpm: 3600
interleave: 1
trackskew: 0
cylinderskew: 0
headswitch: 0 # milliseconds
track-to-track seek: 0 # milliseconds
drivedata: 0
8 partitions:
# size offset fstype [fsize bsize bps/cpg]
c: 80418240 0 unused 0 0 # (Cyl. 0 - 79779)</screen>
<para>Sie k&ouml;nnen jetzt weitere Partitionen definieren,
diese m&uuml;ssen in dem Format vorliegen, das auch f&uuml;r
Partition <literal>c</literal> verwendet. Sie k&ouml;nnen
Sich das Leben etwas einfacher machen, wenn Sie f&uuml;r das
Feld <literal>offset</literal> immer den Wert
<literal>*</literal> angeben. Weitere Informationen finden
Sie in der Onlinehilfe zu &man.disklabel.8;.</para>
<para>Damit die oben genannte Einschr&auml;nkung eingehalten
wird, mu&szlig; die Gr&ouml;&szlig;e jeder Partition ein
ganzzahliges Vielfaches der Anzahl der Sektoren pro Zylinder
(<literal>sectors/cylinder</literal>) sein. In diesem
Beispiel w&auml;ren das 1008 Sektoren pro Zylinder.</para>
<para>Wenn Sie alle Partitionen definiert haben, m&uuml;ssen
Sie die &Auml;nderungen speichern und den Editor verlassen,
dadurch wird automatisch ein neues Disk Label
geschrieben.</para>
<warning>
<para>Dadurch wird ein bereits existierendes Disk Label
komplett &uuml;berschrieben. Wenn auf der Festplatte
bereits Dateisysteme existieren, m&uuml;ssen Sie im alten
und neuen Label <emphasis>absolut identisch</emphasis>
definiert sein. Sind sie das nicht, werden die
Dateisysteme und alle Daten auf diesen Dateisystemen
gel&ouml;scht.</para>
</warning>
<para>Wenn Sie sich nicht sicher sind, ob die Partitionen auf
einer Zylindergrenze beginnen und enden, sollten Sie
<command>disklabel -e
<replaceable>device</replaceable></command> erneut aufrufen.
Die von den Partitionen belegten Zylinder werden rechts von
den &uuml;brigen Daten der Partition angezeigt. Wenn neben
einer der von Ihnen angelegten Partitionen (also allen
Partitionen au&szlig;er Partition <literal>c</literal>) ein
<literal>*</literal> angezeigt wird, erf&uuml;llt diese
Partition die Anforderungen <emphasis>NICHT</emphasis>. Sie
<emphasis>M&Uuml;SSEN</emphasis> diese Partition
korrigieren, ansonsten wird das System nicht
funktionieren.</para>
</step>
<step>
<para>Wenn Sie mit &os;/&arch; von dieser Platte wollen,
m&uuml;ssen Sie sie mit <command>disklabel -B</command>
bootf&auml;hig machen.</para>
<warning>
<para>Durch die Verwendung von <command>disklabel
-B</command> &uuml;berschreiben Sie einen bereits
existierenden Bootsektor. Wenn auf der Platte ein anderes
Betriebssystem installiert ist, werden Sie es
anschlie&szlig;end nicht mehr starten k&ouml;nnen.</para>
</warning>
<para>Wenn Sie den Bootsektor nicht &uuml;berschreiben wollen,
ist es m&ouml;glich, den <application>Loader</application>
wie oben beschrieben via TFTP zu starten und ihn dann den
Kernel von Festplatte starten zu lassen. Dazu brauchen Sie
eine spezielle Version des Loaders, die bei <ulink
url="ftp://ftp.FreeBSD.org/pub/FreeBSD/development/sparc64/loader-ufs.gz"></ulink>
erh&auml;ltlich ist.</para>
</step>
</procedure>
</sect2>
<sect2 id="creating-root-filesystem">
<title>Erzeugung des Root Dateisystems</title>
<para>Wenn Sie von der lokalen Platte booten wollen, brauchen Sie
ein Root Dateisystem, das die Benutzerprogramme und
Konfigurationsdateien des Basissystems enth&auml;lt.
Nat&uuml;rlich kann es auch weitere Dateisysteme aufnehmen, die
z.B. unter <filename>/usr</filename> und
<filename>/var</filename> gemountet werden.</para>
<para>Der Kernel unterst&uuml;tzt Sun Disklabel, Sie k&ouml;nnen
also Solaris Festplatten benutzen und diese sogar in Solaris mit
<application>newfs</application> vorbereiten. Das Disk Label
und die Dateisysteme von NetBSD werden von &os; ebenfalls
unterst&uuml;tzt.</para>
<warning>
<para>Sie d&uuml;rfen <emphasis>auf gar keinen Fall</emphasis>
den <application>fsck</application> von Solaris auf
Dateisystemen nutzen, die von &os; verwendet werden, da dieser
s&auml;mtliche Zugriffsrechte &uuml;berschreibt.</para>
</warning>
<para>Um die Dateisysteme zu erzeugen und das Basissystem zu
erzeugen, starten Sie Ihr System von CD oder via NFS und legen
Sie dann wie in <xref linkend="creating-disk-label"> beschrieben
ein Disk Label an.</para>
<para>Wenn Sie das System zum ersten Mal starten und Ihr Root
Dateisystem noch nicht in <filename>/etc/fstab</filename>
eingetragen haben, m&uuml;ssen Sie wahrscheinlich Ihr Root
Dateisystem beim Start angeben. Wenn Sie die entsprechende
Eingabeaufforderung erhalten, sollten Sie das Format
<command>ufs:<replaceable>disk</replaceable><replaceable>partition</replaceable></command>
verwenden, also keine Slice angaben. Wenn der Kernel versucht,
automatisch von einem anderen Dateisystem zu booten,
dr&uuml;cken Sie eine Taste au&szlig;er <keycap>Enter</keycap>,
sobald der <application>Loader</application> die folgende
Meldung ausgibt:</para>
<screen>Hit [Enter] to boot immediately, or any other key for command prompt.</screen>
<para>Starten Sie den Kernel danach mit <command>boot -a
-s</command>, dadurch werden Sie automatisch nach dem
Root-Dateisystem gefragt, bevor das System in den
Single-User-Modus geht. Sobald das richtige Root Dateisystem in
der <filename>/etc/fstab</filename> steht, sollte es beim
n&auml;chsten Start des System automatisch als
<filename>/</filename> gemountet werden.</para>
<para>Wenn Sie &uuml;ber ein Netzwerk booten (mit NFS), sollten
die oben genannte Eintr&auml;ge BOOTP ausreichend sein, damit
der Kernel das Root Dateisystem via NFS finden und mounten
kann.</para>
</sect2>
<sect2 id="installing-base-system">
<title>Installation des Basissystems</title>
<para>Wenn Sie &uuml;ber ein Netzwerk gebootet haben, haben Sie
vorher ein &man.tar.1; Archive von heruntergeladen und es mit
NFS vom Netboot Server exportiert. Sie k&ouml;nnen das gleiche
Archiv auf der lokalen Festplatte auspacken, um einen autonomes
System zu erhalten. Denken Sie daran, da&szlig; Sie den Kernel
ebenfalls kopieren m&uuml;ssen.</para>
<para>Wenn Sie Ihr System von CD gestartet haben, finden Sie das
Archiv im Verzeichnis <filename>/root/</filename> auf der
CDROM.</para>
<para>Bevor Sie das neue System booten, sollten Sie
<filename>/etc/fstab</filename> und
<filename>/etc/rc.conf</filename> anpassen und ein Pa&szlig;wort
f&uuml;r <username>root</username> vergeben.</para>
<para>Bitte beachten Sie, da&szlig; Sie einige Programme des
Basissystems in dem Archiv fehlen oder noch nicht fehlerfrei
funktionieren.</para>
</sect2>
</sect1>
@@ -1,27 +0,0 @@
# $FreeBSD$
# $FreeBSDde: de-docproj/relnotes/de_DE.ISO8859-1/readme/Makefile,v 1.2 2002/03/10 18:41:44 ue Exp $
# $Id: Makefile,v 1.5 2002/03/10 15:37:18 ue Exp $
# basiert auf: 1.7
RELN_ROOT?= ${.CURDIR}/../..
.ifdef NO_LANGCODE_IN_DESTDIR
DESTDIR?= ${DOCDIR}/readme
.else
DESTDIR?= ${DOCDIR}/de_DE.ISO8859-1/readme
.endif
DOC?= article
FORMATS?= html
INSTALL_COMPRESSED?= gz
INSTALL_ONLY_COMPRESSED?=
#
# SRCS lists the individual SGML files that make up the document. Changes
# to any of these files will force a rebuild
#
# SGML content
SRCS+= article.sgml
.include "${RELN_ROOT}/share/mk/doc.relnotes.mk"
.include "${DOC_PREFIX}/share/mk/doc.project.mk"
@@ -1,518 +0,0 @@
<!--
The FreeBSD German Documentation Project
The FreeBSD Documentation Project
$FreeBSDde: de-docproj/relnotes/de_DE.ISO8859-1/readme/article.sgml,v 1.18 2003/05/11 23:28:35 mheinen Exp $
basiert auf: 1.26
-->
<!DOCTYPE article PUBLIC "-//FreeBSD//DTD DocBook V4.1-Based Extension//EN" [
<!ENTITY % man PUBLIC "-//FreeBSD//ENTITIES DocBook Manual Page Entities//EN">
%man;
<!ENTITY % authors PUBLIC "-//FreeBSD//ENTITIES DocBook Author Entities//EN">
%authors;
<!ENTITY % mlists PUBLIC "-//FreeBSD//ENTITIES DocBook Mailing List Entities//DE">
%mlists;
<!ENTITY % release PUBLIC "-//FreeBSD//ENTITIES Release Specification//EN">
%release;
<!ENTITY % misc PUBLIC "-//FreeBSD//ENTITIES DocBook Miscellaneous FreeBSD Entities//EN">
%misc;
]>
<article lang="de">
<articleinfo>
<title>&os; &release.current; README</title>
<corpauthor>Das &os; Projekt</corpauthor>
<pubdate>$FreeBSD$</pubdate>
<copyright>
<year>2000</year>
<year>2001</year>
<year>2002</year>
<year>2003</year>
<holder role="mailto:[email protected]">The FreeBSD Documentation
Project</holder>
</copyright>
<copyright>
<year>2002</year>
<year>2003</year>
<holder role="mailto:[email protected]">The
FreeBSD German Documentation Project</holder>
</copyright>
</articleinfo>
<abstract>
<para>Dieses Dokument enth&auml;lt eine kurze Einf&uuml;hrung zu &os;
&release.current;. Es enth&auml;lt einige Hinweise, wie Sie &os;
beziehen k&ouml;nnen; wie Sie Kontakt zum &os; Project aufnehmen
k&ouml;nnen, sowie Verweise auf zus&auml;tzliche
Informationsquellen.</para>
</abstract>
<sect1 id="intro">
<title>Einf&uuml;hrung</title>
<para>Diese Ausgabe von &os; ist eine &release.type;-Version von
&os; &release.current; und repr&auml;sentiert den aktuellen
Zustand im Entwicklungszweig &release.branch;.</para>
<sect2>
<title>&Uuml;ber &os;</title>
<para>&os; ist ein auf 4.4 BSD Lite basierendes Betriebssystem
f&uuml;r Intel, AMD, Cyrix oder NexGen
<quote>x86</quote>-basierte PCs (i386), NEC PC-9801/9821 und
kompatible Systeme (pc98), DEC/Compaq/HP Alpha Systeme (alpha)
und UltraSPARC Systeme (sparc64). Versionen f&uuml;r die
Plattformen IA64 (ia64), PowerPC (powerpc) und AMD
<quote>Hammer</quote> (amd64) sind ebenfalls in der
Entwicklung. &os; unterst&uuml;tzt viele verschiedene
Ger&auml;te und Umgebungen und kann f&uuml;r alle Anwendungen von
der Software-Entwicklung &uuml;ber Spiele bis zur Anbietung
von Diensten im Internet genutzt werden.</para>
<para>Diese Version von &os; stellt Ihnen alles zur
Verf&uuml;gung, was Sie zum Betrieb eines derartigen Systems
brauchen. Dazu geh&ouml;rt der Quellcode f&uuml;r den Kernel
und alle Programme des Basissystems. Wenn Sie die
<quote>source</quote> Distribution installieren, k&ouml;nnen
Sie das gesamte System mit einem einzigen Befehl neu
kompilieren. Diese Eigenschaft macht es ideal f&uuml;r
Studenten, Forscher, und interessierte Benutzer, die einfach
wissen wollen, wie das System funktioniert.</para>
<para>Die gro&szlig;e Sammlung von angepa&szlig;ter Software
anderer Anbieter (die <quote>Ports Collection</quote>) macht
es Ihnen leicht, ihre Lieblingtools f&uuml;r &unix; auch
f&uuml;r &os; zu finden und zu installieren. Jeder
<quote>port</quote> besteht aus einer Reihe von Skripten, um
eine gegebene Anwendung mit einem einzigen Kommando
herunterladen, konfigurieren, kompilieren, und installieren zu
k&ouml;nnen. Die &uuml;ber &os.numports; Ports (vom Editor
&uuml;ber Programmiersprachen bis zu graphischen Anwendungen)
machen FreeBSD zu einer leistungsstarken und umfassenden
Arbeitsumgebung, die viele kommerzielle &unix;-Varianten weit
hinter sich l&auml;&szlig;t. Die meisten Ports sind auch als
vorkompilierte Packages erh&auml;ltlich, die mit dem
Installationsprogramm einfach und schnell installiert werden
k&ouml;nnen.</para>
</sect2>
<sect2>
<title>Zielgruppe</title>
<![ %release.type.current; [
<para>Dieser &release.type; ist prim&auml;r f&uuml;r Bastler und
andere Benutzer gedacht, die sich an der laufenden Entwicklung
von &os; beteiligen wollen. Das Entwicklerteam von &os;
bem&uuml;ht sich zwar, da&szlig; jeder &release.type; so
funktioniert wie versprochen, aber &release.branch; ist nun
einmal der Entwicklungszweig.</para>
<para>Wenn Sie einen &release.type; benutzen wollen, m&uuml;ssen
Sie sich mit der Technik von &os; und den aktuellen
Vorg&auml;ngen bei der Entwicklung von &os; &release.branch;
(wie sie in der Mailingliste &a.current; diskutiert werden)
auskennen.</para>
<para>[Anmerkung des &Uuml;bersetzers: Auf der Mailingliste
&a.current; wird Englisch gesprochen und die meisten Dokumente
sind ebenfalls in dieser Sprache verfa&szlig;t worden. Ohne
gute Englischkenntnisse kommt man also nicht weit. Allerdings
ist die Beteiligung an der Entwicklung der FreeBSD eine der
interessanteren Varianten, die eigenen Englisch-Kenntnisse zu
erweitern.]</para>
<para>Wenn Sie mehr an einem st&ouml;rungsfreien Betrieb von
&os; als an den neuesten Features von &os; interessiert sind,
ist eine offizielle Release (wie z.B. &release.prev.stable;) die
deutliche bessere Wahl. Releases werden ausf&uuml;hrlich
getestet und auf Qualit&auml;t gepr&uuml;ft, um
Zuverl&auml;ssigkeit und Betriebssicherheit garantieren zu
k&ouml;nnen.</para>
]]>
<![ %release.type.snapshot; [
<para>Dieser &release.type; ist prim&auml;r f&uuml;r Bastler und
andere Benutzer gedacht, die sich an der laufenden Entwicklung
von &os; beteiligen wollen. Das Entwicklerteam von &os;
bem&uuml;ht sich zwar, da&szlig; jeder &release.type; so
funktioniert wie versprochen, aber &release.branch; ist nun
einmal der Entwicklungszweig.</para>
<para>Wenn Sie einen &release.type; benutzen wollen, m&uuml;ssen
Sie sich mit der Technik von &os; und den aktuellen
Vorg&auml;ngen bei der Entwicklung von &os; &release.branch;
(wie sie in der Mailingliste &a.current; diskutiert werden)
auskennen.</para>
<para>[Anmerkung des &Uuml;bersetzers: Auf der Mailingliste
&a.current; wird Englisch gesprochen und die meisten Dokumente
sind ebenfalls in dieser Sprache verfa&szlig;t worden. Ohne
gute Englischkenntnisse kommt man also nicht weit. Allerdings
ist die Beteiligung an der Entwicklung der FreeBSD eine der
interessanteren Varianten, die eigenen Englisch-Kenntnisse zu
erweitern.]</para>
<para>Wenn Sie mehr an einem st&ouml;rungsfreien Betrieb von
&os; als an den neuesten Features von &os; interessiert sind,
ist eine offizielle Release (wie z.B. &release.prev.stable;) die
deutliche bessere Wahl. Releases werden ausf&uuml;hrlich
getestet und auf Qualit&auml;t gepr&uuml;ft, um
Zuverl&auml;ssigkeit und Betriebssicherheit garantieren zu
k&ouml;nnen.</para>
]]>
<![ %release.type.release; [
<para>Diese &release.type; von &os; ist f&uuml;r alle Arten von
Benutzern gedacht. Sie wurde ausf&uuml;hrlich gepr&uuml;ft
und getestet, um die gr&ouml;&szlig;tm&ouml;gliche
Zuverl&auml;ssigkeit und Betriebssicherheit garantieren zu
k&ouml;&ouml;nnen.</para>
]]>
</sect2>
</sect1>
<sect1 id="obtain">
<title>Bezugsquellen f&uuml;r &os;</title>
<para>&os; kann auf vielen verschiedenen Wegen bezogen werden.
Dieses Kapitel konzentriert sich auf die Varianten, die f&uuml;r
den Bezug auf einer komplett neuen Version von &os; gedacht
sind und weniger auf die M&ouml;glichkeit zur Aktualisierung
eines bereits bestehenden Systems.</para>
<sect2>
<title>CDROM und DVD</title>
<para>&os;-RELEASE Distributionen k&ouml;nnen auf CDROM oder
DVD von diversen Firmen bezogen werden. Dies ist
normalerweise der bequemste Weg, wenn Sie &os; zum ersten Mal
installieren, da Sie das System einfach neu installieren
k&ouml;nnen, falls das notwendig ist. Einige Distributionen
enthalten einige der optionalen <quote>Packages</quote> aus
der &os; Ports Collection.</para>
<para>Eine &Uuml;bersicht &uuml;ber die Firmen, die FreeBSD auf
CDROM oder DVD vertreiben, finden Sie im Anhang <ulink
url="http://www.FreeBSD.org/doc/de_DE.ISO8859-1/books/handbook/mirrors.html"><quote>Bezugsquellen
f&uuml;r FreeBSD</quote></ulink> des Handbuches.</para>
</sect2>
<sect2>
<title>FTP</title>
<para>Sie k&ouml;nnen &os; und/oder die optionalen Packages mit
FTP vom prim&auml;ren &os;-Server <ulink
url="ftp://ftp.FreeBSD.org/"></ulink> und allen seinen
<quote>mirrors</quote> beziehen.</para>
<para>Eine Liste von alternativen Bezugsquellen f&uuml;r &os;
finden Sie im Kapitel <ulink
url="http://www.FreeBSD.org/doc/de_DE.ISO8859-1/books/handbook/mirrors-ftp.html">FTP
Server</ulink> des Handbuchs und auf unseren <ulink
url="http://www.freebsdmirrors.org/"></ulink> Webseiten. Wir
raten Ihnen dringend, einen Mirror in der n&auml;heren
Umgebung (aus Netzwerksicht) zu verwenden.</para>
<para>Zus&auml;tzliche Mirrors sind immer willkommen. Wenden
Sie sich bitte an <email>[email protected]</email>,
wenn Sie an weiteren Informationen zu diesem Thema
interessiert sind. Zus&auml;tzliche Informationen zu diesem
Thema finden Sie im Artikel <ulink
URL="http://www.FreeBSD.org/doc/en_US.ISO8859-1/articles/hubs/">Mirroring
FreeBSD</ulink>.</para>
<para>Sie finden die f&uuml;r den Start der Installation
notwendigen Images der Bootdisketten und die Dateien der
eigentlichen Distribution auf allen Servern. Einige Server
stellen auch die ISO-Images bereit, die Sie zur Erzeugung
einer (bootf&auml;higen) CDROM der &os;-Release
ben&ouml;tigen.</para>
</sect2>
</sect1>
<sect1 id="contacting">
<title>Kontaktinformation f&uuml;r das &os; Projekt</title>
<sect2>
<title>Email und Mailinglisten</title>
<para>Wenn Sie Fragen haben oder Hilfe ben&ouml;tigen, wenden
Sie sich bitte an die Mailingliste &a.questions;.</para>
<para>Wenn Sie die Entwicklung von &release.branch;
mitverfolgen, <emphasis>m&uuml;ssen</emphasis> Sie die
Mailingliste &a.current; lesen. Nur so k&ouml;nnen Sie die
teilweise lebensnotwendigen Informationen &uuml;ber die
aktuellen Entwicklungen und &Auml;nderungen erhalten, die Sie
f&uuml;r den Betrieb des Systems ben&ouml;tigen.</para>
<para>Da &os; zum gr&ouml;&szlig;ten Teil von Freiwilligen und
Idealisten entwickelt wird, freuen wir uns &uuml;ber jeden,
der mit anpacken m&ouml;chte &mdash; schon jetzt gibt es mehr
W&uuml;nsche als Zeit, um diese umzusetzen. Wenn Sie Kontakt
zu den Entwicklern suchen, um technische Angelegenheiten zu
besprechen oder um Ihre Hilfe anzubieten, wenden Sie sich
bitte an Mailingliste &a.hackers;.</para>
<para>Bitte beachten Sie, auf diesen Mailinglisten teilweise
<emphasis>extrem viele</emphasis> Mails erscheinen. Wenn Ihre
Mailversorgung nur sehr langsam oder sehr teuer ist, oder Sie
nur an den Schlagzeilen der &os;-Entwicklung interessiert
sind, d&uuml;rfte es besser sein, wenn Sie sich auf
die Mailingliste &a.announce; konzentrieren.</para>
<para>Alle Mailinglisten stehen f&uuml;r jeden offen, der sich
f&uuml;r das jeweilige Thema interessiert. Besuchen Sie
einfach mal auf der <ulink
url="http://www.FreeBSD.org/mailman/listinfo">FreeBSD Mailman
Info Page</ulink>. Dort erhalten Sie weitergehende
Informationen, wie Sie die diversen Mailinglisten abonnieren
k&ouml;nnen, wie Sie auf die Archive zugreifen k&ouml;nnen,
usw. Es gibt viele Mailinglisten, die nur mit einem ganz
bestimmten Thema befassen und hier nicht aufgef&uuml;hrt sind.
Weitergehende Informationen finden Sie auf den Mailman Seiten
und im Bereich <ulink
url="http://www.FreeBSD.org/support.html#mailing-list">Mailinglisten</ulink>
der &os; Webseite.</para>
<important>
<para>Senden Sie <emphasis>auf gar keinen Fall</emphasis> eine
Mail an die Mailinglisten, um diese zu abonnieren. Benutzen
Sie f&uuml;r diesen Zweck das Mailman Interface.</para>
</important>
</sect2>
<sect2>
<title>Meldungen &uuml;ber Fehler und Probleme</title>
<para>Vorschl&auml;ge, Fehlermeldungen und zus&auml;tzlicher
Sourcecode sind immer willkommen &mdash; bitte informieren Sie
uns &uuml;ber jedes Problem, das sie finden. Fehlermeldungen,
die sofort auch die entsprechende Korrektur enthalten, sind
nat&uuml;rlich noch willkommener.</para>
<para>Wenn Ihr System an das Internet angeschlossen ist, sollten
Sie &man.send-pr.1; benutzen. Wenn Sie Ihren <quote>Problem
Report</quote> (PRs) auf dieser Art und Weise absetzen, wird
er automatisch archiviert und weiterverfolgt. Die Entwickler
von &os; bem&uuml;hen sich, so schnell wie m&ouml;glich auf
alle gemeldeten Fehler zu reagieren. <ulink
url="http://www.FreeBSD.org/cgi/query-pr-summary.cgi">Eine
&Uuml;bersicht &uuml;ber alle offenen PRs</ulink> ist auf dem
Webserver von &os; verf&uuml;gbar. Diese Liste ist sehr
n&uuml;tzlich, wenn Sie wissen wollen, welche m&ouml;glichen
Probleme schon von anderen Benutzern gefunden wurden.</para>
<para>Bitte beachten Sie, da&szlig; &man.send-pr.1; nur ein
Shell-Skript ist, da&szlig; man relativ einfach auch auf
anderen Systemen als &os; verwenden kann. Wir empfehlen Ihnen
dringend, diese Variante zu verwenden. Wenn Sie allerdings
aus irgendeinem Grund &man.send-pr.1; nicht benutzen
k&ouml;nnen, k&ouml;nnen Sie versuchen, Ihren Problem Report
an die Mailingliste &a.bugs; zu senden.</para>
<para>Weitere Informationen finden Sie im Dokument <ulink
url="http://www.FreeBSD.org/doc/en_US.ISO8859-1/articles/problem-reports/"><quote>Writing
FreeBSD Problem Reports</quote></ulink> auf der Webseite von
&os;. Es enth&auml;lt viele n&uuml;tzliche Tips zum
Verfassen und Versenden effektiver Fehlermeldungen.</para>
</sect2>
</sect1>
<sect1 id="seealso">
<title>Weiterf&uuml;hrende Dokumente</title>
<para>Es gibt viele verschiedene Quellen f&uuml;r Informationen
&uuml;ber &os;, einige sind Bestandteil dieser Distribution,
w&auml;hrend andere &uuml;ber das Internet oder in gedruckter
Form verf&uuml;gbar sind.</para>
<sect2 id="release-docs">
<title>Dokumentation zur Release</title>
<para>Sie finden weitergehende &uuml;ber diese &release.type;
Distribution in anderen Dokumenten. Diese Dokumente stehen in
verschiedenen Formaten zur Verf&uuml;gung. Die Varianten Text
(<filename>.TXT</filename>) und HTML
(<filename>.HTM</filename>) stehen fast immer zur
Verf&uuml;gung. Einige Distributionen stellen weitere Formate
wie PostScript (<filename>.PS</filename>) oder das Portable
Document Format (<filename>.PDF</filename>) zur
Verf&uuml;gung.</para>
<itemizedlist>
<listitem>
<para><filename>README.TXT</filename>: Sie lesen es gerade.
Hier finden Sie allgemeine Informationen &uuml;ber &os;
und ein paar allgemeine Hinweise zum Bezug einer
Distribution.</para>
</listitem>
<listitem>
<para><filename>EARLY.TXT</filename>: Spezielle Hinweise
f&uuml;r die ersten Anwender von &os; &release.current;.
Wenn dies Ihre erste Begegnung mit &os; &release.branch;
ist und/oder Sie noch eine 5.<replaceable>X</replaceable>
Version benutzt haben, sollten Sie diesen Artikel auf
jeden Fall lesen.</para>
</listitem>
<listitem>
<para><filename>RELNOTES.TXT</filename>: Die begleitenden
Informationen zu dieser Release enthalten die Neuerungen
in dieser Version von &os; (&release.current;) und die
&Auml;nderungen seit der letzten Version (&os;
&release.prev;).</para>
</listitem>
<listitem>
<para><filename>HARDWARE.TXT</filename>: Die Liste der
unterst&uuml;tzten Hardware enth&auml;lt eine
&Uuml;bersicht &uuml;ber die Ger&auml;te, auf den &os;
erfolgreich getestet wurde.</para>
</listitem>
<listitem>
<para><filename>INSTALL.TXT</filename>: Die Anleitung zur
Installation von &os; von dem
Distributions-Medium.</para>
</listitem>
<listitem>
<para><filename>ERRATA.TXT</filename>: Die Errata.
Brandaktuelle Informationen, die erst nach dem Erscheinen
dieser Version bekannt wurden, finden Sie hier. Diese
Datei ist speziell f&uuml;r die Anwender einer Release
(und nicht der Snapshots) von Interesse. Sie sollten
diesen Text auf jeden Fall lesen, bevor Sie &os;
installieren, da er die aktuellsten Informationen
&uuml;ber die seit der Ver&ouml;ffentlichung gefundenen
und behobenen Probleme enth&auml;lt.</para>
</listitem>
</itemizedlist>
<note>
<para>Einige dieser Dokumente (speziell
<filename>RELNOTES.TXT</filename>,
<filename>HARDWARE.TXT</filename>, und
<filename>INSTALL.TXT</filename>) enthalten Informationen,
die nur f&uuml;r eine bestimmte Architektur gellten. Zum
Beispiel enthalten die Release Notes f&uuml;r die Alpha
keine Informationen &uuml;ber i386-Systeme, und umgekehrt.
Die Information, zu welcher Architektur ein Dokument
geh&ouml;rt, steht immer am Anfang des Textes.</para>
</note>
<para>Auf den Plattformen, auf denen &man.sysinstall.8; zur
Verf&uuml;gung steht (zur Zeit alpha, i386, ia64, pc98 und
sparc64) finden Sie diese Dokumente w&auml;hrend der
Installation normalerweise unter dem Men&uuml;punkt
Dokumentation. Um nach der Installation des Systems dieses
Men&uuml; zugreifen zu k&ouml;nnen, m&uuml;ssen Sie das
Programm &man.sysinstall.8; erneut aufrufen.</para>
<note>
<para>Sie sollten auf jeden Fall die Errata zur jeweiligen
Version lesen, bevor Sie die Installation beginnen. Dies
ist der einzige Weg, die aktuellsten Informationen zu
erhalten und sich &uuml;ber eventuell nach der Installation
auftretende Probleme zu informieren. Die zusammen mit der
Ver&ouml;ffentlichung erschienene Version ist per Definition
veraltet. Allerdings sind im Internet aktualisierte
Versionen verf&uuml;gbar, die die <quote>aktuellen
Errata</quote> f&uuml;r diese Version sind. Diese Versionen
sind bei <ulink
url="http://www.FreeBSD.org/releases/"></ulink> und allen
aktuellen Mirrors dieser Webseite verf&uuml;gbar.</para>
</note>
</sect2>
<sect2>
<title>Onlinehilfe (Manual Pages)</title>
<para>Wie bei fast jedem anderen &unix;-&auml;hnlichen System
steht Ihnen auch bei &os; eine Onlinehilfe zur Verf&uuml;gung,
die Sie &uuml;ber das Kommando &man.man.1; oder &uuml;ber das
<ulink url="http://www.FreeBSD.org/cgi/man.cgi">hypertext
manual pages gateway</ulink> auf dem Webserver von &os;
ansprechen k&ouml;nnen. Die Onlinehilfe stellt den Benutzern
von &os; Informationen zu einzelnen Befehlen und Interfaces
zur Programmierung zur Verf&uuml;gung.</para>
<para>In einige F&auml;llen behandelt die Online-Hilfe spezielle
Themen. Interessante Beispiele daf&uuml;r sind
&man.tuning.7; (Hinweise, wie sie die Performance Ihres
Systems verbessern k&ouml;nnen), &man.security.7; (eine
Einf&uuml;hrung in das Thema Sicherheit unter &os;), und
&man.style.9; (die Spielregeln f&uuml;r die
Kernel-Programmierung).</para>
</sect2>
<sect2>
<title>B&uuml;cher und Artikel</title>
<para>Zwei extrem n&uuml;tzliche Sammlungen von Informationen
&uuml;ber &os;, die vom &os; Project verwaltet werden, sind
das &os; Handbuch und der &os; FAQ. Die aktuellen Versionen
des <ulink
url="http://www.FreeBSD.org/doc/de_DE.ISO8859-1/books/handbook/">Handbuches</ulink>
und der <ulink
url="http://www.FreeBSD.org/doc/de_DE.ISO8859-1/books/faq/">FAQ</ulink>
sind immer auf der Webseite <ulink
url="http://www.FreeBSD.org/docs.html">FreeBSD
Dokumentation</ulink> und allen Ihren Mirror-Sites
verf&uuml;gbar. Wenn Sie die Distribution
<filename>doc</filename> installiert haben, k&ouml;nnen Sie
den FAQ und Handbuch mit einem Web-Browser direkt auf Ihrem
System lesen.</para>
<para>Es gibt eine ganze Reihe von Online verf&uuml;gbaren
B&uuml;chern und Artikeln, die vom &os; Project herausgegeben
werden und auf einzelne &os;-bezogene Themen genauer
eingehen. Dabei wird ein sehr breites Spektrum abgedeckt, es
gibt Informationen zur effektiven Nutzung der Mailinglisten,
den parallelen Betrieb von &os; und anderen Betriebssystem, und
Hinweise f&uuml;r neue Entwickler. Wie das Handbuch und die
FAQ sind auch diese Dokumente auf Webseite &os; Dokumentation
und in der Distribution <filename>doc</filename>
verf&uuml;gbar.</para>
<para>Eine Liste zus&auml;tzlicher B&uuml;cher und
Dokumentationen zu &os; finden Sie im Kapitel <ulink
url="http://www.FreeBSD.org/doc/de_DE.ISO8859-1/books/handbook/bibliography.html">Bibliographie</ulink>
des Handbuchs. Da &os; ganz klar aus der &unix;-Welt stammt,
enthalten auch andere Artikel und B&uuml;cher &uuml;ber
&unix;-Systeme n&uuml;tzliche Informationen. Eine Auswahl
dieser Dokumente finden Sie ebenfalls in der
Bibliographie.</para>
</sect2>
</sect1>
<sect1 id="acknowledgements">
<title>Danksagung</title>
<para>&os; ist das Ergebnis der Arbeit vieler hundert, wenn nicht
Tausender Personen aus der ganzen Welt, die ungez&auml;hlte
Stunden investiert haben, um diese Version m&ouml;glich zu
machen. Die vollst&auml;ndige Liste aller Entwickler und Helfer
finden Sie auf der &os;-Webseite <ulink
url="http://www.FreeBSD.org/doc/en_US.ISO8859-1/articles/contributors/"><quote>Beteiligte</quote></ulink>
und allen aktuellen Mirrors dieser Webseite.</para>
<para>Wir m&ouml;chten uns speziell bei den vielen tausend
Anwendern und Testern aus der ganzen Welt bedanken, ohne die
diese &release.type; niemals m&ouml;glich gewesen
w&auml;re.</para>
</sect1>
</article>
@@ -1,14 +0,0 @@
# $FreeBSD$
# $FreeBSDde: de-docproj/relnotes/de_DE.ISO8859-1/relnotes/Makefile,v 1.4 2002/11/09 20:58:39 ue Exp $
# basiert auf: 1.5
RELN_ROOT?= ${.CURDIR}/../..
SUBDIR = alpha
SUBDIR+= ia64
SUBDIR+= i386
SUBDIR+= pc98
SUBDIR+= sparc64
.include "${RELN_ROOT}/share/mk/doc.relnotes.mk"
.include "${DOC_PREFIX}/share/mk/doc.project.mk"
@@ -1,11 +0,0 @@
# $FreeBSD$
# $FreeBSDde: de-docproj/relnotes/de_DE.ISO8859-1/relnotes/Makefile.inc,v 1.2 2002/03/10 18:41:45 ue Exp $
# $Id: Makefile.inc,v 1.3 2002/03/10 15:37:19 ue Exp $
# basiert auf: 1.2
.ifdef NO_LANGCODE_IN_DESTDIR
DESTDIR?= ${DOCDIR}/relnotes/${.CURDIR:T}
.else
DESTDIR?= ${DOCDIR}/de_DE.ISO8859-1/relnotes/${.CURDIR:T}
.endif
@@ -1,21 +0,0 @@
# $FreeBSD$
# $FreeBSDde: de-docproj/relnotes/de_DE.ISO8859-1/relnotes/alpha/Makefile,v 1.2 2002/03/10 18:41:45 ue Exp $
# $Id: Makefile,v 1.3 2002/03/10 15:37:19 ue Exp $
# basiert auf: 1.6
RELN_ROOT?= ${.CURDIR}/../../..
DOC?= article
FORMATS?= html
INSTALL_COMPRESSED?= gz
INSTALL_ONLY_COMPRESSED?=
JADEFLAGS+= -V %generate-article-toc%
# SGML content
SRCS+= article.sgml
SRCS+= ../common/relnotes.ent
SRCS+= ../common/new.sgml
.include "${RELN_ROOT}/share/mk/doc.relnotes.mk"
.include "${DOC_PREFIX}/share/mk/doc.project.mk"
@@ -1,27 +0,0 @@
<!--
$FreeBSD$
$FreeBSDde: de-docproj/relnotes/de_DE.ISO8859-1/relnotes/alpha/article.sgml,v 1.4 2002/10/12 18:02:24 ue Exp $
basiert auf: 1.3
-->
<!DOCTYPE article PUBLIC "-//FreeBSD//DTD DocBook V4.1-Based Extension//EN" [
<!ENTITY % man PUBLIC "-//FreeBSD//ENTITIES DocBook Manual Page Entities//EN">
%man;
<!ENTITY % authors PUBLIC "-//FreeBSD//ENTITIES DocBook Author Entities//EN">
%authors;
<!ENTITY % mlists PUBLIC "-//FreeBSD//ENTITIES DocBook Mailing List Entities//DE">
%mlists;
<!ENTITY % release PUBLIC "-//FreeBSD//ENTITIES Release Specification//EN">
%release;
<!ENTITY % sections SYSTEM "../common/relnotes.ent"> %sections;
<!-- Architecture-specific customization -->
<!ENTITY arch "alpha">
<!ENTITY arch.print "Alpha/AXP">
]>
<article lang="de">
&art;
</article>
File diff suppressed because it is too large. Load diff
@@ -1,19 +0,0 @@
<!-- -*- sgml -*- -->
<!--
$FreeBSD$
$FreeBSDde: de-docproj/relnotes/de_DE.ISO8859-1/relnotes/common/relnotes.ent,v 1.3 2002/07/08 18:52:50 ue Exp $
basiert auf: 1.3
-->
<!-- Text constants which probably don't need to be changed.-->
<!-- The marker for MFCs. -->
<!ENTITY merged "[MERGED]">
<!ENTITY % include.historic "IGNORE">
<!ENTITY % no.include.historic "IGNORE">
<!-- Files to be included -->
<!ENTITY art SYSTEM "../common/new.sgml">
@@ -1,21 +0,0 @@
# $FreeBSD$
# $FreeBSDde: de-docproj/relnotes/de_DE.ISO8859-1/relnotes/i386/Makefile,v 1.2 2002/03/10 18:41:47 ue Exp $
# $Id: Makefile,v 1.3 2002/03/10 15:37:20 ue Exp $
# basiert auf: 1.6
RELN_ROOT?= ${.CURDIR}/../../..
DOC?= article
FORMATS?= html
INSTALL_COMPRESSED?= gz
INSTALL_ONLY_COMPRESSED?=
JADEFLAGS+= -V %generate-article-toc%
# SGML content
SRCS+= article.sgml
SRCS+= ../common/relnotes.ent
SRCS+= ../common/new.sgml
.include "${RELN_ROOT}/share/mk/doc.relnotes.mk"
.include "${DOC_PREFIX}/share/mk/doc.project.mk"
@@ -1,27 +0,0 @@
<!--
$FreeBSD$
$FreeBSDde: de-docproj/relnotes/de_DE.ISO8859-1/relnotes/i386/article.sgml,v 1.6 2002/12/07 22:11:35 ue Exp $
basiert auf: 1.4
-->
<!DOCTYPE article PUBLIC "-//FreeBSD//DTD DocBook V4.1-Based Extension//EN" [
<!ENTITY % man PUBLIC "-//FreeBSD//ENTITIES DocBook Manual Page Entities//EN">
%man;
<!ENTITY % authors PUBLIC "-//FreeBSD//ENTITIES DocBook Author Entities//EN">
%authors;
<!ENTITY % mlists PUBLIC "-//FreeBSD//ENTITIES DocBook Mailing List Entities//DE">
%mlists;
<!ENTITY % release PUBLIC "-//FreeBSD//ENTITIES Release Specification//EN">
%release;
<!ENTITY % sections SYSTEM "../common/relnotes.ent"> %sections;
<!-- Architecture-specific customization -->
<!ENTITY arch "i386">
<!ENTITY arch.print "i386">
]>
<article lang="de">
&art;
</article>
@@ -1,20 +0,0 @@
# $FreeBSD$
# $FreeBSDde: de-docproj/relnotes/de_DE.ISO8859-1/relnotes/ia64/Makefile,v 1.1 2002/11/09 20:58:39 ue Exp $
# basiert auf: 1.1
RELN_ROOT?= ${.CURDIR}/../../..
DOC?= article
FORMATS?= html
INSTALL_COMPRESSED?= gz
INSTALL_ONLY_COMPRESSED?=
JADEFLAGS+= -V %generate-article-toc%
# SGML content
SRCS+= article.sgml
SRCS+= ../common/relnotes.ent
SRCS+= ../common/new.sgml
.include "${RELN_ROOT}/share/mk/doc.relnotes.mk"
.include "${DOC_PREFIX}/share/mk/doc.project.mk"
@@ -1,27 +0,0 @@
<!--
$FreeBSD$
$FreeBSDde: de-docproj/relnotes/de_DE.ISO8859-1/relnotes/ia64/article.sgml,v 1.2 2002/11/10 10:47:53 ue Exp $
basiert auf: 1.1
-->
<!DOCTYPE article PUBLIC "-//FreeBSD//DTD DocBook V4.1-Based Extension//EN" [
<!ENTITY % man PUBLIC "-//FreeBSD//ENTITIES DocBook Manual Page Entities//EN">
%man;
<!ENTITY % authors PUBLIC "-//FreeBSD//ENTITIES DocBook Author Entities//EN">
%authors;
<!ENTITY % mlists PUBLIC "-//FreeBSD//ENTITIES DocBook Mailing List Entities//DE">
%mlists;
<!ENTITY % release PUBLIC "-//FreeBSD//ENTITIES Release Specification//EN">
%release;
<!ENTITY % sections SYSTEM "../common/relnotes.ent"> %sections;
<!-- Architecture-specific customization -->
<!ENTITY arch "ia64">
<!ENTITY arch.print "IA-64">
]>
<article lang="de">
&art;
</article>
Loaded 100 of 416 files, more files were not shown because too many files have changed in this diff. Show more