Compare commits

...
45 Commits
Author SHA1 Message Date
Hiroki Sato 4493d04f4b - Remove an empty section.
- Add version number of x11/kde4.

Approved by:	re (implicitly)
2013-06-02 16:21:02 +00:00
Hiroki Sato ce2d23d4c3 Update description of logical CPU handling in the latest releases and
remove obsolete sysctl variable machdep.hlt_logical_cpus.

Pointed out by:	mav
Approved by:	re (implicitly)
2013-06-02 15:47:22 +00:00
Hiroki Sato 9fe10651e9 Update relnotes item:
comconsole_port and _pcidev loader variable,
	hw.broken_txfifo tunable,
	ule(4) SMT logical CPU selection improved,
	atkbdc(4) Synaptics touchpad v7.5,
	puc(4) more devices,
	syscons(4) mouse detach handling fixed,
	uart(4) more devices,
	virtio(4) in GENERIC,
	xhci(4) port routing, more devices,
	snd_uaudio(4) USB Audio v2.0, more devices,
	age(4) jumbo frame bugfix,
	bge(4) more devices,
	cxgbe(4) 1.8.4,
	em(4) 7.3.7 and lem(4) 2.3.9,
	ixgbe(4) 1.1.4,
	oce(4) 4.6.95.0,
	rl(4) more devices,
	u3g(4) more devices,
	bpf(4) performance improvement,
	IP_RECVTOS sockopt,
	net.inet.tcp.rexmit_drop_options added,
	arcmsr(4) 1.20.00.26,
	ata(4) more devices,
	ata(4) SATA revision tunables,
	kern.cam.da.da_send_ordered rename,
	hpt27xx(4) in GENERIC,
	mfi(4) hw.mfi.allow_cam_disk_passthrough,
	GEOM_RAID Intel RRT,
	GEOM_RAID BIO_DELETE support,
	linprocfs(5) /proc/filesystems,
	msdosfs(5) bugfix,
	ZFS SPA v5000,
	ZFS import bugfix,
	atrun(8) loadavg fix,
	chkgrp(8) -q flag,
	cut(1) -w flag,
	devd(8) ! operator,
	du(1) -g flag,
	workaround for CVE-2010-2632,
	ifconfig state for carp(4),
	inetd(8) listen queue fix,
	ip6addrctl(8) policy updated to RFC 6724,
	rarpd(8) -P flag,
	systat(1) fractional number support,
	tcpdrop(8) colon-separated list support,
	zfs(8) jail/unjail name/id support,
	service(8) -R flag,
	AWK 20121220,
	ISC BIND 9.8.4-P2,
	BZIP2 1.0.6,
	libexpat 2.1.0,
	netcat 5.2,
	OpenSSH 6.1,
	OpenSSL 0.9.8y,
	sendmail 8.14.7,
	tzdata2012j, and
	XZ 5.0.4.

Approved by:	re (implicitly)
2013-06-02 15:36:29 +00:00
Hiroki Sato a4a9338dd4 Update relnotes item:
F_DUP{,2}FD_CLOEXEC implemented for fcntl(2),
	filemon(4) added,
	kern.*siz writable sysctl,
	random(4) PADLOCK_RNG and RDRAND_RND,
	Danish keymap for MacBook added,
	uchcom(4) CH341/CH340 USB-Serial Bridge support,
	ukbd(4) Microsoft Natural Egronomic Keyboard 4000 issue fixed,
	uplcom(4) Motorola cable support,
	uslcom(4) CP2103/CP2104/CP2105 support,
	virtio drivers added,
	em(4), lem(4), igb(4) stat counter bugfix,
	ipheth(4) iPhone 5 support,
	arcmsr(4) updated to 1.20.00.25,
	hptiop(4) updated to 1.8,
	isci(4) SCSI UNMAP to ATA DSM translation,
	GEOM_RAID kern.geom.raid.* tunables,
	tws(4) updated to 10.80.00.005,
	NFS security configuration issue in exports(5) fixed,
	crontab(1) one second wait added,
	fetch(1) max number of HTTP redirections increased,
	fetch(1) 305 and 308 status code supported,
	make(1) :tu and :tl modifiers added,
	mv(1) -h added,
	ppp(8) lqr/echo issue fixed,
	ps(1) dsiz and ssiz keywords added,
	NO_FOO overrides WITH_FOO in src.conf,
	syslogd(8) IPv6 support in dest addr,
	top(1) ZFS ARC stats support,
	rc.d/jail jail_parameters variable added,
	ISC BIND 9.6-ESV-R7-P4,
	LESS v451,
	pkg(8) command added, and
	pkg_add(1) PACKAGESUFFIX support added.

Approved by:	re (implicitly)
2013-06-02 10:19:14 +00:00
Hiroki Sato 4da9c5a728 Update relnotes item:
puc(4) Moxa PCIe multiport serial boards support,
	snd_emu10kx(4) on PAE kernel fixed,
	IPv6 atomic fragment handling,
	if_lagg(4) interface renaming issue fixed,
	ng_netflow(4) NetFlow version 9 support,
	mps(4) in GENERIC on sparc64 and powerpc, and
	procstat(1) superpage flag support.

Approved by:	re (implicitly)
2013-06-01 22:53:11 +00:00
Hiroki Sato 9855dd2376 Update relnotes item:
zfsboot and zfsloader filesystem support in zpool,
	acpi(4) Processor object listing now uses MADT,
	uftdi(4) BeagleBone and egnite Turtelizer support,
	tap(4) VIMAGE support,
	ahci(4) Marvell 88SE9220/9230/9235 support,
	mps(4) updated to 14.00.00.01-fbsd,
	kdump(1) -p option,
	libedit updated to snapshot as of 2009/12/28,
	pciconf(8) -e option,
	sockstat(1) -j option,
	zfs(8) canmount property handling,
	netcat updated to OpenBSD 5.1, and
	OpenSSL updated to version 0.9.8x.

Approved by:	re (implicitly)
2013-06-01 22:16:43 +00:00
Hiroki Sato 45fb2fc413 Update relnotes item:
shm_map(9) and shm_unmap(9) added,
	sparc64 loader heap command,
	sparc64 zfsboot and zfsloader,
	amd64 extended FPU states and AVX,
	pcf8563(4) added,
	puc(4) Sun 1040 PCI Quad Serial support,
	snd_hda(4) updated,
	bce(4) IPMI fix,
	bge(4) bugfix,
	mxge(4) updated to 1.4.55,
	ral(4) RT2800/3000 support,
	if_bridge(4) duplicate ID issue fixed, linkstate and carp(4) support,
	net.link.bridge.* as loader tunables,
	IPv6 refcount fixes,
	if_lagg(4) lagghash option added,
	amr(4) bugfix,
	kern.cam.pmp.hide_special sysctl added,
	isci(4) bugfix,
	NFS over ZFS memory leak fixed,
	inetd(8) time handling fixed,
	procstat(1) and fstat(1) pathname for shared memory object support,
	ps(1) cow keyword added,
	zfs(8) send displays transmitted data size, and
	ISC BIND updated to 9.6-ESV-R7-P1.

Approved by:	re (implicitly)
2013-06-01 21:28:43 +00:00
Hiroki Sato e70d2e5cf3 Update relnotes item:
debug.kdb.breack_to_debugger, debug.kdb.alt_break_to_debugger added,
	kern.stop_scheduler_on_panic added,
	usb(4) multi-TT hub support,
	wbwd(4) added,
	bce(4) jumbo frame fixed,
	bce(4) remote PHYs support,
	iwn(4) Intel Centrino Wireless-N 100/130 support,
	igb(4) CPU binding on an SMP machine changed,
	ixgbe(4) TSO issue fixed,
	u3g(4) SIM5218 support,
	FIB handling improved: locking removal, net.fibs tunable,
	TCP host cache issue fixed,
	ATA_CAM compat shims added,
	da(4) subsequent BIO_DELETE request gathering,
	da(4) new device support,
	mfi(4) LSI MegaRAID SAS ThuderBolt support,
	GEOM_MULTIPATH improvements,
	GEOM_RAID DDF metadata support,
	NFS: a workaround for a non-FreeBSD server implemented,
	vfs.zfs.txg.timeout is now writable,
	dot.cshrc changed,
	fetch(1) percent-encoded user and password support,
	PROFIL_USE_PID variable for gprof profiling data generation,
	lastcomm(1) +format option added,
	libusb_get_max_iso_packet_size(3) added,
	pam_exec(8) return_prog_exit_status option added,
	setbuf(1) and libstdbuf library added,
	traceroute(8) bugfix,
	usbdump(8) filtering support, and
	usbhidctl(1) -z flag.

Approved by:	re (implicitly)
2013-06-01 19:07:03 +00:00
Hiroki Sato b9a977a824 Update relnotes item:
vnet context bug fixed,
	dirty pages flushing issue fixed,
	pathname-only boot.config(5) problem fixed,
	UFS1 handling in boot loader on big endian platforms fixed,
	gptboot altlba handling changed,
	zfsboot -q option issue fixed,
	workaround for AMD CPU 10h/12h erratum 721 added,
	atkbdc(4) PNP0320 support added,
	cpufreq(4) frequency tuning calculation fixed,
	hwpmc(4) deadlock fixed,
	pci(4) HT-MSI mapping support,
	uart(4) serial over LAN on Intel 4 serries chipset support,
	usb(4) suspend handling improved,
	ale(4) link state handling improved, flow control support,
	bge(4) watchdog timeout issue fixed, if_ierrors handling fixed,
	cas(4),gem(4),hme(4) have been added to GENERIC for amd64/i386,
	fxp(4) extra media change issue fixed,
	iwn(4) Intel Centrino 6150 support,
	re(4)/rl(4) RTL8139 support improved,
	re(4) intermittent link up/down issue on RTL8169 fixed,
	rl(4) WoL support is disabled by default,
	run(4) firmware initinalization changed,
	run(4) updated to 0.236,
	sf(4) system load issue fixed,
	u3g(4) new Qualcomm modems added as supported devices,
	if_bridge(4) the number of forwarding cache entries bumped,
	ipfw(4) table arg improved,
	ipfw(4) net.inet.ip.fw.tables_max added,
	vlan(4) EUI64 part of an IPv6 address fixed,
	a panic in multicast routing on vimage kernel fixed,
	a panic in ng_patch(4) fixed,
	SCTP stack now supports ng_iface(4) and stf(4),
	SCTP stack now supports net.inet.udp.checksum sysctl for encap,
	new sysctl kern.features.ata_cam added,
	cam(4) now tries READ CAPACITY(16),
	isci(4) READ CAPACITY(16) bug fixed,
	PART_LDM geom class added,
	tmpfs(5) is not experimental anymore,
	xen(4) blkfront driver attach issue fixed,
	NFS stale name cache issue fixed,
	NFS nametimeo parameter added,
	daemon(8) -r,
	devfs(5) ruleset=number mount option and -u support added,
	libpmc more PMCs support,
	libradius rad_bind_to(3) added,
	libutil priority class capability bug fixed,
	pam_unix(8) passwordtime capability support,
	procstat(1) osreldate support,
	remquo(3) bug fixed,
	rtld(1) performance improved,
	sh(1) arithmetic expansion improved,
	unzip(1) -Z
	zfs list -t snapshot improved in performance,
	zfs get -t datatype added,
	ISC BIND 9.6-ESV-R6,
	tz2012a, and
	pkg_create(1) -p option improved.

Approved by:	re (implicitly)
2013-06-01 15:02:15 +00:00
Hiroki Sato 07f89c430f Update relnotes item:
kernel thread CPU affinity configuration bug fixed,
        run(4) Logitec LAN-W300NU2 support,
        IPv6 multi-FIB support,
        SO_PROTOCOL/SO_PROTOTYPE sockopt added,
        isci(4) more Intel C600 chip ids added,
        mpt(4) and mfi(4) attach conflict issue fixed,
        nullfs(5) panic fixed,
        rc.d scripts' ^T output goes to stderr, and
        tcsh updated to 6.18.01.

Approved by:	re (implicitly)
2013-06-01 11:14:35 +00:00
Hiroki Sato aea55657ff Trim copyright year.
Approved by:	re (implicitly)
2013-06-01 11:10:40 +00:00
Hiroki Sato a57453d33d Document SA-12:01 to :08 and SA-13:02 to :05.
Approved by:	re (implicitly)
2013-06-01 10:57:25 +00:00
Glen Barber 7b277c6d0b Update releng/8.4 branch to -RELEASE status, pending final preparation.
Approved by:	re (implicit)
2013-05-13 22:38:30 +00:00
Glen Barber 808d570e8e Update releng/8.4 to -RC3 status.
Approved by:	re (implicit)
2013-05-06 19:59:38 +00:00
Konstantin Belousov 1a58de3adb MFC r249525:
Rewrite origin_subst_one() to get rid of the wrong limit on the length
of the resulting string.

MFC r250075:
Properly terminate the result string for intermediate results.

Approved by:	re (jpaetzel)
2013-05-06 19:50:22 +00:00
Gregory Neil Shapiro 2bee0d1627 MFC: Minor changes to force commit these files so new freebsd*.cf files are
built to use the new sendmail-8.14.7/cf tree.  Merged from stable/8.

Approved by:	re (delphij)
2013-05-02 01:39:32 +00:00
Gregory Neil Shapiro e8ada9d870 MFC: Merge sendmail 8.14.7 from stable/8
Approved by:	re (delphij)
2013-05-02 01:35:02 +00:00
Dag-Erling Smørgrav 4b41f17f29 Fix a bug that allows NFS clients to issue READDIR on files.
(files missing from previous commit)

PR:		kern/178016
Security:	CVE-2013-3266
Security:	FreeBSD-SA-13:05.nfsserver
Approved by:	re
2013-04-29 21:11:31 +00:00
Dag-Erling Smørgrav e599c24cfe Fix a bug that allows NFS clients to issue READDIR on files.
PR:		kern/178016
Security:	CVE-2013-3266
Security:	FreeBSD-SA-13:05.nfsserver
Approved by:	re
2013-04-29 20:16:25 +00:00
Randall Stewart 3944c1881d MFC of r249848:
This fixes the issue with
the "randomly changing" default route. What it was is there are two
places in ip_output.c where we do a goto again. One place was fine,
it copies out the new address and then resets dst = ro->rt_dst; But
the other place does *not* do that, which means earlier when we
found the gateway, we have dst pointing there aka dst =
ro->rt_gateway is done.. then we do a goto again.. bam now we
clobber the default route.

The fix is just to move the again so we are always doing dst =
&ro->rt_dst; in the again loop.

Approved by:	[email protected] (Josh Paetzel)
2013-04-25 21:55:29 +00:00
Sergey Kandaurov b99f9165eb Merge r249836 from stable/8 to releng/8.4: Add FreeBSD 8.4.
Approved by:	re (kib)
2013-04-24 13:19:48 +00:00
Glen Barber 94b445c94e - Update releng/8.4 branch to -RC2
Approved by:	re (jpaetzel)
2013-04-20 19:13:56 +00:00
Robert Watson 8852850499 Merge r249478 from stable/8 to releng/8.4:
FreeBSD 8.0 introduced inpcb reference counting, and FreeBSD 8.1 began using
  that reference count to protect inpcb stability in udp_pcblist() and other
  monitoring functions, preventing the inpcb from being garbage collected
  across potentially sleeping copyout() operations despite the inpcb zone
  becoming shrinkable.

  However, this introduced a race condition in which inp->inp_socket() might
  become NULL as a result of the socket being freed, but before the inpcb we
  removed from the global list of connections, allowing it to be exposed to a
  third thread invoking udp_input() or udp6_input() which would try to
  indirect through inp_socket without testing it for NULL.  This might occur
  with particular regularity on systems that frequently run netstat, or which
  use SNMP for connection monitoring.

  Later FreeBSD releases use a different reference/destruction model, but
  stable/8 remained affected in FreeBSD 8.2 and 8.3; the problem could be
  spotted on very high-load UDP services, such as top-level name servers.

  An Errata Note for 8.x branches under continuing support might be
  appropriate.  Regardless, this fix should be merged to releng/8.4 prior to
  8.4-RELEASE.

  PR:           172963
  Submitted by: Vincent Miller <[email protected]>
  Submitted by: Julien Charbon <[email protected]>
  Submitted by: Marc De La Gueronniere <[email protected]>

Approved by:    re (rodrigc)
2013-04-19 21:08:56 +00:00
Steven Hartland 5f45e57447 MFC three change sets (details below) which fix system shutdown and
reboots hanging at "All buffers synced" when using ZFS.

MFC r241556:
Add a KPI to allow to reserve some amount of space in the numvnodes
counter, without actually allocating the vnodes.

For KBI stability, the td_vp_reserv was moved to the end of struct thread

MFC r241628:
zfs: make use of getnewvnode_reserve in zfs_mknode and zfs_zget

MFC r243520, r243521:
zfs: overhaul zfs-vfs glue for vnode life-cycle management

Reviewed by:	avg
Approved by:	re (jpaetzel), avg (co-mentor)
2013-04-15 19:45:09 +00:00
Xin LI a0fc0837d1 MFS r249495:
Fix a few typos.

Reviewed by:	gjb
Approved by:	re (hrs)
2013-04-15 05:50:09 +00:00
Glen Barber 12eba1321c Fix a typo.
Submitted by:	bcr
Approved by:	re (delphij)
2013-04-11 23:45:40 +00:00
Raphael Kubo da Costa 78c53355f1 MFS8 r249107:
Add vendor IDs for Broadcom USB dongles (BCM20702).

PR:		kern/174707
Approved by:	re (kib), glebius
2013-04-11 22:10:15 +00:00
Glen Barber 48d032343c Document that, although ZFS pool feature flags are available,
8.4-RC1 and later ZFS pool version defaults to version 28 to
prevent problems with upgrading to FreeBSD 9.1-RELEASE.

Feature flags can be enabled by explicitly running:

	zpool upgrade <pool>

Approved by:	re (delphij)
2013-04-05 20:41:46 +00:00
Hiroki Sato bb7319892f Trim old imformation and bump version numbers.
Approved by:	re (implicit)
2013-04-05 04:08:03 +00:00
Glen Barber 4b407891dd - Update releng/8.4 branch to -RC1 status
Approved by:	re (jpaetzel)
2013-04-05 00:57:10 +00:00
Xin LI bfa6f99e91 MFS r249068 [1],249100,249114 [2]:
Limit the creation version to 28 by default to avoid surprises when
user "upgrade" to 9.1-RELEASE, which predates the merge of feature
flags support to stable/9 (r243674) and is the latest stable/9 release
at this time.

Users who want the new features can still do "zpool upgrade" after pool
creation, or by explicitly specifying feature flags and/or disabling
all feature flags at creation time.

Reviewed by:	mm [1], Matthew Ahrens [2]
Approved by:	re (jpaetzel)
2013-04-04 23:36:14 +00:00
Gavin Atkinson 25edfb6bd8 When r241373 was merged, one file appears to have been missed from the
commit.  Merge it:
        Remove undefined behavior from sranddev() and
        srandomdev(). This doesn't actually work
        with any modern C compiler:

        In particular, both clang and modern gcc
        verisons silently elide any xor operation
        with 'junk'.

