Index: head/en_US.ISO8859-1/htdocs/releases/12.0R/Makefile =================================================================== --- head/en_US.ISO8859-1/htdocs/releases/12.0R/Makefile (revision 51263) +++ head/en_US.ISO8859-1/htdocs/releases/12.0R/Makefile (revision 51264) @@ -1,117 +1,64 @@ # $FreeBSD$ .if exists(../Makefile.conf) .include "../Makefile.conf" .endif .if exists(../Makefile.inc) .include "../Makefile.inc" .endif RELN_ROOT?= ${.CURDIR} _OS?= FreeBSD _REVISION?= 12.0 _BRANCH?= RELEASE THISRELEASE?= ${_OS}-${_REVISION}-${_BRANCH} DOCS= index.xml \ schedule.xml DATA= docbook.css +SUBDIR= errata readme relnotes + +.if defined(MAN4DIR) && !empty(MAN4DIR) +SUBDIR+= hardware +.endif + # PGP-signed checksums _BIGIRON?= amd64 \ i386 \ powerpc \ powerpc-powerpc64 \ sparc64 \ arm64-aarch64 _VMS?= amd64 \ i386 \ arm64-aarch64 _ARM?= BANANAPI \ BEAGLEBONE \ CUBIEBOARD \ CUBIEBOARD2 \ CUBOX-HUMMINGBOARD \ GUMSTIX \ PANDABOARD \ RPI-B \ RPI2 \ WANDBOARD .for CHECKSUM in SHA512 SHA256 . for _B in ${_BIGIRON} #DATA+= CHECKSUM.${CHECKSUM}-${THISRELEASE}-${_B}.asc . endfor . for _V in ${_VMS} #DATA+= CHECKSUM.${CHECKSUM}-${THISRELEASE}-${_V}-vm.asc . endfor . for _A in ${_ARM} #DATA+= CHECKSUM.${CHECKSUM}-${THISRELEASE}-arm-armv6-${_A}.asc . endfor -.endfor - -_hardware?= hardware - -# The path used on build-web is 'src/share/man/man4'. -.if !defined(MAN4DIR) || empty(MAN4DIR) -. if exists(${DOC_PREFIX}/../src/share/man/man4) -MAN4DIR= ${DOC_PREFIX}/../src/share/man/man4 -. elif exists(${DOC_PREFIX}/../share/man/man4) -MAN4DIR= ${DOC_PREFIX}/../share/man/man4 -. elif exists(${DOC_PREFIX}/../man/man4) -MAN4DIR= ${DOC_PREFIX}/../man/man4 -. elif exists(${DOC_PREFIX}/../man4) -MAN4DIR= ${DOC_PREFIX}/../man4 -. else -. warning "MAN4DIR not found. Unable to build hardware.html" -_hardware= # empty -. endif -.endif - -D= errata -D+= ${_hardware} -D+= readme -D+= relnotes - -MAN4PAGES?= ${MAN4DIR}/*.4 ${MAN4DIR}/man4.*/*.4 -ARCHLIST?= ${.CURDIR}/../../share/misc/dev.archlist.txt -CLEANFILES+= dev-auto.ent \ - index.html \ - schedule.html - -MAN2HWNOTES_CMD=${.CURDIR}/../../share/misc/man2hwnotes.pl -.if defined(HWNOTES_MI) -MAN2HWNOTES_FLAGS= -.else -MAN2HWNOTES_FLAGS= -c -.endif - -dev-auto.ent: - ${PERL} ${MAN2HWNOTES_CMD} ${MAN2HWNOTES_FLAGS} -a ${ARCHLIST} -o ${.TARGET}.tmp ${MAN4PAGES} - ${MV} ${.TARGET}.tmp ${.TARGET} - -.if make(clean) -beforeclean: -SUBDIR+= ${D} -.include "${DOC_PREFIX}/share/mk/doc.subdir.mk" -.endif - -beforeinstall: -.for _SD in ${D} -. if (${_SD:Mhardware} != "") - ${MAKE} -B -C ${.CURDIR} dev-auto.ent -. endif - ${MAKE} -C ${_SD} DOCINSTALLDIR=${DOCINSTALLDIR} all -.endfor - -afterinstall: -.for _SD in ${D} - ${MAKE} -C ${_SD} DOCINSTALLDIR=${DOCINSTALLDIR} install .endfor .include "${DOC_PREFIX}/share/mk/web.site.mk" Index: head/en_US.ISO8859-1/htdocs/releases/12.0R/Makefile.inc =================================================================== --- head/en_US.ISO8859-1/htdocs/releases/12.0R/Makefile.inc (nonexistent) +++ head/en_US.ISO8859-1/htdocs/releases/12.0R/Makefile.inc (revision 51264) @@ -0,0 +1,12 @@ +# $FreeBSD$ +.if !defined(_HTDOCS_RELEASES_12_0R_INC) +_HTDOCS_RELEASES_12_0R_INC=1 +DOC_PREFIX?= ${.CURDIR}/../../../../.. +WEBDIR?= /data/releases/12.0R +.if defined(DESTDIR) +DESTDIR:= ${DESTDIR}/${WEBDIR} +.else +DESTDIR= ${HOME}/public_html/${WEBDIR} +.endif +DOCBOOK_DEPS_DISABLE= YES +.endif Property changes on: head/en_US.ISO8859-1/htdocs/releases/12.0R/Makefile.inc ___________________________________________________________________ Added: svn:keywords ## -0,0 +1 ## +FreeBSD=%H \ No newline at end of property Index: head/en_US.ISO8859-1/htdocs/releases/12.0R/errata/Makefile =================================================================== --- head/en_US.ISO8859-1/htdocs/releases/12.0R/errata/Makefile (revision 51263) +++ head/en_US.ISO8859-1/htdocs/releases/12.0R/errata/Makefile (revision 51264) @@ -1,34 +1,12 @@ # $FreeBSD$ -.if exists(../Makefile.conf) -.include "../Makefile.conf" -.endif .if exists(../Makefile.inc) .include "../Makefile.inc" .endif -DOC_PREFIX?= ${.CURDIR}/../../../../.. -RELN_ROOT?= ${.CURDIR}/.. - DOC?= errata -FORMATS?= html +FORMATS?= html txt INSTALL_COMPRESSED?= gz INSTALL_ONLY_COMPRESSED= - -JADEFLAGS+= -V %generate-article-toc% - -SRCS?= errata.xml - -DATA+= ${DOC}.html - -CLEANFILES+= ${DOC}.html \ - ${DOC}.txt \ - catalog-cwd.xml \ - autogen.ent \ - ${DOC}.parsed.* - -install: ${DOC}.html - mkdir -p ${DOCINSTALLDIR} - ${INSTALL_DOCS} ${DATA} ${DOCINSTALLDIR} .include "${DOC_PREFIX}/share/mk/doc.project.mk" Index: head/en_US.ISO8859-1/htdocs/releases/12.0R/hardware/Makefile =================================================================== --- head/en_US.ISO8859-1/htdocs/releases/12.0R/hardware/Makefile (revision 51263) +++ head/en_US.ISO8859-1/htdocs/releases/12.0R/hardware/Makefile (revision 51264) @@ -1,34 +1,32 @@ # $FreeBSD$ -.if exists(../Makefile.conf) -.include "../Makefile.conf" -.endif .if exists(../Makefile.inc) .include "../Makefile.inc" .endif -DOC_PREFIX?= ${.CURDIR}/../../../../.. -RELN_ROOT?= ${.CURDIR}/.. +# The path used on build-web is 'src/share/man/man4'. +.if make(all) && (!defined(MAN4DIR) || empty(MAN4DIR) || !exists(${MAN4DIR})) +. warning "MAN4DIR not found. Unable to build hardware.html" +.endif -JADEFLAGS+= -V %generate-article-toc% +MAN4PAGES?= ${MAN4DIR}/*.4 ${MAN4DIR}/man4.*/*.4 +ARCHLIST?= ${DOC_PREFIX}/share/misc/dev.archlist.txt -DOC?= hardware +MAN2HWNOTES_CMD=${DOC_PREFIX}/share/misc/man2hwnotes.pl +.if defined(HWNOTES_MI) +MAN2HWNOTES_FLAGS= +.else +MAN2HWNOTES_FLAGS= -c +.endif + +DOC= hardware FORMATS?= html INSTALL_COMPRESSED?= gz INSTALL_ONLY_COMPRESSED= -SRCS?= hardware.xml - -DATA+= ${DOC}.html - -CLEANFILES+= ${DOC}.html \ - ${DOC}.txt \ - catalog-cwd.xml \ - autogen.ent \ - ${DOC}.parsed.* - -install: ${DOC}.html - mkdir -p ${DOCINSTALLDIR} - ${INSTALL_DOCS} ${DATA} ${DOCINSTALLDIR} +hardware.parsed.xml: dev-auto.ent +dev-auto.ent: + ${PERL} ${MAN2HWNOTES_CMD} ${MAN2HWNOTES_FLAGS} -a ${ARCHLIST} -o ${.TARGET} ${MAN4PAGES} || (rm -f ${.TARGET}) +CLEANFILES+= dev-auto.ent .include "${DOC_PREFIX}/share/mk/doc.project.mk" Index: head/en_US.ISO8859-1/htdocs/releases/12.0R/hardware/hardware.xml =================================================================== --- head/en_US.ISO8859-1/htdocs/releases/12.0R/hardware/hardware.xml (revision 51263) +++ head/en_US.ISO8859-1/htdocs/releases/12.0R/hardware/hardware.xml (revision 51264) @@ -1,1479 +1,1482 @@ + "http://www.FreeBSD.org/XML/share/xml/freebsd50.dtd" [ + %release; - + %sponsor; - + %vendor; - - + %devauto; ]>
&os; &release.current; Hardware Notes The &os; Documentation Project $FreeBSD$ 2000 2001 2002 2003 2004 2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016 2017 The &os; Documentation Project &tm-attrib.freebsd; &tm-attrib.amd; &tm-attrib.fujitsu; &tm-attrib.ibm; &tm-attrib.intel; &tm-attrib.sparc; &tm-attrib.sun; &tm-attrib.general; Introduction This document contains the hardware compatibility notes for &os; &release.current;. It lists the hardware platforms supported by &os;, as well as the various types of hardware devices (storage controllers, network interfaces, and so on), along with known working instances of these devices. Supported Processors and System Boards This section provides some architecture-specific information about the specific processors and systems that are supported by each architecture. amd64 Since mid-2003 &os;/&arch.amd64; has supported the AMD64 (Hammer) and &intel; EM64T architecture, and is now one of the Tier-1 platforms (fully supported architecture), which are expected to be Production Quality with respects to all aspects of the &os; operating system, including installation and development environments. Note that there are two names for this architecture, AMD64 (AMD) and Intel EM64T (Extended Memory 64-bit Technology). 64-bit mode of the two architectures are almost compatible with each other, and &os;/&arch.amd64; supports them both. As of this writing, the following processors are supported: &amd.athlon;64 (Clawhammer). &amd.opteron; (Sledgehammer). &amd.sempron;. &amd.turion;. &amd.phenom;. All multi-core &intel; &xeon; processors except Sossaman have EM64T support. The single-core &intel; &xeon; processors Nocona, Irwindale, Potomac, and Cranford have EM64T support. All &intel; &core; 2 (not &core; Duo) and later processors All &intel; &core; i range of processors All &intel; &pentium; D processors All &intel; ¢rino; Duo and ¢rino; Pro platforms &intel; &pentium; 4s and &celeron; Ds using the Cedar Mill core have EM64T support. Some &intel; &pentium; 4s and &celeron; Ds using the Prescott core have EM64T support. See the Intel Processor Spec Finder for the definitive answer about EM64T support in Intel processors. &intel; EM64T is an extended version of IA-32 (x86) and different from &intel; IA-64 (Itanium) architecture. Some of &intel;'s old documentation refers to &intel; EM64T as 64-bit extension technology or IA-32e. Both Uniprocessor (UP) and Symmetric Multi-processor (SMP) configurations are supported. In many respects, &os;/&arch.amd64; is similar to &os;/&arch.i386;, in terms of drivers supported. Generally, drivers that already function correctly on other 64-bit platforms should work. i386 &os;/&arch.i386; runs on a wide variety of IBM PC compatible machines. Due to the wide range of hardware available for this architecture, it is impossible to exhaustively list all combinations of equipment supported by &os;. Nevertheless, some general guidelines are presented here. Almost all &i386;-compatible processors with a floating point unit are supported. All &intel; processors beginning with the 80486 are supported, including the 80486, &pentium;, &pentium; Pro, &pentium; II, &pentium; III, &pentium; 4, and variants thereof, such as the &xeon; and &celeron; processors. All &i386;-compatible AMD processors are also supported, including the &am486;, &am5x86;, K5, &amd.k6; (and variants), &amd.athlon; (including Athlon-MP, Athlon-XP, Athlon-4, and Athlon Thunderbird), and &amd.duron; processors. The AMD Élan SC520 embedded processor is supported. The Transmeta Crusoe is recognized and supported, as are &i386;-compatible processors from Cyrix and NexGen. There is a wide variety of motherboards available for this architecture. Motherboards using the ISA, VLB, EISA, AGP, and PCI expansion buses are well-supported. There is some limited support for the MCA (MicroChannel) expansion bus used in the IBM PS/2 line of PCs. Symmetric multi-processor (SMP) systems are generally supported by &os;, although in some cases, BIOS or motherboard bugs may generate some problems. Perusal of the archives of the &a.smp; may yield some clues. &os; will take advantage of SMT (Symmetric MultiThreading, also known as HyperThreading on &intel; CPUs) on the supported CPUs. The GENERIC kernel which is installed by default will automatically detect the additional logical processors. The default &os; scheduler recognizes processor topology on the system and selects logical and physical processors to obtain optimal performance. The &man.smp.4; manual page has more details. &os; will take advantage of Physical Address Extensions (PAE) support on CPUs that support this feature. A kernel with the PAE feature enabled will detect memory above 4 gigabytes and allow it to be used by the system. This feature places constraints on the device drivers and other features of &os; which may be used; consult the &man.pae.4; manual page for more details. &os; will generally run on i386-based laptops, albeit with varying levels of support for certain hardware features such as sound, graphics, power management, and PCCARD expansion slots. These features tend to vary in idiosyncratic ways between machines, and frequently require special-case support in &os; to work around hardware bugs or other oddities. When in doubt, a search of the archives of the &a.mobile; may be useful. Most modern laptops (as well as many desktops) use the Advanced Configuration and Power Management (ACPI) standard. &os; supports ACPI via the ACPI Component Architecture reference implementation from &intel;, as described in the &man.acpi.4; manual page. The use of ACPI causes instabilities on some machines and it may be necessary to disable the ACPI driver, which is normally loaded via a kernel module. This may be accomplished by adding the following line to /boot/device.hints: hint.acpi.0.disabled="1" Users debugging ACPI-related problems may find it useful to disable portions of the ACPI functionality. The &man.acpi.4; manual page has more information on how to do this via loader tunables. ACPI depends on a Differentiated System Descriptor Table (DSDT) provided by each machine's BIOS. Some machines have bad or incomplete DSDTs, which prevents ACPI from functioning correctly. Replacement DSDTs for some machines can be found at the DSDT section of the ACPI4Linux project Web site. &os; can use these DSDTs to override the DSDT provided by the BIOS; see the &man.acpi.4; manual page for more information. powerpc All Apple PowerPC machines with built-in USB are supported, as well a limited selection of non-Apple machines, including KVM on POWER7 SMP is supported on all systems with more than 1 processor. sparc64 This section describes the systems currently known to be supported by &os; on the Fujitsu &sparc64; and Sun &ultrasparc; platforms. SMP is supported on all systems with more than 1 processor. When using the GENERIC kernel, &os;/&arch.sparc64; systems not equipped with a framebuffer supported by the &man.creator.4; (Sun Creator, Sun Creator3D and Sun Elite3D) or &man.machfb.4; (Sun PGX and Sun PGX64 as well as the ATI Mach64 chips found onboard in for example &sun.blade; 100, &sun.blade; 150, &sun.ultra; 5 and &sun.ultra; 10) driver must use the serial console. If you have a system that is not listed here, it may not have been tested with &os; &release.current;. We encourage you to try it and send a note to the &a.sparc; with your results, including which devices work and which do not. The following systems are fully supported by &os;: Naturetech GENIALstation 777S &sun.blade; 100 &sun.blade; 150 &sun.enterprise; 150 &sun.enterprise; 220R &sun.enterprise; 250 &sun.enterprise; 420R &sun.enterprise; 450 &sun.fire; B100s (support for the on-board NICs first appeared in 8.1-RELEASE) &sun.fire; V100 &sun.fire; V120 Sun &netra; t1 100/105 Sun &netra; T1 AC200/DC200 Sun &netra; t 1100 Sun &netra; t 1120 Sun &netra; t 1125 Sun &netra; t 1400/1405 Sun &netra; 120 Sun &netra; X1 Sun &sparcengine; Ultra AX1105 Sun &sparcengine; Ultra AXe Sun &sparcengine; Ultra AXi Sun &sparcengine; Ultra AXmp Sun &sparcengine; CP1500 &sun.ultra; 1 &sun.ultra; 1E &sun.ultra; 2 &sun.ultra; 5 &sun.ultra; 10 &sun.ultra; 30 &sun.ultra; 60 &sun.ultra; 80 &sun.ultra; 450 The following systems are partially supported by &os;. In particular the fiber channel controllers in SBus-based systems are not supported. However, it is possible to use these with a SCSI controller supported by the &man.esp.4; driver (Sun ESP SCSI, Sun FAS Fast-SCSI and Sun FAS366 Fast-Wide SCSI controllers). &sun.enterprise; 3500 &sun.enterprise; 4500 Starting with 7.2-RELEASE, &arch.sparc64; systems based on Sun &ultrasparc; III and beyond are also supported by &os;, which includes the following known working systems: &sun.blade; 1000 &sun.blade; 1500 &sun.blade; 2000 &sun.blade; 2500 &sun.fire; 280R &sun.fire; V210 &sun.fire; V215 (support first appeared in 7.3-RELEASE and 8.1-RELEASE) &sun.fire; V240 &sun.fire; V245 (support first appeared in 7.3-RELEASE and 8.1-RELEASE) &sun.fire; V250 &sun.fire; V440 (support for the on-board NICs first appeared in 7.3-RELEASE and 8.0-RELEASE) &sun.fire; V480 (501-6780 and 501-6790 centerplanes only, for which support first appeared in 7.3-RELEASE and 8.1-RELEASE, other centerplanes might work beginning with 8.3-RELEASE and 9.0-RELEASE) &sun.fire; V880 &sun.fire; V890 (support first appeared in 7.4-RELEASE and 8.1-RELEASE, non-mixed &ultrasparc; IV/IV+ CPU-configurations only) &netra; 20/&netra; T4 The following Sun &ultrasparc; systems are not tested but believed to be also supported by &os;: &sun.fire; V125 &sun.fire; V490 (support first appeared in 7.4-RELEASE and 8.1-RELEASE, non-mixed &ultrasparc; IV/IV+ CPU-configurations only) Starting with 7.4-RELEASE and 8.1-RELEASE, &arch.sparc64; systems based on Fujitsu &sparc64; V are also supported by &os;, which includes the following known working systems: Fujitsu &primepower; 250 The following Fujitsu &primepower; systems are not tested but believed to be also supported by &os;: Fujitsu &primepower; 450 Fujitsu &primepower; 650 Fujitsu &primepower; 850 Supported Devices This section describes the devices currently known to be supported by &os;. Other configurations may also work, but simply have not been tested yet. Feedback, updates, and corrections to this list are encouraged. Where possible, the drivers applicable to each device or class of devices is listed. If the driver in question has a manual page in the &os; base distribution (most should), it is referenced here. Information on specific models of supported devices, controllers, etc. can be found in the manual pages. The device lists in this document are being generated automatically from &os; manual pages. This means that some devices, which are supported by multiple drivers, may appear multiple times. Disk Controllers [&arch.amd64;, &arch.i386;, &arch.sparc64;] IDE/ATA controllers (&man.ata.4; driver) &hwlist.aac; &hwlist.adv; &hwlist.adw; &hwlist.aha; &hwlist.ahc; &hwlist.ahci; &hwlist.ahd; &hwlist.aic; &hwlist.amr; &hwlist.arcmsr; &hwlist.bt; &hwlist.ciss; &hwlist.dpt; [&arch.amd64;, &arch.i386;] Booting from these controllers is supported. EISA adapters are not supported. &hwlist.esp; &hwlist.hpt27xx; &hwlist.hptiop; &hwlist.hptmv; &hwlist.hptrr; &hwlist.ida; &hwlist.iir; &hwlist.ips; &hwlist.isci; &hwlist.isp; &hwlist.mfi; &hwlist.mlx; [&arch.amd64;, &arch.i386;] Booting from these controllers is supported. EISA adapters are not supported. &hwlist.mly; &hwlist.mpr; &hwlist.mps; &hwlist.mpt; &hwlist.mrsas; &hwlist.mvs; &hwlist.ncr; &hwlist.ncv; &hwlist.nsp; &hwlist.pms; &hwlist.pst; &hwlist.siis; &hwlist.stg; &hwlist.sym; &hwlist.trm; &hwlist.twa; &hwlist.twe; &hwlist.tws; &hwlist.vpo; With all supported SCSI controllers, full support is provided for SCSI-I, SCSI-II, and SCSI-III peripherals, including hard disks, optical disks, tape drives (including DAT, 8mm Exabyte, Mammoth, and DLT), medium changers, processor target devices and CD-ROM drives. WORM devices that support CD-ROM commands are supported for read-only access by the CD-ROM drivers (such as &man.cd.4;). WORM/CD-R/CD-RW writing support is provided by &man.cdrecord.1;, which is a part of the sysutils/cdrtools port in the Ports Collection. The following CD-ROM type systems are supported at this time: SCSI interface (also includes ProAudio Spectrum and SoundBlaster SCSI) (&man.cd.4;) ATAPI IDE interface (&man.acd.4;) Ethernet Interfaces &hwlist.ae; &hwlist.age; &hwlist.ale; &hwlist.aue; &hwlist.axe; ASIX Electronics AX88178A/AX88179 USB Gigabit Ethernet adapters (&man.axge.4; driver) &hwlist.bce; [&arch.amd64;, &arch.i386;] Broadcom BCM4401 based Fast Ethernet adapters (&man.bfe.4; driver) &hwlist.bge; &hwlist.bnxt; &hwlist.bxe; &hwlist.cas; &hwlist.cdce; [&arch.amd64;, &arch.i386;] Crystal Semiconductor CS89x0-based NICs (&man.cs.4; driver) &hwlist.cue; &hwlist.cxgb; &hwlist.cxgbe; &hwlist.dc; &hwlist.de; &hwlist.ed; &hwlist.em; &hwlist.ep; Agere ET1310 Gigabit Ethernet adapters (&man.et.4; driver) &hwlist.ex; &hwlist.fe; &hwlist.fxp; &hwlist.gem; &hwlist.hme; &hwlist.ipheth; &hwlist.ixgb; &hwlist.ixgbe; &hwlist.ixl; &hwlist.jme; &hwlist.kue; &hwlist.lge; &hwlist.mlx4en; &hwlist.mlx5en; &hwlist.msk; &hwlist.mxge; &hwlist.my; &hwlist.nfe; &hwlist.nge; &hwlist.nxge; &hwlist.oce; &hwlist.pcn; &hwlist.qlxgb; &hwlist.qlxgbe; &hwlist.qlxge; &hwlist.re; &hwlist.rl; &hwlist.rue; &hwlist.sf; &hwlist.sfxge; &hwlist.sge; &hwlist.sis; &hwlist.sk; &hwlist.smsc; &hwlist.sn; &hwlist.ste; &hwlist.stge; &hwlist.ti; &hwlist.tl; [&arch.amd64;, &arch.i386;] SMC 83c17x (EPIC)-based Ethernet NICs (&man.tx.4; driver) &hwlist.txp; &hwlist.udav; &hwlist.urndis; &hwlist.vge; &hwlist.vr; &hwlist.vte; &hwlist.vx; &hwlist.vxge; &hwlist.wb; &hwlist.xe; &hwlist.xl; FDDI Interfaces [&arch.i386;] DEC DEFPA PCI (&man.fpa.4; driver) [&arch.i386;] DEC DEFEA EISA (&man.fpa.4; driver) Wireless Network Interfaces [&arch.amd64;, &arch.i386;] Cisco/Aironet 802.11b wireless adapters (&man.an.4; driver) &hwlist.ath; &hwlist.bwi; &hwlist.bwn; [&arch.i386;, &arch.amd64;] Intel PRO/Wireless 2100 MiniPCI network adapter (&man.ipw.4; driver) [&arch.i386;, &arch.amd64;] Intel PRO/Wireless 2200BG/2915ABG MiniPCI and 2225BG PCI network adapters (&man.iwi.4; driver) [&arch.i386;, &arch.amd64;] Intel Dual Band Wireless AC 3160/7260/7265 IEEE 802.11ac network adapters (&man.iwm.4; driver) [&arch.i386;, &arch.amd64;] Intel Wireless WiFi Link 4965AGN IEEE 802.11n PCI network adapters (&man.iwn.4; driver) [&arch.i386;, &arch.amd64;] Marvell Libertas IEEE 802.11b/g PCI network adapters (&man.malo.4; driver) Marvell 88W8363 IEEE 802.11n wireless network adapters (&man.mwl.4; driver) &hwlist.otus; &hwlist.ral; &hwlist.rsu; Realtek RTL8192C, RTL8188E, RTL8812A and RTL8821A based PCIe IEEE 802.11b/g/n wireless network adapters (&man.rtwn.4; driver) &hwlist.rum; &hwlist.run; &hwlist.uath; &hwlist.upgt; &hwlist.ural; &hwlist.urtw; [&arch.amd64;, &arch.i386;] Lucent Technologies WaveLAN/IEEE 802.11b wireless network adapters and workalikes using the Lucent Hermes, Intersil PRISM-II, Intersil PRISM-2.5, Intersil Prism-3, and Symbol Spectrum24 chipsets (&man.wi.4; driver) [&arch.i386;, &arch.amd64;] Intel PRO/Wireless 3945ABG MiniPCI network adapters (&man.wpi.4; driver) &hwlist.zyd; Miscellaneous Networks &hwlist.ce; &hwlist.cx; &hwlist.cp; &hwlist.ctau; &hwlist.cm; Serial Interfaces [&arch.amd64;, &arch.i386;] PC standard 8250, 16450, and 16550-based serial ports (&man.sio.4; driver) &hwlist.uart; &hwlist.scc; [&arch.amd64;, &arch.i386;] AST 4 port serial card using shared IRQ ARNET 8 port serial card using shared IRQ ARNET (now Digiboard) Sync 570/i high-speed serial [&arch.i386;] Boca multi-port serial cards Boca BB1004 4-Port serial card (Modems not supported) Boca IOAT66 6-Port serial card (Modems supported) Boca BB1008 8-Port serial card (Modems not supported) Boca BB2016 16-Port serial card (Modems supported) [&arch.i386;] Comtrol Rocketport card (&man.rp.4; driver) [&arch.i386;] Cyclades Cyclom-Y serial board (&man.cy.4; driver) [&arch.i386;] STB 4 port card using shared IRQ [&arch.amd64;, &arch.i386;] PCI-Based multi-port serial boards (&man.puc.4; driver) [&arch.amd64;, &arch.i386;] Actiontech 56K PCI [&arch.amd64;, &arch.i386;] Avlab Technology, PCI IO 2S and PCI IO 4S [&arch.amd64;, &arch.i386;] Comtrol RocketPort 550 [&arch.amd64;, &arch.i386;] Decision Computers PCCOM 4-port serial and dual port RS232/422/485 [&arch.amd64;, &arch.i386;] Dolphin Peripherals 4025/4035/4036 [&arch.amd64;, &arch.i386;] IC Book Labs Dreadnought 16x Lite and Pro [&arch.amd64;, &arch.i386;] Lava Computers 2SP-PCI/DSerial-PCI/Quattro-PCI/Octopus-550 [&arch.amd64;, &arch.i386;] Middle Digital, Weasle serial port [&arch.amd64;, &arch.i386;] Moxa Industio CP-114, Smartio C104H-PCI and C168H/PCI [&arch.amd64;, &arch.i386;] NEC PK-UG-X001 and PK-UG-X008 [&arch.amd64;, &arch.i386;] Netmos NM9835 PCI-2S-550 [&arch.amd64;, &arch.i386;] Oxford Semiconductor OX16PCI954 PCI UART [&arch.amd64;, &arch.i386;] Syba Tech SD-LAB PCI-4S2P-550-ECP [&arch.amd64;, &arch.i386;] SIIG Cyber I/O PCI 16C550/16C650/16C850 [&arch.amd64;, &arch.i386;] SIIG Cyber 2P1S PCI 16C550/16C650/16C850 [&arch.amd64;, &arch.i386;] SIIG Cyber 2S1P PCI 16C550/16C650/16C850 [&arch.amd64;, &arch.i386;] SIIG Cyber 4S PCI 16C550/16C650/16C850 [&arch.amd64;, &arch.i386;] SIIG Cyber Serial (Single and Dual) PCI 16C550/16C650/16C850 [&arch.amd64;, &arch.i386;] Syba Tech Ltd. PCI-4S2P-550-ECP [&arch.amd64;, &arch.i386;] Titan PCI-200H and PCI-800H [&arch.amd64;, &arch.i386;] US Robotics (3Com) 3CP5609 modem [&arch.amd64;, &arch.i386;] VScom PCI-400 and PCI-800 &hwlist.rc; Sound Devices &hwlist.snd.ad1816; &hwlist.snd.als4000; &hwlist.snd.atiixp; &hwlist.snd.audiocs; &hwlist.snd.cmi; &hwlist.snd.cs4281; &hwlist.snd.csa; &hwlist.snd.ds1; &hwlist.snd.emu10k1; &hwlist.snd.emu10kx; &hwlist.snd.envy24; &hwlist.snd.envy24ht; &hwlist.snd.es137x; &hwlist.snd.ess; &hwlist.snd.fm801; &hwlist.snd.gusc; &hwlist.snd.hda; &hwlist.snd.hdspe; &hwlist.snd.ich; &hwlist.snd.maestro; &hwlist.snd.maestro3; &hwlist.snd.mss; &hwlist.snd.neomagic; &hwlist.snd.sbc; &hwlist.snd.solo; &hwlist.snd.spicds; &hwlist.snd.t4dwave; &hwlist.snd.via8233; &hwlist.snd.via82c686; &hwlist.snd.vibes; Camera and Video Capture Devices &hwlist.bktr; [&arch.i386;] Connectix QuickCam USB Devices [&arch.amd64;, &arch.i386;] A range of USB peripherals are supported; devices known to work are listed in this section. Owing to the generic nature of most USB devices, with some exceptions any device of a given class will be supported, even if not explicitly listed here. [&arch.amd64;, &arch.i386;] USB Ethernet adapters can be found in the section listing Ethernet interfaces. [&arch.amd64;, &arch.i386;] USB Bluetooth adapters can be found in Bluetooth section. &hwlist.ohci; &hwlist.uhci; [&arch.amd64;, &arch.i386;] USB 2.0 controllers using the EHCI interface (&man.ehci.4; driver) [&arch.amd64;, &arch.i386;] Hubs [&arch.amd64;, &arch.i386;] Keyboards (&man.ukbd.4; driver) [&arch.amd64;, &arch.i386;] Miscellaneous Assist Computer Systems PC Camera C-M1 ActiveWire I/O Board Creative Technology Video Blaster WebCam Plus D-Link DSB-R100 USB Radio (&man.ufm.4; driver) Mirunet AlphaCam Plus &hwlist.urio; &hwlist.umodem; [&arch.amd64;, &arch.i386;] Mice (&man.ums.4; driver) &hwlist.ulpt; &hwlist.ubsa; &hwlist.ubser; &hwlist.uftdi; &hwlist.uplcom; &hwlist.umct; &hwlist.umass; [&arch.amd64;, &arch.i386;] Audio Devices (&man.uaudio.4; driver) &hwlist.uvisor; IEEE 1394 (Firewire) Devices &hwlist.fwohci; [&arch.amd64;, &arch.i386;, &arch.sparc64;] Serial Bus Protocol 2 (SBP-2) storage devices (&man.sbp.4; driver) Bluetooth Devices &hwlist.ng.bt3c; &hwlist.ng.ubt; Cryptographic Accelerators &hwlist.hifn; &hwlist.safe; &hwlist.ubsec; Miscellaneous [&arch.amd64;, &arch.i386;] FAX-Modem/PCCARD MELCO IGM-PCM56K/IGM-PCM56KH Nokia Card Phone 2.0 (gsm900/dcs1800 HSCSD terminal) [&arch.amd64;, &arch.i386;] Floppy drives (&man.fdc.4; driver) [&arch.amd64;, &arch.i386;] VGA-compatible video cards (&man.vga.4; driver) Information regarding specific video cards and compatibility with Xorg can be found at http://www.x.org/. [&arch.amd64;, &arch.i386;] Keyboards including: [&arch.i386;] AT-style keyboards (&man.atkbd.4; driver) [&arch.amd64;, &arch.i386;] PS/2 keyboards (&man.atkbd.4; driver) [&arch.amd64;, &arch.i386;] USB keyboards (&man.ukbd.4; driver) [&arch.amd64;, &arch.i386;] Pointing devices including: [&arch.amd64;, &arch.i386;] Bus mice and compatible devices (&man.mse.4; driver) [&arch.amd64;, &arch.i386;] PS/2 mice and compatible devices, including many laptop pointing devices (&man.psm.4; driver) Serial mice and compatible devices [&arch.amd64;, &arch.i386;] USB mice (&man.ums.4; driver) &man.moused.8; has more information on using pointing devices with &os;. Information on using pointing devices with Xorg can be found at http://www.x.org/. [&arch.amd64;, &arch.i386;] PC standard parallel ports (&man.ppc.4; driver) [&arch.i386;, &arch.amd64;] PC-compatible joysticks (&man.joy.4; driver) [&arch.i386;] PHS Data Communication Card/PCCARD NTT DoCoMo P-in Comp@ct Panasonic KX-PH405 SII MC-P200 [&arch.i386;] Xilinx XC6200-based reconfigurable hardware cards compatible with the HOT1 from Virtual Computers (xrpu driver).
Index: head/en_US.ISO8859-1/htdocs/releases/12.0R/readme/Makefile =================================================================== --- head/en_US.ISO8859-1/htdocs/releases/12.0R/readme/Makefile (revision 51263) +++ head/en_US.ISO8859-1/htdocs/releases/12.0R/readme/Makefile (revision 51264) @@ -1,34 +1,12 @@ # $FreeBSD$ -.if exists(../Makefile.conf) -.include "../Makefile.conf" -.endif .if exists(../Makefile.inc) .include "../Makefile.inc" .endif -DOC_PREFIX?= ${.CURDIR}/../../../../.. -RELN_ROOT?= ${.CURDIR}/.. - DOC= readme -FORMATS?= html +FORMATS?= html txt INSTALL_COMPRESSED?= gz INSTALL_ONLY_COMPRESSED= - -JADEFLAGS+= -V %generate-article-toc% - -SRCS?= readme.xml - -DATA+= ${DOC}.html - -CLEANFILES+= ${DOC}.html \ - ${DOC}.txt \ - catalog-cwd.xml \ - autogen.ent \ - ${DOC}.parsed.* - -install: ${DOC}.html - mkdir -p ${DOCINSTALLDIR} - ${INSTALL_DOCS} ${DATA} ${DOCINSTALLDIR} .include "${DOC_PREFIX}/share/mk/doc.project.mk" Index: head/en_US.ISO8859-1/htdocs/releases/12.0R/relnotes/Makefile =================================================================== --- head/en_US.ISO8859-1/htdocs/releases/12.0R/relnotes/Makefile (revision 51263) +++ head/en_US.ISO8859-1/htdocs/releases/12.0R/relnotes/Makefile (revision 51264) @@ -1,34 +1,12 @@ # $FreeBSD$ -.if exists(../Makefile.conf) -.include "../Makefile.conf" -.endif .if exists(../Makefile.inc) .include "../Makefile.inc" .endif -DOC_PREFIX?= ${.CURDIR}/../../../../.. -RELN_ROOT?= ${.CURDIR}/.. - DOC= relnotes -FORMATS?= html +FORMATS?= html txt INSTALL_COMPRESSED?= gz INSTALL_ONLY_COMPRESSED= - -JADEFLAGS+= -V %generate-article-toc% - -SRCS?= relnotes.xml - -DATA+= ${DOC}.html - -CLEANFILES+= ${DOC}.html \ - ${DOC}.txt \ - catalog-cwd.xml \ - autogen.ent \ - ${DOC}.parsed.* - -install: ${DOC}.html - mkdir -p ${DOCINSTALLDIR} - ${INSTALL_DOCS} ${DATA} ${DOCINSTALLDIR} .include "${DOC_PREFIX}/share/mk/doc.project.mk" Index: head/en_US.ISO8859-1/htdocs/share/misc/dev.archlist.txt =================================================================== --- head/en_US.ISO8859-1/htdocs/share/misc/dev.archlist.txt (revision 51263) +++ head/en_US.ISO8859-1/htdocs/share/misc/dev.archlist.txt (nonexistent) @@ -1,176 +0,0 @@ -# -# Copyright (c) 2004-2006 The FreeBSD Project -# All rights reserved. -# -# Redistribution and use in source and binary forms, with or without -# modification, are permitted provided that the following conditions -# are met: -# 1. Redistributions of source code must retain the above copyright -# notice, this list of conditions and the following disclaimer. -# 2. Redistributions in binary form must reproduce the above copyright -# notice, this list of conditions and the following disclaimer in the -# documentation and/or other materials provided with the distribution. -# -# THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND -# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -# ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE -# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS -# OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY -# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -# SUCH DAMAGE. -# -# $FreeBSD$ -# - -# -# This file is used by man2hwnotes.pl to set which drivers are usable -# on which architectures. -# -# Format: -# -# Empty lines, and lines beginning with "#" are ignored. -# [,...] -# -aac i386,amd64 -adv i386,amd64 -adw i386,amd64 -aha i386 -ahb i386 -ahd i386,sparc64,amd64 -aic i386,amd64 -amd i386,amd64 -arcmsr i386,amd64 -asr i386 -ath i386,amd64,sparc64 -aue i386,amd64,powerpc -axe i386,amd64,powerpc -bce i386,amd64 -bge i386,sparc64,amd64 -bktr i386 -bt i386,amd64 -bxe i386,amd64 -cdce i386,amd64,powerpc -ciss i386,amd64 -ce i386 -cm i386 -cnw i386,amd64 -cp i386 -ctau i386 -cue i386,amd64,powerpc -cx i386 -cxgb i386,amd64 -de i386,amd64 -dpt i386,amd64 -ed i386 -ep i386,amd64 -esp sparc64 -ex i386,amd64 -fe i386,amd64 -fwohci i386,sparc64,amd64,powerpc -hifn i386,amd64 -hpt27xx i386,amd64 -hptiop i386,amd64 -hptmv i386,amd64 -hptrr i386,amd64 -ida i386 -ie i386 -iir i386,amd64 -ips i386,amd64 -isci i386,amd64 -ixgb i386,amd64 -kue i386,amd64,powerpc -lge i386,amd64 -mfi i386,amd64 -mlx i386,amd64 -mly i386,amd64 -msk i386,amd64 -mxge i386,amd64 -my i386 -ncr i386,amd64 -ncv i386 -nfe i386,amd64 -ng_bt3c i386,amd64 -ng_ubt i386,amd64 -nsp i386 -nxge i386,amd64 -oce i386,amd64 -ohci i386,amd64,powerpc -oltr i386 -otus i386,amd64 -pcn i386,amd64 -pst i386 -qlxgb amd64 -qlxgbe amd64 -qlxge amd64 -rc i386 -ral i386,amd64 -rsu i386,amd64 -rue i386,amd64 -rum i386,amd64 -run i386,amd64 -safe i386,amd64 -sbp i386,sparc64,amd64 -sfgxe amd64 -sn i386,amd64 -snd_ad1816 i386,amd64 -snd_als4000 i386 -snd_atiixp i386,amd64 -snd_audiocs sparc64 -snd_cmi i386,amd64 -snd_cs4281 i386,amd64 -snd_csa i386,amd64 -snd_ds1 i386,amd64 -snd_emu10k1 i386,amd64 -snd_emu10kx i386,amd64 -snd_envy24 i386,amd64 -snd_envy24ht i386,amd64 -snd_es137x i386,sparc64,amd64 -snd_ess i386,amd64 -snd_fm801 i386,amd64 -snd_gusc i386,amd64 -snd_hda i386,amd64 -snd_hdspe i386,amd64 -snd_ich i386,amd64 -snd_maestro i386,amd64 -snd_maestro3 i386,amd64 -snd_mss i386 -snd_neomagic i386,amd64 -snd_sbc i386,amd64 -snd_solo i386,amd64 -snd_spicds i386,amd64 -snd_t4dwave i386,amd64,sparc64 -snd_via8233 i386,amd64 -snd_via82c686 i386,amd64 -snd_vibes i386,amd64 -stg i386 -ti i386,amd64,sparc64 -tl i386,amd64 -trm i386,amd64 -twa i386,amd64 -twe i386,amd64 -tws i386,amd64 -ubsa i386,amd64 -ubsec i386,amd64 -ubser i386,amd64 -ucycom i386,amd64 -udav i386,amd64 -uftdi i386,amd64 -uhci i386,amd64,powerpc -ulpt i386,amd64,powerpc -umass i386,amd64,powerpc -umodem i386,amd64 -uplcom i386,amd64 -ural i386,amd64 -urio i386,amd64,powerpc -uvisor i386,amd64 -uvscom i386,amd64 -vpo i386 -vx i386,amd64 -vxge i386,amd64 -wb i386,amd64 -xe i386,amd64 -zyd i386,amd64 Property changes on: head/en_US.ISO8859-1/htdocs/share/misc/dev.archlist.txt ___________________________________________________________________ Deleted: svn:keywords ## -1 +0,0 ## -FreeBSD=%H \ No newline at end of property Index: head/en_US.ISO8859-1/htdocs/share/misc/man2hwnotes.pl =================================================================== --- head/en_US.ISO8859-1/htdocs/share/misc/man2hwnotes.pl (revision 51263) +++ head/en_US.ISO8859-1/htdocs/share/misc/man2hwnotes.pl (nonexistent) @@ -1,534 +0,0 @@ -#!/usr/local/bin/perl -w -# Emacs should use -*- cperl -*- mode -# -# Copyright (c) 2003-2006 Simon L. Nielsen -# All rights reserved. -# -# Redistribution and use in source and binary forms, with or without -# modification, are permitted provided that the following conditions -# are met: -# 1. Redistributions of source code must retain the above copyright -# notice, this list of conditions and the following disclaimer. -# 2. Redistributions in binary form must reproduce the above copyright -# notice, this list of conditions and the following disclaimer in the -# documentation and/or other materials provided with the distribution. -# -# THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND -# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -# ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE -# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS -# OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY -# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -# SUCH DAMAGE. -# -# $FreeBSD$ -# - -# Parse the list of supported hardware out of section 4 manual pages -# and output it on stdout as SGML/DocBook entities. - -# The script will look for the following line in the manual page: -# .Sh HARDWARE -# and make an entity of the content until the line containing: -# .Sh -# -# For Lists only the first line will be printed. If there are -# arguments to the .It command, only the argument will be printed. - -# Usage: -# man2hwnotes.pl [-cl] [-d 0-6] [-a ] [-o ] -# [ ...] - -use strict; -#use warnings; -use Getopt::Std; -use Digest::MD5 qw(md5_hex); - -# Section from manual page to extract -my $hwlist_sect = "HARDWARE"; - -# Override default archtecture list for some devices: -my $archlist_file = "dev.archlist.txt"; -my %archlist; - -# Globals -my $compat_mode = 0; # Enable compat for old Hardware Notes style -my $debuglevel = 0; -my $only_list_out = 0; # Should only lists be generated in the output? -my @out_lines; # Single lines -my @out_dev; # Device entities - -# Getopt -my %options = (); -if (!getopts("a:cd:lo:",\%options)) { - die("$!: Invalid command line arguments in ", __LINE__, "\n"); -} - -if (defined($options{c})) { - $compat_mode = 1; -} -if (defined($options{d})) { - $debuglevel = $options{d}; -} -if (defined($options{a})) { - $archlist_file = $options{a}; -} -if (defined($options{l})) { - $only_list_out = 1; -} - -my $outputfile = $options{o}; - -if ($debuglevel > 0) { - # Don't do output buffering in debug mode. - $| = 1; -} - -load_archlist($archlist_file); - -if (defined($outputfile)) { - open(OLDOUT, ">&STDOUT") || die("$!: Could not open STDOUT in ", __LINE__, ".\n"); - open(STDOUT, ">$outputfile") || die("$!: Could not open $outputfile in ", __LINE__, ".\n"); -} - -print < -EOT - -if ($only_list_out) { - # Print the default device preamble entities - print "\n"; - print "\n"; -} - -foreach my $page (@ARGV) { - if ($page !~ m/\.4$/) { - dlog(2, "Skipped $page (not *.4)"); - next; - } - dlog(2, "Parsing $page"); - parse($page); - - if (@out_lines) { - print join("\n", @out_lines), "\n"; - } - if (@out_dev) { - print join("\n", @out_dev), "\n"; - } - - @out_lines = (); - @out_dev = (); -} - -if (defined($outputfile)) { - open(STDOUT, ">&OLDOUT") || die("$!: Could not open STDOUT in ", __LINE__, ".\n"); - close(OLDOUT) || die("$!: Could not close OLDOUT in ", __LINE__, ".\n"); -} - -sub normalize (@) { - my @lines = @_; - - foreach my $l (@lines) { - $l =~ s/\\&//g; - $l =~ s:([\x21-\x2f\x5b-\x60\x7b-\x7f]):sprintf("&\#\%d;", ord($1)):eg; - # Make sure ampersand is encoded as & since jade seems to - # be confused when it is encoded as & inside an entity. - $l =~ s/&/&/g; - } - return (wantarray) ? @lines : join "", @lines; -} - -sub parse { - my ($manpage) = @_; - - my $cur_mansection; - my $found_hwlist = 0; - my %mdocvars; - $mdocvars{isin_hwlist} = 0; - $mdocvars{isin_list} = 0; - $mdocvars{first_para} = 1; - $mdocvars{parabuf} = ""; - $mdocvars{listtype} = ""; - $mdocvars{it_nr} = 0; - - open(MANPAGE, "$manpage") || die("$!: Could not open $manpage in ", __LINE__, ".\n"); - while() { - chomp; - my $line = $_; - - dlog(5, "Read '$line'"); - - # Find commands - if (s/^\.(.*)$/$1/) { - my $cmd = $1; - - # Detect, and ignore, comment lines - if (s/^\\"(.*)$/$1/) { - next; - } - - $cmd =~ s/^([^ ]+).*$/$1/; - - if (/^Nm "?(\w+)"?/ && !defined($mdocvars{Nm})) { - dlog(3, "Setting Nm to $1"); - $mdocvars{Nm} = $1; - # "_" cannot be used for an entity name. - $mdocvars{EntNm} = $1; - $mdocvars{EntNm} =~ s,_,.,g; - - } elsif (/^Nm$/) { - if (defined($mdocvars{Nm}) && $mdocvars{Nm} ne "") { - parabuf_addline(\%mdocvars, "&man.".$mdocvars{EntNm}.".$cur_mansection;"); - } else { - dlog(2, "Warning: Bad Nm call in $manpage"); - } - - } elsif (/^Sh (.+)$/) { - dlog(4, "Setting section to $1"); - my $cur_section = $1; - - flush_out(\%mdocvars); - - if ($cur_section =~ /^${hwlist_sect}$/) { - dlog(2, "Found the device section ${hwlist_sect}"); - $mdocvars{isin_hwlist} = 1; - $found_hwlist = 1; - add_sgmltag(\%mdocvars, "&hwlist.preamble.pre; " . - "&man.".$mdocvars{EntNm}.".$cur_mansection; " . - "&hwlist.preamble.post;"); - } - } elsif ($mdocvars{isin_hwlist}) { - dlog(2, "Found a HWLIST STOP key!"); - add_sgmltag(\%mdocvars, "'>"); - $mdocvars{isin_hwlist} = 0; - } - if ($mdocvars{isin_list}) { - dlog(1, "Warning: Still in list, but just entered new " . - "section. This is probably due to missing .El; " . - "check manual page for errors."); - # If we try to recover from this we will probably - # just end with bad SGML output and it really - # should be fixed in the manual page so we don't - # even try to "fix" this. - } - - - } elsif (/^Dt ([^ ]+) ([^ ]+)/) { - dlog(4, "Setting mansection to $2"); - $mdocvars{cur_manname} = lc($1); - $cur_mansection = $2; - - # "_" cannot be used for an entity name. - $mdocvars{cur_manname} =~ s,_,.,g; - - } elsif (/^It ?(.*)$/) { - my $txt = $1; - - $mdocvars{it_nr}++; - - # Flush last item - if ($mdocvars{parabuf} ne "") { - add_listitem(\%mdocvars); - } - - # Remove quotes, if any. - $txt =~ s/"(.*)"/$1/; - - if ($mdocvars{listtype} eq "column") { - # Ignore first item when it is likely to be a - # header. - if ($mdocvars{it_nr} == 1 && $txt =~ m/^(Em|Sy) /) { - dlog(2, "Skipping header line in column list"); - next; - } - # Only extract the first column. - $txt =~ s/ Ta /\t/g; - $txt =~ s/([^\t]+)\t.*/$1/; - } - - # Remove Li commands - $txt =~ s/^Li //g; - - parabuf_addline(\%mdocvars, normalize($txt)); - } elsif (/^Bl/) { - $mdocvars{isin_list} = 1; - flush_out(\%mdocvars); - add_sgmltag(\%mdocvars, ""); - - if (/-tag/) { - $mdocvars{listtype} = "tag"; - # YACK! Hack for ata(4) - if ($mdocvars{Nm} eq "ata") { - $mdocvars{listtype} = "tagHACK"; - } - } elsif (/-bullet/) { - $mdocvars{listtype} = "bullet"; - } elsif (/-column/) { - $mdocvars{listtype} = "column"; - } else { - $mdocvars{listtype} = "unknown"; - } - dlog(2, "Listtype set to $mdocvars{listtype}"); - } elsif (/^El/) { - if ($mdocvars{parabuf} ne "") { - add_listitem(\%mdocvars); - } - - add_sgmltag(\%mdocvars, ""); - $mdocvars{isin_list} = 0; - } elsif (/^Tn (.+)$/) { - # For now we print TradeName text as regular text. - my ($txt, $punct_str) = split_punct_chars($1); - - parabuf_addline(\%mdocvars, normalize($txt . $punct_str)); - } elsif (/^Xr ([^ ]+) (.+)$/) { - my ($xr_sect, $punct_str) = split_punct_chars($2); - my $txt; - - # We need to check if the manual page exist to avoid - # breaking the doc build just because of a broken - # reference. - #$txt = "&man.$1.$xr_sect;$punct_str"; - $txt = "$1($xr_sect)$punct_str"; - parabuf_addline(\%mdocvars, normalize($txt)); - } elsif (/^Dq (.+)$/) { - my ($txt, $punct_str) = split_punct_chars($1); - - parabuf_addline(\%mdocvars, - normalize("$txt$punct_str")); - } elsif (/^Sx (.+)$/) { - if ($mdocvars{isin_hwlist}) { - dlog(1, "Warning: Reference to another section in the " . - "$hwlist_sect section in " . $mdocvars{Nm} . - "(${cur_mansection})"); - } - parabuf_addline(\%mdocvars, normalize($1)); - } elsif (/^Pa (.+)$/) { - my ($txt, $punct_str) = split_punct_chars($1); - - $txt = make_ulink($txt) . $punct_str; - parabuf_addline(\%mdocvars, normalize($txt)); - } elsif (/^Pp/) { - dlog(3, "Got Pp command - forcing new para"); - flush_out(\%mdocvars); - } elsif (/^Fx (.+)/) { - dlog(3, "Got Fx command"); - parabuf_addline(\%mdocvars, "FreeBSD $1"); - } elsif (/^Fx/) { - dlog(3, "Got Fx command"); - parabuf_addline(\%mdocvars, "FreeBSD"); - } elsif (/^Em (.+)$/) { - my ($txt, $punct_str) = split_punct_chars($1); - - parabuf_addline(\%mdocvars, - normalize("$txt$punct_str")); - } else { - # Ignore all other commands. - dlog(3, "Ignoring unknown command $cmd"); - } - } else { - # This is then regular text - parabuf_addline(\%mdocvars, normalize($_)); - } - } - close(MANPAGE) || die("$!: Could not close $manpage in ", __LINE__, ".\n"); - if (! $found_hwlist) { - dlog(2, "Hardware list not found in $manpage"); - } -} - -sub dlog { - my ($level, $txt) = @_; - - if ($level <= $debuglevel) { - print STDERR "$level: $txt\n"; - } -} - -# Output a SGML tag. -sub add_sgmltag { - my ($mdocvars, $txt) = (@_); - - # We only care about the HW list for now. - if (${$mdocvars}{isin_hwlist}) { - push(@out_dev, $txt); - } -} - -# Add a text entity, and return the used entity name. -sub add_txt_ent { - my ($itemtxt) = (@_); - my ($entity_name); - - # Convert mdoc(7) minus - $itemtxt =~ s/\\-/-/g; - - $itemtxt =~ s/'/‘/g; - - $entity_name = "hwlist." . md5_hex($itemtxt); - dlog(4, "Adding '$itemtxt' as entity $entity_name"); - push(@out_lines, ""); - - return ($entity_name); -} -sub flush_out { - my ($mdocvars) = (@_); - my ($entity_name, $out); - my $para_arch = ""; - - if (!${$mdocvars}{isin_hwlist} || ${$mdocvars}{parabuf} eq "") { - return; - } - - $entity_name = add_txt_ent(${$mdocvars}{parabuf}); - ${$mdocvars}{parabuf} = ""; - if(defined($archlist{${$mdocvars}{Nm}})) { - if ($compat_mode) { - $para_arch = ' arch="' . $archlist{${$mdocvars}{Nm}} . '"'; - } else { - $para_arch = '[' . $archlist{${$mdocvars}{Nm}} . '] '; - } - } - if ($compat_mode) { - $out = "&".$entity_name.";"; - } else { - if (${$mdocvars}{first_para}) { - $out = "".$para_arch."&".$entity_name.";"; - } else { - $out = "&".$entity_name.";"; - } - ${$mdocvars}{first_para} = 0; - } - - dlog(4, "Flushing parabuf"); - add_sgmltag($mdocvars, $out); -} - -# Add a new list item from the "parabuf". -sub add_listitem { - my ($mdocvars) = (@_); - my ($listitem, $entity_name); - my $para_arch = ""; - - $entity_name = add_txt_ent(${$mdocvars}{parabuf}); - ${$mdocvars}{parabuf} = ""; - - if ($compat_mode) { - if(defined($archlist{${$mdocvars}{Nm}})) { - $para_arch = ' arch="' . $archlist{${$mdocvars}{Nm}} . '"'; - } - } - $listitem = "&".$entity_name.";"; - dlog(4, "Adding '$listitem' to out_dev"); - push(@out_dev, $listitem); - -} - -# Add a line to the "paragraph buffer" -sub parabuf_addline { - my $mdocvars = shift; - my ($txt) = (@_); - - dlog(5, "Now in parabuf_addline for '$txt'"); - - # We only care about the HW list for now. - if (!${$mdocvars}{isin_hwlist}) { - dlog(6, "Exiting parabuf_addline due to: !\${\$mdocvars}{isin_hwlist}"); - return; - } - if ($txt eq "") { - dlog(6, "Exiting parabuf_addline due to: \$txt eq \"\""); - return; - } - - if ($only_list_out && !${$mdocvars}{isin_list}) { - dlog(6, "Exiting parabuf_addline due to: ". - "\$only_list_out && !\${\$mdocvars}{isin_list}"); - return; - } - - # We only add the first line for "tag" lists - if (${$mdocvars}{parabuf} ne "" && ${$mdocvars}{isin_list} && - ${$mdocvars}{listtype} eq "tag") { - dlog(6, "Exiting parabuf_addline due to: ". - "\${\$mdocvars}{parabuf} ne \"\" && \${\$mdocvars}{isin_list} && ". - "\${\$mdocvars}{listtype} eq \"tag\""); - return; - } - - if (${$mdocvars}{parabuf} ne "") { - ${$mdocvars}{parabuf} .= " "; - } - - dlog(4, "Adding '$txt' to parabuf"); - - ${$mdocvars}{parabuf} .= $txt; -} - -sub load_archlist { - my ($file) = (@_); - - my $lineno = 0; - - dlog(2, "Parsing archlist $file"); - - open(FILE, "$file") || die("$!: Could not open archlist $file in ", __LINE__, ".\n"); - while() { - chomp; - $lineno++; - - if (/^#/ || $_ eq "") { - next; - } - - if (/(\w+)\t([\w,]+)/) { - dlog(4, "For driver $1 setting arch to $2"); - $archlist{$1} = $2; - } else { - dlog(1, "Warning: Could not parse archlist line $lineno"); - } - } - - close(FILE); -} - -# Check if a character is a mdoc(7) punctuation character. -sub is_punct_char { - my ($str) = (@_); - - return (length($str) == 1 && $str =~ /[\.,:;()\[\]\?!]/); -} - -# Split out the punctuation characters of a mdoc(7) line. -sub split_punct_chars { - my ($str) = (@_); - my (@stritems, $stritem, $punct_str); - - $punct_str = ""; - @stritems = split(/ /, $str); - - while (defined($stritem = $stritems[$#stritems]) && - is_punct_char($stritem)) { - $punct_str = $stritem . $punct_str; - pop(@stritems); - } - - return (join(' ', @stritems), $punct_str); -} - -# Create a ulink, if the string contains an URL. -sub make_ulink { - my ($str) = (@_); - - $str =~ s,(http://[^ ]+),,; - - return $str; -} Property changes on: head/en_US.ISO8859-1/htdocs/share/misc/man2hwnotes.pl ___________________________________________________________________ Deleted: svn:keywords ## -1 +0,0 ## -FreeBSD=%H \ No newline at end of property Index: head/share/misc/dev.archlist.txt =================================================================== --- head/share/misc/dev.archlist.txt (nonexistent) +++ head/share/misc/dev.archlist.txt (revision 51264) @@ -0,0 +1,176 @@ +# +# Copyright (c) 2004-2006 The FreeBSD Project +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions +# are met: +# 1. Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# 2. Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND +# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +# ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE +# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +# OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +# SUCH DAMAGE. +# +# $FreeBSD$ +# + +# +# This file is used by man2hwnotes.pl to set which drivers are usable +# on which architectures. +# +# Format: +# +# Empty lines, and lines beginning with "#" are ignored. +# [,...] +# +aac i386,amd64 +adv i386,amd64 +adw i386,amd64 +aha i386 +ahb i386 +ahd i386,sparc64,amd64 +aic i386,amd64 +amd i386,amd64 +arcmsr i386,amd64 +asr i386 +ath i386,amd64,sparc64 +aue i386,amd64,powerpc +axe i386,amd64,powerpc +bce i386,amd64 +bge i386,sparc64,amd64 +bktr i386 +bt i386,amd64 +bxe i386,amd64 +cdce i386,amd64,powerpc +ciss i386,amd64 +ce i386 +cm i386 +cnw i386,amd64 +cp i386 +ctau i386 +cue i386,amd64,powerpc +cx i386 +cxgb i386,amd64 +de i386,amd64 +dpt i386,amd64 +ed i386 +ep i386,amd64 +esp sparc64 +ex i386,amd64 +fe i386,amd64 +fwohci i386,sparc64,amd64,powerpc +hifn i386,amd64 +hpt27xx i386,amd64 +hptiop i386,amd64 +hptmv i386,amd64 +hptrr i386,amd64 +ida i386 +ie i386 +iir i386,amd64 +ips i386,amd64 +isci i386,amd64 +ixgb i386,amd64 +kue i386,amd64,powerpc +lge i386,amd64 +mfi i386,amd64 +mlx i386,amd64 +mly i386,amd64 +msk i386,amd64 +mxge i386,amd64 +my i386 +ncr i386,amd64 +ncv i386 +nfe i386,amd64 +ng_bt3c i386,amd64 +ng_ubt i386,amd64 +nsp i386 +nxge i386,amd64 +oce i386,amd64 +ohci i386,amd64,powerpc +oltr i386 +otus i386,amd64 +pcn i386,amd64 +pst i386 +qlxgb amd64 +qlxgbe amd64 +qlxge amd64 +rc i386 +ral i386,amd64 +rsu i386,amd64 +rue i386,amd64 +rum i386,amd64 +run i386,amd64 +safe i386,amd64 +sbp i386,sparc64,amd64 +sfgxe amd64 +sn i386,amd64 +snd_ad1816 i386,amd64 +snd_als4000 i386 +snd_atiixp i386,amd64 +snd_audiocs sparc64 +snd_cmi i386,amd64 +snd_cs4281 i386,amd64 +snd_csa i386,amd64 +snd_ds1 i386,amd64 +snd_emu10k1 i386,amd64 +snd_emu10kx i386,amd64 +snd_envy24 i386,amd64 +snd_envy24ht i386,amd64 +snd_es137x i386,sparc64,amd64 +snd_ess i386,amd64 +snd_fm801 i386,amd64 +snd_gusc i386,amd64 +snd_hda i386,amd64 +snd_hdspe i386,amd64 +snd_ich i386,amd64 +snd_maestro i386,amd64 +snd_maestro3 i386,amd64 +snd_mss i386 +snd_neomagic i386,amd64 +snd_sbc i386,amd64 +snd_solo i386,amd64 +snd_spicds i386,amd64 +snd_t4dwave i386,amd64,sparc64 +snd_via8233 i386,amd64 +snd_via82c686 i386,amd64 +snd_vibes i386,amd64 +stg i386 +ti i386,amd64,sparc64 +tl i386,amd64 +trm i386,amd64 +twa i386,amd64 +twe i386,amd64 +tws i386,amd64 +ubsa i386,amd64 +ubsec i386,amd64 +ubser i386,amd64 +ucycom i386,amd64 +udav i386,amd64 +uftdi i386,amd64 +uhci i386,amd64,powerpc +ulpt i386,amd64,powerpc +umass i386,amd64,powerpc +umodem i386,amd64 +uplcom i386,amd64 +ural i386,amd64 +urio i386,amd64,powerpc +uvisor i386,amd64 +uvscom i386,amd64 +vpo i386 +vx i386,amd64 +vxge i386,amd64 +wb i386,amd64 +xe i386,amd64 +zyd i386,amd64 Property changes on: head/share/misc/dev.archlist.txt ___________________________________________________________________ Added: svn:keywords ## -0,0 +1 ## +FreeBSD=%H \ No newline at end of property Index: head/share/misc/man2hwnotes.pl =================================================================== --- head/share/misc/man2hwnotes.pl (nonexistent) +++ head/share/misc/man2hwnotes.pl (revision 51264) @@ -0,0 +1,534 @@ +#!/usr/local/bin/perl -w +# Emacs should use -*- cperl -*- mode +# +# Copyright (c) 2003-2006 Simon L. Nielsen +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions +# are met: +# 1. Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# 2. Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND +# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +# ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE +# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +# OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +# SUCH DAMAGE. +# +# $FreeBSD$ +# + +# Parse the list of supported hardware out of section 4 manual pages +# and output it on stdout as SGML/DocBook entities. + +# The script will look for the following line in the manual page: +# .Sh HARDWARE +# and make an entity of the content until the line containing: +# .Sh +# +# For Lists only the first line will be printed. If there are +# arguments to the .It command, only the argument will be printed. + +# Usage: +# man2hwnotes.pl [-cl] [-d 0-6] [-a ] [-o ] +# [ ...] + +use strict; +#use warnings; +use Getopt::Std; +use Digest::MD5 qw(md5_hex); + +# Section from manual page to extract +my $hwlist_sect = "HARDWARE"; + +# Override default archtecture list for some devices: +my $archlist_file = "dev.archlist.txt"; +my %archlist; + +# Globals +my $compat_mode = 0; # Enable compat for old Hardware Notes style +my $debuglevel = 0; +my $only_list_out = 0; # Should only lists be generated in the output? +my @out_lines; # Single lines +my @out_dev; # Device entities + +# Getopt +my %options = (); +if (!getopts("a:cd:lo:",\%options)) { + die("$!: Invalid command line arguments in ", __LINE__, "\n"); +} + +if (defined($options{c})) { + $compat_mode = 1; +} +if (defined($options{d})) { + $debuglevel = $options{d}; +} +if (defined($options{a})) { + $archlist_file = $options{a}; +} +if (defined($options{l})) { + $only_list_out = 1; +} + +my $outputfile = $options{o}; + +if ($debuglevel > 0) { + # Don't do output buffering in debug mode. + $| = 1; +} + +load_archlist($archlist_file); + +if (defined($outputfile)) { + open(OLDOUT, ">&STDOUT") || die("$!: Could not open STDOUT in ", __LINE__, ".\n"); + open(STDOUT, ">$outputfile") || die("$!: Could not open $outputfile in ", __LINE__, ".\n"); +} + +print < +EOT + +if ($only_list_out) { + # Print the default device preamble entities + print "\n"; + print "\n"; +} + +foreach my $page (@ARGV) { + if ($page !~ m/\.4$/) { + dlog(2, "Skipped $page (not *.4)"); + next; + } + dlog(2, "Parsing $page"); + parse($page); + + if (@out_lines) { + print join("\n", @out_lines), "\n"; + } + if (@out_dev) { + print join("\n", @out_dev), "\n"; + } + + @out_lines = (); + @out_dev = (); +} + +if (defined($outputfile)) { + open(STDOUT, ">&OLDOUT") || die("$!: Could not open STDOUT in ", __LINE__, ".\n"); + close(OLDOUT) || die("$!: Could not close OLDOUT in ", __LINE__, ".\n"); +} + +sub normalize (@) { + my @lines = @_; + + foreach my $l (@lines) { + $l =~ s/\\&//g; + $l =~ s:([\x21-\x2f\x5b-\x60\x7b-\x7f]):sprintf("&\#\%d;", ord($1)):eg; + # Make sure ampersand is encoded as & since jade seems to + # be confused when it is encoded as & inside an entity. + $l =~ s/&/&/g; + } + return (wantarray) ? @lines : join "", @lines; +} + +sub parse { + my ($manpage) = @_; + + my $cur_mansection; + my $found_hwlist = 0; + my %mdocvars; + $mdocvars{isin_hwlist} = 0; + $mdocvars{isin_list} = 0; + $mdocvars{first_para} = 1; + $mdocvars{parabuf} = ""; + $mdocvars{listtype} = ""; + $mdocvars{it_nr} = 0; + + open(MANPAGE, "$manpage") || die("$!: Could not open $manpage in ", __LINE__, ".\n"); + while() { + chomp; + my $line = $_; + + dlog(5, "Read '$line'"); + + # Find commands + if (s/^\.(.*)$/$1/) { + my $cmd = $1; + + # Detect, and ignore, comment lines + if (s/^\\"(.*)$/$1/) { + next; + } + + $cmd =~ s/^([^ ]+).*$/$1/; + + if (/^Nm "?(\w+)"?/ && !defined($mdocvars{Nm})) { + dlog(3, "Setting Nm to $1"); + $mdocvars{Nm} = $1; + # "_" cannot be used for an entity name. + $mdocvars{EntNm} = $1; + $mdocvars{EntNm} =~ s,_,.,g; + + } elsif (/^Nm$/) { + if (defined($mdocvars{Nm}) && $mdocvars{Nm} ne "") { + parabuf_addline(\%mdocvars, "&man.".$mdocvars{EntNm}.".$cur_mansection;"); + } else { + dlog(2, "Warning: Bad Nm call in $manpage"); + } + + } elsif (/^Sh (.+)$/) { + dlog(4, "Setting section to $1"); + my $cur_section = $1; + + flush_out(\%mdocvars); + + if ($cur_section =~ /^${hwlist_sect}$/) { + dlog(2, "Found the device section ${hwlist_sect}"); + $mdocvars{isin_hwlist} = 1; + $found_hwlist = 1; + add_sgmltag(\%mdocvars, "&hwlist.preamble.pre; " . + "&man.".$mdocvars{EntNm}.".$cur_mansection; " . + "&hwlist.preamble.post;"); + } + } elsif ($mdocvars{isin_hwlist}) { + dlog(2, "Found a HWLIST STOP key!"); + add_sgmltag(\%mdocvars, "'>"); + $mdocvars{isin_hwlist} = 0; + } + if ($mdocvars{isin_list}) { + dlog(1, "Warning: Still in list, but just entered new " . + "section. This is probably due to missing .El; " . + "check manual page for errors."); + # If we try to recover from this we will probably + # just end with bad SGML output and it really + # should be fixed in the manual page so we don't + # even try to "fix" this. + } + + + } elsif (/^Dt ([^ ]+) ([^ ]+)/) { + dlog(4, "Setting mansection to $2"); + $mdocvars{cur_manname} = lc($1); + $cur_mansection = $2; + + # "_" cannot be used for an entity name. + $mdocvars{cur_manname} =~ s,_,.,g; + + } elsif (/^It ?(.*)$/) { + my $txt = $1; + + $mdocvars{it_nr}++; + + # Flush last item + if ($mdocvars{parabuf} ne "") { + add_listitem(\%mdocvars); + } + + # Remove quotes, if any. + $txt =~ s/"(.*)"/$1/; + + if ($mdocvars{listtype} eq "column") { + # Ignore first item when it is likely to be a + # header. + if ($mdocvars{it_nr} == 1 && $txt =~ m/^(Em|Sy) /) { + dlog(2, "Skipping header line in column list"); + next; + } + # Only extract the first column. + $txt =~ s/ Ta /\t/g; + $txt =~ s/([^\t]+)\t.*/$1/; + } + + # Remove Li commands + $txt =~ s/^Li //g; + + parabuf_addline(\%mdocvars, normalize($txt)); + } elsif (/^Bl/) { + $mdocvars{isin_list} = 1; + flush_out(\%mdocvars); + add_sgmltag(\%mdocvars, ""); + + if (/-tag/) { + $mdocvars{listtype} = "tag"; + # YACK! Hack for ata(4) + if ($mdocvars{Nm} eq "ata") { + $mdocvars{listtype} = "tagHACK"; + } + } elsif (/-bullet/) { + $mdocvars{listtype} = "bullet"; + } elsif (/-column/) { + $mdocvars{listtype} = "column"; + } else { + $mdocvars{listtype} = "unknown"; + } + dlog(2, "Listtype set to $mdocvars{listtype}"); + } elsif (/^El/) { + if ($mdocvars{parabuf} ne "") { + add_listitem(\%mdocvars); + } + + add_sgmltag(\%mdocvars, ""); + $mdocvars{isin_list} = 0; + } elsif (/^Tn (.+)$/) { + # For now we print TradeName text as regular text. + my ($txt, $punct_str) = split_punct_chars($1); + + parabuf_addline(\%mdocvars, normalize($txt . $punct_str)); + } elsif (/^Xr ([^ ]+) (.+)$/) { + my ($xr_sect, $punct_str) = split_punct_chars($2); + my $txt; + + # We need to check if the manual page exist to avoid + # breaking the doc build just because of a broken + # reference. + #$txt = "&man.$1.$xr_sect;$punct_str"; + $txt = "$1($xr_sect)$punct_str"; + parabuf_addline(\%mdocvars, normalize($txt)); + } elsif (/^Dq (.+)$/) { + my ($txt, $punct_str) = split_punct_chars($1); + + parabuf_addline(\%mdocvars, + normalize("$txt$punct_str")); + } elsif (/^Sx (.+)$/) { + if ($mdocvars{isin_hwlist}) { + dlog(1, "Warning: Reference to another section in the " . + "$hwlist_sect section in " . $mdocvars{Nm} . + "(${cur_mansection})"); + } + parabuf_addline(\%mdocvars, normalize($1)); + } elsif (/^Pa (.+)$/) { + my ($txt, $punct_str) = split_punct_chars($1); + + $txt = make_ulink($txt) . $punct_str; + parabuf_addline(\%mdocvars, normalize($txt)); + } elsif (/^Pp/) { + dlog(3, "Got Pp command - forcing new para"); + flush_out(\%mdocvars); + } elsif (/^Fx (.+)/) { + dlog(3, "Got Fx command"); + parabuf_addline(\%mdocvars, "FreeBSD $1"); + } elsif (/^Fx/) { + dlog(3, "Got Fx command"); + parabuf_addline(\%mdocvars, "FreeBSD"); + } elsif (/^Em (.+)$/) { + my ($txt, $punct_str) = split_punct_chars($1); + + parabuf_addline(\%mdocvars, + normalize("$txt$punct_str")); + } else { + # Ignore all other commands. + dlog(3, "Ignoring unknown command $cmd"); + } + } else { + # This is then regular text + parabuf_addline(\%mdocvars, normalize($_)); + } + } + close(MANPAGE) || die("$!: Could not close $manpage in ", __LINE__, ".\n"); + if (! $found_hwlist) { + dlog(2, "Hardware list not found in $manpage"); + } +} + +sub dlog { + my ($level, $txt) = @_; + + if ($level <= $debuglevel) { + print STDERR "$level: $txt\n"; + } +} + +# Output a SGML tag. +sub add_sgmltag { + my ($mdocvars, $txt) = (@_); + + # We only care about the HW list for now. + if (${$mdocvars}{isin_hwlist}) { + push(@out_dev, $txt); + } +} + +# Add a text entity, and return the used entity name. +sub add_txt_ent { + my ($itemtxt) = (@_); + my ($entity_name); + + # Convert mdoc(7) minus + $itemtxt =~ s/\\-/-/g; + + $itemtxt =~ s/'/‘/g; + + $entity_name = "hwlist." . md5_hex($itemtxt); + dlog(4, "Adding '$itemtxt' as entity $entity_name"); + push(@out_lines, ""); + + return ($entity_name); +} +sub flush_out { + my ($mdocvars) = (@_); + my ($entity_name, $out); + my $para_arch = ""; + + if (!${$mdocvars}{isin_hwlist} || ${$mdocvars}{parabuf} eq "") { + return; + } + + $entity_name = add_txt_ent(${$mdocvars}{parabuf}); + ${$mdocvars}{parabuf} = ""; + if(defined($archlist{${$mdocvars}{Nm}})) { + if ($compat_mode) { + $para_arch = ' arch="' . $archlist{${$mdocvars}{Nm}} . '"'; + } else { + $para_arch = '[' . $archlist{${$mdocvars}{Nm}} . '] '; + } + } + if ($compat_mode) { + $out = "&".$entity_name.";"; + } else { + if (${$mdocvars}{first_para}) { + $out = "".$para_arch."&".$entity_name.";"; + } else { + $out = "&".$entity_name.";"; + } + ${$mdocvars}{first_para} = 0; + } + + dlog(4, "Flushing parabuf"); + add_sgmltag($mdocvars, $out); +} + +# Add a new list item from the "parabuf". +sub add_listitem { + my ($mdocvars) = (@_); + my ($listitem, $entity_name); + my $para_arch = ""; + + $entity_name = add_txt_ent(${$mdocvars}{parabuf}); + ${$mdocvars}{parabuf} = ""; + + if ($compat_mode) { + if(defined($archlist{${$mdocvars}{Nm}})) { + $para_arch = ' arch="' . $archlist{${$mdocvars}{Nm}} . '"'; + } + } + $listitem = "&".$entity_name.";"; + dlog(4, "Adding '$listitem' to out_dev"); + push(@out_dev, $listitem); + +} + +# Add a line to the "paragraph buffer" +sub parabuf_addline { + my $mdocvars = shift; + my ($txt) = (@_); + + dlog(5, "Now in parabuf_addline for '$txt'"); + + # We only care about the HW list for now. + if (!${$mdocvars}{isin_hwlist}) { + dlog(6, "Exiting parabuf_addline due to: !\${\$mdocvars}{isin_hwlist}"); + return; + } + if ($txt eq "") { + dlog(6, "Exiting parabuf_addline due to: \$txt eq \"\""); + return; + } + + if ($only_list_out && !${$mdocvars}{isin_list}) { + dlog(6, "Exiting parabuf_addline due to: ". + "\$only_list_out && !\${\$mdocvars}{isin_list}"); + return; + } + + # We only add the first line for "tag" lists + if (${$mdocvars}{parabuf} ne "" && ${$mdocvars}{isin_list} && + ${$mdocvars}{listtype} eq "tag") { + dlog(6, "Exiting parabuf_addline due to: ". + "\${\$mdocvars}{parabuf} ne \"\" && \${\$mdocvars}{isin_list} && ". + "\${\$mdocvars}{listtype} eq \"tag\""); + return; + } + + if (${$mdocvars}{parabuf} ne "") { + ${$mdocvars}{parabuf} .= " "; + } + + dlog(4, "Adding '$txt' to parabuf"); + + ${$mdocvars}{parabuf} .= $txt; +} + +sub load_archlist { + my ($file) = (@_); + + my $lineno = 0; + + dlog(2, "Parsing archlist $file"); + + open(FILE, "$file") || die("$!: Could not open archlist $file in ", __LINE__, ".\n"); + while() { + chomp; + $lineno++; + + if (/^#/ || $_ eq "") { + next; + } + + if (/(\w+)\t([\w,]+)/) { + dlog(4, "For driver $1 setting arch to $2"); + $archlist{$1} = $2; + } else { + dlog(1, "Warning: Could not parse archlist line $lineno"); + } + } + + close(FILE); +} + +# Check if a character is a mdoc(7) punctuation character. +sub is_punct_char { + my ($str) = (@_); + + return (length($str) == 1 && $str =~ /[\.,:;()\[\]\?!]/); +} + +# Split out the punctuation characters of a mdoc(7) line. +sub split_punct_chars { + my ($str) = (@_); + my (@stritems, $stritem, $punct_str); + + $punct_str = ""; + @stritems = split(/ /, $str); + + while (defined($stritem = $stritems[$#stritems]) && + is_punct_char($stritem)) { + $punct_str = $stritem . $punct_str; + pop(@stritems); + } + + return (join(' ', @stritems), $punct_str); +} + +# Create a ulink, if the string contains an URL. +sub make_ulink { + my ($str) = (@_); + + $str =~ s,(http://[^ ]+),,; + + return $str; +} Property changes on: head/share/misc/man2hwnotes.pl ___________________________________________________________________ Added: svn:keywords ## -0,0 +1 ## +FreeBSD=%H \ No newline at end of property