No mergeinfo changes with this commit as r241475 already updated the
mergeinfo.

Approved by:	re (jpaetzel)
2013-04-02 19:33:35 +00:00
Devin Teske 4a6712d364 MFS8 r249023:
Oops, r240972 (Add DEBUG kernel distribution) forgot to make said
  distribution optional (such as the long-standing "local" distribution;
  also optional). This fixes a regression in the install process when the
  user selects "All" as the distribution-set.

  This is a direct commit to stable/8.

PR:		bin/177309
Reviewed by:	eadler
Approved by:	re (glebius)
2013-04-02 17:11:07 +00:00
Tijl Coosemans 519e2d55ae MFS r248880:
- Fix two possible overflows when testing if ELF program headers are on
  the first page:
  1. Cast uint16_t operands in a multiplication to unsigned int because
     otherwise the implicit promotion to int results in a signed
     multiplication that can overflow and the behaviour on integer
     overflow is undefined.
  2. Replace (offset + size > PAGE_SIZE) with (size > PAGE_SIZE - offset)
     because the sum may overflow.
- Use the same tests to see if the path to the interpreter is on the first
  page. There's no overflow here because size is already limited by
  MAXPATHLEN, but the compiler optimises the new tests better. Also fix an
  off-by-one error.
- Simplify tests to see if an ELF note program header is on the first page.
  This also fixes an off-by-one error.

Reviewed by:	kib
Approved by:	re (glebius)
2013-04-01 09:56:20 +00:00
Martin Matuska 8fd84e1078 MFC r248267:
Import minor ZFS changes from vendor

  Illumos ZFS issues:
  3604 zdb should print bpobjs more verbosely (fix zdb hang)
  3606 zpool status -x shouldn't warn about old on-disk format

Approved by:	re (marius)
2013-03-31 18:51:34 +00:00
Martin Matuska 236a66e498 MFC r247852:
Import ZFS bpobj bugfix from vendor.

  Illumos ZFS issues:
  3603 panic from bpobj_enqueue_subobj()
  3604 zdb should print bpobjs more verbosely

Approved by:	re (marius)
2013-03-31 18:35:02 +00:00
Glen Barber 0911de95ac MFC r248857:
- Update hardware notes to reflect that amd64 is no longer "young"
 - Bump copyright year

Approved by:	re (delphij)
2013-03-29 21:26:33 +00:00
Bryan Venteicher 512f08014f MFC 247870:
Remove the virtio dependency entry for the VirtIO device drivers. This
    will prevent the kernel from linking if the device driver are included
    without the virtio module. Remove pci and scbus for the same reason.

    Also explain the relationship and necessity of the virtio and virtio_pci
    modules. Currently in FreeBSD, we only support VirtIO PCI, but it could
    be replaced with a different interface (like MMIO) and the device
    (network, block, etc) will still function.

Approved by:	re (marius@)
2013-03-29 02:14:57 +00:00
Pyun YongHyeon 6e8aac78a5 MFC r248226:
r241438 broke IPMI access on Sun Fire X2200 M2(BCM5715).
  Fix the IPMI regression by sending BGE_FW_DRV_STATE_UNLOAD to
  ASF/IPMI firmware in driver attach phase.  Sending heartheat to
  ASF/IPMI is enabled only after upping interface so
  setting driver state to BGE_FW_DRV_STATE_START in attach phase
  broke IPMI access.
  While I'm here, add NVRAM arbitration lock before performing
  controller reset. ASF/IPMI firmware may be able to access the NVRAM
  while controller reset is in progress.  Without the arbitration
  lock before resetting the controller, ASF/IPMI may not initialize
  properly.

Approved by:	re (glebius)
2013-03-29 00:32:31 +00:00
Xin LI 911c6efdde Version bumps after releng/8.4 branch:
Makefile:
 * Update the CVS branch tag.

release/Makefile:
 * Update RELEASETAG and SVNBRANCH.

share/examples/cvsup/standard-supfile:
 * Update to have "make update" pull from RELENG_8_4.

sys/sys/param.h:
 * Update __FreeBSD_version to 804000 to reflect releng/8.4 has been
   branched.

Approved by:	re (rodrigc)
2013-03-28 20:35:37 +00:00
Sean Bruno 706a1f4eab MFC r247279
The 5300 series ciss(4) board does not work in performant mode with our
currnet initialization sequence.  Set it to simple mode only so that
systems can be updated from stable/7 to newer installations.

At some point, we should figure out why we cannot initialize performant
mode on this board.

PR:		kern/153361
Reviewed by:	scottl
Approved by:	re (marius@)
2013-03-28 18:06:09 +00:00
Konstantin Belousov 7704299ea1 MFC r248422:
Remove negative name cache entry pointing to the target name, which
could be instantiated while tdvp was unlocked.

Approved by:	re (marius)
2013-03-28 15:04:03 +00:00
Dag-Erling Smørgrav 257229dc3c MFH (r248465): revert upstream decommissioning of authorized_keys2
Approved by:	re (marius@)
2013-03-28 13:45:45 +00:00
Andrey V. Elsukov 3fa483c3a3 MFstable/8 r248822:
Take the inpcb rlock before calculating checksum, it was accidentally
  moved in r191672.

Approved by:	re (glebius)
2013-03-28 10:08:58 +00:00
Xin LI f787c80d66 MFS r248816:
MFV r248595:

 - Integrate OpenSSL revisions
   fb092ef4fca897344daf7189526f5f26be6487ce,
   a93cc7c57333f4538cbcdedd2e961a5a38caa52d, and
   76c61a5d1adb92388f39e585e4af860a20feb9bb.

   This removes the newly added orig_len field of SSL3_RECORD and
   restored ABI.

Approved by:	re (kib)
2013-03-28 06:51:29 +00:00
347 changed files with 2571 additions and 45152 deletions

No files matched your search

+1 -1
View File
@@ -92,7 +92,7 @@ CLEANDIR= cleandir
.endif
CVS?= cvs
CVSFLAGS?= -r RELENG_8 -P -d -I!
CVSFLAGS?= -r RELENG_8_4 -P -d -I!
SVN?= svn
SVNFLAGS?= -r HEAD
SUP?= /usr/bin/csup
+3
View File
@@ -15,6 +15,9 @@ NOTE TO PEOPLE WHO THINK THAT FreeBSD 8.x IS SLOW ON IA64 OR SUN4V:
debugging tools present in HEAD were left in place because
sun4v support still needs work to become production ready.
20130429:
Fix a bug that allows NFS clients to issue READDIR on files.
20130225:
A new compression method (lz4) has been merged. Please refer to
zpool-features(7) for more information.
+54 -17
View File
@@ -1189,7 +1189,7 @@ dump_bpobj_cb(void *arg, const blkptr_t *bp, dmu_tx_t *tx)
}
static void
dump_bpobj(bpobj_t *bpo, char *name)
dump_bpobj(bpobj_t *bpo, char *name, int indent)
{
char bytes[32];
char comp[32];
@@ -1199,31 +1199,57 @@ dump_bpobj(bpobj_t *bpo, char *name)
return;
zdb_nicenum(bpo->bpo_phys->bpo_bytes, bytes);
if (bpo->bpo_havesubobj) {
if (bpo->bpo_havesubobj && bpo->bpo_phys->bpo_subobjs != 0) {
zdb_nicenum(bpo->bpo_phys->bpo_comp, comp);
zdb_nicenum(bpo->bpo_phys->bpo_uncomp, uncomp);
(void) printf("\n %s: %llu local blkptrs, %llu subobjs, "
"%s (%s/%s comp)\n",
name, (u_longlong_t)bpo->bpo_phys->bpo_num_blkptrs,
(void) printf(" %*s: object %llu, %llu local blkptrs, "
"%llu subobjs, %s (%s/%s comp)\n",
indent * 8, name,
(u_longlong_t)bpo->bpo_object,
(u_longlong_t)bpo->bpo_phys->bpo_num_blkptrs,
(u_longlong_t)bpo->bpo_phys->bpo_num_subobjs,
bytes, comp, uncomp);
for (uint64_t i = 0; i < bpo->bpo_phys->bpo_num_subobjs; i++) {
uint64_t subobj;
bpobj_t subbpo;
int error;
VERIFY0(dmu_read(bpo->bpo_os,
bpo->bpo_phys->bpo_subobjs,
i * sizeof (subobj), sizeof (subobj), &subobj, 0));
error = bpobj_open(&subbpo, bpo->bpo_os, subobj);
if (error != 0) {
(void) printf("ERROR %u while trying to open "
"subobj id %llu\n",
error, (u_longlong_t)subobj);
continue;
}
dump_bpobj(&subbpo, "subobj", indent + 1);
bpobj_close(&subbpo);
}
} else {
(void) printf("\n %s: %llu blkptrs, %s\n",
name, (u_longlong_t)bpo->bpo_phys->bpo_num_blkptrs, bytes);
(void) printf(" %*s: object %llu, %llu blkptrs, %s\n",
indent * 8, name,
(u_longlong_t)bpo->bpo_object,
(u_longlong_t)bpo->bpo_phys->bpo_num_blkptrs,
bytes);
}
if (dump_opt['d'] < 5)
return;
(void) printf("\n");
(void) bpobj_iterate_nofree(bpo, dump_bpobj_cb, NULL, NULL);
if (indent == 0) {
(void) bpobj_iterate_nofree(bpo, dump_bpobj_cb, NULL, NULL);
(void) printf("\n");
}
}
static void
dump_deadlist(dsl_deadlist_t *dl)
{
dsl_deadlist_entry_t *dle;
uint64_t unused;
char bytes[32];
char comp[32];
char uncomp[32];
@@ -1242,14 +1268,24 @@ dump_deadlist(dsl_deadlist_t *dl)
(void) printf("\n");
/* force the tree to be loaded */
dsl_deadlist_space_range(dl, 0, UINT64_MAX, &unused, &unused, &unused);
for (dle = avl_first(&dl->dl_tree); dle;
dle = AVL_NEXT(&dl->dl_tree, dle)) {
(void) printf(" mintxg %llu -> obj %llu\n",
(longlong_t)dle->dle_mintxg,
(longlong_t)dle->dle_bpobj.bpo_object);
if (dump_opt['d'] >= 5) {
char buf[128];
(void) snprintf(buf, sizeof (buf), "mintxg %llu -> ",
(longlong_t)dle->dle_mintxg,
(longlong_t)dle->dle_bpobj.bpo_object);
if (dump_opt['d'] >= 5)
dump_bpobj(&dle->dle_bpobj, "");
dump_bpobj(&dle->dle_bpobj, buf, 0);
} else {
(void) printf("mintxg %llu -> obj %llu\n",
(longlong_t)dle->dle_mintxg,
(longlong_t)dle->dle_bpobj.bpo_object);
}
}
}
@@ -1272,7 +1308,7 @@ fuid_table_destroy()
* print uid or gid information.
* For normal POSIX id just the id is printed in decimal format.
* For CIFS files with FUID the fuid is printed in hex followed by
* the doman-rid string.
* the domain-rid string.
*/
static void
print_idstr(uint64_t id, const char *id_type)
@@ -2529,10 +2565,11 @@ dump_zpool(spa_t *spa)
if (dump_opt['d'] || dump_opt['i']) {
dump_dir(dp->dp_meta_objset);
if (dump_opt['d'] >= 3) {
dump_bpobj(&spa->spa_deferred_bpobj, "Deferred frees");
dump_bpobj(&spa->spa_deferred_bpobj,
"Deferred frees", 0);
if (spa_version(spa) >= SPA_VERSION_DEADLISTS) {
dump_bpobj(&spa->spa_dsl_pool->dp_free_bpobj,
"Pool snapshot frees");
"Pool snapshot frees", 0);
}
if (spa_feature_is_active(spa,
+4 -3
View File
@@ -25,7 +25,7 @@
.\"
.\" $FreeBSD$
.\"
.Dd November 15, 2012
.Dd March 14, 2013
.Dt ZPOOL 8
.Os
.Sh NAME
@@ -1608,14 +1608,15 @@ is specified, the command exits after
.Ar count
reports are printed.
.Pp
If a scrub or resilver is in progress, this command reports the percentage done
and the estimated time to completion. Both of these are only approximate,
If a scrub or resilver is in progress, this command reports the percentage
done and the estimated time to completion. Both of these are only approximate,
because the amount of data in the pool and the other workloads on the system
can change.
.Bl -tag -width indent
.It Fl x
Only display status for pools that are exhibiting errors or are otherwise
unavailable.
Warnings about pools not using the latest on-disk format will not be included.
.It Fl v
Displays verbose data error information, printing out a complete list of all
data errors since the last complete pool scrub.
@@ -856,6 +856,16 @@ zpool_do_create(int argc, char **argv)
}
}
#ifdef __FreeBSD__
/* Compatiblity with FreeBSD 9.0 and 9.1: Use version 28 if unspecified */
if (enable_all_pool_feat && !prop_list_contains_feature(props)) {
if (add_prop_list(zpool_prop_to_name(
ZPOOL_PROP_VERSION), "28", &props, B_TRUE))
goto errout;
enable_all_pool_feat = B_FALSE;
}
#endif /* __FreeBSD__ */
argc -= optind;
argv += optind;
@@ -4030,7 +4040,10 @@ status_callback(zpool_handle_t *zhp, void *data)
* If we were given 'zpool status -x', only report those pools with
* problems.
*/
if (reason == ZPOOL_STATUS_OK && cbp->cb_explain) {
if (cbp->cb_explain &&
(reason == ZPOOL_STATUS_OK ||
reason == ZPOOL_STATUS_VERSION_OLDER ||
reason == ZPOOL_STATUS_FEAT_DISABLED)) {
if (!cbp->cb_allpools) {
(void) printf(gettext("pool '%s' is healthy\n"),
zpool_get_name(zhp));
+73 -73
View File
@@ -1,4 +1,4 @@
# $Id: CACerts,v 8.5 2011/05/06 23:05:10 ca Exp $
# $Id: CACerts,v 8.6 2013/01/18 15:14:17 ca Exp $
# This file contains some CA certificates that are used to sign the
# certificates of mail servers of members of the sendmail consortium
# who may reply to questions etc sent to sendmail.org.
@@ -10,93 +10,93 @@ Certificate:
Data:
Version: 3 (0x2)
Serial Number:
c2:3c:61:67:3b:0a:cc:5e
Signature Algorithm: md5WithRSAEncryption
Issuer: C=US, ST=California, L=Berkeley, O=Endmail Org, OU=MTA, CN=Claus Assmann CA RSA 2009/emailAddress=ca+ca-rsa2009@esmtp.org
f1:41:b3:3d:ba:bd:33:49
Signature Algorithm: sha1WithRSAEncryption
Issuer: C=US, ST=California, L=Berkeley, O=Endmail Org, OU=MTA, CN=Claus Assmann CA RSA 2012/emailAddress=ca+ca-rsa2012@esmtp.org
Validity
Not Before: May 14 04:42:18 2009 GMT
Not After : May 13 04:42:18 2012 GMT
Subject: C=US, ST=California, L=Berkeley, O=Endmail Org, OU=MTA, CN=Claus Assmann CA RSA 2009/emailAddress=ca+ca-rsa2009@esmtp.org
Not Before: Mar 10 02:47:46 2012 GMT
Not After : Mar 10 02:47:46 2015 GMT
Subject: C=US, ST=California, L=Berkeley, O=Endmail Org, OU=MTA, CN=Claus Assmann CA RSA 2012/emailAddress=ca+ca-rsa2012@esmtp.org
Subject Public Key Info:
Public Key Algorithm: rsaEncryption
RSA Public Key: (2048 bit)
Modulus (2048 bit):
00:d5:f8:d3:48:38:75:df:2e:6b:8b:c4:8d:1d:41:
5e:ad:4b:96:3d:48:c2:dc:e5:ff:61:98:95:32:03:
e9:b6:71:5a:68:31:bc:e1:5c:aa:0e:70:a7:bc:51:
b7:13:6a:78:54:ae:a6:d0:44:49:1b:5e:37:5b:59:
20:01:47:a7:ec:41:4c:11:79:8c:25:c1:1b:c0:ed:
85:b2:de:0f:10:9f:e7:b2:a3:c4:f1:fc:85:51:aa:
d6:68:49:51:3e:04:e1:eb:e9:cd:87:1b:d0:9d:97:
7b:4c:e1:1e:b1:6a:be:01:0a:a9:97:9a:50:89:e3:
66:06:4c:07:cb:7e:99:70:13:e8:b4:9c:e7:e6:52:
38:c0:64:90:42:d0:f5:cf:22:46:22:60:e9:34:70:
1d:e3:d1:13:33:3a:31:ba:13:06:a8:c2:34:90:47:
c5:a1:bd:2d:7d:98:21:70:de:22:d0:13:11:e5:08:
dd:a0:77:0b:df:34:a7:07:55:de:5a:71:f6:6c:9e:
ec:f7:45:75:1f:22:a9:84:06:c6:4f:84:3d:4e:05:
d7:e4:e5:98:41:61:7b:8e:c9:3b:a6:ed:31:80:7d:
fd:fa:f0:dc:b7:07:82:b8:ec:27:20:39:5f:78:95:
f1:0d:93:8d:f9:4d:21:08:fd:72:89:01:ff:2c:a0:
71:9d
Public-Key: (2048 bit)
Modulus:
00:a2:80:fc:c6:ce:7f:60:38:65:f4:38:f9:7a:d9:
87:fd:47:eb:3f:2c:4a:c9:38:77:6a:77:94:92:7f:
83:3d:99:57:2c:5f:37:bb:ba:12:10:17:56:fa:eb:
43:a6:4b:4c:1e:30:32:07:94:2f:5a:d8:65:49:29:
fa:24:d1:f0:0b:45:2d:e5:d5:cb:7d:60:dc:a6:ce:
a4:47:35:30:ee:5e:8d:c2:30:e7:a7:63:32:b0:59:
80:cc:8c:99:64:77:8f:50:8e:88:51:47:36:ea:9a:
f3:b4:c0:8c:a6:ab:c6:42:57:88:b9:5f:9f:61:15:
bb:79:65:93:ca:a9:fd:17:eb:87:26:8b:eb:b7:2b:
7e:33:05:2b:ba:c0:46:f7:08:fd:da:c1:50:9b:3d:
26:83:5c:53:97:89:2c:cc:5f:f2:7b:a8:b7:3d:fb:
f2:b4:89:0d:43:ef:18:5c:21:75:71:cc:f0:c2:a3:
84:69:c0:a7:f3:9b:de:c1:c7:5a:5c:7e:68:da:49:
71:af:58:a8:51:9f:bd:f9:3d:bb:a5:92:fa:7b:1d:
52:f5:fe:90:59:95:27:65:a4:af:97:9a:4f:01:39:
59:7d:08:6f:a1:8f:42:47:49:bf:12:52:53:39:74:
8d:62:3b:bd:4c:4f:05:0f:c4:b9:3e:da:a8:0e:96:
05:2d
Exponent: 65537 (0x10001)
X509v3 extensions:
X509v3 Subject Key Identifier:
A7:61:FA:31:AF:A8:E2:5E:93:B6:84:9E:74:08:A2:76:50:87:69:7C
08:38:E3:88:92:53:6E:F1:56:69:27:44:B5:4C:A0:18:CA:06:97:EB
X509v3 Authority Key Identifier:
keyid:A7:61:FA:31:AF:A8:E2:5E:93:B6:84:9E:74:08:A2:76:50:87:69:7C
DirName:/C=US/ST=California/L=Berkeley/O=Endmail Org/OU=MTA/CN=Claus Assmann CA RSA 2009/emailAddress=ca+ca-rsa2009@esmtp.org
serial:C2:3C:61:67:3B:0A:CC:5E
keyid:08:38:E3:88:92:53:6E:F1:56:69:27:44:B5:4C:A0:18:CA:06:97:EB
DirName:/C=US/ST=California/L=Berkeley/O=Endmail Org/OU=MTA/CN=Claus Assmann CA RSA 2012/emailAddress=ca+ca-rsa2012@esmtp.org
serial:F1:41:B3:3D:BA:BD:33:49
X509v3 Basic Constraints:
CA:TRUE
CA:TRUE
X509v3 Subject Alternative Name:
email:ca+ca-rsa2009@esmtp.org
email:ca+ca-rsa2012@esmtp.org
X509v3 Issuer Alternative Name:
email:ca+ca-rsa2009@esmtp.org
Signature Algorithm: md5WithRSAEncryption
b3:38:e0:da:a8:07:d8:cc:b8:4d:8c:20:a6:06:2c:f8:27:db:
8e:28:0f:39:bd:d9:24:c7:9f:e0:4d:d6:b6:63:42:36:0f:d8:
70:41:e7:9e:a2:24:64:05:ea:85:97:ac:f2:cc:c2:a6:71:bb:
30:21:c1:c7:c4:54:34:1d:30:09:f0:9b:74:27:93:59:12:4c:
53:0b:8c:3e:d0:39:ed:4a:d0:d9:66:24:d8:e7:e5:9c:a8:6d:
5f:56:5d:9a:91:fe:1b:7d:b9:7c:79:9e:1c:b9:71:74:14:f8:
0c:30:50:f9:b1:22:56:a8:4d:6f:4b:9b:e5:8a:81:33:1b:77:
75:f6:d8:ce:d4:90:34:86:34:d1:86:75:a9:e1:23:e6:af:c1:
8e:28:97:47:20:4d:1b:57:09:39:f4:56:01:d2:87:43:3e:29:
f6:c4:5b:7d:8f:9e:bd:ad:36:79:cf:09:70:43:30:21:98:23:
31:c8:0d:39:ee:77:e1:4a:44:1a:5c:79:2f:6c:ec:8a:3c:db:
99:a0:11:bc:1a:46:24:51:e7:75:d6:9a:db:ad:dd:55:d4:dd:
ca:81:a0:10:77:96:91:9c:76:30:38:18:f0:82:43:b3:7c:41:
64:4c:4e:da:66:22:67:cf:b7:d7:10:ba:ed:f4:6d:43:59:00:
d0:82:1e:07
email:ca+ca-rsa2012@esmtp.org
Signature Algorithm: sha1WithRSAEncryption
9a:8f:4d:23:5b:30:80:e1:94:e4:66:9c:3a:17:8b:79:49:5b:
ec:5d:e5:a1:22:2d:71:37:a1:51:e7:1d:b1:0d:a9:9b:aa:a9:
0d:c7:cd:d6:24:f9:e0:f0:57:be:4f:74:0c:4b:7a:42:4c:70:
19:2e:8e:eb:cb:1b:00:26:27:eb:1c:42:33:d5:ec:32:b4:6c:
7d:a3:04:a1:5c:00:49:c9:0d:4c:4d:28:37:06:22:77:ec:40:
15:25:3a:23:84:ae:1f:da:90:dd:c9:dc:27:ee:7c:ec:e5:df:
b8:ba:1e:3f:ee:c2:91:a2:3f:22:92:1e:f3:06:7e:aa:e9:c3:
11:2d:3d:2f:85:f7:fc:d7:e2:f8:6d:70:a6:40:62:69:e7:52:
ed:1b:19:38:72:86:08:a1:3d:47:c8:68:82:41:db:db:2a:52:
25:d7:49:aa:9e:c5:83:22:7d:2f:0b:df:8c:90:2d:b5:aa:33:
c7:9b:e8:39:8f:bb:79:5b:13:2d:4e:a9:69:59:c7:09:26:e2:
b5:53:80:86:72:bb:7c:be:e9:46:5b:d8:b2:78:42:d6:5d:c3:
bb:3a:3b:5f:0f:e8:c3:60:fb:88:9f:3a:2b:9f:d3:7d:9f:c7:
32:aa:4d:34:a7:66:a1:25:16:95:a6:69:e7:86:a3:5c:b9:b9:
df:58:05:e3
-----BEGIN CERTIFICATE-----
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
gkOzfEFkTE7aZiJnz7fXELrt9G1DWQDQgh4H
BgNVBAsTA01UQTEiMCAGA1UEAxMZQ2xhdXMgQXNzbWFubiBDQSBSU0EgMjAxMjEm
MCQGCSqGSIb3DQEJARYXY2ErY2EtcnNhMjAxMkBlc210cC5vcmeCCQDxQbM9ur0z
STAMBgNVHRMEBTADAQH/MCIGA1UdEQQbMBmBF2NhK2NhLXJzYTIwMTJAZXNtdHAu
b3JnMCIGA1UdEgQbMBmBF2NhK2NhLXJzYTIwMTJAZXNtdHAub3JnMA0GCSqGSIb3
DQEBBQUAA4IBAQCaj00jWzCA4ZTkZpw6F4t5SVvsXeWhIi1xN6FR5x2xDambqqkN
x83WJPng8Fe+T3QMS3pCTHAZLo7ryxsAJifrHEIz1ewytGx9owShXABJyQ1MTSg3
BiJ37EAVJTojhK4f2pDdydwn7nzs5d+4uh4/7sKRoj8ikh7zBn6q6cMRLT0vhff8
1+L4bXCmQGJp51LtGxk4coYIoT1HyGiCQdvbKlIl10mqnsWDIn0vC9+MkC21qjPH
m+g5j7t5WxMtTqlpWccJJuK1U4CGcrt8vulGW9iyeELWXcO7OjtfD+jDYPuInzor
n9N9n8cyqk00p2ahJRaVpmnnhqNcubnfWAXj
-----END CERTIFICATE-----
+2 -2
View File
@@ -1,6 +1,6 @@
$FreeBSD$
sendmail 8.14.6
sendmail 8.14.7
originals can be found at: ftp://ftp.sendmail.org/pub/sendmail/
For the import of sendmail, the following directories were renamed:
@@ -97,4 +97,4 @@ infrastructure in FreeBSD:
usr.sbin/mailwrapper/Makefile
[email protected]
29-December-2012
21-April-2013
+138 -1
View File
@@ -141,6 +141,143 @@ gpExpdV7qPrw9k01j5rod5PjZlG8zV0=
=SR28
-----END PGP PUBLIC KEY BLOCK-----
Type Bits KeyID Created Expires Algorithm Use
pub 2048 5207CAD3 2013-01-02 ------- RSA Sign & Encrypt
fingerprint: B87D 4569 86F1 9484 07E5 CCB4 3D68 B25D 5207 CAD3
uid Sendmail Signing Key/2013 <[email protected]>
-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: GnuPG v1.4.13 (Darwin)
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
x4XQOkQ96TXgQoe/dvARKuUcAQl7RvZOIZcBTPs=
=kpXE
-----END PGP PUBLIC KEY BLOCK-----
Type Bits KeyID Created Expires Algorithm Use
pub 2048 CEEEF43B 2011-12-14 ------- RSA Sign & Encrypt
fingerprint: CA7A 8F39 A241 9FFF B0A9 AB27 8E5A E9FB CEEE F43B
@@ -2298,4 +2435,4 @@ DnF3FZZEzV7oqPwC2jzv/1dD6GFhtgy0cnyoPGUJCyc=
=nES8
-----END PGP PUBLIC KEY BLOCK-----
$Revision: 8.40 $, Last updated $Date: 2012/01/09 04:44:59 $
$Revision: 8.43 $, Last updated $Date: 2013/01/18 17:40:21 $
+30 -1
View File
@@ -1,11 +1,40 @@
SENDMAIL RELEASE NOTES
$Id: RELEASE_NOTES,v 8.2011 2012/12/21 18:42:16 ca Exp $
$Id: RELEASE_NOTES,v 8.2024 2013/04/19 15:01:58 ca Exp $
This listing shows the version of the sendmail binary, the version
of the sendmail configuration files, the date of release, and a
summary of the changes in that release.
8.14.7/8.14.7 2013/04/21
Drop support for IPv4-mapped IPv6 addresses to prevent the MTA
from using a mapped address over a legitimate IPv6 address
and to enforce the proper semantics over the IPv6
connection. Problem noted by Ulrich Sporlein.
Fix a regression introduced in 8.14.6: the wrong list of
macros was sent to a milter in the EHLO stage.
Problem found by Fabrice Bellet, reported via RedHat
(Jaroslav Skarvada).
Fix handling of ORCPT parameter for DSNs: xtext decoding
was not performed and a wrong syntax check was applied
to the "addr-type" field. Problem noted by Dan Lukes
of Obludarium.
Fix handling of NUL characters in the MIME conversion functions
so that message bodies containing them will be sent
on properly. Note: this usually also affects mails
that are not converted as those functions are used
for other purposes too. Problem noted by Elchonon
Edelson of Lockheed Martin.
Do not perform "duplicate" elimination of recipients if they
resolve to the error mailer using a temporary failure
(4xy) via ruleset 0. Problem noted by Akira Takahashi
of IIJ.
CONTRIB: Updated version of etrn.pl script from John Beck
of Oracle.
Portability:
Unlike gcc, clang doesn't apply full prototypes to K&R
definitions.
8.14.6/8.14.6 2012/12/23
Fix a regression introduced in 8.14.5: if a server offers
two AUTH lines, the MTA would not read them after
+3 -3
View File
@@ -16,8 +16,8 @@
#####
##### SENDMAIL CONFIGURATION FILE
#####
##### built by ca@wiz.smi.sendmail.com on Fri Dec 21 10:45:15 PST 2012
##### in /extra/home/ca/sm-8.14.6/OpenSource/sendmail-8.14.6/cf/cf
##### built by ca@wiz.smi.sendmail.com on Fri Apr 19 08:04:44 PDT 2013
##### in /extra/home/ca/sm-8.14.7/OpenSource/sendmail-8.14.7/cf/cf
##### using ../ as configuration include directory
#####
######################################################################
@@ -114,7 +114,7 @@ D{MTAHost}[127.0.0.1]
# Configuration version number
DZ8.14.6/Submit
DZ8.14.7/Submit
###############
+3 -3
View File
@@ -1,6 +1,6 @@
divert(-1)
#
# Copyright (c) 1998-2012 Sendmail, Inc. and its suppliers.
# Copyright (c) 1998-2013 Sendmail, Inc. and its suppliers.
# All rights reserved.
# Copyright (c) 1983 Eric P. Allman. All rights reserved.
# Copyright (c) 1988, 1993
@@ -11,8 +11,8 @@ divert(-1)
# the sendmail distribution.
#
#
VERSIONID(`$Id: version.m4,v 8.222 2012/12/19 05:11:43 ca Exp $')
VERSIONID(`$Id: version.m4,v 8.230 2013/04/18 15:07:16 ca Exp $')
#
divert(0)
# Configuration version number
DZ8.14.6`'ifdef(`confCF_VERSION', `/confCF_VERSION')
DZ8.14.7`'ifdef(`confCF_VERSION', `/confCF_VERSION')
+73 -18
View File
@@ -1,22 +1,40 @@
#!/usr/local/bin/perl -w
#!/usr/perl5/bin/perl -w
#
# CDDL HEADER START
#
# The contents of this file are subject to the terms of the
# Common Development and Distribution License (the "License").
# You may not use this file except in compliance with the License.
#
# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
# or http://www.opensolaris.org/os/licensing.
# See the License for the specific language governing permissions
# and limitations under the License.
#
# When distributing Covered Code, include this CDDL HEADER in each
# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
# If applicable, add the following below this CDDL HEADER, with the
# fields enclosed by brackets "[]" replaced with your own identifying
# information: Portions Copyright [yyyy] [name of copyright owner]
#
# CDDL HEADER END
#
#
# Copyright (c) 1996-2000 by John T. Beck <[email protected]>
# All rights reserved.
#
# Copyright (c) 2000 by Sun Microsystems, Inc.
# All rights reserved.
# Copyright 2008 Sun Microsystems, Inc. All rights reserved.
# Use is subject to license terms.
#
#ident "@(#)etrn.pl 1.1 00/09/06 SMI"
require 5.005; # minimal Perl version required
require 5.8.4; # minimal Perl version required
use strict;
use warnings;
use English;
# hardcoded constants, should work fine for BSD-based systems
use Socket;
use Getopt::Std;
use vars qw($opt_v);
my $sockaddr = 'S n a4 x8';
our ($opt_v, $opt_b);
# system requirements:
# must have 'hostname' program.
@@ -26,11 +44,12 @@ select(STDERR);
chop(my $name = `hostname || uname -n`);
(my $hostname, my $aliases, my $type, my $len, undef) = gethostbyname($name);
my ($hostname) = (gethostbyname($name))[0];
my $usage = "Usage: $PROGRAM_NAME [-v] host [args]";
getopts('v');
my $usage = "Usage: $PROGRAM_NAME [-bv] host [args]";
getopts('bv');
my $verbose = $opt_v;
my $boot_check = $opt_b;
my $server = shift(@ARGV);
my @hosts = @ARGV;
die $usage unless $server;
@@ -86,24 +105,60 @@ if (!@hosts) {
die "open $cwfile: $ERRNO";
}
}
# Do this automatically if no client hosts are specified.
$boot_check = "yes";
}
($name, $aliases, my $proto) = getprotobyname('tcp');
($name, $aliases, $port) = getservbyname($port, 'tcp')
my ($proto) = (getprotobyname('tcp'))[2];
($port) = (getservbyname($port, 'tcp'))[2]
unless $port =~ /^\d+/;
if ($boot_check) {
# first connect to localhost to verify that we can accept connections
print "verifying that localhost is accepting SMTP connections\n"
if ($verbose);
my $localhost_ok = 0;
($name, my $laddr) = (gethostbyname('localhost'))[0, 4];
(!defined($name)) && die "gethostbyname failed, unknown host localhost";
# get a connection
my $sinl = sockaddr_in($port, $laddr);
my $save_errno = 0;
for (my $num_tries = 1; $num_tries < 5; $num_tries++) {
socket(S, &PF_INET, &SOCK_STREAM, $proto)
|| die "socket: $ERRNO";
if (connect(S, $sinl)) {
&alarm("sending 'quit' to $server");
print S "quit\n";
alarm(0);
$localhost_ok = 1;
close(S);
alarm(0);
last;
}
print STDERR "localhost connect failed ($num_tries)\n";
$save_errno = $ERRNO;
sleep(1 << $num_tries);
close(S);
alarm(0);
}
if (! $localhost_ok) {
die "could not connect to localhost: $save_errno\n";
}
}
# look it up
($name, $aliases, $type, $len, my $thataddr) = gethostbyname($server);
($name, my $thataddr) = (gethostbyname($server))[0, 4];
(!defined($name)) && die "gethostbyname failed, unknown host $server";
# get a connection
my $that = pack($sockaddr, &AF_INET, $port, $thataddr);
socket(S, &AF_INET, &SOCK_STREAM, $proto)
my $sinr = sockaddr_in($port, $thataddr);
socket(S, &PF_INET, &SOCK_STREAM, $proto)
|| die "socket: $ERRNO";
print "server = $server\n" if (defined($verbose));
&alarm("connect to $server");
if (! connect(S, $that)) {
if (! connect(S, $sinr)) {
die "cannot connect to $server: $ERRNO\n";
}
alarm(0);
+15 -8
View File
@@ -9,7 +9,7 @@
.\" the sendmail distribution.
.\"
.\"
.\" $Id: op.me,v 8.749 2012/03/02 22:37:11 ca Exp $
.\" $Id: op.me,v 8.751 2013/04/08 21:41:25 ca Exp $
.\"
.\" eqn op.me | pic | troff -me
.\"
@@ -90,7 +90,7 @@ Sendmail, Inc.
.de Ve
Version \\$2
..
.Ve $Revision: 8.749 $
.Ve $Revision: 8.751 $
.rm Ve
.sp
For Sendmail Version 8.14
@@ -5547,9 +5547,6 @@ It can have primary types
or full types
(such as
.q text/plain ).
The class is initialized to have
.q text/plain
only.
.ip $=s
contains the set of subtypes of message that can be treated recursively.
By default it contains only
@@ -6609,8 +6606,13 @@ Modifier Options (flags) for the client
.)b
The
.i Addr ess
mask may be a numeric address in dot notation
mask may be a numeric address in IPv4 dot notation or IPv6 colon notation
or a network name.
Note that if a network name is specified,
only the first IP address returned for it will be used.
This may cause indeterminate behavior for network names
that resolve to multiple addresses.
Therefore, use of an address is recommended.
.i Modifier
can be the following character:
.(b
@@ -6778,8 +6780,13 @@ The
key is used for error messages and logging.
The
.i Addr ess
mask may be a numeric address in dot notation
mask may be a numeric address in IPv4 dot notation or IPv6 colon notation
or a network name.
Note that if a network name is specified,
only the first IP address returned for it will be used.
This may cause indeterminate behavior for network names
that resolve to multiple addresses.
Therefore, use of an address is recommended.
The
.i Family
key defaults to INET (IPv4).
@@ -11471,7 +11478,7 @@ replace it with a blank sheet for double-sided output.
.\".sz 10
.\"Eric Allman
.\".sp
.\"Version $Revision: 8.749 $
.\"Version $Revision: 8.751 $
.\".ce 0
.bp 3
.ce
+6 -4
View File
@@ -6,7 +6,7 @@
* forth in the LICENSE file which can be found at the top level of
* the sendmail distribution.
*
* $Id: config.h,v 1.47 2004/10/26 21:41:07 gshapiro Exp $
* $Id: config.h,v 1.48 2013/03/22 22:48:57 gshapiro Exp $
*/
/*
@@ -24,14 +24,16 @@
/*
** SM_CONF_STDBOOL_H is 1 if <stdbool.h> exists
**
** Note, unlike gcc, clang doesn't apply full prototypes to K&R definitions.
*/
# ifndef SM_CONF_STDBOOL_H
# if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
# if !defined(__clang__) && defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
# define SM_CONF_STDBOOL_H 1
# else /* defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L */
# else /* !defined(__clang__) && defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L */
# define SM_CONF_STDBOOL_H 0
# endif /* defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L */
# endif /* !defined(__clang__) && defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L */
# endif /* ! SM_CONF_STDBOOL_H */
/*
+3 -3
View File
@@ -1,5 +1,5 @@
/*
* Copyright (c) 2000-2002, 2004 Sendmail, Inc. and its suppliers.
* Copyright (c) 2000-2002, 2004, 2013 Sendmail, Inc. and its suppliers.
* All rights reserved.
* Copyright (c) 1990
* The Regents of the University of California. All rights reserved.
@@ -11,7 +11,7 @@
* forth in the LICENSE file which can be found at the top level of
* the sendmail distribution.
*
* $Id: io.h,v 1.24 2004/03/03 19:14:49 ca Exp $
* $Id: io.h,v 1.25 2013/03/12 15:24:49 ca Exp $
*/
/*-
@@ -269,7 +269,7 @@ int sm_io_close __P((SM_FILE_T *, int SM_NONVOLATILE));
SM_FILE_T *sm_io_dup __P((SM_FILE_T *));
int sm_io_eof __P((SM_FILE_T *));
int sm_io_error __P((SM_FILE_T *));
char *sm_io_fgets __P((SM_FILE_T *, int, char *, int));
int sm_io_fgets __P((SM_FILE_T *, int, char *, int));
int sm_io_flush __P((SM_FILE_T *, int SM_NONVOLATILE));
int PRINTFLIKE(3, 4)
+1 -1
View File
@@ -1,4 +1,4 @@
dnl $Id: Makefile.m4,v 8.88 2012/09/25 17:40:32 ca Exp $
dnl $Id: Makefile.m4,v 8.92 2013/04/16 20:19:54 ca Exp $
include(confBUILDTOOLSDIR`/M4/switch.m4')
dnl only required for compilation of EXTRAS
+8 -3
View File
@@ -1,5 +1,5 @@
/*
* Copyright (c) 1999-2001, 2004, 2010 Sendmail, Inc. and its suppliers.
* Copyright (c) 1999-2001, 2004, 2010, 2013 Sendmail, Inc. and its suppliers.
* All rights reserved.
*
* By using this file, you agree to the terms and conditions set
@@ -9,7 +9,7 @@
*/
#include <sm/gen.h>
SM_RCSID("@(#)$Id: sm_gethost.c,v 8.29 2010/07/27 01:09:31 ca Exp $")
SM_RCSID("@(#)$Id: sm_gethost.c,v 8.30 2013/02/22 22:43:33 gshapiro Exp $")
#include <sendmail.h>
#if NETINET || NETINET6
@@ -101,7 +101,12 @@ mi_gethostbyname(name, family)
# endif /* SOLARIS == 20300 || SOLARIS == 203 */
#else /* (SOLARIS > 10000 && SOLARIS < 20400) || (defined(SOLARIS) && SOLARIS < 204) || (defined(sony_news) && defined(__svr4)) */
# if NETINET6
int flags = AI_DEFAULT|AI_ALL;
# ifndef SM_IPNODEBYNAME_FLAGS
/* For IPv4-mapped addresses, use: AI_DEFAULT|AI_ALL */
# define SM_IPNODEBYNAME_FLAGS AI_ADDRCONFIG
# endif /* SM_IPNODEBYNAME_FLAGS */
int flags = SM_IPNODEBYNAME_FLAGS;
int err;
# endif /* NETINET6 */
+2 -1
View File
@@ -1,4 +1,4 @@
dnl $Id: Makefile.m4,v 1.72 2006/08/16 21:06:31 ca Exp $
dnl $Id: Makefile.m4,v 1.73 2013/03/12 15:24:50 ca Exp $
define(`confREQUIRE_LIBUNIX')
include(confBUILDTOOLSDIR`/M4/switch.m4')
@@ -18,6 +18,7 @@ smcheck(`t-exc', `compile-run')
smcheck(`t-rpool', `compile-run')
smcheck(`t-string', `compile-run')
smcheck(`t-smstdio', `compile-run')
smcheck(`t-fget', `compile-run')
smcheck(`t-match', `compile-run')
smcheck(`t-strio', `compile-run')
smcheck(`t-heap', `compile-run')
+2 -2
View File
@@ -9,7 +9,7 @@
*/
#include <sm/gen.h>
SM_RCSID("@(#)$Id: cf.c,v 1.6 2001/09/11 04:04:47 gshapiro Exp $")
SM_RCSID("@(#)$Id: cf.c,v 1.7 2013/03/12 15:24:50 ca Exp $")
#include <ctype.h>
#include <errno.h>
@@ -54,7 +54,7 @@ sm_cf_getopt(path, optc, optv)
if (cfp == NULL)
return errno;
while (sm_io_fgets(cfp, SM_TIME_DEFAULT, buf, sizeof(buf)) != NULL)
while (sm_io_fgets(cfp, SM_TIME_DEFAULT, buf, sizeof(buf)) >= 0)
{
p = strchr(buf, '\n');
if (p != NULL)
+16 -13
View File
@@ -1,5 +1,5 @@
/*
* Copyright (c) 2000-2001 Sendmail, Inc. and its suppliers.
* Copyright (c) 2000-2001, 2013 Sendmail, Inc. and its suppliers.
* All rights reserved.
* Copyright (c) 1990, 1993
* The Regents of the University of California. All rights reserved.
@@ -13,7 +13,7 @@
*/
#include <sm/gen.h>
SM_RCSID("@(#)$Id: fget.c,v 1.24 2001/09/11 04:04:48 gshapiro Exp $")
SM_RCSID("@(#)$Id: fget.c,v 1.25 2013/03/12 15:24:50 ca Exp $")
#include <stdlib.h>
#include <string.h>
#include <sm/io.h>
@@ -33,31 +33,32 @@ SM_RCSID("@(#)$Id: fget.c,v 1.24 2001/09/11 04:04:48 gshapiro Exp $")
** n -- size of 'buf'
**
** Returns:
** success: returns value of 'buf'
** failure: NULL (no characters were read)
** timeout: NULL and errno set to EAGAIN
** success: number of characters
** failure: -1
** timeout: -1 and errno set to EAGAIN
**
** Side Effects:
** may move the file pointer
*/
char *
int
sm_io_fgets(fp, timeout, buf, n)
register SM_FILE_T *fp;
int timeout;
char *buf;
register int n;
{
register int len;
register char *s;
register unsigned char *p, *t;
int len, r;
char *s;
unsigned char *p, *t;
SM_REQUIRE_ISA(fp, SmFileMagic);
if (n <= 0) /* sanity check */
return NULL;
return -1;
s = buf;
n--; /* leave space for NUL */
r = 0;
while (n > 0)
{
/* If the buffer is empty, refill it. */
@@ -73,7 +74,7 @@ sm_io_fgets(fp, timeout, buf, n)
{
/* EOF/error: stop with partial or no line */
if (s == buf)
return NULL;
return -1;
break;
}
len = fp->f_r;
@@ -93,18 +94,20 @@ sm_io_fgets(fp, timeout, buf, n)
if (t != NULL)
{
len = ++t - p;
r += len;
fp->f_r -= len;
fp->f_p = t;
(void) memcpy((void *) s, (void *) p, len);
s[len] = 0;
return buf;
return r;
}
fp->f_r -= len;
fp->f_p += len;
(void) memcpy((void *) s, (void *) p, len);
s += len;
r += len;
n -= len;
}
*s = 0;
return buf;
return r;
}
+86
View File
@@ -0,0 +1,86 @@
/*
* Copyright (c) 2013 Sendmail, Inc. and its suppliers.
* All rights reserved.
*
* By using this file, you agree to the terms and conditions set
* forth in the LICENSE file which can be found at the top level of
* the sendmail distribution.
*/
#include <sm/gen.h>
SM_IDSTR(id, "@(#)$Id: t-fget.c,v 1.1 2013/03/12 15:24:50 ca Exp $")
#include <sm/io.h>
#include <sm/string.h>
#include <sm/test.h>
#include <errno.h>
void
check(char *msg, int l)
{
SM_FILE_T *wfp, *rfp;
char buf[256];
size_t n;
int r, i;
static char fn[] = "tfget";
wfp = sm_io_open(SmFtStdio, SM_TIME_DEFAULT, fn,
SM_IO_WRONLY_B, NULL);
SM_TEST(wfp != NULL);
for (i = 0; i < l; i++)
{
r = sm_io_putc(wfp, SM_TIME_DEFAULT, msg[i]);
SM_TEST(r >= 0);
}
r = sm_io_close(wfp, SM_TIME_DEFAULT);
SM_TEST(r == 0);
rfp = sm_io_open(SmFtStdio, SM_TIME_DEFAULT, fn,
SM_IO_RDONLY_B, NULL);
SM_TEST(rfp != NULL);
n = sizeof(buf);
r = sm_io_fgets(rfp, SM_TIME_DEFAULT, buf, n);
if (l == 0)
{
SM_TEST(r == -1);
SM_TEST(errno == 0);
}
else
{
SM_TEST(r == l);
if (r != l)
fprintf(stderr, "buf='%s', in='%s', r=%d, l=%d\n",
buf, msg, r, l);
}
SM_TEST(memcmp(buf, msg, l) == 0);
r = sm_io_close(rfp, SM_TIME_DEFAULT);
SM_TEST(r == 0);
}
int
main(argc, argv)
int argc;
char **argv;
{
char res[256];
int l;
sm_test_begin(argc, argv, "test fget");
check("", strlen(""));
check("\n", strlen("\n"));
check("test\n", strlen("test\n"));
l = snprintf(res, sizeof(res), "%c%s\n", '\0', "test ing");
check(res, l);
l = snprintf(res, sizeof(res), "%c%s%c\n", '\0', "test ing", '\0');
check(res, l);
l = snprintf(res, sizeof(res), "%c%s%c%s\n",
'\0', "test ing", '\0', "eol");
check(res, l);
return sm_test_end();
}
+8 -4
View File
@@ -1,5 +1,5 @@
/*
* Copyright (c) 1998-2002 Sendmail, Inc. and its suppliers.
* Copyright (c) 1998-2002, 2013 Sendmail, Inc. and its suppliers.
* All rights reserved.
* Copyright (c) 1983 Eric P. Allman. All rights reserved.
* Copyright (c) 1988, 1993
@@ -20,7 +20,7 @@ SM_IDSTR(copyright,
Copyright (c) 1988, 1993\n\
The Regents of the University of California. All rights reserved.\n")
SM_IDSTR(id, "@(#)$Id: mailstats.c,v 8.100 2002/06/27 23:24:06 gshapiro Exp $")
SM_IDSTR(id, "@(#)$Id: mailstats.c,v 8.102 2013/03/12 15:24:50 ca Exp $")
#include <unistd.h>
#include <stddef.h>
@@ -68,13 +68,14 @@ main(argc, argv)
extern char *ctime();
extern char *optarg;
extern int optind;
# define MSOPTS "cC:f:opP"
cfile = getcfname(0, 0, SM_GET_SENDMAIL_CF, NULL);
sfile = NULL;
mnames = true;
progmode = false;
trunc = false;
while ((ch = getopt(argc, argv, "cC:f:opP")) != -1)
while ((ch = getopt(argc, argv, MSOPTS)) != -1)
{
switch (ch)
{
@@ -90,6 +91,7 @@ main(argc, argv)
sfile = optarg;
break;
case 'o':
mnames = false;
break;
@@ -102,6 +104,7 @@ main(argc, argv)
progmode = true;
break;
case '?':
default:
usage:
@@ -131,7 +134,7 @@ main(argc, argv)
(void) sm_strlcpy(mtable[mno++], "*file*", MNAMELEN + 1);
(void) sm_strlcpy(mtable[mno++], "*include*", MNAMELEN + 1);
while (sm_io_fgets(cfp, SM_TIME_DEFAULT, buf, sizeof(buf)) != NULL)
while (sm_io_fgets(cfp, SM_TIME_DEFAULT, buf, sizeof(buf)) >= 0)
{
register char *b;
char *s;
@@ -270,6 +273,7 @@ main(argc, argv)
}
}
if (progmode)
{
(void) time(&now);
+3 -3
View File
@@ -20,7 +20,7 @@ SM_IDSTR(copyright,
Copyright (c) 1992, 1993\n\
The Regents of the University of California. All rights reserved.\n")
SM_IDSTR(id, "@(#)$Id: makemap.c,v 8.180 2010/11/23 02:35:08 gshapiro Exp $")
SM_IDSTR(id, "@(#)$Id: makemap.c,v 8.181 2013/03/12 15:24:51 ca Exp $")
#include <sys/types.h>
@@ -242,7 +242,7 @@ main(argc, argv)
cfile, sm_errstring(errno));
exit(EX_NOINPUT);
}
while (sm_io_fgets(cfp, SM_TIME_DEFAULT, buf, sizeof(buf)) != NULL)
while (sm_io_fgets(cfp, SM_TIME_DEFAULT, buf, sizeof(buf)) >= 0)
{
register char *b;
@@ -392,7 +392,7 @@ main(argc, argv)
{
lineno = 0;
while (sm_io_fgets(smioin, SM_TIME_DEFAULT, ibuf, sizeof ibuf)
!= NULL)
>= 0)
{
register char *p;
+2 -2
View File
@@ -20,7 +20,7 @@ SM_IDSTR(copyright,
Copyright (c) 1988, 1993\n\
The Regents of the University of California. All rights reserved.\n")
SM_IDSTR(id, "@(#)$Id: praliases.c,v 8.96 2008/07/10 20:13:10 ca Exp $")
SM_IDSTR(id, "@(#)$Id: praliases.c,v 8.97 2013/03/12 15:24:51 ca Exp $")
#include <sys/types.h>
#include <ctype.h>
@@ -122,7 +122,7 @@ main(argc, argv)
exit(EX_NOINPUT);
}
while (sm_io_fgets(cfp, SM_TIME_DEFAULT, buf, sizeof(buf)) != NULL)
while (sm_io_fgets(cfp, SM_TIME_DEFAULT, buf, sizeof(buf)) >= 0)
{
register char *b, *p;
+3 -3
View File
@@ -20,7 +20,7 @@ SM_IDSTR(copyright,
Copyright (c) 1988, 1993\n\
The Regents of the University of California. All rights reserved.\n")
SM_IDSTR(id, "@(#)$Id: rmail.c,v 8.61 2001/09/18 21:45:29 gshapiro Exp $")
SM_IDSTR(id, "@(#)$Id: rmail.c,v 8.62 2013/03/12 15:24:52 ca Exp $")
/*
* RMAIL -- UUCP mail server.
@@ -136,7 +136,7 @@ main(argc, argv)
{
/* Get and nul-terminate the line. */
if (sm_io_fgets(smioin, SM_TIME_DEFAULT, lbuf,
sizeof(lbuf)) == NULL)
sizeof(lbuf)) < 0)
err(EX_DATAERR, "no data");
if ((p = strchr(lbuf, '\n')) == NULL)
err(EX_DATAERR, "line too long");
@@ -385,7 +385,7 @@ main(argc, argv)
{
(void) sm_io_fprintf(fp, SM_TIME_DEFAULT, "%s", lbuf);
} while (sm_io_fgets(smioin, SM_TIME_DEFAULT, lbuf,
sizeof(lbuf)) != NULL);
sizeof(lbuf)) >= 0);
if (sm_io_error(smioin))
err(EX_TEMPFAIL, "stdin: %s", sm_errstring(errno));
+1 -1
View File
@@ -1,4 +1,4 @@
dnl $Id: Makefile.m4,v 8.132 2012/09/11 20:02:44 ca Exp $
dnl $Id: Makefile.m4,v 8.139 2013/04/17 17:15:54 ca Exp $
include(confBUILDTOOLSDIR`/M4/switch.m4')
define(`confREQUIRE_LIBSM', `true')
+4 -4
View File
@@ -13,7 +13,7 @@
#include <sendmail.h>
SM_RCSID("@(#)$Id: alias.c,v 8.219 2006/10/24 18:04:09 ca Exp $")
SM_RCSID("@(#)$Id: alias.c,v 8.220 2013/03/12 15:24:52 ca Exp $")
#define SEPARATOR ':'
# define ALIAS_SPEC_SEPARATORS " ,/:"
@@ -657,7 +657,7 @@ readaliases(map, af, announcestats, logstats)
LineNumber = 0;
naliases = bytes = longest = 0;
skipping = false;
while (sm_io_fgets(af, SM_TIME_DEFAULT, line, sizeof(line)) != NULL)
while (sm_io_fgets(af, SM_TIME_DEFAULT, line, sizeof(line)) >= 0)
{
int lhssize, rhssize;
int c;
@@ -670,7 +670,7 @@ readaliases(map, af, announcestats, logstats)
{
p--;
if (sm_io_fgets(af, SM_TIME_DEFAULT, p,
SPACELEFT(line, p)) == NULL)
SPACELEFT(line, p)) < 0)
break;
LineNumber++;
p = strchr(p, '\n');
@@ -780,7 +780,7 @@ readaliases(map, af, announcestats, logstats)
/* read continuation line */
if (sm_io_fgets(af, SM_TIME_DEFAULT, p,
sizeof(line) - (p-line)) == NULL)
sizeof(line) - (p-line)) < 0)
break;
LineNumber++;
+19 -1
View File
@@ -13,7 +13,7 @@
#include <sendmail.h>
SM_RCSID("@(#)$Id: collect.c,v 8.285 2012/06/14 23:54:02 ca Exp $")
SM_RCSID("@(#)$Id: collect.c,v 8.286 2013/03/15 17:54:12 ca Exp $")
static void eatfrom __P((char *volatile, ENVELOPE *));
static void collect_doheader __P((ENVELOPE *));
@@ -300,6 +300,9 @@ collect(fp, smtpmode, hdrp, e, rsetsize)
unsigned char *pbp;
unsigned char peekbuf[8];
char bufbuf[MAXLINE];
#if _FFR_REJECT_NUL_BYTE
bool hasNUL; /* has at least one NUL input byte */
#endif /* _FFR_REJECT_NUL_BYTE */
df = NULL;
ignrdot = smtpmode ? false : IgnrDot;
@@ -315,6 +318,9 @@ collect(fp, smtpmode, hdrp, e, rsetsize)
hdrslen = 0;
numhdrs = 0;
HasEightBits = false;
#if _FFR_REJECT_NUL_BYTE
hasNUL = false;
#endif /* _FFR_REJECT_NUL_BYTE */
buf = bp = bufbuf;
buflen = sizeof(bufbuf);
pbp = peekbuf;
@@ -403,6 +409,10 @@ collect(fp, smtpmode, hdrp, e, rsetsize)
SM_TIME_DEFAULT,
c);
}
#if _FFR_REJECT_NUL_BYTE
if (c == '\0')
hasNUL = true;
#endif /* _FFR_REJECT_NUL_BYTE */
if (c == SM_IO_EOF)
goto readerr;
if (SevenBitInput)
@@ -893,6 +903,14 @@ readerr:
e->e_bodytype = "7BIT";
}
#if _FFR_REJECT_NUL_BYTE
if (hasNUL && RejectNUL)
{
e->e_status = "5.6.1";
usrerrenh(e->e_status, "554 NUL byte not allowed");
}
#endif /* _FFR_REJECT_NUL_BYTE */
if (SuperSafe == SAFE_REALLY && !bitset(EF_FATALERRS, e->e_flags))
{
char *dfname = queuename(e, DATAFL_LETTER);
+36 -6
View File
@@ -1,5 +1,5 @@
/*
* Copyright (c) 1998-2012 Sendmail, Inc. and its suppliers.
* Copyright (c) 1998-2013 Sendmail, Inc. and its suppliers.
* All rights reserved.
* Copyright (c) 1983, 1995-1997 Eric P. Allman. All rights reserved.
* Copyright (c) 1988, 1993
@@ -13,7 +13,7 @@
#include <sendmail.h>
SM_RCSID("@(#)$Id: conf.c,v 8.1176 2012/12/07 03:59:54 ca Exp $")
SM_RCSID("@(#)$Id: conf.c,v 8.1182 2013/04/05 17:39:09 ca Exp $")
#include <sm/sendmail.h>
#include <sendmail/pathnames.h>
@@ -967,7 +967,7 @@ switch_map_find(service, maptype, mapreturn)
char buf[MAXLINE];
while (sm_io_fgets(fp, SM_TIME_DEFAULT, buf,
sizeof(buf)) != NULL)
sizeof(buf)) >= 0)
{
register char *p;
@@ -2848,7 +2848,7 @@ uname(name)
char buf[MAXLINE];
while (sm_io_fgets(file, SM_TIME_DEFAULT,
buf, sizeof(buf)) != NULL)
buf, sizeof(buf)) >= 0)
{
if (sm_io_sscanf(buf, "#define sysname \"%*[^\"]\"",
NODE_LENGTH, name->nodename) > 0)
@@ -3222,7 +3222,7 @@ usershellok(user, shell)
return false;
}
while (sm_io_fgets(shellf, SM_TIME_DEFAULT, buf, sizeof(buf)) != NULL)
while (sm_io_fgets(shellf, SM_TIME_DEFAULT, buf, sizeof(buf)) >= 0)
{
register char *p, *q;
@@ -4294,7 +4294,12 @@ sm_gethostbyname(name, family)
#else /* (SOLARIS > 10000 && SOLARIS < 20400) || (defined(SOLARIS) && SOLARIS < 204) || (defined(sony_news) && defined(__svr4)) */
int nmaps;
# if NETINET6
int flags = AI_DEFAULT|AI_ALL;
# ifndef SM_IPNODEBYNAME_FLAGS
/* For IPv4-mapped addresses, use: AI_DEFAULT|AI_ALL */
# define SM_IPNODEBYNAME_FLAGS AI_ADDRCONFIG
# endif /* SM_IPNODEBYNAME_FLAGS */
int flags = SM_IPNODEBYNAME_FLAGS;
int err;
# endif /* NETINET6 */
char *maptype[MAXMAPSTACK];
@@ -6004,6 +6009,23 @@ char *OsCompileOptions[] =
#if SECUREWARE
"SECUREWARE",
#endif /* SECUREWARE */
#if SFS_TYPE == SFS_4ARGS
"SFS_4ARGS",
#elif SFS_TYPE == SFS_MOUNT
"SFS_MOUNT",
#elif SFS_TYPE == SFS_NONE
"SFS_NONE",
#elif SFS_TYPE == SFS_NT
"SFS_NT",
#elif SFS_TYPE == SFS_STATFS
"SFS_STATFS",
#elif SFS_TYPE == SFS_STATVFS
"SFS_STATVFS",
#elif SFS_TYPE == SFS_USTAT
"SFS_USTAT",
#elif SFS_TYPE == SFS_VFS
"SFS_VFS",
#endif
#if SHARE_V1
"SHARE_V1",
#endif /* SHARE_V1 */
@@ -6184,6 +6206,10 @@ char *FFRCompileOptions[] =
"_FFR_GETHBN_ExFILE",
#endif /* _FFR_GETHBN_ExFILE */
#if _FFR_FIPSMODE
/* FIPSMode (if supported by OpenSSL library) */
"_FFR_FIPSMODE",
#endif /* _FFR_FIPSMODE */
#if _FFR_FIX_DASHT
/*
** If using -t, force not sending to argv recipients, even
@@ -6363,6 +6389,10 @@ char *FFRCompileOptions[] =
"_FFR_REDIRECTEMPTY",
#endif /* _FFR_REDIRECTEMPTY */
#if _FFR_REJECT_NUL_BYTE
/* reject NUL bytes in body */
"_FFR_REJECT_NUL_BYTE",
#endif /* _FFR_REJECT_NUL_BYTE */
#if _FFR_RESET_MACRO_GLOBALS
/* Allow macro 'j' to be set dynamically via rulesets. */
"_FFR_RESET_MACRO_GLOBALS",
+2 -2
View File
@@ -10,7 +10,7 @@
#include <sendmail.h>
SM_RCSID("@(#)$Id: control.c,v 8.128 2006/08/15 23:24:56 ca Exp $")
SM_RCSID("@(#)$Id: control.c,v 8.129 2013/03/12 15:24:52 ca Exp $")
#include <sm/fdset.h>
@@ -301,7 +301,7 @@ control_command(sock, e)
(void) sm_io_setvbuf(s, SM_TIME_DEFAULT, NULL,
SM_IO_NBF, SM_IO_BUFSIZ);
if (sm_io_fgets(s, SM_TIME_DEFAULT, inp, sizeof(inp)) == NULL)
if (sm_io_fgets(s, SM_TIME_DEFAULT, inp, sizeof(inp)) < 0)
{
(void) sm_io_close(s, SM_TIME_DEFAULT);
exit(EX_IOERR);
+4 -4
View File
@@ -14,7 +14,7 @@
#include <sendmail.h>
#include <sm/time.h>
SM_RCSID("@(#)$Id: deliver.c,v 8.1027 2012/12/19 02:49:21 ca Exp $")
SM_RCSID("@(#)$Id: deliver.c,v 8.1028 2013/01/02 18:57:42 ca Exp $")
#if HASSETUSERCONTEXT
# include <login_cap.h>
@@ -6153,7 +6153,7 @@ starttls(m, mci, e)
sm_syslog(LOG_ERR, NOQID,
"STARTTLS=client, error: SSL_new failed");
if (LogLevel > 9)
tlslogerr("client");
tlslogerr(LOG_WARNING, "client");
}
return EX_SOFTWARE;
}
@@ -6172,7 +6172,7 @@ starttls(m, mci, e)
"STARTTLS=client, error: SSL_set_xfd failed=%d",
result);
if (LogLevel > 9)
tlslogerr("client");
tlslogerr(LOG_WARNING, "client");
}
return EX_SOFTWARE;
}
@@ -6202,7 +6202,7 @@ ssl_retry:
result, sr == NULL ? "unknown" : sr, ssl_err,
errno, i);
if (LogLevel > 9)
tlslogerr("client");
tlslogerr(LOG_WARNING, "client");
}
SSL_free(clt_ssl);
+9 -3
View File
@@ -26,7 +26,7 @@ SM_UNUSED(static char copyright[]) =
The Regents of the University of California. All rights reserved.\n";
#endif /* ! lint */
SM_RCSID("@(#)$Id: main.c,v 8.981 2012/06/14 23:54:02 ca Exp $")
SM_RCSID("@(#)$Id: main.c,v 8.983 2013/03/12 15:24:52 ca Exp $")
#if NETINET || NETINET6
@@ -2103,7 +2103,7 @@ main(argc, argv, envp)
"> ");
(void) sm_io_flush(smioout, SM_TIME_DEFAULT);
if (sm_io_fgets(smioin, SM_TIME_DEFAULT, buf,
sizeof(buf)) == NULL)
sizeof(buf)) < 0)
testmodeline("/quit", &MainEnvelope);
p = strchr(buf, '\n');
if (p != NULL)
@@ -2153,7 +2153,13 @@ main(argc, argv, envp)
if (tls_ok)
{
/* basic TLS initialization */
tls_ok = init_tls_library();
tls_ok = init_tls_library(FipsMode);
if (!tls_ok && FipsMode)
{
(void) sm_io_fprintf(smioout, SM_TIME_DEFAULT,
"ERROR: FIPSMode failed to initialize\n");
exit(EX_USAGE);
}
}
if (!tls_ok && (OpMode == MD_QUEUERUN || OpMode == MD_DELIVER))
+7 -4
View File
@@ -13,7 +13,7 @@
#include <sendmail.h>
SM_RCSID("@(#)$Id: map.c,v 8.709 2012/04/20 18:47:09 ca Exp $")
SM_RCSID("@(#)$Id: map.c,v 8.711 2013/03/12 15:24:52 ca Exp $")
#if LDAPMAP
# include <sm/ldap.h>
@@ -2883,6 +2883,9 @@ nis_getcanonname(name, hbsize, statp)
# undef T_UNSPEC /* symbol conflict in nis.h -> ... -> sys/tiuser.h */
# include <rpcsvc/nis.h>
# include <rpcsvc/nislib.h>
# ifndef NIS_TABLE_OBJ
# define NIS_TABLE_OBJ TABLE_OBJ
# endif /* NIS_TABLE_OBJ */
# define EN_col(col) zo_data.objdata_u.en_data.en_cols.en_cols_val[(col)].ec_value.ec_value_val
# define COL_NAME(res,i) ((res->objects.objects_val)->TA_data.ta_cols.ta_cols_val)[i].tc_name
@@ -2970,7 +2973,7 @@ nisplus_map_open(map, mode)
}
if (NIS_RES_NUMOBJ(res) != 1 ||
(NIS_RES_OBJECT(res)->zo_data.zo_type != TABLE_OBJ))
(NIS_RES_OBJECT(res)->zo_data.zo_type != NIS_TABLE_OBJ))
{
if (tTd(38, 10))
sm_dprintf("nisplus_map_open: %s is not a table\n", qbuf);
@@ -5834,7 +5837,7 @@ text_map_lookup(map, name, av, statp)
key_idx = map->map_keycolno;
delim = map->map_coldelim;
while (sm_io_fgets(f, SM_TIME_DEFAULT,
linebuf, sizeof(linebuf)) != NULL)
linebuf, sizeof(linebuf)) >= 0)
{
char *p;
@@ -5908,7 +5911,7 @@ text_getcanonname(name, hbsize, statp)
found = false;
while (!found &&
sm_io_fgets(f, SM_TIME_DEFAULT,
linebuf, sizeof(linebuf)) != NULL)
linebuf, sizeof(linebuf)) >= 0)
{
char *p = strpbrk(linebuf, "#\n");
+2 -2
View File
@@ -13,7 +13,7 @@
#include <sendmail.h>
SM_RCSID("@(#)$Id: mci.c,v 8.223 2010/03/10 04:35:28 ca Exp $")
SM_RCSID("@(#)$Id: mci.c,v 8.224 2013/03/12 15:24:53 ca Exp $")
#if NETINET || NETINET6
# include <arpa/inet.h>
@@ -972,7 +972,7 @@ mci_read_persistent(fp, mci)
sm_io_rewind(fp, SM_TIME_DEFAULT);
ver = -1;
LineNumber = 0;
while (sm_io_fgets(fp, SM_TIME_DEFAULT, buf, sizeof(buf)) != NULL)
while (sm_io_fgets(fp, SM_TIME_DEFAULT, buf, sizeof(buf)) >= 0)
{
LineNumber++;
p = strchr(buf, '\n');
+3 -4
View File
@@ -1,5 +1,5 @@
/*
* Copyright (c) 1999-2009 Sendmail, Inc. and its suppliers.
* Copyright (c) 1999-2009, 2012, 2013 Sendmail, Inc. and its suppliers.
* All rights reserved.
*
* By using this file, you agree to the terms and conditions set
@@ -10,7 +10,7 @@
#include <sendmail.h>
SM_RCSID("@(#)$Id: milter.c,v 8.279 2012/11/16 20:25:03 ca Exp $")
SM_RCSID("@(#)$Id: milter.c,v 8.280 2013/01/16 18:48:36 ca Exp $")
#if MILTER
# include <sm/sendmail.h>
@@ -2184,7 +2184,7 @@ milter_send_command(m, cmd, data, sz, e, state, where)
** cmd -- command to send.
** data -- optional command data.
** sz -- length of buf.
** macros -- macros to send for filter smfi_getsymval().
** stage -- index of macros to send for filter smfi_getsymval().
** e -- current envelope (for macro access).
** state -- return state word.
** where -- description of calling function (logging).
@@ -2328,7 +2328,6 @@ milter_getsymlist(m, buf, rlen, offset)
case SMFIM_DATA:
SM_ASSERT(m->mf_idx > 0 && m->mf_idx < MAXFILTERS);
macros = MilterMacros[i][m->mf_idx];
m->mf_lflags |= MI_LFLAGS_SYM(i);
len = strlen(buf + offset);
if (len > 0)
+21 -20
View File
@@ -1,5 +1,5 @@
/*
* Copyright (c) 1998-2003, 2006 Sendmail, Inc. and its suppliers.
* Copyright (c) 1998-2003, 2006, 2013 Sendmail, Inc. and its suppliers.
* All rights reserved.
* Copyright (c) 1994, 1996-1997 Eric P. Allman. All rights reserved.
* Copyright (c) 1994
@@ -14,7 +14,7 @@
#include <sendmail.h>
#include <string.h>
SM_RCSID("@(#)$Id: mime.c,v 8.147 2007/09/26 23:29:11 ca Exp $")
SM_RCSID("@(#)$Id: mime.c,v 8.148 2013/03/12 15:24:53 ca Exp $")
/*
** MIME support.
@@ -107,6 +107,7 @@ mime8to7(mci, header, e, boundaries, flags, level)
{
register char *p;
int linelen;
int blen;
int bt;
off_t offset;
size_t sectionsize, sectionhighbits;
@@ -322,13 +323,13 @@ mime8to7(mci, header, e, boundaries, flags, level)
goto writeerr;
mci->mci_flags &= ~MCIF_INHEADER;
bt = MBT_FINAL;
while (sm_io_fgets(e->e_dfp, SM_TIME_DEFAULT, buf, sizeof(buf))
!= NULL)
while ((blen = sm_io_fgets(e->e_dfp, SM_TIME_DEFAULT, buf,
sizeof(buf))) >= 0)
{
bt = mimeboundary(buf, boundaries);
if (bt != MBT_NOTSEP)
break;
if (!putxline(buf, strlen(buf), mci,
if (!putxline(buf, blen, mci,
PXLF_MAPFROM|PXLF_STRIP8BIT))
goto writeerr;
if (tTd(43, 99))
@@ -366,13 +367,13 @@ mime8to7(mci, header, e, boundaries, flags, level)
mci->mci_flags &= ~MCIF_INMIME;
/* skip the late "comment" epilogue */
while (sm_io_fgets(e->e_dfp, SM_TIME_DEFAULT, buf, sizeof(buf))
!= NULL)
while ((blen = sm_io_fgets(e->e_dfp, SM_TIME_DEFAULT, buf,
sizeof(buf))) >= 0)
{
bt = mimeboundary(buf, boundaries);
if (bt != MBT_NOTSEP)
break;
if (!putxline(buf, strlen(buf), mci,
if (!putxline(buf, blen, mci,
PXLF_MAPFROM|PXLF_STRIP8BIT))
goto writeerr;
if (tTd(43, 99))
@@ -443,16 +444,16 @@ mime8to7(mci, header, e, boundaries, flags, level)
DATAFL_LETTER, e->e_id);
/* do a scan of this body type to count character types */
while (sm_io_fgets(e->e_dfp, SM_TIME_DEFAULT, buf, sizeof(buf))
!= NULL)
while ((blen = sm_io_fgets(e->e_dfp, SM_TIME_DEFAULT, buf,
sizeof(buf))) >= 0)
{
if (mimeboundary(buf, boundaries) != MBT_NOTSEP)
break;
for (p = buf; *p != '\0'; p++)
for (i = 0; i < blen; i++)
{
/* count bytes with the high bit set */
sectionsize++;
if (bitset(0200, *p))
if (bitset(0200, buf[i]))
sectionhighbits++;
}
@@ -522,8 +523,8 @@ mime8to7(mci, header, e, boundaries, flags, level)
if (!putline("", mci))
goto writeerr;
mci->mci_flags &= ~MCIF_INHEADER;
while (sm_io_fgets(e->e_dfp, SM_TIME_DEFAULT, buf, sizeof(buf))
!= NULL)
while ((blen = sm_io_fgets(e->e_dfp, SM_TIME_DEFAULT, buf,
sizeof(buf))) >= 0)
{
if (!bitset(MCIF_INLONGLINE, mci->mci_flags))
{
@@ -531,7 +532,7 @@ mime8to7(mci, header, e, boundaries, flags, level)
if (bt != MBT_NOTSEP)
break;
}
if (!putxline(buf, strlen(buf), mci,
if (!putxline(buf, blen, mci,
PXLF_MAPFROM|PXLF_NOADDEOL))
goto writeerr;
}
@@ -1033,7 +1034,7 @@ mime7to8(mci, header, e)
HDR *header;
register ENVELOPE *e;
{
int pxflags;
int pxflags, blen;
register char *p;
char *cte;
char **pvp;
@@ -1066,10 +1067,10 @@ mime7to8(mci, header, e)
if (!putline("", mci))
goto writeerr;
mci->mci_flags &= ~MCIF_INHEADER;
while (sm_io_fgets(e->e_dfp, SM_TIME_DEFAULT, buf, sizeof(buf))
!= NULL)
while ((blen = sm_io_fgets(e->e_dfp, SM_TIME_DEFAULT, buf,
sizeof(buf))) >= 0)
{
if (!putline(buf, mci))
if (!putxline(buf, blen, mci, PXLF_MAPFROM))
goto writeerr;
}
return true;
@@ -1177,7 +1178,7 @@ mime7to8(mci, header, e)
pxflags |= PXLF_NOADDEOL;
fbufp = fbuf;
while (sm_io_fgets(e->e_dfp, SM_TIME_DEFAULT, buf,
sizeof(buf)) != NULL)
sizeof(buf)) >= 0)
{
off = mime_fromqp((unsigned char *) buf, &fbufp,
&fbuf[MAXLINE] - fbufp);
+9 -1
View File
@@ -13,7 +13,7 @@
#include <sendmail.h>
SM_RCSID("@(#)$Id: parseaddr.c,v 8.405 2012/02/27 22:49:08 ca Exp $")
SM_RCSID("@(#)$Id: parseaddr.c,v 8.406 2013/04/17 16:53:01 ca Exp $")
#include <sm/sendmail.h>
#include "map.h"
@@ -2350,6 +2350,14 @@ sameaddr(a, b)
if (a->q_mailer != b->q_mailer)
return false;
/*
** Addresses resolving to error mailer
** should not be considered identical
*/
if (a->q_mailer == &errormailer)
return false;
/* if the user isn't the same, we can drop out */
if (strcmp(a->q_user, b->q_user) != 0)
return false;
+3 -3
View File
@@ -14,7 +14,7 @@
#include <sendmail.h>
#include <sm/sem.h>
SM_RCSID("@(#)$Id: queue.c,v 8.997 2012/06/14 23:54:03 ca Exp $")
SM_RCSID("@(#)$Id: queue.c,v 8.998 2013/03/12 15:24:53 ca Exp $")
#include <dirent.h>
@@ -2746,7 +2746,7 @@ gatherq(qgrp, qdir, doall, full, more, pnentries)
i |= NEED_QUARANTINE;
while (cf != NULL && i != 0 &&
sm_io_fgets(cf, SM_TIME_DEFAULT, lbuf,
sizeof(lbuf)) != NULL)
sizeof(lbuf)) >= 0)
{
int c;
time_t age;
@@ -4981,7 +4981,7 @@ print_single_queue(qgrp, qdir)
quarmsg[0] = '\0';
statmsg[0] = bodytype[0] = '\0';
qfver = 0;
while (sm_io_fgets(f, SM_TIME_DEFAULT, buf, sizeof(buf)) != NULL)
while (sm_io_fgets(f, SM_TIME_DEFAULT, buf, sizeof(buf)) >= 0)
{
register int i;
register char *p;
+22 -3
View File
@@ -1,5 +1,5 @@
/*
* Copyright (c) 1998-2006, 2008-2010 Sendmail, Inc. and its suppliers.
* Copyright (c) 1998-2006, 2008-2010, 2013 Sendmail, Inc. and its suppliers.
* All rights reserved.
* Copyright (c) 1983, 1995-1997 Eric P. Allman. All rights reserved.
* Copyright (c) 1988, 1993
@@ -14,7 +14,7 @@
#include <sendmail.h>
#include <sm/sendmail.h>
SM_RCSID("@(#)$Id: readcf.c,v 8.684 2011/03/15 17:29:29 guenther Exp $")
SM_RCSID("@(#)$Id: readcf.c,v 8.690 2013/03/15 17:54:12 ca Exp $")
#if NETINET || NETINET6
# include <arpa/inet.h>
@@ -1141,7 +1141,7 @@ fileclass(class, filename, fmt, ismap, safe, optional)
return;
}
while (sm_io_fgets(f, SM_TIME_DEFAULT, buf, sizeof(buf)) != NULL)
while (sm_io_fgets(f, SM_TIME_DEFAULT, buf, sizeof(buf)) >= 0)
{
#if SCANF
char wordbuf[MAXLINE + 1];
@@ -2284,6 +2284,14 @@ static struct optioninfo
# define O_INETQOS 0xe7 /* reserved for FFR_QOS */
{ "InetQoS", O_INETQOS, OI_NONE },
#endif
#if STARTTLS && _FFR_FIPSMODE
# define O_FIPSMODE 0xe8
{ "FIPSMode", O_FIPSMODE, OI_NONE },
#endif /* STARTTLS && _FFR_FIPSMODE */
#if _FFR_REJECT_NUL_BYTE
# define O_REJECTNUL 0xe9
{ "RejectNUL", O_REJECTNUL, OI_SAFE },
#endif /* _FFR_REJECT_NUL_BYTE */
{ NULL, '\0', OI_NONE }
};
@@ -3862,6 +3870,11 @@ setoption(opt, val, safe, sticky, e)
break;
#endif /* STARTTLS */
#if STARTTLS && _FFR_FIPSMODE
case O_FIPSMODE:
FipsMode = atobool(val);
break;
#endif /* STARTTLS && _FFR_FIPSMODE */
case O_CLIENTPORT:
setclientoptions(val);
@@ -4016,6 +4029,12 @@ setoption(opt, val, safe, sticky, e)
break;
#endif /* _FFR_BADRCPT_SHUTDOWN */
#if _FFR_REJECT_NUL_BYTE
case O_REJECTNUL:
RejectNUL = atobool(val);
break;
#endif /* _FFR_REJECT_NUL_BYTE */
default:
if (tTd(37, 1))
{
+2 -2
View File
@@ -13,7 +13,7 @@
#include <sendmail.h>
SM_RCSID("@(#)$Id: recipient.c,v 8.349 2007/07/10 17:01:22 ca Exp $")
SM_RCSID("@(#)$Id: recipient.c,v 8.350 2013/03/12 15:24:54 ca Exp $")
static void includetimeout __P((int));
static ADDRESS *self_reference __P((ADDRESS *));
@@ -1824,7 +1824,7 @@ resetuid:
LineNumber = 0;
ctladdr->q_flags &= ~QSELFREF;
nincludes = 0;
while (sm_io_fgets(fp, SM_TIME_DEFAULT, buf, sizeof(buf)) != NULL &&
while (sm_io_fgets(fp, SM_TIME_DEFAULT, buf, sizeof(buf)) >= 0 &&
!maxreached)
{
fixcrlf(buf, true);
+55 -12
View File
@@ -1,5 +1,5 @@
/*
* Copyright (c) 1998-2003, 2006 Sendmail, Inc. and its suppliers.
* Copyright (c) 1998-2003, 2006, 2012, 2013 Sendmail, Inc. and its suppliers.
* All rights reserved.
* Copyright (c) 1983, 1995-1997 Eric P. Allman. All rights reserved.
* Copyright (c) 1988, 1993
@@ -13,7 +13,7 @@
#include <sendmail.h>
SM_RCSID("@(#)$Id: savemail.c,v 8.315 2012/02/27 17:43:03 gshapiro Exp $")
SM_RCSID("@(#)$Id: savemail.c,v 8.318 2013/03/12 15:24:54 ca Exp $")
static bool errbody __P((MCI *, ENVELOPE *, char *));
static bool pruneroute __P((char *));
@@ -204,7 +204,7 @@ savemail(e, sendbody)
(void) sm_io_fprintf(smioout, SM_TIME_DEFAULT,
"Transcript follows:\r\n");
while (sm_io_fgets(e->e_xfp, SM_TIME_DEFAULT,
buf, sizeof(buf)) != NULL &&
buf, sizeof(buf)) >= 0 &&
!sm_io_error(smioout))
(void) sm_io_fputs(smioout,
SM_TIME_DEFAULT,
@@ -866,7 +866,7 @@ errbody(mci, e, separator)
if (xfile != NULL)
{
while (sm_io_fgets(xfile, SM_TIME_DEFAULT, buf,
sizeof(buf)) != NULL)
sizeof(buf)) >= 0)
{
int lbs;
bool putok;
@@ -1042,18 +1042,20 @@ errbody(mci, e, separator)
}
else
{
int blen;
printheader = true;
(void) bfrewind(e->e_parent->e_xfp);
if (e->e_xfp != NULL)
(void) sm_io_flush(e->e_xfp, SM_TIME_DEFAULT);
while (sm_io_fgets(e->e_parent->e_xfp, SM_TIME_DEFAULT, buf,
sizeof(buf)) != NULL)
while ((blen = sm_io_fgets(e->e_parent->e_xfp, SM_TIME_DEFAULT,
buf, sizeof(buf))) >= 0)
{
if (printheader && !putline(" ----- Transcript of session follows -----\n",
mci))
goto writeerr;
printheader = false;
if (!putline(buf, mci))
if (!putxline(buf, blen, mci, PXLF_MAPFROM))
goto writeerr;
}
}
@@ -1174,11 +1176,24 @@ errbody(mci, e, separator)
/* Original-Recipient: -- passed from on high */
if (q->q_orcpt != NULL)
{
(void) sm_snprintf(buf, sizeof(buf),
"Original-Recipient: %.800s",
q->q_orcpt);
if (!putline(buf, mci))
goto writeerr;
p = strchr(q->q_orcpt, ';');
/*
** p == NULL shouldn't happen due to
** check in srvrsmtp.c
** we could log an error in this case.
*/
if (p != NULL)
{
*p = '\0';
(void) sm_snprintf(buf, sizeof(buf),
"Original-Recipient: %.100s;%.700s",
q->q_orcpt, xuntextify(p + 1));
*p = ';';
if (!putline(buf, mci))
goto writeerr;
}
}
/* Figure out actual recipient */
@@ -1682,6 +1697,34 @@ xtextok(s)
}
return true;
}
/*
** ISATOM -- check if a string is an "atom"
**
** Parameters:
** s -- the string to check.
**
** Returns:
** true -- iff s is an atom
*/
bool
isatom(s)
const char *s;
{
int c;
if (s == NULL || *s == '\0')
return false;
while ((c = *s++) != '\0')
{
if (strchr("()<>@,;:\\.[]\"", c) != NULL)
return false;
if (c < '!' || c > '~')
return false;
}
return true;
}
/*
** PRUNEROUTE -- prune an RFC-822 source route
**
+14 -5
View File
@@ -1,5 +1,5 @@
/*
* Copyright (c) 1998-2012 Sendmail, Inc. and its suppliers.
* Copyright (c) 1998-2013 Sendmail, Inc. and its suppliers.
* All rights reserved.
* Copyright (c) 1983, 1995-1997 Eric P. Allman. All rights reserved.
* Copyright (c) 1988, 1993
@@ -52,7 +52,7 @@
#ifdef _DEFINE
# ifndef lint
SM_UNUSED(static char SmailId[]) = "@(#)$Id: sendmail.h,v 8.1096 2012/11/16 20:25:03 ca Exp $";
SM_UNUSED(static char SmailId[]) = "@(#)$Id: sendmail.h,v 8.1101 2013/03/15 17:54:12 ca Exp $";
# endif /* ! lint */
#endif /* _DEFINE */
@@ -124,7 +124,11 @@ SM_UNUSED(static char SmailId[]) = "@(#)$Id: sendmail.h,v 8.1096 2012/11/16 20:2
#if STARTTLS
# include <openssl/ssl.h>
# if !TLS_NO_RSA
# define RSA_KEYLENGTH 512
# if _FFR_FIPSMODE
# define RSA_KEYLENGTH 1024
# else /* _FFR_FIPSMODE */
# define RSA_KEYLENGTH 512
# endif /* _FFR_FIPSMODE */
# endif /* !TLS_NO_RSA */
#endif /* STARTTLS */
@@ -1936,14 +1940,14 @@ struct termescape
#define TLS_AUTH_FAIL (-1)
/* functions */
extern bool init_tls_library __P((void));
extern bool init_tls_library __P((bool _fipsmode));
extern bool inittls __P((SSL_CTX **, unsigned long, long, bool, char *, char *, char *, char *, char *));
extern bool initclttls __P((bool));
extern void setclttls __P((bool));
extern bool initsrvtls __P((bool));
extern int tls_get_info __P((SSL *, bool, char *, MACROS_T *, bool));
extern int endtls __P((SSL *, char *));
extern void tlslogerr __P((const char *));
extern void tlslogerr __P((int, const char *));
EXTERN char *CACertPath; /* path to CA certificates (dir. with hashes) */
@@ -2291,6 +2295,7 @@ EXTERN bool DontLockReadFiles; /* don't read lock support files */
EXTERN bool DontPruneRoutes; /* don't prune source routes */
EXTERN bool ForkQueueRuns; /* fork for each job when running the queue */
EXTERN bool FromFlag; /* if set, "From" person is explicit */
EXTERN bool FipsMode;
EXTERN bool GrabTo; /* if set, get recipients from msg */
EXTERN bool EightBitAddrOK; /* we'll let 8-bit addresses through */
EXTERN bool HasEightBits; /* has at least one eight bit input byte */
@@ -2305,6 +2310,9 @@ EXTERN bool NoAlias; /* suppress aliasing */
EXTERN bool NoConnect; /* don't connect to non-local mailers */
EXTERN bool OnlyOneError; /* .... or only want to give one SMTP reply */
EXTERN bool QuickAbort; /* .... but only if we want a quick abort */
#if _FFR_REJECT_NUL_BYTE
EXTERN bool RejectNUL; /* reject NUL input byte? */
#endif /* _FFR_REJECT_NUL_BYTE */
#if REQUIRES_DIR_FSYNC
EXTERN bool RequiresDirfsync; /* requires fsync() for directory */
#endif /* REQUIRES_DIR_FSYNC */
@@ -2650,6 +2658,7 @@ extern void initmacros __P((ENVELOPE *));
extern void initsetproctitle __P((int, char **, char **));
extern void init_vendor_macros __P((ENVELOPE *));
extern SIGFUNC_DECL intsig __P((int));
extern bool isatom __P((const char *));
extern bool isloopback __P((SOCKADDR sa));
extern void load_if_names __P((void));
extern bool lockfile __P((int, char *, char *, int));
+26 -5
View File
@@ -9,7 +9,7 @@
*/
#include <sm/gen.h>
SM_RCSID("@(#)$Id: sfsasl.c,v 8.118 2008/07/22 15:12:48 ca Exp $")
SM_RCSID("@(#)$Id: sfsasl.c,v 8.120 2013/03/15 17:49:12 guenther Exp $")
#include <stdlib.h>
#include <sendmail.h>
#include <sm/time.h>
@@ -628,13 +628,14 @@ tls_retry(ssl, rfd, wfd, tlsstart, timeout, err, where)
"STARTTLS=%s, error: fd %d/%d too large",
where, rfd, wfd);
if (LogLevel > 8)
tlslogerr(where);
tlslogerr(LOG_WARNING, where);
}
errno = EINVAL;
}
else if (err == SSL_ERROR_WANT_READ)
{
fd_set ssl_maskr, ssl_maskx;
int save_errno = errno;
FD_ZERO(&ssl_maskr);
FD_SET(rfd, &ssl_maskr);
@@ -647,10 +648,12 @@ tls_retry(ssl, rfd, wfd, tlsstart, timeout, err, where)
} while (ret < 0 && errno == EINTR);
if (ret < 0 && errno > 0)
ret = -errno;
errno = save_errno;
}
else if (err == SSL_ERROR_WANT_WRITE)
{
fd_set ssl_maskw, ssl_maskx;
int save_errno = errno;
FD_ZERO(&ssl_maskw);
FD_SET(wfd, &ssl_maskw);
@@ -663,6 +666,7 @@ tls_retry(ssl, rfd, wfd, tlsstart, timeout, err, where)
} while (ret < 0 && errno == EINTR);
if (ret < 0 && errno > 0)
ret = -errno;
errno = save_errno;
}
return ret;
}
@@ -770,8 +774,17 @@ tls_read(fp, buf, size)
break;
#endif /* DEAL_WITH_ERROR_SSL */
err = "generic SSL error";
if (LogLevel > 9)
tlslogerr("read");
{
int pri;
if (errno == EAGAIN && try > 0)
pri = LOG_DEBUG;
else
pri = LOG_WARNING;
tlslogerr(pri, "read");
}
#if DEAL_WITH_ERROR_SSL
/* avoid repeated calls? */
@@ -792,11 +805,19 @@ tls_read(fp, buf, size)
"STARTTLS: read error=timeout");
}
else if (LogLevel > 8)
sm_syslog(LOG_WARNING, NOQID,
{
int pri;
if (save_errno == EAGAIN && try > 0)
pri = LOG_DEBUG;
else
pri = LOG_WARNING;
sm_syslog(pri, NOQID,
"STARTTLS: read error=%s (%d), errno=%d, get_error=%s, retry=%d, ssl_err=%d",
err, r, errno,
ERR_error_string(ERR_get_error(), NULL), try,
ssl_err);
}
else if (LogLevel > 7)
sm_syslog(LOG_WARNING, NOQID,
"STARTTLS: read error=%s (%d), retry=%d, ssl_err=%d",
@@ -878,7 +899,7 @@ tls_write(fp, buf, size)
ERR_GET_REASON(ERR_peek_error()));
*/
if (LogLevel > 9)
tlslogerr("write");
tlslogerr(LOG_WARNING, "write");
#if DEAL_WITH_ERROR_SSL
/* avoid repeated calls? */
+21 -10
View File
@@ -1,5 +1,5 @@
/*
* Copyright (c) 1998-2010, 2012 Sendmail, Inc. and its suppliers.
* Copyright (c) 1998-2010, 2012, 2013 Sendmail, Inc. and its suppliers.
* All rights reserved.
* Copyright (c) 1983, 1995-1997 Eric P. Allman. All rights reserved.
* Copyright (c) 1988, 1993
@@ -17,7 +17,7 @@
# include <libmilter/mfdef.h>
#endif /* MILTER */
SM_RCSID("@(#)$Id: srvrsmtp.c,v 8.1011 2012/12/19 02:49:21 ca Exp $")
SM_RCSID("@(#)$Id: srvrsmtp.c,v 8.1015 2013/03/12 15:24:54 ca Exp $")
#include <sm/time.h>
#include <sm/fdset.h>
@@ -1864,7 +1864,7 @@ smtp(nullserver, d_flags, e)
{
message("454 4.3.3 TLS not available: error generating SSL handle");
if (LogLevel > 8)
tlslogerr("server");
tlslogerr(LOG_WARNING, "server");
goto tls_done;
}
@@ -1927,7 +1927,7 @@ smtp(nullserver, d_flags, e)
ssl_err, errno, i,
CurSmtpClient);
if (LogLevel > 9)
tlslogerr("server");
tlslogerr(LOG_WARNING, "server");
}
tls_ok_srv = false;
SSL_free(srv_ssl);
@@ -4518,6 +4518,8 @@ rcpt_esmtp_args(a, kp, vp, e)
}
else if (sm_strcasecmp(kp, "orcpt") == 0)
{
char *p;
if (!bitset(SRV_OFFER_DSN, e->e_features))
{
usrerr("504 5.7.0 Sorry, ORCPT not supported, we do not allow DSN");
@@ -4528,16 +4530,25 @@ rcpt_esmtp_args(a, kp, vp, e)
usrerr("501 5.5.2 ORCPT requires a value");
/* NOTREACHED */
}
if (strchr(vp, ';') == NULL || !xtextok(vp))
{
usrerr("501 5.5.4 Syntax error in ORCPT parameter value");
/* NOTREACHED */
}
if (a->q_orcpt != NULL)
{
usrerr("501 5.5.0 Duplicate ORCPT parameter");
/* NOTREACHED */
}
p = strchr(vp, ';');
if (p == NULL)
{
usrerr("501 5.5.4 Syntax error in ORCPT parameter value");
/* NOTREACHED */
}
*p = '\0';
if (!isatom(vp) || !xtextok(p + 1))
{
*p = ';';
usrerr("501 5.5.4 Syntax error in ORCPT parameter value");
/* NOTREACHED */
}
*p = ';';
a->q_orcpt = sm_rpool_strdup_x(e->e_rpool, vp);
}
else
@@ -4923,7 +4934,7 @@ help(topic, e)
len = strlen(topic);
while (sm_io_fgets(hf, SM_TIME_DEFAULT, buf, sizeof(buf)) != NULL)
while (sm_io_fgets(hf, SM_TIME_DEFAULT, buf, sizeof(buf)) >= 0)
{
if (buf[0] == '#')
{
+49 -21
View File
@@ -1,5 +1,5 @@
/*
* Copyright (c) 2000-2006, 2008, 2009, 2011 Sendmail, Inc. and its suppliers.
* Copyright (c) 2000-2006, 2008, 2009, 2011, 2013 Sendmail, Inc. and its suppliers.
* All rights reserved.
*
* By using this file, you agree to the terms and conditions set
@@ -10,7 +10,7 @@
#include <sendmail.h>
SM_RCSID("@(#)$Id: tls.c,v 8.118 2011/03/07 23:20:47 ca Exp $")
SM_RCSID("@(#)$Id: tls.c,v 8.121 2013/01/02 23:54:17 ca Exp $")
#if STARTTLS
# include <openssl/err.h>
@@ -267,15 +267,18 @@ tls_rand_init(randfile, logl)
** INIT_TLS_LIBRARY -- Calls functions which setup TLS library for global use.
**
** Parameters:
** none.
** fipsmode -- use FIPS?
**
** Returns:
** succeeded?
*/
bool
init_tls_library()
init_tls_library(fipsmode)
bool fipsmode;
{
bool bv;
/* basic TLS initialization, ignore result for now */
SSL_library_init();
SSL_load_error_strings();
@@ -284,7 +287,30 @@ init_tls_library()
SSLeay_add_ssl_algorithms();
# endif /* 0 */
return tls_rand_init(RandFile, 7);
bv = tls_rand_init(RandFile, 7);
# if _FFR_FIPSMODE
if (bv && fipsmode)
{
if (!FIPS_mode_set(1))
{
unsigned long err;
err = ERR_get_error();
if (LogLevel > 0)
sm_syslog(LOG_ERR, NOQID,
"STARTTLS=init, FIPSMode=%s",
ERR_error_string(err, NULL));
return false;
}
else
{
if (LogLevel > 9)
sm_syslog(LOG_INFO, NOQID,
"STARTTLS=init, FIPSMode=ok");
}
}
#endif /* _FFR_FIPSMODE */
return bv;
}
/*
** TLS_SET_VERIFY -- request client certificate?
@@ -709,7 +735,7 @@ inittls(ctx, req, options, srv, certfile, keyfile, cacertpath, cacertfile, dhpar
"STARTTLS=%s, error: SSL_CTX_new(SSLv23_%s_method()) failed",
who, who);
if (LogLevel > 9)
tlslogerr(who);
tlslogerr(LOG_WARNING, who);
return false;
}
@@ -808,7 +834,7 @@ inittls(ctx, req, options, srv, certfile, keyfile, cacertpath, cacertfile, dhpar
"STARTTLS=%s, error: RSA_generate_key failed",
who);
if (LogLevel > 9)
tlslogerr(who);
tlslogerr(LOG_WARNING, who);
}
return false;
}
@@ -829,7 +855,7 @@ inittls(ctx, req, options, srv, certfile, keyfile, cacertpath, cacertfile, dhpar
"STARTTLS=%s, error: SSL_CTX_use_PrivateKey_file(%s) failed",
who, keyfile);
if (LogLevel > 9)
tlslogerr(who);
tlslogerr(LOG_WARNING, who);
}
if (bitset(TLS_I_USE_KEY, req))
return false;
@@ -846,7 +872,7 @@ inittls(ctx, req, options, srv, certfile, keyfile, cacertpath, cacertfile, dhpar
"STARTTLS=%s, error: SSL_CTX_use_certificate_file(%s) failed",
who, certfile);
if (LogLevel > 9)
tlslogerr(who);
tlslogerr(LOG_WARNING, who);
}
if (bitset(TLS_I_USE_CERT, req))
return false;
@@ -863,7 +889,7 @@ inittls(ctx, req, options, srv, certfile, keyfile, cacertpath, cacertfile, dhpar
"STARTTLS=%s, error: SSL_CTX_check_private_key failed(%s): %d",
who, keyfile, r);
if (LogLevel > 9)
tlslogerr(who);
tlslogerr(LOG_WARNING, who);
}
if (bitset(TLS_I_USE_KEY, req))
return false;
@@ -882,7 +908,7 @@ inittls(ctx, req, options, srv, certfile, keyfile, cacertpath, cacertfile, dhpar
"STARTTLS=%s, error: SSL_CTX_use_PrivateKey_file(%s) failed",
who, kf2);
if (LogLevel > 9)
tlslogerr(who);
tlslogerr(LOG_WARNING, who);
}
}
@@ -896,7 +922,7 @@ inittls(ctx, req, options, srv, certfile, keyfile, cacertpath, cacertfile, dhpar
"STARTTLS=%s, error: SSL_CTX_use_certificate_file(%s) failed",
who, cf2);
if (LogLevel > 9)
tlslogerr(who);
tlslogerr(LOG_WARNING, who);
}
}
@@ -911,7 +937,7 @@ inittls(ctx, req, options, srv, certfile, keyfile, cacertpath, cacertfile, dhpar
"STARTTLS=%s, error: SSL_CTX_check_private_key 2 failed: %d",
who, r);
if (LogLevel > 9)
tlslogerr(who);
tlslogerr(LOG_WARNING, who);
}
}
# endif /* _FFR_TLS_1 */
@@ -962,7 +988,7 @@ inittls(ctx, req, options, srv, certfile, keyfile, cacertpath, cacertfile, dhpar
who, dhparam,
ERR_error_string(err, NULL));
if (LogLevel > 9)
tlslogerr(who);
tlslogerr(LOG_WARNING, who);
}
}
else
@@ -973,7 +999,7 @@ inittls(ctx, req, options, srv, certfile, keyfile, cacertpath, cacertfile, dhpar
"STARTTLS=%s, error: BIO_new_file(%s) failed",
who, dhparam);
if (LogLevel > 9)
tlslogerr(who);
tlslogerr(LOG_WARNING, who);
}
}
}
@@ -1089,7 +1115,7 @@ inittls(ctx, req, options, srv, certfile, keyfile, cacertpath, cacertfile, dhpar
"STARTTLS=%s, error: load verify locs %s, %s failed: %d",
who, cacertpath, cacertfile, r);
if (LogLevel > 9)
tlslogerr(who);
tlslogerr(LOG_WARNING, who);
}
if (bitset(TLS_I_VRFY_LOC, req))
return false;
@@ -1113,7 +1139,7 @@ inittls(ctx, req, options, srv, certfile, keyfile, cacertpath, cacertfile, dhpar
who, CipherList);
if (LogLevel > 9)
tlslogerr(who);
tlslogerr(LOG_WARNING, who);
}
/* failure if setting to this list is required? */
}
@@ -1377,7 +1403,7 @@ endtls(ssl, side)
sm_syslog(LOG_WARNING, NOQID,
"STARTTLS=%s, SSL_shutdown failed: %d",
side, r);
tlslogerr(side);
tlslogerr(LOG_WARNING, side);
}
ret = EX_SOFTWARE;
}
@@ -1426,7 +1452,7 @@ endtls(ssl, side)
sm_syslog(LOG_WARNING, NOQID,
"STARTTLS=%s, SSL_shutdown not done",
side);
tlslogerr(side);
tlslogerr(LOG_WARNING, side);
}
ret = EX_SOFTWARE;
}
@@ -1659,6 +1685,7 @@ tls_verify_cb(ctx, unused)
** TLSLOGERR -- log the errors from the TLS error stack
**
** Parameters:
** level -- syslog level
** who -- server/client (for logging).
**
** Returns:
@@ -1666,7 +1693,8 @@ tls_verify_cb(ctx, unused)
*/
void
tlslogerr(who)
tlslogerr(level, who)
int level;
const char *who;
{
unsigned long l;
@@ -1680,7 +1708,7 @@ tlslogerr(who)
while ((l = ERR_get_error_line_data(CP &file, &line, CP &data, &flags))
!= 0)
{
sm_syslog(LOG_WARNING, NOQID,
sm_syslog(level, NOQID,
"STARTTLS=%s: %lu:%s:%s:%d:%s", who, es,
ERR_error_string(l, buf),
file, line,
+2 -2
View File
@@ -13,7 +13,7 @@
#include <sendmail.h>
SM_RCSID("@(#)$Id: usersmtp.c,v 8.485 2010/07/23 21:09:38 ca Exp $")
SM_RCSID("@(#)$Id: usersmtp.c,v 8.486 2013/03/12 15:24:54 ca Exp $")
#include <sysexits.h>
@@ -801,7 +801,7 @@ readauth(filename, safe, sai, rpool)
lc = 0;
while (lc <= SASL_MECHLIST &&
sm_io_fgets(f, SM_TIME_DEFAULT, buf, sizeof(buf)) != NULL)
sm_io_fgets(f, SM_TIME_DEFAULT, buf, sizeof(buf)) >= 0)
{
if (buf[0] != '#')
{
+7 -8
View File
@@ -13,7 +13,7 @@
#include <sendmail.h>
SM_RCSID("@(#)$Id: util.c,v 8.425 2012/03/03 00:10:43 ca Exp $")
SM_RCSID("@(#)$Id: util.c,v 8.426 2013/03/12 15:24:54 ca Exp $")
#include <sm/sendmail.h>
#include <sysexits.h>
@@ -1285,8 +1285,7 @@ sfgets(buf, siz, fp, timeout, during)
char *during;
{
register char *p;
int save_errno;
int io_timeout;
int save_errno, io_timeout, l;
SM_REQUIRE(siz > 0);
SM_REQUIRE(buf != NULL);
@@ -1299,7 +1298,7 @@ sfgets(buf, siz, fp, timeout, during)
}
/* try to read */
p = NULL;
l = -1;
errno = 0;
/* convert the timeout to sm_io notation */
@@ -1307,8 +1306,8 @@ sfgets(buf, siz, fp, timeout, during)
while (!sm_io_eof(fp) && !sm_io_error(fp))
{
errno = 0;
p = sm_io_fgets(fp, io_timeout, buf, siz);
if (p == NULL && errno == EAGAIN)
l = sm_io_fgets(fp, io_timeout, buf, siz);
if (l < 0 && errno == EAGAIN)
{
/* The sm_io_fgets() call timedout */
if (LogLevel > 1)
@@ -1328,7 +1327,7 @@ sfgets(buf, siz, fp, timeout, during)
errno = ETIMEDOUT;
return NULL;
}
if (p != NULL || errno != EINTR)
if (l >= 0 || errno != EINTR)
break;
(void) sm_io_clearerr(fp);
}
@@ -1336,7 +1335,7 @@ sfgets(buf, siz, fp, timeout, during)
/* clean up the books and exit */
LineNumber++;
if (p == NULL)
if (l < 0)
{
buf[0] = '\0';
if (TrafficLogFile != NULL)
+3 -3
View File
@@ -1,5 +1,5 @@
/*
* Copyright (c) 1998-2012 Sendmail, Inc. and its suppliers.
* Copyright (c) 1998-2013 Sendmail, Inc. and its suppliers.
* All rights reserved.
* Copyright (c) 1983 Eric P. Allman. All rights reserved.
* Copyright (c) 1988, 1993
@@ -13,6 +13,6 @@
#include <sm/gen.h>
SM_RCSID("@(#)$Id: version.c,v 8.235 2012/12/19 05:11:44 ca Exp $")
SM_RCSID("@(#)$Id: version.c,v 8.243 2013/04/18 15:07:17 ca Exp $")
char Version[] = "8.14.6";
char Version[] = "8.14.7";
+1 -1
View File
@@ -1,4 +1,4 @@
dnl $Id: Makefile.m4,v 1.4 2002/06/21 22:01:54 ca Exp $
dnl $Id: Makefile.m4,v 1.6 2013/04/01 21:04:29 ca Exp $
include(confBUILDTOOLSDIR`/M4/switch.m4')
bldPRODUCT_START(`executable', `test')
+4 -4
View File
@@ -20,7 +20,7 @@ SM_IDSTR(copyright,
The Regents of the University of California. All rights reserved.\n\
Copyright (c) 1983 Eric P. Allman. All rights reserved.\n")
SM_IDSTR(id, "@(#)$Id: vacation.c,v 8.146 2009/08/07 21:28:39 ca Exp $")
SM_IDSTR(id, "@(#)$Id: vacation.c,v 8.147 2013/03/12 15:24:56 ca Exp $")
#include <ctype.h>
@@ -509,7 +509,7 @@ readheaders(alwaysrespond)
cont = false;
tome = alwaysrespond;
while (sm_io_fgets(smioin, SM_TIME_DEFAULT, buf, sizeof(buf)) &&
while (sm_io_fgets(smioin, SM_TIME_DEFAULT, buf, sizeof(buf)) >= 0 &&
*buf != '\n')
{
switch(*buf)
@@ -954,7 +954,7 @@ xclude(f)
if (f == NULL)
return;
while (sm_io_fgets(f, SM_TIME_DEFAULT, buf, sizeof buf))
while (sm_io_fgets(f, SM_TIME_DEFAULT, buf, sizeof buf) >= 0)
{
if ((p = strchr(buf, '\n')) != NULL)
*p = '\0';
@@ -1049,7 +1049,7 @@ sendmessage(myname, msgfn, sender)
(void) sm_io_fprintf(sfp, SM_TIME_DEFAULT, "To: %s\n", From);
(void) sm_io_fprintf(sfp, SM_TIME_DEFAULT,
"Auto-Submitted: auto-replied\n");
while (sm_io_fgets(mfp, SM_TIME_DEFAULT, buf, sizeof buf))
while (sm_io_fgets(mfp, SM_TIME_DEFAULT, buf, sizeof buf) >= 0)
(void) sm_io_fputs(sfp, SM_TIME_DEFAULT, buf);
(void) sm_io_close(mfp, SM_TIME_DEFAULT);
(void) sm_io_close(sfp, SM_TIME_DEFAULT);
+1 -2
View File
@@ -50,8 +50,7 @@
#PubkeyAuthentication yes
# The default is to check both .ssh/authorized_keys and .ssh/authorized_keys2
# but this is overridden so installations will only check .ssh/authorized_keys
AuthorizedKeysFile .ssh/authorized_keys
#AuthorizedKeysFile .ssh/authorized_keys .ssh/authorized_keys2
#AuthorizedPrincipalsFile none
+7 -7
View File
@@ -330,8 +330,8 @@ dtls1_process_record(SSL *s)
int i,al;
int enc_err;
SSL_SESSION *sess;
SSL3_RECORD *rr;
unsigned int mac_size;
SSL3_RECORD *rr;
unsigned int mac_size, orig_len;
unsigned char md[EVP_MAX_MD_SIZE];
rr= &(s->s3->rrec);
@@ -362,7 +362,7 @@ dtls1_process_record(SSL *s)
/* decrypt in place in 'rr->input' */
rr->data=rr->input;
rr->orig_len=rr->length;
orig_len=rr->length;
enc_err = s->method->ssl3_enc->enc(s,0);
/* enc_err is:
@@ -399,10 +399,10 @@ printf("\n");
* therefore we can safely process the record in a different
* amount of time if it's too short to possibly contain a MAC.
*/
if (rr->orig_len < mac_size ||
if (orig_len < mac_size ||
/* CBC records must have a padding length byte too. */
(EVP_CIPHER_CTX_mode(s->enc_read_ctx) == EVP_CIPH_CBC_MODE &&
rr->orig_len < mac_size+1))
orig_len < mac_size+1))
{
al=SSL_AD_DECODE_ERROR;
SSLerr(SSL_F_DTLS1_PROCESS_RECORD,SSL_R_LENGTH_TOO_SHORT);
@@ -417,12 +417,12 @@ printf("\n");
* without leaking the contents of the padding bytes.
* */
mac = mac_tmp;
ssl3_cbc_copy_mac(mac_tmp, rr, mac_size);
ssl3_cbc_copy_mac(mac_tmp, rr, mac_size, orig_len);
rr->length -= mac_size;
}
else
{
/* In this case there's no padding, so |rec->orig_len|
/* In this case there's no padding, so |orig_len|
* equals |rec->length| and we checked that there's
* enough bytes for |mac_size| above. */
rr->length -= mac_size;
+12 -9
View File
@@ -116,7 +116,9 @@ int ssl3_cbc_remove_padding(const SSL* s,
good = constant_time_ge(rec->length, padding_length+overhead);
/* SSLv3 requires that the padding is minimal. */
good &= constant_time_ge(block_size, padding_length+1);
rec->length -= good & (padding_length+1);
padding_length = good & (padding_length+1);
rec->length -= padding_length;
rec->type |= padding_length<<8; /* kludge: pass padding length */
return (int)((good & 1) | (~good & -1));
}
@@ -202,7 +204,9 @@ int tls1_cbc_remove_padding(const SSL* s,
good <<= sizeof(good)*8-1;
good = DUPLICATE_MSB_TO_ALL(good);
rec->length -= good & (padding_length+1);
padding_length = good & (padding_length+1);
rec->length -= padding_length;
rec->type |= padding_length<<8; /* kludge: pass padding length */
/* We can always safely skip the explicit IV. We check at the beginning
* of this function that the record has at least enough space for the
@@ -217,7 +221,6 @@ int tls1_cbc_remove_padding(const SSL* s,
rec->data += block_size;
rec->input += block_size;
rec->length -= block_size;
rec->orig_len -= block_size;
}
return (int)((good & 1) | (~good & -1));
@@ -245,7 +248,7 @@ int tls1_cbc_remove_padding(const SSL* s,
*/
void ssl3_cbc_copy_mac(unsigned char* out,
const SSL3_RECORD *rec,
unsigned md_size)
unsigned md_size,unsigned orig_len)
{
#if defined(CBC_MAC_ROTATE_IN_PLACE)
unsigned char rotated_mac_buf[EVP_MAX_MD_SIZE*2];
@@ -264,7 +267,7 @@ void ssl3_cbc_copy_mac(unsigned char* out,
unsigned div_spoiler;
unsigned rotate_offset;
OPENSSL_assert(rec->orig_len >= md_size);
OPENSSL_assert(orig_len >= md_size);
OPENSSL_assert(md_size <= EVP_MAX_MD_SIZE);
#if defined(CBC_MAC_ROTATE_IN_PLACE)
@@ -272,8 +275,8 @@ void ssl3_cbc_copy_mac(unsigned char* out,
#endif
/* This information is public so it's safe to branch based on it. */
if (rec->orig_len > md_size + 255 + 1)
scan_start = rec->orig_len - (md_size + 255 + 1);
if (orig_len > md_size + 255 + 1)
scan_start = orig_len - (md_size + 255 + 1);
/* div_spoiler contains a multiple of md_size that is used to cause the
* modulo operation to be constant time. Without this, the time varies
* based on the amount of padding when running on Intel chips at least.
@@ -286,9 +289,9 @@ void ssl3_cbc_copy_mac(unsigned char* out,
rotate_offset = (div_spoiler + mac_start - scan_start) % md_size;
memset(rotated_mac, 0, md_size);
for (i = scan_start; i < rec->orig_len;)
for (i = scan_start; i < orig_len;)
{
for (j = 0; j < md_size && i < rec->orig_len; i++, j++)
for (j = 0; j < md_size && i < orig_len; i++, j++)
{
unsigned char mac_started = constant_time_ge(i, mac_start);
unsigned char mac_ended = constant_time_ge(i, mac_end);
+6 -4
View File
@@ -504,8 +504,6 @@ int ssl3_enc(SSL *s, int send)
EVP_Cipher(ds,rec->data,rec->input,l);
rec->orig_len = rec->length;
if (s->read_hash != NULL)
mac_size = EVP_MD_size(s->read_hash);
@@ -587,7 +585,7 @@ int ssl3_mac(SSL *ssl, unsigned char *md, int send)
EVP_MD_CTX md_ctx;
const EVP_MD *hash;
unsigned char *p,rec_char;
size_t md_size;
size_t md_size, orig_len;
int npad;
if (send)
@@ -608,6 +606,10 @@ int ssl3_mac(SSL *ssl, unsigned char *md, int send)
md_size=EVP_MD_size(hash);
npad=(48/md_size)*md_size;
/* kludge: ssl3_cbc_remove_padding passes padding length in rec->type */
orig_len = rec->length+md_size+((unsigned int)rec->type>>8);
rec->type &= 0xff;
if (!send &&
EVP_CIPHER_CTX_mode(ssl->enc_read_ctx) == EVP_CIPH_CBC_MODE &&
ssl3_cbc_record_digest_supported(hash))
@@ -639,7 +641,7 @@ int ssl3_mac(SSL *ssl, unsigned char *md, int send)
hash,
md, &md_size,
header, rec->input,
rec->length + md_size, rec->orig_len,
rec->length + md_size, orig_len,
mac_sec, md_size,
1 /* is SSLv3 */);
}
+6 -6
View File
@@ -246,7 +246,7 @@ static int ssl3_get_record(SSL *s)
unsigned char *p;
unsigned char md[EVP_MAX_MD_SIZE];
short version;
unsigned mac_size;
unsigned mac_size, orig_len;
size_t extra;
rr= &(s->s3->rrec);
@@ -351,7 +351,7 @@ again:
/* decrypt in place in 'rr->input' */
rr->data=rr->input;
rr->orig_len=rr->length;
orig_len=rr->length;
enc_err = s->method->ssl3_enc->enc(s,0);
/* enc_err is:
@@ -387,10 +387,10 @@ printf("\n");
* therefore we can safely process the record in a different
* amount of time if it's too short to possibly contain a MAC.
*/
if (rr->orig_len < mac_size ||
if (orig_len < mac_size ||
/* CBC records must have a padding length byte too. */
(EVP_CIPHER_CTX_mode(s->enc_read_ctx) == EVP_CIPH_CBC_MODE &&
rr->orig_len < mac_size+1))
orig_len < mac_size+1))
{
al=SSL_AD_DECODE_ERROR;
SSLerr(SSL_F_SSL3_GET_RECORD,SSL_R_LENGTH_TOO_SHORT);
@@ -405,12 +405,12 @@ printf("\n");
* without leaking the contents of the padding bytes.
* */
mac = mac_tmp;
ssl3_cbc_copy_mac(mac_tmp, rr, mac_size);
ssl3_cbc_copy_mac(mac_tmp, rr, mac_size, orig_len);
rr->length -= mac_size;
}
else
{
/* In this case there's no padding, so |rec->orig_len|
/* In this case there's no padding, so |orig_len|
* equals |rec->length| and we checked that there's
* enough bytes for |mac_size| above. */
rr->length -= mac_size;
-4
View File
@@ -304,10 +304,6 @@ typedef struct ssl3_record_st
/*r */ unsigned char *comp; /* only used with decompression - malloc()ed */
/*r */ unsigned long epoch; /* epoch number, needed by DTLS1 */
/*r */ PQ_64BIT seq_num; /* sequence number, needed by DTLS1 */
/*rw*/ unsigned int orig_len; /* How many bytes were available before padding
was removed? This is used to implement the
MAC check in constant time for CBC records.
*/
} SSL3_RECORD;
typedef struct ssl3_buffer_st
+1 -1
View File
@@ -1015,7 +1015,7 @@ int ssl_parse_clienthello_renegotiate_ext(SSL *s, unsigned char *d, int len,
/* s3_cbc.c */
void ssl3_cbc_copy_mac(unsigned char* out,
const SSL3_RECORD *rec,
unsigned md_size);
unsigned md_size,unsigned orig_len);
int ssl3_cbc_remove_padding(const SSL* s,
SSL3_RECORD *rec,
unsigned block_size,
+7 -3
View File
@@ -689,7 +689,7 @@ int tls1_mac(SSL *ssl, unsigned char *md, int send)
SSL3_RECORD *rec;
unsigned char *mac_sec,*seq;
const EVP_MD *hash;
size_t md_size;
size_t md_size, orig_len;
int i;
HMAC_CTX hmac;
unsigned char header[13];
@@ -727,6 +727,10 @@ int tls1_mac(SSL *ssl, unsigned char *md, int send)
else
memcpy(header, seq, 8);
/* kludge: tls1_cbc_remove_padding passes padding length in rec->type */
orig_len = rec->length+md_size+((unsigned int)rec->type>>8);
rec->type &= 0xff;
header[8]=rec->type;
header[9]=(unsigned char)(ssl->version>>8);
header[10]=(unsigned char)(ssl->version);
@@ -745,7 +749,7 @@ int tls1_mac(SSL *ssl, unsigned char *md, int send)
hash,
md, &md_size,
header, rec->input,
rec->length + md_size, rec->orig_len,
rec->length + md_size, orig_len,
ssl->s3->read_mac_secret,
EVP_MD_size(ssl->read_hash),
0 /* not SSLv3 */);
@@ -764,7 +768,7 @@ int tls1_mac(SSL *ssl, unsigned char *md, int send)
ssl->enc_read_ctx,
hash,
&hmac, rec->input,
rec->length, rec->orig_len);
rec->length, orig_len);
#endif
}
+1 -1
View File
@@ -41,7 +41,7 @@ divert(-1)
# The best documentation for this .mc file is:
# /usr/share/sendmail/cf/README or
# /usr/src/contrib/sendmail/cf/README
#
#
divert(0)
VERSIONID(`$FreeBSD$')
-1
View File
@@ -9,7 +9,6 @@ divert(-1)
#
#
#
# This is the FreeBSD configuration for a set-group-ID sm-msp sendmail
# that acts as a initial mail submission program.
+1
View File
@@ -75,6 +75,7 @@
.\" FreeBSD releases not found in doc-common
.ds doc-operating-system-FreeBSD-7.4 7.4
.ds doc-operating-system-FreeBSD-8.3 8.3
.ds doc-operating-system-FreeBSD-8.4 8.4
.ds doc-operating-system-FreeBSD-9.0 9.0
.
.\" Definitions not (yet) in doc-syms
+1 -2
View File
@@ -315,10 +315,9 @@ srandomdev()
if (!done) {
struct timeval tv;
unsigned long junk;
gettimeofday(&tv, NULL);
srandom((getpid() << 16) ^ tv.tv_sec ^ tv.tv_usec ^ junk);
srandom((getpid() << 16) ^ tv.tv_sec ^ tv.tv_usec);
return;
}
+75 -72
View File
@@ -135,9 +135,8 @@ static void unlink_object(Obj_Entry *);
static void unload_object(Obj_Entry *);
static void unref_dag(Obj_Entry *);
static void ref_dag(Obj_Entry *);
static int origin_subst_one(char **, const char *, const char *,
const char *, char *);
static char *origin_subst(const char *, const char *);
static char *origin_subst_one(char *, const char *, const char *, bool);
static char *origin_subst(char *, const char *);
static int rtld_verify_versions(const Objlist *);
static int rtld_verify_object_versions(Obj_Entry *);
static void object_add_name(Obj_Entry *, const char *);
@@ -661,79 +660,81 @@ basename(const char *name)
static struct utsname uts;
static int
origin_subst_one(char **res, const char *real, const char *kw, const char *subst,
char *may_free)
static char *
origin_subst_one(char *real, const char *kw, const char *subst,
bool may_free)
{
const char *p, *p1;
char *res1;
int subst_len;
int kw_len;
char *p, *p1, *res, *resp;
int subst_len, kw_len, subst_count, old_len, new_len;
res1 = *res = NULL;
p = real;
subst_len = kw_len = 0;
for (;;) {
p1 = strstr(p, kw);
if (p1 != NULL) {
if (subst_len == 0) {
subst_len = strlen(subst);
kw_len = strlen(kw);
}
if (*res == NULL) {
*res = xmalloc(PATH_MAX);
res1 = *res;
}
if ((res1 - *res) + subst_len + (p1 - p) >= PATH_MAX) {
_rtld_error("Substitution of %s in %s cannot be performed",
kw, real);
if (may_free != NULL)
free(may_free);
free(res);
return (false);
}
memcpy(res1, p, p1 - p);
res1 += p1 - p;
memcpy(res1, subst, subst_len);
res1 += subst_len;
p = p1 + kw_len;
} else {
if (*res == NULL) {
if (may_free != NULL)
*res = may_free;
else
*res = xstrdup(real);
return (true);
}
*res1 = '\0';
if (may_free != NULL)
free(may_free);
if (strlcat(res1, p, PATH_MAX - (res1 - *res)) >= PATH_MAX) {
free(res);
return (false);
}
return (true);
}
}
kw_len = strlen(kw);
/*
* First, count the number of the keyword occurences, to
* preallocate the final string.
*/
for (p = real, subst_count = 0;; p = p1 + kw_len, subst_count++) {
p1 = strstr(p, kw);
if (p1 == NULL)
break;
}
/*
* If the keyword is not found, just return.
*/
if (subst_count == 0)
return (may_free ? real : xstrdup(real));
/*
* There is indeed something to substitute. Calculate the
* length of the resulting string, and allocate it.
*/
subst_len = strlen(subst);
old_len = strlen(real);
new_len = old_len + (subst_len - kw_len) * subst_count;
res = xmalloc(new_len + 1);
/*
* Now, execute the substitution loop.
*/
for (p = real, resp = res, *resp = '\0';;) {
p1 = strstr(p, kw);
if (p1 != NULL) {
/* Copy the prefix before keyword. */
memcpy(resp, p, p1 - p);
resp += p1 - p;
/* Keyword replacement. */
memcpy(resp, subst, subst_len);
resp += subst_len;
*resp = '\0';
p = p1 + kw_len;
} else
break;
}
/* Copy to the end of string and finish. */
strcat(resp, p);
if (may_free)
free(real);
return (res);
}
static char *
origin_subst(const char *real, const char *origin_path)
origin_subst(char *real, const char *origin_path)
{
char *res1, *res2, *res3, *res4;
char *res1, *res2, *res3, *res4;
if (uts.sysname[0] == '\0') {
if (uname(&uts) != 0) {
_rtld_error("utsname failed: %d", errno);
return (NULL);
if (uts.sysname[0] == '\0') {
if (uname(&uts) != 0) {
_rtld_error("utsname failed: %d", errno);
return (NULL);
}
}
}
if (!origin_subst_one(&res1, real, "$ORIGIN", origin_path, NULL) ||
!origin_subst_one(&res2, res1, "$OSNAME", uts.sysname, res1) ||
!origin_subst_one(&res3, res2, "$OSREL", uts.release, res2) ||
!origin_subst_one(&res4, res3, "$PLATFORM", uts.machine, res3))
return (NULL);
return (res4);
res1 = origin_subst_one(real, "$ORIGIN", origin_path, false);
res2 = origin_subst_one(res1, "$OSNAME", uts.sysname, true);
res3 = origin_subst_one(res2, "$OSREL", uts.release, true);
res4 = origin_subst_one(res3, "$PLATFORM", uts.machine, true);
return (res4);
}
static void
@@ -1144,10 +1145,12 @@ find_library(const char *xname, const Obj_Entry *refobj)
xname);
return NULL;
}
if (refobj != NULL && refobj->z_origin)
return origin_subst(xname, refobj->origin_path);
else
return xstrdup(xname);
if (refobj != NULL && refobj->z_origin) {
return (origin_subst(__DECONST(char *, xname),
refobj->origin_path));
} else {
return (xstrdup(xname));
}
}
if (libmap_disable || (refobj == NULL) ||
+2 -2
View File
@@ -33,7 +33,7 @@ BUILDNAME?=${BASE}-${DATE}-SNAP
#
#CHROOTDIR=/junk/release
# If this is a -stable snapshot, then set
#RELEASETAG=RELENG_8
#RELEASETAG=RELENG_8_4
#
# To test a release with a source tree containing patches and
# other work. This tree will get copied instead of getting the
@@ -72,7 +72,7 @@ BUILDNAME?=${BASE}-${DATE}-SNAP
#
# Subversion branch to build for src. If this is not set then it is
# automatically computed from RELEASETAG.
#SVNBRANCH=stable/8
#SVNBRANCH=releng/8.4
#
# Non-zero if ${RELEASETAG} is in the form "RELENG_ver_RELEASE"; we
# are building an official release. Otherwise, we are building for
-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.xml
.include "${RELN_ROOT}/share/mk/doc.relnotes.mk"
.include "${DOC_PREFIX}/share/mk/doc.project.mk"
@@ -1,544 +0,0 @@
<?xml version="1.0" encoding="iso-8859-1" standalone="no"?>
<!DOCTYPE article PUBLIC "-//FreeBSD//DTD DocBook XML V4.2-Based Extension//EN" [
<!ENTITY % entities PUBLIC "-//FreeBSD//ENTITIES DocBook FreeBSD Entity Set//DE">
%entities;
<!ENTITY % release PUBLIC "-//FreeBSD//ENTITIES Release Specification//EN">
%release;
<!ENTITY release.4x "4.<replaceable>X</replaceable>">
<!ENTITY release.5x "5.<replaceable>X</replaceable>">
]>
<!--
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
-->
<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.xml
.include "${RELN_ROOT}/share/mk/doc.relnotes.mk"
.include "${DOC_PREFIX}/share/mk/doc.project.mk"
@@ -1,406 +0,0 @@
<?xml version="1.0" encoding="iso-8859-1" standalone="no"?>
<!DOCTYPE article PUBLIC "-//FreeBSD//DTD DocBook XML V4.2-Based Extension//EN" [
<!ENTITY % entities PUBLIC "-//FreeBSD//ENTITIES DocBook FreeBSD Entity Set//DE">
%entities;
<!ENTITY % release PUBLIC "-//FreeBSD//ENTITIES Release Specification//EN">
%release;
]>
<!--
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
-->
<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.xml
SRCS+= proc-alpha.xml
SRCS+= ../common/hw.ent
SRCS+= ../common/artheader.xml
SRCS+= ../common/dev.xml
.include "${RELN_ROOT}/share/mk/doc.relnotes.mk"
.include "${DOC_PREFIX}/share/mk/doc.project.mk"
@@ -1,26 +0,0 @@
<?xml version="1.0" encoding="iso-8859-1" standalone="no"?>
<!DOCTYPE article PUBLIC "-//FreeBSD//DTD DocBook XML V4.2-Based Extension//EN" [
<!ENTITY % entities PUBLIC "-//FreeBSD//ENTITIES DocBook FreeBSD Entity Set//DE">
%entities;
<!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">
]>
<!--
$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
-->
<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 @@
<!-- -*- xml -*- -->
<!--
$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.xml">
<!ENTITY sect.intro SYSTEM "../common/intro.xml">
<!ENTITY sect.proc.alpha SYSTEM "../alpha/proc-alpha.xml">
<!ENTITY sect.proc.i386 SYSTEM "../i386/proc-i386.xml">
<!ENTITY sect.proc.ia64 SYSTEM "../ia64/proc-ia64.xml">
<!ENTITY sect.proc.pc98 SYSTEM "../pc98/proc-pc98.xml">
<!ENTITY sect.proc.sparc64 SYSTEM "../sparc64/proc-sparc64.xml">
<!ENTITY sect.dev SYSTEM "../common/dev.xml">
@@ -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.xml
SRCS+= proc-i386.xml
SRCS+= ../common/hw.ent
SRCS+= ../common/artheader.xml
SRCS+= ../common/dev.xml
.include "${RELN_ROOT}/share/mk/doc.relnotes.mk"
.include "${DOC_PREFIX}/share/mk/doc.project.mk"
@@ -1,26 +0,0 @@
<?xml version="1.0" encoding="iso-8859-1" standalone="no"?>
<!DOCTYPE article PUBLIC "-//FreeBSD//DTD DocBook XML V4.2-Based Extension//EN" [
<!ENTITY % entities PUBLIC "-//FreeBSD//ENTITIES DocBook FreeBSD Entity Set//DE">
%entities;
<!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">
]>
<!--
$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
-->
<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.xml
# SRCS+= proc-ia64.xml
SRCS+= ../common/hw.ent
SRCS+= ../common/artheader.xml
SRCS+= ../common/dev.xml
.include "${RELN_ROOT}/share/mk/doc.relnotes.mk"
.include "${DOC_PREFIX}/share/mk/doc.project.mk"
@@ -1,36 +0,0 @@
<?xml version="1.0" encoding="iso-8859-1" standalone="no"?>
<!DOCTYPE article PUBLIC "-//FreeBSD//DTD DocBook XML V4.2-Based Extension//EN" [
<!ENTITY % entities PUBLIC "-//FreeBSD//ENTITIES DocBook FreeBSD Entity Set//DE">
%entities;
<!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">
]>
<!--
$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
-->
<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.xml
SRCS+= proc-pc98.xml
SRCS+= ../common/hw.ent
SRCS+= ../common/artheader.xml
SRCS+= ../common/dev.xml
.include "${RELN_ROOT}/share/mk/doc.relnotes.mk"
.include "${DOC_PREFIX}/share/mk/doc.project.mk"
@@ -1,26 +0,0 @@
<?xml version="1.0" encoding="iso-8859-1" standalone="no"?>
<!DOCTYPE article PUBLIC "-//FreeBSD//DTD DocBook XML V4.2-Based Extension//EN" [
<!ENTITY % entities PUBLIC "-//FreeBSD//ENTITIES DocBook FreeBSD Entity Set//DE">
%entities;
<!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">
]>
<!--
$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
-->
<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.xml
SRCS+= proc-sparc64.xml
SRCS+= ../common/hw.ent
SRCS+= ../common/artheader.xml
SRCS+= ../common/dev.xml
.include "${RELN_ROOT}/share/mk/doc.relnotes.mk"
.include "${DOC_PREFIX}/share/mk/doc.project.mk"
@@ -1,26 +0,0 @@
<?xml version="1.0" encoding="iso-8859-1" standalone="no"?>
<!DOCTYPE article PUBLIC "-//FreeBSD//DTD DocBook XML V4.2-Based Extension//EN" [
<!ENTITY % entities PUBLIC "-//FreeBSD//ENTITIES DocBook FreeBSD Entity Set//DE">
%entities;
<!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">
]>
<!--
$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
-->
<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.xml
SRCS+= ../common/artheader.xml
SRCS+= ../common/abstract.xml
SRCS+= ../common/install.xml
SRCS+= ../common/layout.xml
SRCS+= ../common/trouble.xml
SRCS+= ../common/upgrade.xml
.include "${RELN_ROOT}/share/mk/doc.relnotes.mk"
.include "${DOC_PREFIX}/share/mk/doc.project.mk"
@@ -1,28 +0,0 @@
<?xml version="1.0" encoding="iso-8859-1" standalone="no"?>
<!DOCTYPE article PUBLIC "-//FreeBSD//DTD DocBook XML V4.2-Based Extension//EN" [
<!ENTITY % entities PUBLIC "-//FreeBSD//ENTITIES DocBook FreeBSD Entity Set//DE">
%entities;
<!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">
]>
<!--
$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
-->
<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 @@
<!-- -*- xml -*- -->
<!--
$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.xml">
<!ENTITY abstract SYSTEM "abstract.xml">
<!ENTITY sect.install SYSTEM "install.xml">
<!ENTITY sect.layout SYSTEM "layout.xml">
<!ENTITY sect.upgrade SYSTEM "upgrade.xml">
<!ENTITY sect.trouble SYSTEM "trouble.xml">
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>
Loaded 100 of 347 files, more files were not shown because too many files have changed in this diff. Show more